Repository navigation
feat(notifications): Live Update for mesh status or a tracked node - #7664
Draft
jamesarich wants to merge 2 commits into
Draft
jamesarich wants to merge 2 commits into
jamesarich wants to merge 2 commits into
Conversation
A user-started Android 16 Live Update on the service notification, the counterpart of the Apple Live Activity. Off by default; Off leaves the service notification as it was. - Mesh status: connection, nodes online, unread messages and the radio's battery, with nodes online in the status bar chip. - Track a node: its battery, signal, last heard, hops and distance, with its battery (or time since heard) in the chip. - The mode is stored in DataStore (`LiveUpdatePrefs`). A user disconnect, a radio switch, or the tracked node being deleted or ignored turns it off; a dropped link keeps it and shows the connection state. - Connections gets a Live Update row and chooser (favorites first, then most recently heard, searchable); node detail gets a Track in Live Update switch. Both are Android 16+ only.
Contributor
|
Important Draft PR not reviewedDraft PRs are not automatically reviewed by default.
To automatically review draft PRs, update your CodeRabbit configuration: reviews:
auto_review:
drafts: true
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
…a minute ago It read `0m`.
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
iOS now shows a Live Activity the user picks (Meshtastic-Apple#2670); Android had only the fixed service notification. This is the Android 16 counterpart: a Live Update the user starts, switches or stops, showing either the mesh at a glance or one node. It's off by default, and Off leaves the service notification as it was.
🌟 New Features
online/totalwhile connected.🛠️ Refactoring & Architecture
LiveUpdatePrefs(commonMain),LiveUpdateGuardincore:servicecommonMain, and arememberLiveUpdateSupport()expect incore:ui.renderServiceNotificationmoved unchanged intorenderServiceStateNotification.feature/node/detekt-baseline.xml: the ID of the existingViewModelForwardingentry changed with the call's arguments.📝 Documentation
Testing Performed
MeshNotificationManagerImplTest: not promoted while Off; Mesh status promoted with chip and text, and reverts on Off; firmware progress outranks it; a tracked node renders, then turns Off when deleted.LiveUpdateGuardTest,LiveUpdatePrefsTest,LiveUpdateCandidatesTest.kmpSmokeCompileand-PwarningsAsErrors=truegreen locally.PROMOTED_ONGOING; the status bar chip shows41/41. Stopping from node detail restores the stock notification. Dropping the link keeps the Live Update, with "Disconnected" as subtext.nodes/<num>for a tracked node.Constitution Check
stringResource,MeshtasticIcons,MetricFormatter; platform gate through an expect.features/directory and no Live Activity spec, so there is none to reference.connections.mdandnotifications.mdupdated,last_updatedbumped.