mirror of
https://github.com/house-of-abbey/GarminHomeAssistant.git
synced 2025-06-17 11:58:30 +00:00
Removed RezStrings.mc
And in-lined the resource strings fetching.
This commit is contained in:
@ -28,7 +28,7 @@ using Toybox.Application.Properties;
|
|||||||
class HomeAssistantConfirmation extends WatchUi.Confirmation {
|
class HomeAssistantConfirmation extends WatchUi.Confirmation {
|
||||||
|
|
||||||
function initialize() {
|
function initialize() {
|
||||||
WatchUi.Confirmation.initialize(RezStrings.getConfirm());
|
WatchUi.Confirmation.initialize(WatchUi.loadResource($.Rez.Strings.Confirm));
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -44,10 +44,10 @@ class HomeAssistantGlanceView extends WatchUi.GlanceView {
|
|||||||
|
|
||||||
function onLayout(dc as Graphics.Dc) as Void {
|
function onLayout(dc as Graphics.Dc) as Void {
|
||||||
var h = dc.getHeight();
|
var h = dc.getHeight();
|
||||||
var tw = dc.getTextWidthInPixels(RezStrings.getGlanceMenu(), Graphics.FONT_XTINY);
|
var tw = dc.getTextWidthInPixels(WatchUi.loadResource($.Rez.Strings.GlanceMenu), Graphics.FONT_XTINY);
|
||||||
|
|
||||||
mTitle = new WatchUi.Text({
|
mTitle = new WatchUi.Text({
|
||||||
:text => RezStrings.getAppName(),
|
:text => WatchUi.loadResource($.Rez.Strings.AppName),
|
||||||
:color => Graphics.COLOR_WHITE,
|
:color => Graphics.COLOR_WHITE,
|
||||||
:font => Graphics.FONT_TINY,
|
:font => Graphics.FONT_TINY,
|
||||||
:justification => Graphics.TEXT_JUSTIFY_LEFT | Graphics.TEXT_JUSTIFY_VCENTER,
|
:justification => Graphics.TEXT_JUSTIFY_LEFT | Graphics.TEXT_JUSTIFY_VCENTER,
|
||||||
@ -64,7 +64,7 @@ class HomeAssistantGlanceView extends WatchUi.GlanceView {
|
|||||||
:locY => 3 * h / 6
|
:locY => 3 * h / 6
|
||||||
});
|
});
|
||||||
mApiStatus = new WatchUi.Text({
|
mApiStatus = new WatchUi.Text({
|
||||||
:text => RezStrings.getChecking(),
|
:text => WatchUi.loadResource($.Rez.Strings.Checking),
|
||||||
:color => Graphics.COLOR_WHITE,
|
:color => Graphics.COLOR_WHITE,
|
||||||
:font => Graphics.FONT_XTINY,
|
:font => Graphics.FONT_XTINY,
|
||||||
:justification => Graphics.TEXT_JUSTIFY_LEFT | Graphics.TEXT_JUSTIFY_VCENTER,
|
:justification => Graphics.TEXT_JUSTIFY_LEFT | Graphics.TEXT_JUSTIFY_VCENTER,
|
||||||
@ -72,7 +72,7 @@ class HomeAssistantGlanceView extends WatchUi.GlanceView {
|
|||||||
:locY => 3 * h / 6
|
:locY => 3 * h / 6
|
||||||
});
|
});
|
||||||
mMenuText = new WatchUi.Text({
|
mMenuText = new WatchUi.Text({
|
||||||
:text => RezStrings.getGlanceMenu() + ":",
|
:text => WatchUi.loadResource($.Rez.Strings.GlanceMenu) + ":",
|
||||||
:color => Graphics.COLOR_WHITE,
|
:color => Graphics.COLOR_WHITE,
|
||||||
:font => Graphics.FONT_XTINY,
|
:font => Graphics.FONT_XTINY,
|
||||||
:justification => Graphics.TEXT_JUSTIFY_LEFT | Graphics.TEXT_JUSTIFY_VCENTER,
|
:justification => Graphics.TEXT_JUSTIFY_LEFT | Graphics.TEXT_JUSTIFY_VCENTER,
|
||||||
@ -80,7 +80,7 @@ class HomeAssistantGlanceView extends WatchUi.GlanceView {
|
|||||||
:locY => 5 * h / 6
|
:locY => 5 * h / 6
|
||||||
});
|
});
|
||||||
mMenuStatus = new WatchUi.Text({
|
mMenuStatus = new WatchUi.Text({
|
||||||
:text => RezStrings.getChecking(),
|
:text => WatchUi.loadResource($.Rez.Strings.Checking),
|
||||||
:color => Graphics.COLOR_WHITE,
|
:color => Graphics.COLOR_WHITE,
|
||||||
:font => Graphics.FONT_XTINY,
|
:font => Graphics.FONT_XTINY,
|
||||||
:justification => Graphics.TEXT_JUSTIFY_LEFT | Graphics.TEXT_JUSTIFY_VCENTER,
|
:justification => Graphics.TEXT_JUSTIFY_LEFT | Graphics.TEXT_JUSTIFY_VCENTER,
|
||||||
|
@ -51,17 +51,17 @@ class HomeAssistantService {
|
|||||||
case Communications.BLE_HOST_TIMEOUT:
|
case Communications.BLE_HOST_TIMEOUT:
|
||||||
case Communications.BLE_CONNECTION_UNAVAILABLE:
|
case Communications.BLE_CONNECTION_UNAVAILABLE:
|
||||||
// System.println("HomeAssistantService onReturnCall() Response Code: BLE_HOST_TIMEOUT or BLE_CONNECTION_UNAVAILABLE, Bluetooth connection severed.");
|
// System.println("HomeAssistantService onReturnCall() Response Code: BLE_HOST_TIMEOUT or BLE_CONNECTION_UNAVAILABLE, Bluetooth connection severed.");
|
||||||
ErrorView.show(RezStrings.getNoPhone() + ".");
|
ErrorView.show(WatchUi.loadResource($.Rez.Strings.NoPhone) + ".");
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case Communications.BLE_QUEUE_FULL:
|
case Communications.BLE_QUEUE_FULL:
|
||||||
// System.println("HomeAssistantService onReturnCall() Response Code: BLE_QUEUE_FULL, API calls too rapid.");
|
// System.println("HomeAssistantService onReturnCall() Response Code: BLE_QUEUE_FULL, API calls too rapid.");
|
||||||
ErrorView.show(RezStrings.getApiFlood());
|
ErrorView.show(WatchUi.loadResource($.Rez.Strings.ApiFlood));
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case Communications.NETWORK_REQUEST_TIMED_OUT:
|
case Communications.NETWORK_REQUEST_TIMED_OUT:
|
||||||
// System.println("HomeAssistantService onReturnCall() Response Code: NETWORK_REQUEST_TIMED_OUT, check Internet connection.");
|
// System.println("HomeAssistantService onReturnCall() Response Code: NETWORK_REQUEST_TIMED_OUT, check Internet connection.");
|
||||||
ErrorView.show(RezStrings.getNoResponse());
|
ErrorView.show(WatchUi.loadResource($.Rez.Strings.NoResponse));
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case Communications.NETWORK_RESPONSE_OUT_OF_MEMORY:
|
case Communications.NETWORK_RESPONSE_OUT_OF_MEMORY:
|
||||||
@ -70,18 +70,18 @@ class HomeAssistantService {
|
|||||||
break;
|
break;
|
||||||
case Communications.INVALID_HTTP_BODY_IN_NETWORK_RESPONSE:
|
case Communications.INVALID_HTTP_BODY_IN_NETWORK_RESPONSE:
|
||||||
// System.println("HomeAssistantService onReturnCall() Response Code: INVALID_HTTP_BODY_IN_NETWORK_RESPONSE, check JSON is returned.");
|
// System.println("HomeAssistantService onReturnCall() Response Code: INVALID_HTTP_BODY_IN_NETWORK_RESPONSE, check JSON is returned.");
|
||||||
ErrorView.show(RezStrings.getNoJson());
|
ErrorView.show(WatchUi.loadResource($.Rez.Strings.NoJson));
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 404:
|
case 404:
|
||||||
// System.println("HomeAssistantService onReturnCall() Response Code: 404, page not found. Check API URL setting.");
|
// System.println("HomeAssistantService onReturnCall() Response Code: 404, page not found. Check API URL setting.");
|
||||||
ErrorView.show(RezStrings.getApiUrlNotFound());
|
ErrorView.show(WatchUi.loadResource($.Rez.Strings.ApiUrlNotFound));
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 200:
|
case 200:
|
||||||
// System.println("HomeAssistantService onReturnCall(): Service executed.");
|
// System.println("HomeAssistantService onReturnCall(): Service executed.");
|
||||||
var d = data as Lang.Array;
|
var d = data as Lang.Array;
|
||||||
var toast = RezStrings.getExecuted();
|
var toast = WatchUi.loadResource($.Rez.Strings.Executed) as Lang.String;
|
||||||
for(var i = 0; i < d.size(); i++) {
|
for(var i = 0; i < d.size(); i++) {
|
||||||
if ((d[i].get("entity_id") as Lang.String).equals(entity_id)) {
|
if ((d[i].get("entity_id") as Lang.String).equals(entity_id)) {
|
||||||
toast = (d[i].get("attributes") as Lang.Dictionary).get("friendly_name") as Lang.String;
|
toast = (d[i].get("attributes") as Lang.Dictionary).get("friendly_name") as Lang.String;
|
||||||
@ -102,7 +102,7 @@ class HomeAssistantService {
|
|||||||
|
|
||||||
default:
|
default:
|
||||||
// System.println("HomeAssistantService onReturnCall(): Unhandled HTTP response code = " + responseCode);
|
// System.println("HomeAssistantService onReturnCall(): Unhandled HTTP response code = " + responseCode);
|
||||||
ErrorView.show(RezStrings.getUnhandledHttpErr() + responseCode);
|
ErrorView.show(WatchUi.loadResource($.Rez.Strings.UnhandledHttpErr) + responseCode);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -112,10 +112,10 @@ class HomeAssistantService {
|
|||||||
) as Void {
|
) as Void {
|
||||||
if (! System.getDeviceSettings().phoneConnected) {
|
if (! System.getDeviceSettings().phoneConnected) {
|
||||||
// System.println("HomeAssistantService call(): No Phone connection, skipping API call.");
|
// System.println("HomeAssistantService call(): No Phone connection, skipping API call.");
|
||||||
ErrorView.show(RezStrings.getNoPhone() + ".");
|
ErrorView.show(WatchUi.loadResource($.Rez.Strings.NoPhone) + ".");
|
||||||
} else if (! System.getDeviceSettings().connectionAvailable) {
|
} else if (! System.getDeviceSettings().connectionAvailable) {
|
||||||
// System.println("HomeAssistantService call(): No Internet connection, skipping API call.");
|
// System.println("HomeAssistantService call(): No Internet connection, skipping API call.");
|
||||||
ErrorView.show(RezStrings.getNoInternet() + ".");
|
ErrorView.show(WatchUi.loadResource($.Rez.Strings.NoInternet) + ".");
|
||||||
} else {
|
} else {
|
||||||
// Can't use null for substring() parameters due to API version level.
|
// 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());
|
var url = Settings.getApiUrl() + "/services/" + service.substring(0, service.find(".")) + "/" + service.substring(service.find(".")+1, service.length());
|
||||||
|
@ -87,27 +87,27 @@ class HomeAssistantTemplateMenuItem extends WatchUi.IconMenuItem {
|
|||||||
// System.println("HomeAssistantTemplateMenuItem onReturnGetState() Response Code: " + responseCode);
|
// System.println("HomeAssistantTemplateMenuItem onReturnGetState() Response Code: " + responseCode);
|
||||||
// System.println("HomeAssistantTemplateMenuItem onReturnGetState() Response Data: " + data);
|
// System.println("HomeAssistantTemplateMenuItem onReturnGetState() Response Data: " + data);
|
||||||
|
|
||||||
var status = RezStrings.getUnavailable();
|
var status = WatchUi.loadResource($.Rez.Strings.Unavailable) as Lang.String;
|
||||||
switch (responseCode) {
|
switch (responseCode) {
|
||||||
case Communications.BLE_HOST_TIMEOUT:
|
case Communications.BLE_HOST_TIMEOUT:
|
||||||
case Communications.BLE_CONNECTION_UNAVAILABLE:
|
case Communications.BLE_CONNECTION_UNAVAILABLE:
|
||||||
// System.println("HomeAssistantTemplateMenuItem onReturnGetState() Response Code: BLE_HOST_TIMEOUT or BLE_CONNECTION_UNAVAILABLE, Bluetooth connection severed.");
|
// System.println("HomeAssistantTemplateMenuItem onReturnGetState() Response Code: BLE_HOST_TIMEOUT or BLE_CONNECTION_UNAVAILABLE, Bluetooth connection severed.");
|
||||||
ErrorView.show(RezStrings.getNoPhone() + ".");
|
ErrorView.show(WatchUi.loadResource($.Rez.Strings.NoPhone) + ".");
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case Communications.BLE_QUEUE_FULL:
|
case Communications.BLE_QUEUE_FULL:
|
||||||
// System.println("HomeAssistantTemplateMenuItem onReturnGetState() Response Code: BLE_QUEUE_FULL, API calls too rapid.");
|
// System.println("HomeAssistantTemplateMenuItem onReturnGetState() Response Code: BLE_QUEUE_FULL, API calls too rapid.");
|
||||||
ErrorView.show(RezStrings.getApiFlood());
|
ErrorView.show(WatchUi.loadResource($.Rez.Strings.ApiFlood));
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case Communications.NETWORK_REQUEST_TIMED_OUT:
|
case Communications.NETWORK_REQUEST_TIMED_OUT:
|
||||||
// System.println("HomeAssistantTemplateMenuItem onReturnGetState() Response Code: NETWORK_REQUEST_TIMED_OUT, check Internet connection.");
|
// System.println("HomeAssistantTemplateMenuItem onReturnGetState() Response Code: NETWORK_REQUEST_TIMED_OUT, check Internet connection.");
|
||||||
ErrorView.show(RezStrings.getNoResponse());
|
ErrorView.show(WatchUi.loadResource($.Rez.Strings.NoResponse));
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case Communications.INVALID_HTTP_BODY_IN_NETWORK_RESPONSE:
|
case Communications.INVALID_HTTP_BODY_IN_NETWORK_RESPONSE:
|
||||||
// System.println("HomeAssistantTemplateMenuItem onReturnGetState() Response Code: INVALID_HTTP_BODY_IN_NETWORK_RESPONSE, check JSON is returned.");
|
// System.println("HomeAssistantTemplateMenuItem onReturnGetState() Response Code: INVALID_HTTP_BODY_IN_NETWORK_RESPONSE, check JSON is returned.");
|
||||||
ErrorView.show(RezStrings.getNoJson());
|
ErrorView.show(WatchUi.loadResource($.Rez.Strings.NoJson));
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case Communications.NETWORK_RESPONSE_OUT_OF_MEMORY:
|
case Communications.NETWORK_RESPONSE_OUT_OF_MEMORY:
|
||||||
@ -121,16 +121,16 @@ class HomeAssistantTemplateMenuItem extends WatchUi.IconMenuItem {
|
|||||||
|
|
||||||
case 404:
|
case 404:
|
||||||
// System.println("HomeAssistantTemplateMenuItem onReturnGetState() Response Code: 404, page not found. Check API URL setting.");
|
// System.println("HomeAssistantTemplateMenuItem onReturnGetState() Response Code: 404, page not found. Check API URL setting.");
|
||||||
ErrorView.show(RezStrings.getApiUrlNotFound());
|
ErrorView.show(WatchUi.loadResource($.Rez.Strings.ApiUrlNotFound));
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 400:
|
case 400:
|
||||||
// System.println("HomeAssistantTemplateMenuItem onReturnGetState() Response Code: 400, bad request. Template error.");
|
// System.println("HomeAssistantTemplateMenuItem onReturnGetState() Response Code: 400, bad request. Template error.");
|
||||||
ErrorView.show(RezStrings.getTemplateError());
|
ErrorView.show(WatchUi.loadResource($.Rez.Strings.TemplateError));
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 200:
|
case 200:
|
||||||
status = RezStrings.getAvailable();
|
status = WatchUi.loadResource($.Rez.Strings.Available) as Lang.String;
|
||||||
setSubLabel(data);
|
setSubLabel(data);
|
||||||
requestUpdate();
|
requestUpdate();
|
||||||
// Now this feels very "closely coupled" to the application, but it is the most reliable method instead of using a timer.
|
// Now this feels very "closely coupled" to the application, but it is the most reliable method instead of using a timer.
|
||||||
@ -139,7 +139,7 @@ class HomeAssistantTemplateMenuItem extends WatchUi.IconMenuItem {
|
|||||||
|
|
||||||
default:
|
default:
|
||||||
// System.println("HomeAssistantTemplateMenuItem onReturnGetState(): Unhandled HTTP response code = " + responseCode);
|
// System.println("HomeAssistantTemplateMenuItem onReturnGetState(): Unhandled HTTP response code = " + responseCode);
|
||||||
ErrorView.show(RezStrings.getUnhandledHttpErr() + responseCode);
|
ErrorView.show(WatchUi.loadResource($.Rez.Strings.UnhandledHttpErr) + responseCode);
|
||||||
}
|
}
|
||||||
getApp().setApiStatus(status);
|
getApp().setApiStatus(status);
|
||||||
}
|
}
|
||||||
@ -147,12 +147,12 @@ class HomeAssistantTemplateMenuItem extends WatchUi.IconMenuItem {
|
|||||||
function getState() as Void {
|
function getState() as Void {
|
||||||
if (! System.getDeviceSettings().phoneConnected) {
|
if (! System.getDeviceSettings().phoneConnected) {
|
||||||
// System.println("HomeAssistantTemplateMenuItem getState(): No Phone connection, skipping API call.");
|
// System.println("HomeAssistantTemplateMenuItem getState(): No Phone connection, skipping API call.");
|
||||||
ErrorView.show(RezStrings.getNoPhone() + ".");
|
ErrorView.show(WatchUi.loadResource($.Rez.Strings.NoPhone) + ".");
|
||||||
getApp().setApiStatus(RezStrings.getUnavailable());
|
getApp().setApiStatus(WatchUi.loadResource($.Rez.Strings.Unavailable));
|
||||||
} else if (! System.getDeviceSettings().connectionAvailable) {
|
} else if (! System.getDeviceSettings().connectionAvailable) {
|
||||||
// System.println("HomeAssistantTemplateMenuItem getState(): No Internet connection, skipping API call.");
|
// System.println("HomeAssistantTemplateMenuItem getState(): No Internet connection, skipping API call.");
|
||||||
ErrorView.show(RezStrings.getNoInternet() + ".");
|
ErrorView.show(WatchUi.loadResource($.Rez.Strings.NoInternet) + ".");
|
||||||
getApp().setApiStatus(RezStrings.getUnavailable());
|
getApp().setApiStatus(WatchUi.loadResource($.Rez.Strings.Unavailable));
|
||||||
} else {
|
} else {
|
||||||
var url = Settings.getApiUrl() + "/template";
|
var url = Settings.getApiUrl() + "/template";
|
||||||
// System.println("HomeAssistantTemplateMenuItem getState() URL=" + url + ", Template='" + mTemplate + "'");
|
// System.println("HomeAssistantTemplateMenuItem getState() URL=" + url + ", Template='" + mTemplate + "'");
|
||||||
|
@ -62,27 +62,27 @@ class HomeAssistantToggleMenuItem extends WatchUi.ToggleMenuItem {
|
|||||||
// System.println("HomeAssistantToggleMenuItem onReturnGetState() Response Code: " + responseCode);
|
// System.println("HomeAssistantToggleMenuItem onReturnGetState() Response Code: " + responseCode);
|
||||||
// System.println("HomeAssistantToggleMenuItem onReturnGetState() Response Data: " + data);
|
// System.println("HomeAssistantToggleMenuItem onReturnGetState() Response Data: " + data);
|
||||||
|
|
||||||
var status = RezStrings.getUnavailable();
|
var status = WatchUi.loadResource($.Rez.Strings.Unavailable) as Lang.String;
|
||||||
switch (responseCode) {
|
switch (responseCode) {
|
||||||
case Communications.BLE_HOST_TIMEOUT:
|
case Communications.BLE_HOST_TIMEOUT:
|
||||||
case Communications.BLE_CONNECTION_UNAVAILABLE:
|
case Communications.BLE_CONNECTION_UNAVAILABLE:
|
||||||
// System.println("HomeAssistantToggleMenuItem onReturnGetState() Response Code: BLE_HOST_TIMEOUT or BLE_CONNECTION_UNAVAILABLE, Bluetooth connection severed.");
|
// System.println("HomeAssistantToggleMenuItem onReturnGetState() Response Code: BLE_HOST_TIMEOUT or BLE_CONNECTION_UNAVAILABLE, Bluetooth connection severed.");
|
||||||
ErrorView.show(RezStrings.getNoPhone() + ".");
|
ErrorView.show(WatchUi.loadResource($.Rez.Strings.NoPhone) + ".");
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case Communications.BLE_QUEUE_FULL:
|
case Communications.BLE_QUEUE_FULL:
|
||||||
// System.println("HomeAssistantToggleMenuItem onReturnGetState() Response Code: BLE_QUEUE_FULL, API calls too rapid.");
|
// System.println("HomeAssistantToggleMenuItem onReturnGetState() Response Code: BLE_QUEUE_FULL, API calls too rapid.");
|
||||||
ErrorView.show(RezStrings.getApiFlood());
|
ErrorView.show(WatchUi.loadResource($.Rez.Strings.ApiFlood));
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case Communications.NETWORK_REQUEST_TIMED_OUT:
|
case Communications.NETWORK_REQUEST_TIMED_OUT:
|
||||||
// System.println("HomeAssistantToggleMenuItem onReturnGetState() Response Code: NETWORK_REQUEST_TIMED_OUT, check Internet connection.");
|
// System.println("HomeAssistantToggleMenuItem onReturnGetState() Response Code: NETWORK_REQUEST_TIMED_OUT, check Internet connection.");
|
||||||
ErrorView.show(RezStrings.getNoResponse());
|
ErrorView.show(WatchUi.loadResource($.Rez.Strings.NoResponse));
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case Communications.INVALID_HTTP_BODY_IN_NETWORK_RESPONSE:
|
case Communications.INVALID_HTTP_BODY_IN_NETWORK_RESPONSE:
|
||||||
// System.println("HomeAssistantToggleMenuItem onReturnGetState() Response Code: INVALID_HTTP_BODY_IN_NETWORK_RESPONSE, check JSON is returned.");
|
// System.println("HomeAssistantToggleMenuItem onReturnGetState() Response Code: INVALID_HTTP_BODY_IN_NETWORK_RESPONSE, check JSON is returned.");
|
||||||
ErrorView.show(RezStrings.getNoJson());
|
ErrorView.show(WatchUi.loadResource($.Rez.Strings.NoJson));
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case Communications.NETWORK_RESPONSE_OUT_OF_MEMORY:
|
case Communications.NETWORK_RESPONSE_OUT_OF_MEMORY:
|
||||||
@ -105,7 +105,7 @@ class HomeAssistantToggleMenuItem extends WatchUi.ToggleMenuItem {
|
|||||||
ErrorView.show("HTTP 404, " + mData.get("entity_id") + ". " + data.get("message"));
|
ErrorView.show("HTTP 404, " + mData.get("entity_id") + ". " + data.get("message"));
|
||||||
} else {
|
} else {
|
||||||
// System.println("HomeAssistantToggleMenuItem onReturnGetState() Response Code: 404, page not found. Check API URL setting.");
|
// System.println("HomeAssistantToggleMenuItem onReturnGetState() Response Code: 404, page not found. Check API URL setting.");
|
||||||
ErrorView.show(RezStrings.getApiUrlNotFound());
|
ErrorView.show(WatchUi.loadResource($.Rez.Strings.ApiUrlNotFound));
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@ -116,7 +116,7 @@ class HomeAssistantToggleMenuItem extends WatchUi.ToggleMenuItem {
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case 200:
|
case 200:
|
||||||
status = RezStrings.getAvailable();
|
status = WatchUi.loadResource($.Rez.Strings.Available) as Lang.String;
|
||||||
var state = data.get("state") as Lang.String;
|
var state = data.get("state") as Lang.String;
|
||||||
// System.println((data.get("attributes") as Lang.Dictionary).get("friendly_name") + " State=" + state);
|
// System.println((data.get("attributes") as Lang.Dictionary).get("friendly_name") + " State=" + state);
|
||||||
if (getLabel().equals("...")) {
|
if (getLabel().equals("...")) {
|
||||||
@ -129,7 +129,7 @@ class HomeAssistantToggleMenuItem extends WatchUi.ToggleMenuItem {
|
|||||||
|
|
||||||
default:
|
default:
|
||||||
// System.println("HomeAssistantToggleMenuItem onReturnGetState(): Unhandled HTTP response code = " + responseCode);
|
// System.println("HomeAssistantToggleMenuItem onReturnGetState(): Unhandled HTTP response code = " + responseCode);
|
||||||
ErrorView.show(RezStrings.getUnhandledHttpErr() + responseCode);
|
ErrorView.show(WatchUi.loadResource($.Rez.Strings.UnhandledHttpErr) + responseCode);
|
||||||
}
|
}
|
||||||
getApp().setApiStatus(status);
|
getApp().setApiStatus(status);
|
||||||
}
|
}
|
||||||
@ -137,12 +137,12 @@ class HomeAssistantToggleMenuItem extends WatchUi.ToggleMenuItem {
|
|||||||
function getState() as Void {
|
function getState() as Void {
|
||||||
if (! System.getDeviceSettings().phoneConnected) {
|
if (! System.getDeviceSettings().phoneConnected) {
|
||||||
// System.println("HomeAssistantToggleMenuItem getState(): No Phone connection, skipping API call.");
|
// System.println("HomeAssistantToggleMenuItem getState(): No Phone connection, skipping API call.");
|
||||||
ErrorView.show(RezStrings.getNoPhone() + ".");
|
ErrorView.show(WatchUi.loadResource($.Rez.Strings.NoPhone) + ".");
|
||||||
getApp().setApiStatus(RezStrings.getUnavailable());
|
getApp().setApiStatus(WatchUi.loadResource($.Rez.Strings.Unavailable));
|
||||||
} else if (! System.getDeviceSettings().connectionAvailable) {
|
} else if (! System.getDeviceSettings().connectionAvailable) {
|
||||||
// System.println("HomeAssistantToggleMenuItem getState(): No Internet connection, skipping API call.");
|
// System.println("HomeAssistantToggleMenuItem getState(): No Internet connection, skipping API call.");
|
||||||
ErrorView.show(RezStrings.getNoInternet() + ".");
|
ErrorView.show(WatchUi.loadResource($.Rez.Strings.NoInternet) + ".");
|
||||||
getApp().setApiStatus(RezStrings.getUnavailable());
|
getApp().setApiStatus(WatchUi.loadResource($.Rez.Strings.Unavailable));
|
||||||
} else {
|
} else {
|
||||||
var url = Settings.getApiUrl() + "/states/" + mData.get("entity_id");
|
var url = Settings.getApiUrl() + "/states/" + mData.get("entity_id");
|
||||||
// System.println("HomeAssistantToggleMenuItem getState() URL=" + url);
|
// System.println("HomeAssistantToggleMenuItem getState() URL=" + url);
|
||||||
@ -167,32 +167,32 @@ class HomeAssistantToggleMenuItem extends WatchUi.ToggleMenuItem {
|
|||||||
// System.println("HomeAssistantToggleMenuItem onReturnSetState() Response Code: " + responseCode);
|
// System.println("HomeAssistantToggleMenuItem onReturnSetState() Response Code: " + responseCode);
|
||||||
// System.println("HomeAssistantToggleMenuItem onReturnSetState() Response Data: " + data);
|
// System.println("HomeAssistantToggleMenuItem onReturnSetState() Response Data: " + data);
|
||||||
|
|
||||||
var status = RezStrings.getUnavailable();
|
var status = WatchUi.loadResource($.Rez.Strings.Unavailable) as Lang.String;
|
||||||
switch (responseCode) {
|
switch (responseCode) {
|
||||||
case Communications.BLE_HOST_TIMEOUT:
|
case Communications.BLE_HOST_TIMEOUT:
|
||||||
case Communications.BLE_CONNECTION_UNAVAILABLE:
|
case Communications.BLE_CONNECTION_UNAVAILABLE:
|
||||||
// System.println("HomeAssistantToggleMenuItem onReturnSetState() Response Code: BLE_HOST_TIMEOUT or BLE_CONNECTION_UNAVAILABLE, Bluetooth connection severed.");
|
// System.println("HomeAssistantToggleMenuItem onReturnSetState() Response Code: BLE_HOST_TIMEOUT or BLE_CONNECTION_UNAVAILABLE, Bluetooth connection severed.");
|
||||||
ErrorView.show(RezStrings.getNoPhone() + ".");
|
ErrorView.show(WatchUi.loadResource($.Rez.Strings.NoPhone) + ".");
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case Communications.BLE_QUEUE_FULL:
|
case Communications.BLE_QUEUE_FULL:
|
||||||
// System.println("HomeAssistantToggleMenuItem onReturnSetState() Response Code: BLE_QUEUE_FULL, API calls too rapid.");
|
// System.println("HomeAssistantToggleMenuItem onReturnSetState() Response Code: BLE_QUEUE_FULL, API calls too rapid.");
|
||||||
ErrorView.show(RezStrings.getApiFlood());
|
ErrorView.show(WatchUi.loadResource($.Rez.Strings.ApiFlood));
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case Communications.NETWORK_REQUEST_TIMED_OUT:
|
case Communications.NETWORK_REQUEST_TIMED_OUT:
|
||||||
// System.println("HomeAssistantToggleMenuItem onReturnSetState() Response Code: NETWORK_REQUEST_TIMED_OUT, check Internet connection.");
|
// System.println("HomeAssistantToggleMenuItem onReturnSetState() Response Code: NETWORK_REQUEST_TIMED_OUT, check Internet connection.");
|
||||||
ErrorView.show(RezStrings.getNoResponse());
|
ErrorView.show(WatchUi.loadResource($.Rez.Strings.NoResponse));
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case Communications.INVALID_HTTP_BODY_IN_NETWORK_RESPONSE:
|
case Communications.INVALID_HTTP_BODY_IN_NETWORK_RESPONSE:
|
||||||
// System.println("HomeAssistantToggleMenuItem onReturnSetState() Response Code: INVALID_HTTP_BODY_IN_NETWORK_RESPONSE, check JSON is returned.");
|
// System.println("HomeAssistantToggleMenuItem onReturnSetState() Response Code: INVALID_HTTP_BODY_IN_NETWORK_RESPONSE, check JSON is returned.");
|
||||||
ErrorView.show(RezStrings.getNoJson());
|
ErrorView.show(WatchUi.loadResource($.Rez.Strings.NoJson));
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 404:
|
case 404:
|
||||||
// System.println("HomeAssistantToggleMenuItem onReturnSetState() Response Code: 404, page not found. Check API URL setting.");
|
// System.println("HomeAssistantToggleMenuItem onReturnSetState() Response Code: 404, page not found. Check API URL setting.");
|
||||||
ErrorView.show(RezStrings.getApiUrlNotFound());
|
ErrorView.show(WatchUi.loadResource($.Rez.Strings.ApiUrlNotFound));
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 200:
|
case 200:
|
||||||
@ -205,12 +205,12 @@ class HomeAssistantToggleMenuItem extends WatchUi.ToggleMenuItem {
|
|||||||
setUiToggle(state);
|
setUiToggle(state);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
status = RezStrings.getAvailable();
|
status = WatchUi.loadResource($.Rez.Strings.Available) as Lang.String;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
// System.println("HomeAssistantToggleMenuItem onReturnSetState(): Unhandled HTTP response code = " + responseCode);
|
// System.println("HomeAssistantToggleMenuItem onReturnSetState(): Unhandled HTTP response code = " + responseCode);
|
||||||
ErrorView.show(RezStrings.getUnhandledHttpErr() + responseCode);
|
ErrorView.show(WatchUi.loadResource($.Rez.Strings.UnhandledHttpErr) + responseCode);
|
||||||
}
|
}
|
||||||
getApp().setApiStatus(status);
|
getApp().setApiStatus(status);
|
||||||
}
|
}
|
||||||
@ -220,12 +220,12 @@ class HomeAssistantToggleMenuItem extends WatchUi.ToggleMenuItem {
|
|||||||
// System.println("HomeAssistantToggleMenuItem getState(): No Phone connection, skipping API call.");
|
// System.println("HomeAssistantToggleMenuItem getState(): No Phone connection, skipping API call.");
|
||||||
// Toggle the UI back
|
// Toggle the UI back
|
||||||
setEnabled(!isEnabled());
|
setEnabled(!isEnabled());
|
||||||
ErrorView.show(RezStrings.getNoPhone() + ".");
|
ErrorView.show(WatchUi.loadResource($.Rez.Strings.NoPhone) + ".");
|
||||||
} else if (! System.getDeviceSettings().connectionAvailable) {
|
} else if (! System.getDeviceSettings().connectionAvailable) {
|
||||||
// System.println("HomeAssistantToggleMenuItem getState(): No Internet connection, skipping API call.");
|
// System.println("HomeAssistantToggleMenuItem getState(): No Internet connection, skipping API call.");
|
||||||
// Toggle the UI back
|
// Toggle the UI back
|
||||||
setEnabled(!isEnabled());
|
setEnabled(!isEnabled());
|
||||||
ErrorView.show(RezStrings.getNoInternet() + ".");
|
ErrorView.show(WatchUi.loadResource($.Rez.Strings.NoInternet) + ".");
|
||||||
} else {
|
} else {
|
||||||
// Updated SDK and got a new error
|
// Updated SDK and got a new error
|
||||||
// ERROR: venu: Cannot find symbol ':substring' on type 'PolyType<Null or $.Toybox.Lang.Object>'.
|
// ERROR: venu: Cannot find symbol ':substring' on type 'PolyType<Null or $.Toybox.Lang.Object>'.
|
||||||
|
@ -1,199 +0,0 @@
|
|||||||
//-----------------------------------------------------------------------------------
|
|
||||||
//
|
|
||||||
// Distributed under MIT Licence
|
|
||||||
// See https://github.com/house-of-abbey/GarminHomeAssistant/blob/main/LICENSE.
|
|
||||||
//
|
|
||||||
//-----------------------------------------------------------------------------------
|
|
||||||
//
|
|
||||||
// GarminHomeAssistant is a Garmin IQ application written in Monkey C and routinely
|
|
||||||
// tested on a Venu 2 device. The source code is provided at:
|
|
||||||
// https://github.com/house-of-abbey/GarminHomeAssistant.
|
|
||||||
//
|
|
||||||
// P A Abbey & J D Abbey & Someone0nEarth, 31 October 2023
|
|
||||||
//
|
|
||||||
//
|
|
||||||
// Description:
|
|
||||||
//
|
|
||||||
// Load the strings centrally once rather than initialising locally within separate
|
|
||||||
// classes. This is to solve a problem with out of memory errors in some devices,
|
|
||||||
// e.g. Vivoactive 3.
|
|
||||||
//
|
|
||||||
//-----------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
using Toybox.Lang;
|
|
||||||
using Toybox.WatchUi;
|
|
||||||
|
|
||||||
class RezStrings {
|
|
||||||
|
|
||||||
(:glance)
|
|
||||||
private static var strAppName as Lang.String or Null;
|
|
||||||
private static var strConfirm as Lang.String or Null;
|
|
||||||
private static var strExecuted 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;
|
|
||||||
private static var strNoApiKey as Lang.String or Null;
|
|
||||||
private static var strNoApiUrl 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;
|
|
||||||
private static var strWebhookFailed as Lang.String or Null;
|
|
||||||
private static var strTemplateError as Lang.String or Null;
|
|
||||||
(:glance)
|
|
||||||
private static var strAvailable as Lang.String or Null;
|
|
||||||
(:glance)
|
|
||||||
private static var strChecking as Lang.String or Null;
|
|
||||||
(:glance)
|
|
||||||
private static var strUnavailable as Lang.String or Null;
|
|
||||||
(:glance)
|
|
||||||
private static var strUnconfigured as Lang.String or Null;
|
|
||||||
(:glance)
|
|
||||||
private static var strCached as Lang.String or Null;
|
|
||||||
(:glance)
|
|
||||||
private static var strGlanceMenu as Lang.String or Null;
|
|
||||||
private static var strMemory as Lang.String or Null;
|
|
||||||
|
|
||||||
// Can't initialise a constant directly, have to be initialised via a function
|
|
||||||
// for 'WatchUi.loadResource' to be available.
|
|
||||||
(:glance)
|
|
||||||
static function update_glance() {
|
|
||||||
strAppName = WatchUi.loadResource($.Rez.Strings.AppName);
|
|
||||||
strAvailable = WatchUi.loadResource($.Rez.Strings.Available);
|
|
||||||
strChecking = WatchUi.loadResource($.Rez.Strings.Checking);
|
|
||||||
strUnavailable = WatchUi.loadResource($.Rez.Strings.Unavailable);
|
|
||||||
strUnconfigured = WatchUi.loadResource($.Rez.Strings.Unconfigured);
|
|
||||||
strCached = WatchUi.loadResource($.Rez.Strings.Cached);
|
|
||||||
strGlanceMenu = WatchUi.loadResource($.Rez.Strings.GlanceMenu);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Can't initialise a constant directly, have to be initialised via a function
|
|
||||||
// for 'WatchUi.loadResource' to be available.
|
|
||||||
static function update() {
|
|
||||||
update_glance();
|
|
||||||
strConfirm = WatchUi.loadResource($.Rez.Strings.Confirm);
|
|
||||||
strExecuted = WatchUi.loadResource($.Rez.Strings.Executed);
|
|
||||||
strNoPhone = WatchUi.loadResource($.Rez.Strings.NoPhone);
|
|
||||||
strNoInternet = WatchUi.loadResource($.Rez.Strings.NoInternet);
|
|
||||||
strNoResponse = WatchUi.loadResource($.Rez.Strings.NoResponse);
|
|
||||||
strNoApiKey = WatchUi.loadResource($.Rez.Strings.NoAPIKey);
|
|
||||||
strNoApiUrl = WatchUi.loadResource($.Rez.Strings.NoApiUrl);
|
|
||||||
strNoConfigUrl = WatchUi.loadResource($.Rez.Strings.NoConfigUrl);
|
|
||||||
strApiFlood = WatchUi.loadResource($.Rez.Strings.ApiFlood);
|
|
||||||
strApiUrlNotFound = WatchUi.loadResource($.Rez.Strings.ApiUrlNotFound);
|
|
||||||
strConfigUrlNotFound = WatchUi.loadResource($.Rez.Strings.ConfigUrlNotFound);
|
|
||||||
strNoJson = WatchUi.loadResource($.Rez.Strings.NoJson);
|
|
||||||
strUnhandledHttpErr = WatchUi.loadResource($.Rez.Strings.UnhandledHttpErr);
|
|
||||||
strTrailingSlashErr = WatchUi.loadResource($.Rez.Strings.TrailingSlashErr);
|
|
||||||
strWebhookFailed = WatchUi.loadResource($.Rez.Strings.WebhookFailed);
|
|
||||||
strTemplateError = WatchUi.loadResource($.Rez.Strings.TemplateError);
|
|
||||||
strMemory = WatchUi.loadResource($.Rez.Strings.Memory);
|
|
||||||
}
|
|
||||||
|
|
||||||
(:glance)
|
|
||||||
static function getAppName() as Lang.String {
|
|
||||||
return strAppName;
|
|
||||||
}
|
|
||||||
|
|
||||||
static function getConfirm() as Lang.String {
|
|
||||||
return strConfirm;
|
|
||||||
}
|
|
||||||
|
|
||||||
static function getExecuted() as Lang.String {
|
|
||||||
return strExecuted;
|
|
||||||
}
|
|
||||||
|
|
||||||
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 getWebhookFailed() as Lang.String {
|
|
||||||
return strWebhookFailed;
|
|
||||||
}
|
|
||||||
|
|
||||||
static function getTemplateError() as Lang.String {
|
|
||||||
return strTemplateError;
|
|
||||||
}
|
|
||||||
|
|
||||||
(:glance)
|
|
||||||
static function getAvailable() as Lang.String {
|
|
||||||
return strAvailable;
|
|
||||||
}
|
|
||||||
|
|
||||||
(:glance)
|
|
||||||
static function getChecking() as Lang.String {
|
|
||||||
return strChecking;
|
|
||||||
}
|
|
||||||
|
|
||||||
(:glance)
|
|
||||||
static function getUnavailable() as Lang.String {
|
|
||||||
return strUnavailable;
|
|
||||||
}
|
|
||||||
|
|
||||||
(:glance)
|
|
||||||
static function getUnconfigured() as Lang.String {
|
|
||||||
return strUnconfigured;
|
|
||||||
}
|
|
||||||
|
|
||||||
(:glance)
|
|
||||||
static function getCached() as Lang.String {
|
|
||||||
return strCached;
|
|
||||||
}
|
|
||||||
|
|
||||||
(:glance)
|
|
||||||
static function getGlanceMenu() as Lang.String {
|
|
||||||
return strGlanceMenu;
|
|
||||||
}
|
|
||||||
|
|
||||||
static function getMemory() as Lang.String {
|
|
||||||
return strMemory;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
@ -61,7 +61,7 @@ class RootView extends ScalableView {
|
|||||||
var w = dc.getWidth();
|
var w = dc.getWidth();
|
||||||
|
|
||||||
mTitle = new WatchUi.Text({
|
mTitle = new WatchUi.Text({
|
||||||
:text => RezStrings.getAppName(),
|
:text => WatchUi.loadResource($.Rez.Strings.AppName),
|
||||||
:color => Graphics.COLOR_WHITE,
|
:color => Graphics.COLOR_WHITE,
|
||||||
:font => Graphics.FONT_TINY,
|
:font => Graphics.FONT_TINY,
|
||||||
:justification => Graphics.TEXT_JUSTIFY_CENTER | Graphics.TEXT_JUSTIFY_VCENTER,
|
:justification => Graphics.TEXT_JUSTIFY_CENTER | Graphics.TEXT_JUSTIFY_VCENTER,
|
||||||
@ -78,7 +78,7 @@ class RootView extends ScalableView {
|
|||||||
:locY => pixelsForScreen(50.0)
|
:locY => pixelsForScreen(50.0)
|
||||||
});
|
});
|
||||||
mApiStatus = new WatchUi.Text({
|
mApiStatus = new WatchUi.Text({
|
||||||
:text => RezStrings.getChecking(),
|
:text => WatchUi.loadResource($.Rez.Strings.Checking),
|
||||||
:color => Graphics.COLOR_WHITE,
|
:color => Graphics.COLOR_WHITE,
|
||||||
:font => Graphics.FONT_XTINY,
|
:font => Graphics.FONT_XTINY,
|
||||||
:justification => Graphics.TEXT_JUSTIFY_LEFT | Graphics.TEXT_JUSTIFY_VCENTER,
|
:justification => Graphics.TEXT_JUSTIFY_LEFT | Graphics.TEXT_JUSTIFY_VCENTER,
|
||||||
@ -86,7 +86,7 @@ class RootView extends ScalableView {
|
|||||||
:locY => pixelsForScreen(50.0)
|
:locY => pixelsForScreen(50.0)
|
||||||
});
|
});
|
||||||
mMenuText = new WatchUi.Text({
|
mMenuText = new WatchUi.Text({
|
||||||
:text => RezStrings.getGlanceMenu() + ":",
|
:text => WatchUi.loadResource($.Rez.Strings.GlanceMenu) + ":",
|
||||||
:color => Graphics.COLOR_WHITE,
|
:color => Graphics.COLOR_WHITE,
|
||||||
:font => Graphics.FONT_XTINY,
|
:font => Graphics.FONT_XTINY,
|
||||||
:justification => Graphics.TEXT_JUSTIFY_RIGHT | Graphics.TEXT_JUSTIFY_VCENTER,
|
:justification => Graphics.TEXT_JUSTIFY_RIGHT | Graphics.TEXT_JUSTIFY_VCENTER,
|
||||||
@ -94,7 +94,7 @@ class RootView extends ScalableView {
|
|||||||
:locY => pixelsForScreen(60.0)
|
:locY => pixelsForScreen(60.0)
|
||||||
});
|
});
|
||||||
mMenuStatus = new WatchUi.Text({
|
mMenuStatus = new WatchUi.Text({
|
||||||
:text => RezStrings.getChecking(),
|
:text => WatchUi.loadResource($.Rez.Strings.Checking),
|
||||||
:color => Graphics.COLOR_WHITE,
|
:color => Graphics.COLOR_WHITE,
|
||||||
:font => Graphics.FONT_XTINY,
|
:font => Graphics.FONT_XTINY,
|
||||||
:justification => Graphics.TEXT_JUSTIFY_LEFT | Graphics.TEXT_JUSTIFY_VCENTER,
|
:justification => Graphics.TEXT_JUSTIFY_LEFT | Graphics.TEXT_JUSTIFY_VCENTER,
|
||||||
@ -102,7 +102,7 @@ class RootView extends ScalableView {
|
|||||||
:locY => pixelsForScreen(60.0)
|
:locY => pixelsForScreen(60.0)
|
||||||
});
|
});
|
||||||
mMemText = new WatchUi.Text({
|
mMemText = new WatchUi.Text({
|
||||||
:text => RezStrings.getMemory() + ":",
|
:text => WatchUi.loadResource($.Rez.Strings.Memory) + ":",
|
||||||
:color => Graphics.COLOR_WHITE,
|
:color => Graphics.COLOR_WHITE,
|
||||||
:font => Graphics.FONT_XTINY,
|
:font => Graphics.FONT_XTINY,
|
||||||
:justification => Graphics.TEXT_JUSTIFY_RIGHT | Graphics.TEXT_JUSTIFY_VCENTER,
|
:justification => Graphics.TEXT_JUSTIFY_RIGHT | Graphics.TEXT_JUSTIFY_VCENTER,
|
||||||
@ -110,7 +110,7 @@ class RootView extends ScalableView {
|
|||||||
:locY => pixelsForScreen(70.0)
|
:locY => pixelsForScreen(70.0)
|
||||||
});
|
});
|
||||||
mMemStatus = new WatchUi.Text({
|
mMemStatus = new WatchUi.Text({
|
||||||
:text => RezStrings.getChecking(),
|
:text => WatchUi.loadResource($.Rez.Strings.Checking),
|
||||||
:color => Graphics.COLOR_WHITE,
|
:color => Graphics.COLOR_WHITE,
|
||||||
:font => Graphics.FONT_XTINY,
|
:font => Graphics.FONT_XTINY,
|
||||||
:justification => Graphics.TEXT_JUSTIFY_LEFT | Graphics.TEXT_JUSTIFY_VCENTER,
|
:justification => Graphics.TEXT_JUSTIFY_LEFT | Graphics.TEXT_JUSTIFY_VCENTER,
|
||||||
|
@ -33,17 +33,17 @@ class WebhookManager {
|
|||||||
case Communications.BLE_HOST_TIMEOUT:
|
case Communications.BLE_HOST_TIMEOUT:
|
||||||
case Communications.BLE_CONNECTION_UNAVAILABLE:
|
case Communications.BLE_CONNECTION_UNAVAILABLE:
|
||||||
// System.println("WebhookManager onReturnRequestWebhookId() Response Code: BLE_HOST_TIMEOUT or BLE_CONNECTION_UNAVAILABLE, Bluetooth connection severed.");
|
// System.println("WebhookManager onReturnRequestWebhookId() Response Code: BLE_HOST_TIMEOUT or BLE_CONNECTION_UNAVAILABLE, Bluetooth connection severed.");
|
||||||
ErrorView.show(RezStrings.getWebhookFailed() + "\n" + RezStrings.getNoPhone() + ".");
|
ErrorView.show(WatchUi.loadResource($.Rez.Strings.WebhookFailed) + "\n" + WatchUi.loadResource($.Rez.Strings.NoPhone) + ".");
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case Communications.BLE_QUEUE_FULL:
|
case Communications.BLE_QUEUE_FULL:
|
||||||
// System.println("WebhookManager onReturnRequestWebhookId() Response Code: BLE_QUEUE_FULL, API calls too rapid.");
|
// System.println("WebhookManager onReturnRequestWebhookId() Response Code: BLE_QUEUE_FULL, API calls too rapid.");
|
||||||
ErrorView.show(RezStrings.getWebhookFailed() + "\n" + RezStrings.getApiFlood());
|
ErrorView.show(WatchUi.loadResource($.Rez.Strings.WebhookFailed) + "\n" + WatchUi.loadResource($.Rez.Strings.ApiFlood));
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case Communications.NETWORK_REQUEST_TIMED_OUT:
|
case Communications.NETWORK_REQUEST_TIMED_OUT:
|
||||||
// System.println("WebhookManager onReturnRequestWebhookId() Response Code: NETWORK_REQUEST_TIMED_OUT, check Internet connection.");
|
// System.println("WebhookManager onReturnRequestWebhookId() Response Code: NETWORK_REQUEST_TIMED_OUT, check Internet connection.");
|
||||||
ErrorView.show(RezStrings.getWebhookFailed() + "\n" + RezStrings.getNoResponse());
|
ErrorView.show(WatchUi.loadResource($.Rez.Strings.WebhookFailed) + "\n" + WatchUi.loadResource($.Rez.Strings.NoResponse));
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case Communications.NETWORK_RESPONSE_OUT_OF_MEMORY:
|
case Communications.NETWORK_RESPONSE_OUT_OF_MEMORY:
|
||||||
@ -53,13 +53,13 @@ class WebhookManager {
|
|||||||
case Communications.INVALID_HTTP_BODY_IN_NETWORK_RESPONSE:
|
case Communications.INVALID_HTTP_BODY_IN_NETWORK_RESPONSE:
|
||||||
// System.println("WebhookManager onReturnRequestWebhookId() Response Code: INVALID_HTTP_BODY_IN_NETWORK_RESPONSE, check JSON is returned.");
|
// System.println("WebhookManager onReturnRequestWebhookId() Response Code: INVALID_HTTP_BODY_IN_NETWORK_RESPONSE, check JSON is returned.");
|
||||||
Settings.unsetIsBatteryLevelEnabled();
|
Settings.unsetIsBatteryLevelEnabled();
|
||||||
ErrorView.show(RezStrings.getWebhookFailed() + "\n" + RezStrings.getNoJson());
|
ErrorView.show(WatchUi.loadResource($.Rez.Strings.WebhookFailed) + "\n" + WatchUi.loadResource($.Rez.Strings.NoJson));
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 404:
|
case 404:
|
||||||
// System.println("WebhookManager onReturnRequestWebhookId() Response Code: 404, page not found. Check API URL setting.");
|
// System.println("WebhookManager onReturnRequestWebhookId() Response Code: 404, page not found. Check API URL setting.");
|
||||||
Settings.unsetIsBatteryLevelEnabled();
|
Settings.unsetIsBatteryLevelEnabled();
|
||||||
ErrorView.show(RezStrings.getWebhookFailed() + "\n" + RezStrings.getApiUrlNotFound());
|
ErrorView.show(WatchUi.loadResource($.Rez.Strings.WebhookFailed) + "\n" + WatchUi.loadResource($.Rez.Strings.ApiUrlNotFound));
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 201:
|
case 201:
|
||||||
@ -89,14 +89,14 @@ class WebhookManager {
|
|||||||
} else {
|
} else {
|
||||||
// System.println("WebhookManager onReturnRequestWebhookId(): No webhook id in response data.");
|
// System.println("WebhookManager onReturnRequestWebhookId(): No webhook id in response data.");
|
||||||
Settings.unsetIsBatteryLevelEnabled();
|
Settings.unsetIsBatteryLevelEnabled();
|
||||||
ErrorView.show(RezStrings.getWebhookFailed());
|
ErrorView.show(WatchUi.loadResource($.Rez.Strings.WebhookFailed));
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
// System.println("WebhookManager onReturnRequestWebhookId(): Unhandled HTTP response code = " + responseCode);
|
// System.println("WebhookManager onReturnRequestWebhookId(): Unhandled HTTP response code = " + responseCode);
|
||||||
Settings.unsetIsBatteryLevelEnabled();
|
Settings.unsetIsBatteryLevelEnabled();
|
||||||
ErrorView.show(RezStrings.getWebhookFailed() + "\n" + RezStrings.getUnhandledHttpErr() + responseCode);
|
ErrorView.show(WatchUi.loadResource($.Rez.Strings.WebhookFailed) + "\n" + WatchUi.loadResource($.Rez.Strings.UnhandledHttpErr) + responseCode);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -107,7 +107,7 @@ class WebhookManager {
|
|||||||
{
|
{
|
||||||
"device_id" => System.getDeviceSettings().uniqueIdentifier,
|
"device_id" => System.getDeviceSettings().uniqueIdentifier,
|
||||||
"app_id" => "garmin_home_assistant",
|
"app_id" => "garmin_home_assistant",
|
||||||
"app_name" => RezStrings.getAppName(),
|
"app_name" => WatchUi.loadResource($.Rez.Strings.AppName),
|
||||||
"app_version" => "",
|
"app_version" => "",
|
||||||
"device_name" => "Garmin Watch",
|
"device_name" => "Garmin Watch",
|
||||||
"manufacturer" => "Garmin",
|
"manufacturer" => "Garmin",
|
||||||
@ -135,19 +135,19 @@ class WebhookManager {
|
|||||||
case Communications.BLE_CONNECTION_UNAVAILABLE:
|
case Communications.BLE_CONNECTION_UNAVAILABLE:
|
||||||
// System.println("WebhookManager onReturnRegisterWebhookSensor() Response Code: BLE_HOST_TIMEOUT or BLE_CONNECTION_UNAVAILABLE, Bluetooth connection severed.");
|
// System.println("WebhookManager onReturnRegisterWebhookSensor() Response Code: BLE_HOST_TIMEOUT or BLE_CONNECTION_UNAVAILABLE, Bluetooth connection severed.");
|
||||||
Settings.unsetWebhookId();
|
Settings.unsetWebhookId();
|
||||||
ErrorView.show(RezStrings.getWebhookFailed() + "\n" + RezStrings.getNoPhone() + ".");
|
ErrorView.show(WatchUi.loadResource($.Rez.Strings.WebhookFailed) + "\n" + WatchUi.loadResource($.Rez.Strings.NoPhone) + ".");
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case Communications.BLE_QUEUE_FULL:
|
case Communications.BLE_QUEUE_FULL:
|
||||||
// System.println("WebhookManager onReturnRegisterWebhookSensor() Response Code: BLE_QUEUE_FULL, API calls too rapid.");
|
// System.println("WebhookManager onReturnRegisterWebhookSensor() Response Code: BLE_QUEUE_FULL, API calls too rapid.");
|
||||||
Settings.unsetWebhookId();
|
Settings.unsetWebhookId();
|
||||||
ErrorView.show(RezStrings.getWebhookFailed() + "\n" + RezStrings.getApiFlood());
|
ErrorView.show(WatchUi.loadResource($.Rez.Strings.WebhookFailed) + "\n" + WatchUi.loadResource($.Rez.Strings.ApiFlood));
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case Communications.NETWORK_REQUEST_TIMED_OUT:
|
case Communications.NETWORK_REQUEST_TIMED_OUT:
|
||||||
// System.println("WebhookManager onReturnRegisterWebhookSensor() Response Code: NETWORK_REQUEST_TIMED_OUT, check Internet connection.");
|
// System.println("WebhookManager onReturnRegisterWebhookSensor() Response Code: NETWORK_REQUEST_TIMED_OUT, check Internet connection.");
|
||||||
Settings.unsetWebhookId();
|
Settings.unsetWebhookId();
|
||||||
ErrorView.show(RezStrings.getWebhookFailed() + "\n" + RezStrings.getNoResponse());
|
ErrorView.show(WatchUi.loadResource($.Rez.Strings.WebhookFailed) + "\n" + WatchUi.loadResource($.Rez.Strings.NoResponse));
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case Communications.NETWORK_RESPONSE_OUT_OF_MEMORY:
|
case Communications.NETWORK_RESPONSE_OUT_OF_MEMORY:
|
||||||
@ -159,14 +159,14 @@ class WebhookManager {
|
|||||||
// System.println("WebhookManager onReturnRegisterWebhookSensor() Response Code: INVALID_HTTP_BODY_IN_NETWORK_RESPONSE, check JSON is returned.");
|
// System.println("WebhookManager onReturnRegisterWebhookSensor() Response Code: INVALID_HTTP_BODY_IN_NETWORK_RESPONSE, check JSON is returned.");
|
||||||
Settings.unsetWebhookId();
|
Settings.unsetWebhookId();
|
||||||
Settings.unsetIsBatteryLevelEnabled();
|
Settings.unsetIsBatteryLevelEnabled();
|
||||||
ErrorView.show(RezStrings.getWebhookFailed() + "\n" + RezStrings.getNoJson());
|
ErrorView.show(WatchUi.loadResource($.Rez.Strings.WebhookFailed) + "\n" + WatchUi.loadResource($.Rez.Strings.NoJson));
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 404:
|
case 404:
|
||||||
// System.println("WebhookManager onReturnRequestWebhookId() Response Code: 404, page not found. Check API URL setting.");
|
// System.println("WebhookManager onReturnRequestWebhookId() Response Code: 404, page not found. Check API URL setting.");
|
||||||
Settings.unsetWebhookId();
|
Settings.unsetWebhookId();
|
||||||
Settings.unsetIsBatteryLevelEnabled();
|
Settings.unsetIsBatteryLevelEnabled();
|
||||||
ErrorView.show(RezStrings.getWebhookFailed() + "\n" + RezStrings.getApiUrlNotFound());
|
ErrorView.show(WatchUi.loadResource($.Rez.Strings.WebhookFailed) + "\n" + WatchUi.loadResource($.Rez.Strings.ApiUrlNotFound));
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 201:
|
case 201:
|
||||||
@ -177,7 +177,7 @@ class WebhookManager {
|
|||||||
// System.println("WebhookManager onReturnRegisterWebhookSensor(): Failure");
|
// System.println("WebhookManager onReturnRegisterWebhookSensor(): Failure");
|
||||||
Settings.unsetWebhookId();
|
Settings.unsetWebhookId();
|
||||||
Settings.unsetIsBatteryLevelEnabled();
|
Settings.unsetIsBatteryLevelEnabled();
|
||||||
ErrorView.show(RezStrings.getWebhookFailed());
|
ErrorView.show(WatchUi.loadResource($.Rez.Strings.WebhookFailed));
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@ -185,7 +185,7 @@ class WebhookManager {
|
|||||||
// System.println("WebhookManager onReturnRequestWebhookId(): Unhandled HTTP response code = " + responseCode);
|
// System.println("WebhookManager onReturnRequestWebhookId(): Unhandled HTTP response code = " + responseCode);
|
||||||
Settings.unsetWebhookId();
|
Settings.unsetWebhookId();
|
||||||
Settings.unsetIsBatteryLevelEnabled();
|
Settings.unsetIsBatteryLevelEnabled();
|
||||||
ErrorView.show(RezStrings.getWebhookFailed() + "\n" + RezStrings.getUnhandledHttpErr() + responseCode);
|
ErrorView.show(WatchUi.loadResource($.Rez.Strings.WebhookFailed) + "\n" + WatchUi.loadResource($.Rez.Strings.UnhandledHttpErr) + responseCode);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user