From 9a268eaf02d0c71bba66d51b0226e8ff87207922 Mon Sep 17 00:00:00 2001 From: Philip Abbey Date: Mon, 1 Jan 2024 14:17:04 +0000 Subject: [PATCH] Updated RezStrings.mc Variables are now read only via getters. --- source/HomeAssistantApp.mc | 74 +++++++------- source/HomeAssistantConfirmation.mc | 2 +- source/HomeAssistantGlanceView.mc | 10 +- source/HomeAssistantMenuItemFactory.mc | 4 +- source/HomeAssistantService.mc | 16 +-- source/HomeAssistantToggleMenuItem.mc | 44 ++++---- source/HomeAssistantViewMenuItem.mc | 2 +- source/RezStrings.mc | 133 +++++++++++++++++++++---- source/RootView.mc | 8 +- 9 files changed, 191 insertions(+), 102 deletions(-) diff --git a/source/HomeAssistantApp.mc b/source/HomeAssistantApp.mc index bf9cd23..23a5385 100644 --- a/source/HomeAssistantApp.mc +++ b/source/HomeAssistantApp.mc @@ -89,40 +89,40 @@ class HomeAssistantApp extends Application.AppBase { mIsApp = true; mQuitTimer = new QuitTimer(); RezStrings.update(); - mApiStatus = RezStrings.strChecking; - mMenuStatus = RezStrings.strChecking; + mApiStatus = RezStrings.getChecking(); + mMenuStatus = RezStrings.getChecking(); Settings.update(); if (Settings.getApiKey().length() == 0) { if (Globals.scDebug) { System.println("HomeAssistantApp getInitialView(): No API key in the application Settings."); } - return ErrorView.create(RezStrings.strNoApiKey + "."); + return ErrorView.create(RezStrings.getNoApiKey() + "."); } else if (Settings.getApiUrl().length() == 0) { if (Globals.scDebug) { System.println("HomeAssistantApp getInitialView(): No API URL in the application Settings."); } - return ErrorView.create(RezStrings.strNoApiUrl + "."); + return ErrorView.create(RezStrings.getNoApiUrl() + "."); } else if (Settings.getApiUrl().substring(-1, Settings.getApiUrl().length()).equals("/")) { if (Globals.scDebug) { System.println("HomeAssistantApp getInitialView(): API URL must not have a trailing slash '/'."); } - return ErrorView.create(RezStrings.strTrailingSlashErr + "."); + return ErrorView.create(RezStrings.getTrailingSlashErr() + "."); } else if (Settings.getConfigUrl().length() == 0) { if (Globals.scDebug) { System.println("HomeAssistantApp getInitialView(): No configuration URL in the application settings."); } - return ErrorView.create(RezStrings.strNoConfigUrl + "."); + return ErrorView.create(RezStrings.getNoConfigUrl() + "."); } else if (! System.getDeviceSettings().phoneConnected) { if (Globals.scDebug) { System.println("HomeAssistantApp fetchMenuConfig(): No Phone connection, skipping API call."); } - return ErrorView.create(RezStrings.strNoPhone + "."); + return ErrorView.create(RezStrings.getNoPhone() + "."); } else if (! System.getDeviceSettings().connectionAvailable) { if (Globals.scDebug) { System.println("HomeAssistantApp fetchMenuConfig(): No Internet connection, skipping API call."); } - return ErrorView.create(RezStrings.strNoInternet + "."); + return ErrorView.create(RezStrings.getNoInternet() + "."); } else { fetchMenuConfig(); fetchApiStatus(); @@ -143,7 +143,7 @@ class HomeAssistantApp extends Application.AppBase { System.println("HomeAssistantApp onReturnFetchMenuConfig() Response Data: " + data); } - mMenuStatus = RezStrings.strUnavailable; + mMenuStatus = RezStrings.getUnavailable(); switch (responseCode) { case Communications.BLE_HOST_TIMEOUT: case Communications.BLE_CONNECTION_UNAVAILABLE: @@ -151,7 +151,7 @@ class HomeAssistantApp extends Application.AppBase { System.println("HomeAssistantApp onReturnFetchMenuConfig() Response Code: BLE_HOST_TIMEOUT or BLE_CONNECTION_UNAVAILABLE, Bluetooth connection severed."); } if (!mIsGlance) { - ErrorView.show(RezStrings.strNoPhone + "."); + ErrorView.show(RezStrings.getNoPhone() + "."); } break; @@ -160,7 +160,7 @@ class HomeAssistantApp extends Application.AppBase { System.println("HomeAssistantApp onReturnFetchMenuConfig() Response Code: BLE_QUEUE_FULL, API calls too rapid."); } if (!mIsGlance) { - ErrorView.show(RezStrings.strApiFlood); + ErrorView.show(RezStrings.getApiFlood()); } break; @@ -169,7 +169,7 @@ class HomeAssistantApp extends Application.AppBase { System.println("HomeAssistantApp onReturnFetchMenuConfig() Response Code: NETWORK_REQUEST_TIMED_OUT, check Internet connection."); } if (!mIsGlance) { - ErrorView.show(RezStrings.strNoResponse); + ErrorView.show(RezStrings.getNoResponse()); } break; @@ -178,7 +178,7 @@ class HomeAssistantApp extends Application.AppBase { System.println("HomeAssistantApp onReturnFetchMenuConfig() Response Code: INVALID_HTTP_BODY_IN_NETWORK_RESPONSE, check JSON is returned."); } if (!mIsGlance) { - ErrorView.show(RezStrings.strNoJson); + ErrorView.show(RezStrings.getNoJson()); } break; @@ -187,12 +187,12 @@ class HomeAssistantApp extends Application.AppBase { System.println("HomeAssistantApp onReturnFetchMenuConfig() Response Code: 404, page not found. Check Configuration URL setting."); } if (!mIsGlance) { - ErrorView.show(RezStrings.strConfigUrlNotFound); + ErrorView.show(RezStrings.getConfigUrlNotFound()); } break; case 200: - mMenuStatus = RezStrings.strAvailable; + mMenuStatus = RezStrings.getAvailable(); if (!mIsGlance) { mHaMenu = new HomeAssistantView(data, null); mQuitTimer.begin(); @@ -219,7 +219,7 @@ class HomeAssistantApp extends Application.AppBase { System.println("HomeAssistantApp onReturnFetchMenuConfig(): Unhandled HTTP response code = " + responseCode); } if (!mIsGlance) { - ErrorView.show(RezStrings.strUnhandledHttpErr + responseCode); + ErrorView.show(RezStrings.getUnhandledHttpErr() + responseCode); } break; } @@ -229,7 +229,7 @@ class HomeAssistantApp extends Application.AppBase { (:glance) function fetchMenuConfig() as Void { if (Settings.getConfigUrl().equals("")) { - mMenuStatus = RezStrings.strUnconfigured; + mMenuStatus = RezStrings.getUnconfigured(); WatchUi.requestUpdate(); } else { if (! System.getDeviceSettings().phoneConnected) { @@ -239,9 +239,9 @@ class HomeAssistantApp extends Application.AppBase { if (mIsGlance) { WatchUi.requestUpdate(); } else { - ErrorView.show(RezStrings.strNoPhone + "."); + ErrorView.show(RezStrings.getNoPhone() + "."); } - mMenuStatus = RezStrings.strUnavailable; + mMenuStatus = RezStrings.getUnavailable(); } else if (! System.getDeviceSettings().connectionAvailable) { if (Globals.scDebug) { System.println("HomeAssistantToggleMenuItem getState(): No Internet connection, skipping API call."); @@ -249,9 +249,9 @@ class HomeAssistantApp extends Application.AppBase { if (mIsGlance) { WatchUi.requestUpdate(); } else { - ErrorView.show(RezStrings.strNoInternet + "."); + ErrorView.show(RezStrings.getNoInternet() + "."); } - mMenuStatus = RezStrings.strUnavailable; + mMenuStatus = RezStrings.getUnavailable(); } else { Communications.makeWebRequest( Settings.getConfigUrl(), @@ -275,7 +275,7 @@ class HomeAssistantApp extends Application.AppBase { System.println("HomeAssistantApp onReturnFetchApiStatus() Response Data: " + data); } - mApiStatus = RezStrings.strUnavailable; + mApiStatus = RezStrings.getUnavailable(); switch (responseCode) { case Communications.BLE_HOST_TIMEOUT: case Communications.BLE_CONNECTION_UNAVAILABLE: @@ -283,7 +283,7 @@ class HomeAssistantApp extends Application.AppBase { System.println("HomeAssistantApp onReturnFetchApiStatus() Response Code: BLE_HOST_TIMEOUT or BLE_CONNECTION_UNAVAILABLE, Bluetooth connection severed."); } if (!mIsGlance) { - ErrorView.show(RezStrings.strNoPhone + "."); + ErrorView.show(RezStrings.getNoPhone() + "."); } break; @@ -292,7 +292,7 @@ class HomeAssistantApp extends Application.AppBase { System.println("HomeAssistantApp onReturnFetchApiStatus() Response Code: BLE_QUEUE_FULL, API calls too rapid."); } if (!mIsGlance) { - ErrorView.show(RezStrings.strApiFlood); + ErrorView.show(RezStrings.getApiFlood()); } break; @@ -301,7 +301,7 @@ class HomeAssistantApp extends Application.AppBase { System.println("HomeAssistantApp onReturnFetchApiStatus() Response Code: NETWORK_REQUEST_TIMED_OUT, check Internet connection."); } if (!mIsGlance) { - ErrorView.show(RezStrings.strNoResponse); + ErrorView.show(RezStrings.getNoResponse()); } break; @@ -310,7 +310,7 @@ class HomeAssistantApp extends Application.AppBase { System.println("HomeAssistantApp onReturnFetchApiStatus() Response Code: INVALID_HTTP_BODY_IN_NETWORK_RESPONSE, check JSON is returned."); } if (!mIsGlance) { - ErrorView.show(RezStrings.strNoJson); + ErrorView.show(RezStrings.getNoJson()); } break; @@ -319,7 +319,7 @@ class HomeAssistantApp extends Application.AppBase { System.println("HomeAssistantApp onReturnFetchApiStatus() Response Code: 404, page not found. Check Configuration URL setting."); } if (!mIsGlance) { - ErrorView.show(RezStrings.strConfigUrlNotFound); + ErrorView.show(RezStrings.getConfigUrlNotFound()); } break; @@ -329,7 +329,7 @@ class HomeAssistantApp extends Application.AppBase { msg = data.get("message"); } if (msg.equals("API running.")) { - mApiStatus = RezStrings.strAvailable; + mApiStatus = RezStrings.getAvailable(); } else { if (!mIsGlance) { ErrorView.show("API " + mApiStatus + "."); @@ -342,7 +342,7 @@ class HomeAssistantApp extends Application.AppBase { System.println("HomeAssistantApp onReturnFetchApiStatus(): Unhandled HTTP response code = " + responseCode); } if (!mIsGlance) { - ErrorView.show(RezStrings.strUnhandledHttpErr + responseCode); + ErrorView.show(RezStrings.getUnhandledHttpErr() + responseCode); } } WatchUi.requestUpdate(); @@ -351,28 +351,28 @@ class HomeAssistantApp extends Application.AppBase { (:glance) function fetchApiStatus() as Void { if (Settings.getApiUrl().equals("")) { - mApiStatus = RezStrings.strUnconfigured; + mApiStatus = RezStrings.getUnconfigured(); WatchUi.requestUpdate(); } else { if (! System.getDeviceSettings().phoneConnected) { if (Globals.scDebug) { System.println("HomeAssistantToggleMenuItem getState(): No Phone connection, skipping API call."); } - mApiStatus = RezStrings.strUnavailable; + mApiStatus = RezStrings.getUnavailable(); if (mIsGlance) { WatchUi.requestUpdate(); } else { - ErrorView.show(RezStrings.strNoPhone + "."); + ErrorView.show(RezStrings.getNoPhone() + "."); } } else if (! System.getDeviceSettings().connectionAvailable) { if (Globals.scDebug) { System.println("HomeAssistantToggleMenuItem getState(): No Internet connection, skipping API call."); } - mApiStatus = RezStrings.strUnavailable; + mApiStatus = RezStrings.getUnavailable(); if (mIsGlance) { WatchUi.requestUpdate(); } else { - ErrorView.show(RezStrings.strNoInternet + "."); + ErrorView.show(RezStrings.getNoInternet() + "."); } } else { Communications.makeWebRequest( @@ -422,7 +422,7 @@ class HomeAssistantApp extends Application.AppBase { System.println("HomeAssistantApp updateNextMenuItem(): No menu items to update"); } if (!mIsGlance) { - ErrorView.show(RezStrings.strConfigUrlNotFound); + ErrorView.show(RezStrings.getConfigUrlNotFound()); } } else { itu[mNextItemToUpdate].getState(); @@ -437,8 +437,8 @@ class HomeAssistantApp extends Application.AppBase { function getGlanceView() as Lang.Array or Null { mIsGlance = true; RezStrings.update_glance(); - mApiStatus = RezStrings.strChecking; - mMenuStatus = RezStrings.strChecking; + mApiStatus = RezStrings.getChecking(); + mMenuStatus = RezStrings.getChecking(); updateGlance(); Settings.update(); mTimer = new Timer.Timer(); diff --git a/source/HomeAssistantConfirmation.mc b/source/HomeAssistantConfirmation.mc index 7695d34..ce3abe7 100644 --- a/source/HomeAssistantConfirmation.mc +++ b/source/HomeAssistantConfirmation.mc @@ -28,7 +28,7 @@ using Toybox.Application.Properties; class HomeAssistantConfirmation extends WatchUi.Confirmation { function initialize() { - WatchUi.Confirmation.initialize(RezStrings.strConfirm); + WatchUi.Confirmation.initialize(RezStrings.getConfirm()); } } diff --git a/source/HomeAssistantGlanceView.mc b/source/HomeAssistantGlanceView.mc index a340ad7..123228b 100644 --- a/source/HomeAssistantGlanceView.mc +++ b/source/HomeAssistantGlanceView.mc @@ -40,10 +40,10 @@ class HomeAssistantGlanceView extends WatchUi.GlanceView { function onLayout(dc as Graphics.Dc) as Void { var h = dc.getHeight(); - var tw = dc.getTextWidthInPixels(RezStrings.strGlanceMenu, Graphics.FONT_XTINY); + var tw = dc.getTextWidthInPixels(RezStrings.getGlanceMenu(), Graphics.FONT_XTINY); mTitle = new WatchUi.Text({ - :text => RezStrings.strAppName, + :text => RezStrings.getAppName(), :color => Graphics.COLOR_WHITE, :font => Graphics.FONT_TINY, :justification => Graphics.TEXT_JUSTIFY_LEFT | Graphics.TEXT_JUSTIFY_VCENTER, @@ -60,7 +60,7 @@ class HomeAssistantGlanceView extends WatchUi.GlanceView { :locY => 3 * h / 6 }); mApiStatus = new WatchUi.Text({ - :text => RezStrings.strChecking, + :text => RezStrings.getChecking(), :color => Graphics.COLOR_WHITE, :font => Graphics.FONT_XTINY, :justification => Graphics.TEXT_JUSTIFY_LEFT | Graphics.TEXT_JUSTIFY_VCENTER, @@ -68,7 +68,7 @@ class HomeAssistantGlanceView extends WatchUi.GlanceView { :locY => 3 * h / 6 }); mMenuText = new WatchUi.Text({ - :text => RezStrings.strGlanceMenu + ":", + :text => RezStrings.getGlanceMenu() + ":", :color => Graphics.COLOR_WHITE, :font => Graphics.FONT_XTINY, :justification => Graphics.TEXT_JUSTIFY_LEFT | Graphics.TEXT_JUSTIFY_VCENTER, @@ -76,7 +76,7 @@ class HomeAssistantGlanceView extends WatchUi.GlanceView { :locY => 5 * h / 6 }); mMenuStatus = new WatchUi.Text({ - :text => RezStrings.strChecking, + :text => RezStrings.getChecking(), :color => Graphics.COLOR_WHITE, :font => Graphics.FONT_XTINY, :justification => Graphics.TEXT_JUSTIFY_LEFT | Graphics.TEXT_JUSTIFY_VCENTER, diff --git a/source/HomeAssistantMenuItemFactory.mc b/source/HomeAssistantMenuItemFactory.mc index 9de4944..a90ce38 100644 --- a/source/HomeAssistantMenuItemFactory.mc +++ b/source/HomeAssistantMenuItemFactory.mc @@ -59,7 +59,7 @@ class HomeAssistantMenuItemFactory { function toggle(label as Lang.String or Lang.Symbol, identifier as Lang.Object or Null) as WatchUi.MenuItem { return new HomeAssistantToggleMenuItem( label, - Settings.getMenuStyle() == Settings.MENU_STYLE_TEXT ? RezStrings.strLabelToggle : null, + Settings.getMenuStyle() == Settings.MENU_STYLE_TEXT ? RezStrings.getLabelToggle() : null, identifier, false, mMenuItemOptions @@ -75,7 +75,7 @@ class HomeAssistantMenuItemFactory { if (Settings.getMenuStyle() == Settings.MENU_STYLE_TEXT) { return new HomeAssistantMenuItem( label, - RezStrings.strMenuItemTap, + RezStrings.getMenuItemTap(), identifier, service, confirm, diff --git a/source/HomeAssistantService.mc b/source/HomeAssistantService.mc index 8ba36e5..fb77371 100644 --- a/source/HomeAssistantService.mc +++ b/source/HomeAssistantService.mc @@ -40,21 +40,21 @@ class HomeAssistantService { if (Globals.scDebug) { System.println("HomeAssistantService onReturnCall() Response Code: BLE_HOST_TIMEOUT or BLE_CONNECTION_UNAVAILABLE, Bluetooth connection severed."); } - ErrorView.show(RezStrings.strNoPhone + "."); + ErrorView.show(RezStrings.getNoPhone() + "."); break; case Communications.BLE_QUEUE_FULL: if (Globals.scDebug) { System.println("HomeAssistantService onReturnCall() Response Code: BLE_QUEUE_FULL, API calls too rapid."); } - ErrorView.show(RezStrings.strApiFlood); + ErrorView.show(RezStrings.getApiFlood()); break; case Communications.NETWORK_REQUEST_TIMED_OUT: if (Globals.scDebug) { System.println("HomeAssistantService onReturnCall() Response Code: NETWORK_REQUEST_TIMED_OUT, check Internet connection."); } - ErrorView.show(RezStrings.strNoResponse); + ErrorView.show(RezStrings.getNoResponse()); break; case Communications.NETWORK_RESPONSE_OUT_OF_MEMORY: @@ -67,14 +67,14 @@ class HomeAssistantService { if (Globals.scDebug) { System.println("HomeAssistantService onReturnCall() Response Code: INVALID_HTTP_BODY_IN_NETWORK_RESPONSE, check JSON is returned."); } - ErrorView.show(RezStrings.strNoJson); + ErrorView.show(RezStrings.getNoJson()); break; case 404: if (Globals.scDebug) { System.println("HomeAssistantService onReturnCall() Response Code: 404, page not found. Check API URL setting."); } - ErrorView.show(RezStrings.strApiUrlNotFound); + ErrorView.show(RezStrings.getApiUrlNotFound()); break; case 200: @@ -105,7 +105,7 @@ class HomeAssistantService { if (Globals.scDebug) { System.println("HomeAssistantService onReturnCall(): Unhandled HTTP response code = " + responseCode); } - ErrorView.show(RezStrings.strUnhandledHttpErr + responseCode); + ErrorView.show(RezStrings.getUnhandledHttpErr() + responseCode); } } @@ -114,12 +114,12 @@ class HomeAssistantService { if (Globals.scDebug) { System.println("HomeAssistantService call(): No Phone connection, skipping API call."); } - ErrorView.show(RezStrings.strNoPhone + "."); + ErrorView.show(RezStrings.getNoPhone() + "."); } else if (! System.getDeviceSettings().connectionAvailable) { if (Globals.scDebug) { System.println("HomeAssistantService call(): No Internet connection, skipping API call."); } - ErrorView.show(RezStrings.strNoInternet + "."); + ErrorView.show(RezStrings.getNoInternet() + "."); } else { // Can't use null for substring() parameters due to API version level. var url = Settings.getApiUrl() + "/services/" + service.substring(0, service.find(".")) + "/" + service.substring(service.find(".")+1, service.length()); diff --git a/source/HomeAssistantToggleMenuItem.mc b/source/HomeAssistantToggleMenuItem.mc index 95bd404..3e9c068 100644 --- a/source/HomeAssistantToggleMenuItem.mc +++ b/source/HomeAssistantToggleMenuItem.mc @@ -64,35 +64,35 @@ class HomeAssistantToggleMenuItem extends WatchUi.ToggleMenuItem { System.println("HomeAssistantToggleMenuItem onReturnGetState() Response Data: " + data); } - var status = RezStrings.strUnavailable; + var status = RezStrings.getUnavailable(); switch (responseCode) { case Communications.BLE_HOST_TIMEOUT: case Communications.BLE_CONNECTION_UNAVAILABLE: if (Globals.scDebug) { System.println("HomeAssistantToggleMenuItem onReturnGetState() Response Code: BLE_HOST_TIMEOUT or BLE_CONNECTION_UNAVAILABLE, Bluetooth connection severed."); } - ErrorView.show(RezStrings.strNoPhone + "."); + ErrorView.show(RezStrings.getNoPhone() + "."); break; case Communications.BLE_QUEUE_FULL: if (Globals.scDebug) { System.println("HomeAssistantToggleMenuItem onReturnGetState() Response Code: BLE_QUEUE_FULL, API calls too rapid."); } - ErrorView.show(RezStrings.strApiFlood); + ErrorView.show(RezStrings.getApiFlood()); break; case Communications.NETWORK_REQUEST_TIMED_OUT: if (Globals.scDebug) { System.println("HomeAssistantToggleMenuItem onReturnGetState() Response Code: NETWORK_REQUEST_TIMED_OUT, check Internet connection."); } - ErrorView.show(RezStrings.strNoResponse); + ErrorView.show(RezStrings.getNoResponse()); break; case Communications.INVALID_HTTP_BODY_IN_NETWORK_RESPONSE: if (Globals.scDebug) { System.println("HomeAssistantToggleMenuItem onReturnGetState() Response Code: INVALID_HTTP_BODY_IN_NETWORK_RESPONSE, check JSON is returned."); } - ErrorView.show(RezStrings.strNoJson); + ErrorView.show(RezStrings.getNoJson()); break; case Communications.NETWORK_RESPONSE_OUT_OF_MEMORY: @@ -119,7 +119,7 @@ class HomeAssistantToggleMenuItem extends WatchUi.ToggleMenuItem { if (Globals.scDebug) { System.println("HomeAssistantToggleMenuItem onReturnGetState() Response Code: 404, page not found. Check API URL setting."); } - ErrorView.show(RezStrings.strApiUrlNotFound); + ErrorView.show(RezStrings.getApiUrlNotFound()); } break; @@ -132,7 +132,7 @@ class HomeAssistantToggleMenuItem extends WatchUi.ToggleMenuItem { break; case 200: - status = RezStrings.strAvailable; + status = RezStrings.getAvailable(); var state = data.get("state") as Lang.String; if (Globals.scDebug) { System.println((data.get("attributes") as Lang.Dictionary).get("friendly_name") + " State=" + state); @@ -150,7 +150,7 @@ class HomeAssistantToggleMenuItem extends WatchUi.ToggleMenuItem { if (Globals.scDebug) { System.println("HomeAssistantToggleMenuItem onReturnGetState(): Unhandled HTTP response code = " + responseCode); } - ErrorView.show(RezStrings.strUnhandledHttpErr + responseCode); + ErrorView.show(RezStrings.getUnhandledHttpErr() + responseCode); } getApp().setApiStatus(status); } @@ -160,14 +160,14 @@ class HomeAssistantToggleMenuItem extends WatchUi.ToggleMenuItem { if (Globals.scDebug) { System.println("HomeAssistantToggleMenuItem getState(): No Phone connection, skipping API call."); } - ErrorView.show(RezStrings.strNoPhone + "."); - getApp().setApiStatus(RezStrings.strUnavailable); + ErrorView.show(RezStrings.getNoPhone() + "."); + getApp().setApiStatus(RezStrings.getUnavailable()); } else if (! System.getDeviceSettings().connectionAvailable) { if (Globals.scDebug) { System.println("HomeAssistantToggleMenuItem getState(): No Internet connection, skipping API call."); } - ErrorView.show(RezStrings.strNoInternet + "."); - getApp().setApiStatus(RezStrings.strUnavailable); + ErrorView.show(RezStrings.getNoInternet() + "."); + getApp().setApiStatus(RezStrings.getUnavailable()); } else { var url = Settings.getApiUrl() + "/states/" + mIdentifier; if (Globals.scDebug) { @@ -196,42 +196,42 @@ class HomeAssistantToggleMenuItem extends WatchUi.ToggleMenuItem { System.println("HomeAssistantToggleMenuItem onReturnSetState() Response Data: " + data); } - var status = RezStrings.strUnavailable; + var status = RezStrings.getUnavailable(); switch (responseCode) { case Communications.BLE_HOST_TIMEOUT: case Communications.BLE_CONNECTION_UNAVAILABLE: if (Globals.scDebug) { System.println("HomeAssistantToggleMenuItem onReturnSetState() Response Code: BLE_HOST_TIMEOUT or BLE_CONNECTION_UNAVAILABLE, Bluetooth connection severed."); } - ErrorView.show(RezStrings.strNoPhone + "."); + ErrorView.show(RezStrings.getNoPhone() + "."); break; case Communications.BLE_QUEUE_FULL: if (Globals.scDebug) { System.println("HomeAssistantToggleMenuItem onReturnSetState() Response Code: BLE_QUEUE_FULL, API calls too rapid."); } - ErrorView.show(RezStrings.strApiFlood); + ErrorView.show(RezStrings.getApiFlood()); break; case Communications.NETWORK_REQUEST_TIMED_OUT: if (Globals.scDebug) { System.println("HomeAssistantToggleMenuItem onReturnSetState() Response Code: NETWORK_REQUEST_TIMED_OUT, check Internet connection."); } - ErrorView.show(RezStrings.strNoResponse); + ErrorView.show(RezStrings.getNoResponse()); break; case Communications.INVALID_HTTP_BODY_IN_NETWORK_RESPONSE: if (Globals.scDebug) { System.println("HomeAssistantToggleMenuItem onReturnSetState() Response Code: INVALID_HTTP_BODY_IN_NETWORK_RESPONSE, check JSON is returned."); } - ErrorView.show(RezStrings.strNoJson); + ErrorView.show(RezStrings.getNoJson()); break; case 404: if (Globals.scDebug) { System.println("HomeAssistantToggleMenuItem onReturnSetState() Response Code: 404, page not found. Check API URL setting."); } - ErrorView.show(RezStrings.strApiUrlNotFound); + ErrorView.show(RezStrings.getApiUrlNotFound()); break; case 200: @@ -246,14 +246,14 @@ class HomeAssistantToggleMenuItem extends WatchUi.ToggleMenuItem { setUiToggle(state); } } - status = RezStrings.strAvailable; + status = RezStrings.getAvailable(); break; default: if (Globals.scDebug) { System.println("HomeAssistantToggleMenuItem onReturnSetState(): Unhandled HTTP response code = " + responseCode); } - ErrorView.show(RezStrings.strUnhandledHttpErr + responseCode); + ErrorView.show(RezStrings.getUnhandledHttpErr() + responseCode); } getApp().setApiStatus(status); } @@ -265,14 +265,14 @@ class HomeAssistantToggleMenuItem extends WatchUi.ToggleMenuItem { } // Toggle the UI back setEnabled(!isEnabled()); - ErrorView.show(RezStrings.strNoPhone + "."); + ErrorView.show(RezStrings.getNoPhone() + "."); } else if (! System.getDeviceSettings().connectionAvailable) { if (Globals.scDebug) { System.println("HomeAssistantToggleMenuItem getState(): No Internet connection, skipping API call."); } // Toggle the UI back setEnabled(!isEnabled()); - ErrorView.show(RezStrings.strNoInternet + "."); + ErrorView.show(RezStrings.getNoInternet() + "."); } else { // Updated SDK and got a new error // ERROR: venu: Cannot find symbol ':substring' on type 'PolyType'. diff --git a/source/HomeAssistantViewMenuItem.mc b/source/HomeAssistantViewMenuItem.mc index 0b816ba..1c0ccb7 100644 --- a/source/HomeAssistantViewMenuItem.mc +++ b/source/HomeAssistantViewMenuItem.mc @@ -28,7 +28,7 @@ class HomeAssistantViewMenuItem extends WatchUi.MenuItem { // definitions.get(...) are Strings here as they have been checked by HomeAssistantView first WatchUi.MenuItem.initialize( definition.get("name") as Lang.String, - RezStrings.strMenuItemMenu, + RezStrings.getMenuItemMenu(), definition.get("entity") as Lang.String, null ); diff --git a/source/RezStrings.mc b/source/RezStrings.mc index 21efd0c..3243d42 100644 --- a/source/RezStrings.mc +++ b/source/RezStrings.mc @@ -26,37 +26,37 @@ using Toybox.WatchUi; class RezStrings { (:glance) - static var strAppName as Lang.String or Null; - static var strMenuItemTap as Lang.String or Null; - static var strMenuItemMenu as Lang.String or Null; - static var strConfirm as Lang.String or Null; + private static var strAppName as Lang.String or Null; + private static var strMenuItemTap as Lang.String or Null; + private static var strMenuItemMenu as Lang.String or Null; + private static var strConfirm as Lang.String or Null; (:glance) - static var strNoPhone as Lang.String or Null; - static var strNoInternet as Lang.String or Null; - static var strNoResponse as Lang.String or Null; + private static var strNoPhone as Lang.String or Null; + private static var strNoInternet as Lang.String or Null; + private static var strNoResponse as Lang.String or Null; (:glance) - static var strNoApiKey as Lang.String or Null; + private static var strNoApiKey as Lang.String or Null; (:glance) - static var strNoApiUrl as Lang.String or Null; + private static var strNoApiUrl as Lang.String or Null; (:glance) - static var strNoConfigUrl as Lang.String or Null; - static var strApiFlood as Lang.String or Null; - static var strApiUrlNotFound as Lang.String or Null; - static var strConfigUrlNotFound as Lang.String or Null; - static var strNoJson as Lang.String or Null; - static var strUnhandledHttpErr as Lang.String or Null; - static var strTrailingSlashErr as Lang.String or Null; + private static var strNoConfigUrl as Lang.String or Null; + private static var strApiFlood as Lang.String or Null; + private static var strApiUrlNotFound as Lang.String or Null; + private static var strConfigUrlNotFound as Lang.String or Null; + private static var strNoJson as Lang.String or Null; + private static var strUnhandledHttpErr as Lang.String or Null; + private static var strTrailingSlashErr as Lang.String or Null; (:glance) - static var strAvailable as Lang.String or Null; + private static var strAvailable as Lang.String or Null; (:glance) - static var strChecking as Lang.String or Null; + private static var strChecking as Lang.String or Null; (:glance) - static var strUnavailable as Lang.String or Null; + private static var strUnavailable as Lang.String or Null; (:glance) - static var strUnconfigured as Lang.String or Null; + private static var strUnconfigured as Lang.String or Null; (:glance) - static var strGlanceMenu as Lang.String or Null; - static var strLabelToggle as Lang.Dictionary or Null; + private static var strGlanceMenu as Lang.String or Null; + private static var strLabelToggle as Lang.Dictionary or Null; // Can't initialise a constant directly, have to be initialised via a function // for 'WatchUi.loadResource' to be available. @@ -103,4 +103,93 @@ class RezStrings { :disabled => WatchUi.loadResource($.Rez.Strings.MenuItemOff) as Lang.String }; } + + static function getAppName() as Lang.String { + return strAppName; + } + + static function getMenuItemTap() as Lang.String { + return strMenuItemTap; + } + + static function getMenuItemMenu() as Lang.String { + return strMenuItemMenu; + } + + static function getConfirm() as Lang.String { + return strConfirm; + } + + static function getNoPhone() as Lang.String { + return strNoPhone; + } + + static function getNoInternet() as Lang.String { + return strNoInternet; + } + + static function getNoResponse() as Lang.String { + return strNoResponse; + } + + static function getNoApiKey() as Lang.String { + return strNoApiKey; + } + + static function getNoApiUrl() as Lang.String { + return strNoApiUrl; + } + + static function getNoConfigUrl() as Lang.String { + return strNoConfigUrl; + } + + static function getApiFlood() as Lang.String { + return strApiFlood; + } + + static function getApiUrlNotFound() as Lang.String { + return strApiUrlNotFound; + } + + static function getConfigUrlNotFound() as Lang.String { + return strConfigUrlNotFound; + } + + static function getNoJson() as Lang.String { + return strNoJson; + } + + static function getUnhandledHttpErr() as Lang.String { + return strUnhandledHttpErr; + } + + static function getTrailingSlashErr() as Lang.String { + return strTrailingSlashErr; + } + + static function getAvailable() as Lang.String { + return strAvailable; + } + + static function getChecking() as Lang.String { + return strChecking; + } + + static function getUnavailable() as Lang.String { + return strUnavailable; + } + + static function getUnconfigured() as Lang.String { + return strUnconfigured; + } + + static function getGlanceMenu() as Lang.String { + return strGlanceMenu; + } + + static function getLabelToggle() as Lang.Dictionary { + return strLabelToggle; + } + } diff --git a/source/RootView.mc b/source/RootView.mc index 96509f5..860a785 100644 --- a/source/RootView.mc +++ b/source/RootView.mc @@ -54,7 +54,7 @@ class RootView extends ScalableView { var w = dc.getWidth(); mTitle = new WatchUi.Text({ - :text => RezStrings.strAppName, + :text => RezStrings.getAppName(), :color => Graphics.COLOR_WHITE, :font => Graphics.FONT_TINY, :justification => Graphics.TEXT_JUSTIFY_CENTER | Graphics.TEXT_JUSTIFY_VCENTER, @@ -71,7 +71,7 @@ class RootView extends ScalableView { :locY => pixelsForScreen(50.0) }); mApiStatus = new WatchUi.Text({ - :text => RezStrings.strChecking, + :text => RezStrings.getChecking(), :color => Graphics.COLOR_WHITE, :font => Graphics.FONT_XTINY, :justification => Graphics.TEXT_JUSTIFY_LEFT | Graphics.TEXT_JUSTIFY_VCENTER, @@ -79,7 +79,7 @@ class RootView extends ScalableView { :locY => pixelsForScreen(50.0) }); mMenuText = new WatchUi.Text({ - :text => RezStrings.strGlanceMenu + ":", + :text => RezStrings.getGlanceMenu() + ":", :color => Graphics.COLOR_WHITE, :font => Graphics.FONT_XTINY, :justification => Graphics.TEXT_JUSTIFY_RIGHT | Graphics.TEXT_JUSTIFY_VCENTER, @@ -87,7 +87,7 @@ class RootView extends ScalableView { :locY => pixelsForScreen(70.0) }); mMenuStatus = new WatchUi.Text({ - :text => RezStrings.strChecking, + :text => RezStrings.getChecking(), :color => Graphics.COLOR_WHITE, :font => Graphics.FONT_XTINY, :justification => Graphics.TEXT_JUSTIFY_LEFT | Graphics.TEXT_JUSTIFY_VCENTER,