Skip to content

Wear: running mode complication and picker + updated AAPS V4 WFF watchface - #5062

Open
olorinmaia wants to merge 10 commits into
nightscout:devfrom
olorinmaia:wear/impl/running_mode_complication
Open

Wear: running mode complication and picker + updated AAPS V4 WFF watchface#5062
olorinmaia wants to merge 10 commits into
nightscout:devfrom
olorinmaia:wear/impl/running_mode_complication

Conversation

@olorinmaia

@olorinmaia olorinmaia commented Aug 7, 2026

Copy link
Copy Markdown
Contributor

What

  • New complication showing the current running mode as a color icon (SMALL_IMAGE / ICON, image-only).
  • Tap opens a new running mode picker: all allowed mode changes (including Disable loop, which the 4-slot tile hides), current mode + remaining time in the header, same confirm flow as the tile.
  • Picker also added to the wear main menu, for watchfaces without tiles or complications. BG graph moved next to it.
  • New "Running mode" option for the complication tap action setting.
  • Phone now sends the current mode (+ end time of temporary modes) with Status, and re-sends when the mode changes -complication and tile update right away instead of one loop cycle later.
  • Disconnect/suspend request page shows the requested mode name, same layout as the temp target page.
  • AAPS V4 watchface updated: two new top slots (running mode + uploader battery) with default providers bound.

Compatibility

Old phone with new watch (and reverse) is safe: new Status fields have defaults and unknown fields are ignored.

Tests

New: RunningModeComplicationTest, Status round-trip + legacy decode in EventDataTest, tile filter + picker overload in RunningModeSourceTest.

:wear:test :core:interfaces:test :plugins:sync:test :core:ui:test passed

Tested OK on AAPS/AAPSClient wear

Screenshots

image image

Show the current running mode as a color icon on the watchface (SMALL_IMAGE / ICON, image-only). Tap opens a small picker with the allowed mode changes, reusing the tile's confirm flow.

- EventData.Status: new loopMode field (UNKNOWN for older senders)
- Phone: send mode with status; resend on mode change so the watch does not wait for the next loop run
- Wear: RunningModeComplication (no sync -> UNKNOWN), mode picker activity, "running_mode" tap action + preference entry
Picker icons now match the tile icon colors (explicit tint - the ic_loop_* drawables carry a theme tint that painted them all in one color). Suspend color rule: text stays yellow so it differs from disabled red, icons are red like the tile icon.
- Show all modes in the picker: the phone now sends the full list and the 4-slot tile drops "Disable loop" on the watch side instead
- Header shows the active mode under the title, with remaining time for a temporary mode (new Status.modeEndTime field), colored with the same text colors as the loop status screen (shared mapping)
- Fixed picker order: resume/reconnect first, then disconnect, suspend, closed, LGS, open, disable
- Tighter header layout (subtitle inside the list header)
- White provider icon so the complication chooser entry looks like the other AAPS complications
For watchfaces without tiles or complications the main menu is the only path to the picker. BG graph moved down next to it, both placed between Profile switch and Settings.
- Active mode and remaining time on separate lines (mode slightly  bigger and colored, duration in secondary gray reusing the "%1$s remaining" string)
- Compact header without ListHeader when a subtitle is shown: its min-height and padding pushed the title off the top edge and left a large gap under it
- Closed loop first in the list when offered (the way back to normal looping), before resume/reconnect and the temporary modes
The request page for Disconnect pump and Suspend loop only showed the duration. Add the requested mode name above it, colored like the mode
text (suspend yellow, disconnect gray) - same layout as the temp target confirm page.
New face revision adds two top slots: running mode (SMALL_IMAGE, colored mode icon, tap opens the picker) and uploader/phone battery.
Default providers injected for all 7 slots; SAFE_WATCH_FACES added to the two new providers so the face can bind them automatically.
Previews and the install menu icon updated.
Position tweaks from Watch Face Studio: text and title moved up in the middle circle complications, and the top left/right complications nudged and mirrored.
@olorinmaia olorinmaia changed the title Wear: running mode complication and picker Wear: running mode complication and picker + updated AAPS V4 WFF watchface Aug 8, 2026
@vanelsberg

vanelsberg commented Aug 8, 2026

Copy link
Copy Markdown
Contributor

Tested latest commit#d68f4e0a. Works great for my Samsung GW6. Did need to change settings for the WF to keep showing data when the watch goes into locking state (Samsungs Wrist detection):

Settings->Security & Privacy->Hide information=off

Latest commit has 2 additional slots for complications at the upper left and right: I use them for showing the AAPS snooze "button" and Phones battery level.

@olorinmaia

Copy link
Copy Markdown
Contributor Author

Further testing with other WFF watchfaces, like DMM13 from Glucodatahandler the same issue is present there. A quick google search also confirms that this is WFF related, and setting needs to be toggled by the user. Old code-based watchfaces aren't using complications and aren't affected. Samsung watchfaces may also be "whitelisted" from this, but there doesn't seem to be any way to bypass it by code. We can consider leaving a note in wiki regarding this and the WFF watchface.

image

@sonarqubecloud

sonarqubecloud Bot commented Aug 9, 2026

Copy link
Copy Markdown

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants