Added option to turn off automatic menu update checking

This is because it uses additional memory than can cause some older devices to crash unless they have smaller menus.
This commit is contained in:
Philip Abbey
2025-09-13 11:06:29 +01:00
parent e284cd2d4a
commit 7ba0d76bf6
45 changed files with 180 additions and 31 deletions

View File

@@ -38,6 +38,22 @@
-->
<property id="clear_cache" type="boolean">false</property>
<!--
Enables checking of the menu definition URL for updates each time the
application is started. Only if menu caching is enabled, then if a menu
update is detected, the new menu definition is downloaded and cached ready
for an application restart. This menu item will be disabled by the application
if:
1. The menu caching is disabled or,
2. if a `Communications.INVALID_HTTP_BODY_IN_NETWORK_RESPONSE` API response
is encountered indicating that the Garmin device is short of memory, or
3. The device has < 10% memory left prior to calling the API.
Off by default due to the chance an old device will crash by default with an
"Out of Memory" error. At least let the application work before enabling.
-->
<property id="enable_menu_update_check" type="boolean">false</property>
<!--
Enables the SyncDelegate and prompt to send a command over Wi-Fi/LTE.
This will only show when not connected to the user's phone.

View File

@@ -51,6 +51,13 @@
<settingConfig type="boolean" />
</setting>
<setting
propertyKey="@Properties.enable_menu_update_check"
title="@Strings.SettingsEnableMenuUpdateCheck"
>
<settingConfig type="boolean" />
</setting>
<setting
propertyKey="@Properties.wifi_lte_execution"
title="@Strings.SettingsWifiLteExecutionEnable"

View File

@@ -26,6 +26,7 @@
<string id="GlanceMenu" scope="glance">Menu</string>
<string id="Memory" scope="glance">Memory</string>
<string id="MenuUpdated">Menu updated, restart.</string>
<string id="MenuCheckDisabled">Menu updates disabled.</string>
<string id="NoAPIKey" scope="glance">No API key in the application settings.</string>
<string id="NoApiUrl" scope="glance">No API URL in the application settings.</string>
<string id="NoConfigUrl" scope="glance">No configuration URL in the application settings.</string>
@@ -58,6 +59,7 @@
<string id="SettingsConfigUrl">URL for menu configuration (JSON).</string>
<string id="SettingsCacheConfig">Should the application cache the menu configuration?</string>
<string id="SettingsClearCache">Should the application clear the existing cache next time it is started?</string>
<string id="SettingsEnableMenuUpdateCheck">Check for menu updates on application start? Note: Menu caching must be enabled.This setting may cause older devices with less memory to crash.</string>
<string id="SettingsWifiLteExecutionEnable">Enable executing commands over Wi-Fi/LTE.</string>
<string id="SettingsVibration">Should the application provide feedback via vibrations?</string>
<string id="SettingsAppTimeout">Timeout in seconds. Exit the application after this period of inactivity to save the device battery.</string>