39 Commits

Author SHA1 Message Date
Philip Abbey
b5140ce8b4 Added vibrate to confirm toggle items tapped 2024-08-29 21:13:55 +01:00
Philip Abbey
bbd9119a07 Update HomeAssistantToggleMenuItem.mc
Prevent multiple toggles for initiating one action. Only set the state when the called service returns with the confirmed value.
2024-08-28 23:01:28 +01:00
Joseph Abbey
bd37d5f2a8 Allow toggles to work if template fails 2024-08-26 20:11:19 +01:00
Joseph Abbey
2a48790f9c Individual errors 2024-08-26 20:09:24 +01:00
Joseph Abbey
e9a0c5d137 Single request to update 2024-08-26 18:59:17 +01:00
Philip Abbey
685cda7924 Added template option to toggle menu items 2024-08-25 19:34:29 +01:00
Philip Abbey
a49dd6554f More responsive status when using a polling delay
When using a polling delay, an action will trigger an immediate round of updates.
2024-07-20 19:16:42 +01:00
Philip Abbey
0b80e4546d Corrected a previous incomplete commit
All now "WatchUi.loadResource($.Rez.Strings.WebhookFailed) as Lang.String"
2024-01-21 20:43:11 +00:00
Philip Abbey
6e67c4cf2a Removed RezStrings.mc
And in-lined the resource strings fetching.
2024-01-21 20:38:01 +00:00
Philip Abbey
d9ecaf34ee Removed Debug
On some devices it looks like removing the System.println() statements from inside an 'if' clause whose condition is a constant (static constant Globals.scDebug) makes a memory saving. This would suggest the compiler does not propagate constants and prune unreachable code. However in the device of greatest interest debug removal has made no difference to the memory usage. Here the conditional clauses have been turned into comments that can be removed on a case-by-case basis otherwise the debug printing is too voluminous anyway.
2024-01-21 17:53:37 +00:00
Philip Abbey
44ec2e2eb1 Initial Solution 2024-01-19 19:26:02 +00:00
Philip Abbey
2be255bb71 Removal of menu identifiers as not actually required
Toggle menu is now consistent with the use of data objects in tap and template. HA 'notify' actions now work.

Co-Authored-By: Joseph Abbey <me@josephabbey.dev>
2024-01-19 18:04:55 +00:00
Philip Abbey
4e96036d66 Removed code to dismiss the ErrorView
The automatic ErrorView.unShow() when the HTTP Request callback success was preventing errors being read. Removing to see if they are really required.
2024-01-18 21:15:59 +00:00
Restyled.io
c1103d9325 Restyled by whitespace 2024-01-09 10:56:20 +00:00
Philip Abbey
0a2d257421 Initial solution 2024-01-08 00:08:12 +00:00
Philip Abbey
9a268eaf02 Updated RezStrings.mc
Variables are now read only via getters.
2024-01-01 14:17:04 +00:00
Philip Abbey
b039dfbc3b Added RezStrings.mc
The intention is to factorise out many copies of the same string to a central location. Now need to deal with making the variables read-only.
2024-01-01 12:57:50 +00:00
Philip Abbey
ae72313f5e Settings reverted to a static class 2023-12-31 15:55:59 +00:00
Philip Abbey
56155f5f5c Added Watch Battery transmission
Added a background service to send the watch battery level to Home Assistant.
Changed the Glance View as requested by a user.
Updated to new HA icon using SVG in stead of PNG.
2023-12-31 15:22:21 +00:00
Philip Abbey
76c2aaa249 Finishing off widget+app code changes.
Glance now updates the status.
Fix for quitting the application when persistently displaying an ErrorView.
Added option for Widget RootView to immediately start HomeAssistant without waiting for a tap as requested by a user.
2023-12-23 14:30:58 +00:00
Philip Abbey
332a10867d Made RootView updateable
Changed the group/menu icon to be thicker.
2023-12-21 15:38:29 +00:00
Philip Abbey
3934ca53ba New glance and widget views
Added ability to test if we're a widget or a watch-app. Added troubleshooting documentation.
2023-12-21 11:37:30 +00:00
Philip Abbey
4ab25ef860 Comment header update
Corrected spelling of username of contributor.
2023-12-17 12:46:20 +00:00
Philip Abbey
16383f61a4 Added SomeoneOnEarth to all source headers
Give credit to a co-author.
2023-12-16 17:07:43 +00:00
Philip Abbey
f086d0d03b Bug fix for devices with API 3.1.0
1) Removed WatchUi.getCurrentView() API call in favour of a new method of ensuring only one ErrorView is pushed at a time.
2) Any error view will be cancelled when responses start working again, e.g. watch gets in Bluetooth range of the phone again.
3) Added error message decoding for misspelled entities.

