Acknowledged
CIQQA-3712

bug: changing font scale doesn't trigger onSettingsChanged or getInitialView in simulator

I'm not 100% sure how this works on real devices, as I don't have a relevant device, but in the simulator in SDK 8.3.0 (i.e venu441mm) onSettingsChanged() isn't called, nor is getInitialView() (as for example when changing time setting between 12h and 24h)

Parents
  • >  nor is it parallel to how other settings trigger onSettingsChanged. 

    But onSettingsChanged() is only supposed to be called when app settings are changed (i.e. the kind of settings that are defined in <settings> XML and modified in the Connect phone app or Garmin Express). (NOTE: I am not implying that this function is called when settings are changed in Garmin Express - I suspect this wouldn't happen since the app can't be running while Express is talking to the device.)

    onSettingsChanged() was never meant to be called when items in the DeviceSettings class are changed (such as 12/24h mode, system language, etc), and as far as I know, it isn't. Unless your experience is somehow different?

    [https://developer.garmin.com/connect-iq/api-docs/Toybox/Application/AppBase.html#onSettingsChanged-instance_function]

    onSettingsChanged() as Void

    Called when the application settings have been changed by Garmin Connect Mobile (GCM) while while the app is running. Override this method to change app behavior when settings change. This is typically used to call for an update to the WatchUi.requestUpdate()

    If you are looking for an API method that is called when DeviceSettings are changed, maybe you're thinking of onDeviceSettingChanged? (It's available with CIQ 5.1.0 and later - since venu441mm is on CIQ 5.2, it should be called in your case, otherwise that would be a bug.) 

    https://developer.garmin.com/connect-iq/api-docs/Toybox/Application/AppBase.html#onDeviceSettingChanged-instance_function 

    onDeviceSettingChanged(aSymbol as Lang.Symbol, aValue as Lang.Object) as Void

    A device setting has changed

    This method is called when a device setting value is changed.

    Parameters:

    Before you say "clearly that's what I meant", you typed onSettingsChanged literally 3 times, and onDeviceSettingChanged 0 times.

Comment
  • >  nor is it parallel to how other settings trigger onSettingsChanged. 

    But onSettingsChanged() is only supposed to be called when app settings are changed (i.e. the kind of settings that are defined in <settings> XML and modified in the Connect phone app or Garmin Express). (NOTE: I am not implying that this function is called when settings are changed in Garmin Express - I suspect this wouldn't happen since the app can't be running while Express is talking to the device.)

    onSettingsChanged() was never meant to be called when items in the DeviceSettings class are changed (such as 12/24h mode, system language, etc), and as far as I know, it isn't. Unless your experience is somehow different?

    [https://developer.garmin.com/connect-iq/api-docs/Toybox/Application/AppBase.html#onSettingsChanged-instance_function]

    onSettingsChanged() as Void

    Called when the application settings have been changed by Garmin Connect Mobile (GCM) while while the app is running. Override this method to change app behavior when settings change. This is typically used to call for an update to the WatchUi.requestUpdate()

    If you are looking for an API method that is called when DeviceSettings are changed, maybe you're thinking of onDeviceSettingChanged? (It's available with CIQ 5.1.0 and later - since venu441mm is on CIQ 5.2, it should be called in your case, otherwise that would be a bug.) 

    https://developer.garmin.com/connect-iq/api-docs/Toybox/Application/AppBase.html#onDeviceSettingChanged-instance_function 

    onDeviceSettingChanged(aSymbol as Lang.Symbol, aValue as Lang.Object) as Void

    A device setting has changed

    This method is called when a device setting value is changed.

    Parameters:

    Before you say "clearly that's what I meant", you typed onSettingsChanged literally 3 times, and onDeviceSettingChanged 0 times.

Children
No Data