Co-Authored-By: Joseph Abbey <me@josephabbey.dev>
2023-12-16 17:03:38 +00:00
Philip Abbey
71c1ccc229 Code review comment
Removed debug
Fixed manifest App ID for release
2023-11-21 17:58:18 +00:00
Philip Abbey
ce90d9d47f Single HomeAssistantService for all Taps
1. Amended code for a single HomeAssistantService for all 'tap's
2. Removed now redundant GET request for taps without a service now that having a service is enforced.
3. Determined that migrating API code from 'toggle's to the HomeAssistantService is awkward due to the close coupling with other methods in the class.
2023-11-20 21:32:35 +00:00
Philip Abbey
b90e6c7130 Connection reporting improvements and update resumption
Separation of phone connectivity and Internet access tests for finer grained feedback to the user.
Updates no longer stop on absence of Internet connectivity.
2023-11-18 15:52:02 +00:00
Philip Abbey
4b320086ee Tap menu items without a service tag will be ignored.
The JSON schema checker is relied on to highlight this error.
2023-11-17 17:51:01 +00:00
Philip Abbey
d540fb576a Bugfixes
Do not crash on zero items to update
Report unreachable URLs
Verify API URL does not have a trailing slash '/'
Increased HTTP response diagnosis
2023-11-12 16:24:56 +00:00
Philip Abbey
765d7f7f50 Removed timer based update mechanism
Instead chaining calls from the previous update is a slightly close coupled way that might need to be refined.
2023-11-11 20:00:26 +00:00
Philip Abbey
fde270ff34 Renamed class variables
There's a Monkey C convention to have class variable names start with 'm', then be camel case. 'm' for 'member' according to https://developer.garmin.com/connect-iq/reference-guides/monkey-c-reference/.
2023-11-11 13:58:35 +00:00
Philip Abbey
e7c4411dd2 Fix for the update rate
Now perform a "round robin" of all toggle menu items. The delay is currently 100 ms to avoid Communications.BLE_QUEUE_FULL errors.
2023-11-11 13:36:08 +00:00
Philip Abbey
1653569e8f Added 54 devices
Added vibrate knowledgement
Fall back to a home made alert if no toast or vibrate
Support for 80 devices, 54 new ones added
2023-11-10 18:22:14 +00:00
Philip Abbey
ebb89cd4b4 Amended display of "no Internet" errors 2023-11-04 10:44:08 +00:00
Philip Abbey
816b0dc890 Internationalisation & Multi-watch support
Copied two methods from GarminThermoNest to translate languages and manage different sized icons for the various sizes of watch. Also copied ErrorView for smaller wrapped text for error messages.
2023-11-02 21:32:42 +00:00
Philip Abbey
2b06e63c03 Added alerts on error
And removed (and changed) API key... doh!
2023-10-31 21:22:14 +00:00
Philip Abbey
7dd3ccc670 Configurable Menu
Uses a JSON file served by a URL.
2023-10-31 20:49:38 +00:00
Philip Abbey
8a4f514e6b Initial basic application 2023-10-31 13:32:42 +00:00