Copilot
fad92e8f8c
Merge 7a21d9c7d9 into 68a414b75b
2026-04-18 03:05:34 +00:00
renovate[bot]
7a21d9c7d9
chore(deps): update compose-multiplatform to v1.11.0-rc01 ( #5184 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: jamesarich <2199651+jamesarich@users.noreply.github.com>
2026-04-18 03:05:31 +00:00
James Rich
b290db7019
chore(deps): split androidx-compose version ref from CMP ( #5183 )
...
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: jamesarich <2199651+jamesarich@users.noreply.github.com>
2026-04-18 03:05:31 +00:00
James Rich
84e70d01a3
feat(mqtt): adopt mqttastic-client-kmp 0.2.0 — disconnect reasons + Test Connection ( #5181 )
...
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: jamesarich <2199651+jamesarich@users.noreply.github.com>
2026-04-18 03:05:31 +00:00
James Rich
5c870028d4
chore: Scheduled updates (Firmware, Hardware, Translations, Graphs) ( #5177 )
...
Co-authored-by: github-merge-queue <118344674+github-merge-queue@users.noreply.github.com>
Co-authored-by: jamesarich <2199651+jamesarich@users.noreply.github.com>
2026-04-18 03:05:31 +00:00
James Rich
9b0e1cc8d7
fix(deps): pin androidx-compose runtime-tracing/ui-test to CMP version ( #5179 )
...
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: jamesarich <2199651+jamesarich@users.noreply.github.com>
2026-04-18 03:05:31 +00:00
James Rich
7207ab3345
Revert "diag(r8): disable minify for release builds (animation-freeze diagnostic)" ( #5176 )
...
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: jamesarich <2199651+jamesarich@users.noreply.github.com>
2026-04-18 03:05:31 +00:00
James Rich
84551985bf
diag(r8): disable minify for release builds (animation-freeze diagnostic) ( #5174 )
...
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: jamesarich <2199651+jamesarich@users.noreply.github.com>
2026-04-18 03:05:31 +00:00
renovate[bot]
68a414b75b
chore(deps): update compose-multiplatform to v1.11.0-rc01 ( #5184 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-04-17 22:00:34 -05:00
James Rich
4257e7b7e4
chore(deps): split androidx-compose version ref from CMP ( #5183 )
...
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-04-17 21:41:36 -05:00
James Rich
14e86b90f1
feat(mqtt): adopt mqttastic-client-kmp 0.2.0 — disconnect reasons + Test Connection ( #5181 )
...
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-04-17 21:33:55 -05:00
James Rich
ef0e159abb
chore: Scheduled updates (Firmware, Hardware, Translations, Graphs) ( #5177 )
...
Co-authored-by: github-merge-queue <118344674+github-merge-queue@users.noreply.github.com>
2026-04-17 21:20:58 -05:00
James Rich
61d7f6fef3
fix(deps): pin androidx-compose runtime-tracing/ui-test to CMP version ( #5179 )
...
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-04-17 15:46:59 -05:00
copilot-swe-agent[bot]
cb5f11f996
fix(auto): address branch review — cleanup, ProGuard, dedupe, API trim
...
Agent-Logs-Url: https://github.com/meshtastic/Meshtastic-Android/sessions/ade4e6ae-8e8e-4651-a985-a8042f86e7c6
Co-authored-by: jamesarich <2199651+jamesarich@users.noreply.github.com>
2026-04-17 20:16:24 +00:00
James Rich
a273dc6623
Revert "diag(r8): disable minify for release builds (animation-freeze diagnostic)" ( #5176 )
...
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-04-17 15:07:54 -05:00
James Rich
c866f60b59
diag(r8): disable minify for release builds (animation-freeze diagnostic) ( #5174 )
...
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-04-17 18:36:33 +00:00
copilot-swe-agent[bot]
67e300da96
fix(auto): apply Android Auto best-practices audit fixes
...
Agent-Logs-Url: https://github.com/meshtastic/Meshtastic-Android/sessions/8d768315-9c58-4b16-8912-d0b4f97c3681
Co-authored-by: jamesarich <2199651+jamesarich@users.noreply.github.com>
2026-04-17 18:29:52 +00:00
James Rich
d70c3b66dc
chore(strings): remove 4 unused string resources ( #5173 )
...
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: jamesarich <2199651+jamesarich@users.noreply.github.com>
2026-04-17 17:56:39 +00:00
James Rich
b49e8b2aaf
fix(ui): finish accessibility roles and action labels for clickable surfaces ( #5170 )
...
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: jamesarich <2199651+jamesarich@users.noreply.github.com>
2026-04-17 17:56:39 +00:00
James Rich
d69b102945
chore: Scheduled updates (Firmware, Hardware, Translations, Graphs) ( #5163 )
...
Co-authored-by: github-merge-queue <118344674+github-merge-queue@users.noreply.github.com>
Co-authored-by: jamesarich <2199651+jamesarich@users.noreply.github.com>
2026-04-17 17:56:38 +00:00
James Rich
6ab3b96d4a
chore(r8): remove redundant keep rules covered by consumer rules ( #5172 )
...
Co-authored-by: GitHub Copilot CLI <223556219+Copilot@users.noreply.github.com>
Co-authored-by: jamesarich <2199651+jamesarich@users.noreply.github.com>
2026-04-17 17:56:38 +00:00
James Rich
9c8085b0e3
refactor: consolidate metric formatting through MetricFormatter ( #5169 )
...
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: jamesarich <2199651+jamesarich@users.noreply.github.com>
2026-04-17 17:56:38 +00:00
James Rich
1cd05d5d78
test: migrate MigrationTest to runTest and add missing repository fakes ( #5171 )
...
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: jamesarich <2199651+jamesarich@users.noreply.github.com>
2026-04-17 17:56:38 +00:00
James Rich
2a6e27de09
fix(ui): stable LazyColumn keys, semantic roles, and content descriptions ( #5168 )
...
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: jamesarich <2199651+jamesarich@users.noreply.github.com>
2026-04-17 17:56:38 +00:00
James Rich
5eba7e4dce
fix: redact MeshLog proto secrets and centralize Compose keep-rules ( #5166 )
...
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: jamesarich <2199651+jamesarich@users.noreply.github.com>
2026-04-17 17:56:38 +00:00
James Rich
7f1ea28d47
refactor: use injected ioDispatcher and ApplicationCoroutineScope ( #5167 )
...
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: jamesarich <2199651+jamesarich@users.noreply.github.com>
2026-04-17 17:56:38 +00:00
James Rich
305a487dd7
feat(mqtt): migrate to MQTTastic-Client-KMP ( #5165 )
...
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: jamesarich <2199651+jamesarich@users.noreply.github.com>
2026-04-17 17:56:38 +00:00
James Rich
10bc58d417
chore(strings): remove 4 unused string resources ( #5173 )
...
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-04-17 17:36:32 +00:00
James Rich
dd74e501f3
fix(ui): finish accessibility roles and action labels for clickable surfaces ( #5170 )
...
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-04-17 17:33:38 +00:00
copilot-swe-agent[bot]
b828a1271c
style(auto): expand TabTemplate tab builder chains for readability
...
Agent-Logs-Url: https://github.com/meshtastic/Meshtastic-Android/sessions/e79e1ea2-bea6-4b71-acb3-13dbdbce363f
Co-authored-by: jamesarich <2199651+jamesarich@users.noreply.github.com>
2026-04-17 17:22:49 +00:00
copilot-swe-agent[bot]
2e74af770b
feat(auto): polish - extract CarScreenDataBuilder, add unit tests, fix batteryStr, DRY row builder
...
Agent-Logs-Url: https://github.com/meshtastic/Meshtastic-Android/sessions/e79e1ea2-bea6-4b71-acb3-13dbdbce363f
Co-authored-by: jamesarich <2199651+jamesarich@users.noreply.github.com>
2026-04-17 17:19:47 +00:00
James Rich
56cbc3670d
chore: Scheduled updates (Firmware, Hardware, Translations, Graphs) ( #5163 )
...
Co-authored-by: github-merge-queue <118344674+github-merge-queue@users.noreply.github.com>
2026-04-17 17:13:27 +00:00
James Rich
15a7c19b74
chore(r8): remove redundant keep rules covered by consumer rules ( #5172 )
...
Co-authored-by: GitHub Copilot CLI <223556219+Copilot@users.noreply.github.com>
2026-04-17 17:13:26 +00:00
James Rich
b979663e24
refactor: consolidate metric formatting through MetricFormatter ( #5169 )
...
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-04-17 17:13:01 +00:00
copilot-swe-agent[bot]
9f0ead2518
feat(auto): align Auto node/message row UI with phone NodeItem and ContactItem
...
Agent-Logs-Url: https://github.com/meshtastic/Meshtastic-Android/sessions/ebb54cc3-35cd-4c25-afd2-4b7fbaa05a5d
Co-authored-by: jamesarich <2199651+jamesarich@users.noreply.github.com>
2026-04-17 16:53:08 +00:00
copilot-swe-agent[bot]
849aca797b
plan: align Auto node/message row UI with phone NodeItem and ContactItem
...
Agent-Logs-Url: https://github.com/meshtastic/Meshtastic-Android/sessions/ebb54cc3-35cd-4c25-afd2-4b7fbaa05a5d
Co-authored-by: jamesarich <2199651+jamesarich@users.noreply.github.com>
2026-04-17 16:49:59 +00:00
James Rich
9f3fe865e3
test: migrate MigrationTest to runTest and add missing repository fakes ( #5171 )
...
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-04-17 16:35:41 +00:00
copilot-swe-agent[bot]
7c15c7bcb4
feat(auto): unified Messages tab — channels + DMs, mirroring Contacts screen
...
Agent-Logs-Url: https://github.com/meshtastic/Meshtastic-Android/sessions/8757a33e-0881-45a4-9c3b-5489642c413d
Co-authored-by: jamesarich <2199651+jamesarich@users.noreply.github.com>
2026-04-17 16:32:46 +00:00
James Rich
90f6e21a9c
fix(ui): stable LazyColumn keys, semantic roles, and content descriptions ( #5168 )
...
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-04-17 16:24:18 +00:00
James Rich
cdeb1ac532
fix: redact MeshLog proto secrets and centralize Compose keep-rules ( #5166 )
...
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-04-17 16:20:50 +00:00
James Rich
adfe3bfed1
refactor: use injected ioDispatcher and ApplicationCoroutineScope ( #5167 )
...
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-04-17 16:18:45 +00:00
copilot-swe-agent[bot]
01b1759503
feat(auto): spec-compliance — minCarApiLevel=1, runtime API fallback, onNewIntent, loading state
...
Agent-Logs-Url: https://github.com/meshtastic/Meshtastic-Android/sessions/50f9540a-3ba0-4e05-8e06-83cc8c4c93aa
Co-authored-by: jamesarich <2199651+jamesarich@users.noreply.github.com>
2026-04-17 16:13:09 +00:00
James Rich
38b74441fb
fix(auto): align TabTemplate with required Car API level 6 and tintable icons
...
- TabTemplate is @RequiresCarApi(6); bump manifest minCarApiLevel from 2
to 6 so the host doesn't reject the template at runtime.
- Use a proper anonymous TabCallback (androidx's TabCallback is not a
Kotlin fun interface) and import top-level TabContents (it is not a
nested type of TabTemplate); the lambda/nested references don't
compile.
- Mark tab CarIcons tintable (CarColor.DEFAULT) so day-mode AAOS themes
don't render white-on-white.
- Extract buildChannelRow to keep buildChannelsTemplate under the
NestedBlockDepth detekt threshold.
- Clarify MAX_LIST_ITEMS KDoc (per-ListTemplate host constraint, not an
API-level property).
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-04-17 10:26:15 -05:00
James Rich
a97f704300
feat(mqtt): migrate to MQTTastic-Client-KMP ( #5165 )
...
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-04-17 15:19:08 +00:00
Garth Vander Houwen
6af9cbf376
Merge branch 'main' into copilot/add-messaging-feature-android-auto
2026-04-17 08:10:42 -07:00
James Rich
1d258daded
test(notifications): add unit tests for reply/markAsRead/reaction receivers
...
Adds Robolectric-based androidHostTest coverage for the three notification
BroadcastReceivers. Verifies:
- ReplyReceiver sends a DataPacket derived from the contactKey then calls
appendOutgoingMessage followed by markConversationRead in that order.
- MarkAsReadReceiver invokes markConversationRead, ignores wrong actions,
and drops intents missing the contact key.
- ReactionReceiver dispatches a ServiceAction.Reaction and, on success,
calls markConversationRead. Failures in dispatch short-circuit markRead.
Uses the existing FakeRadioController and FakeMeshServiceNotifications
(marked open so tests can record calls) plus mokkery for ServiceRepository,
mirroring the pattern in SendMessageWorkerTest. Fakes are wired through a
per-test Koin graph to match each receiver's KoinComponent injection.
Also fixes a pre-existing compile break in MeshServiceNotificationsImplTest
that was missing the shortcutManager constructor argument.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-04-17 09:51:00 -05:00
copilot-swe-agent[bot]
dac4880e0f
feat(auto): replace ListTemplate with TabTemplate for iOS CarPlay parity
...
Agent-Logs-Url: https://github.com/meshtastic/Meshtastic-Android/sessions/67580c49-612a-450b-8452-9c88875df1c3
Co-authored-by: garthvh <1795163+garthvh@users.noreply.github.com>
2026-04-17 14:44:19 +00:00
James Rich
eb3a27a3d3
feat(auto): append outgoing reply to MessagingStyle for brief confirmation
...
Before cancelling a conversation notification in response to an inline
reply, post one final update that appends the outgoing text to the
MessagingStyle history, attributed to the local user. This gives
assistants such as Android Auto a tick to observe the sent message in
the notification's message history and surface a 'reply sent' style
confirmation before markConversationRead cancels the notification.
Extract the 'me' Person construction into buildMePerson() and share it
between showGroupSummary and createConversationNotification. The
conversation builder now optionally takes an extraOutgoingMessage which
is appended to the MessagingStyle (actions and when-timestamp continue
to be anchored on the last incoming message).
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-04-17 09:44:08 -05:00
James Rich
6d70d154e6
refactor(notifications): share markConversationRead helper across receivers
...
Extract the 'clear unread count + cancel message notification' pair into
a single suspend helper on MeshServiceNotifications so ReplyReceiver,
MarkAsReadReceiver, and ReactionReceiver use one consistent code path.
ReactionReceiver now also clears unread and cancels the notification
once the reaction dispatch succeeds, matching the other receivers.
Receivers that only depended on PacketRepository for this pair drop
that injection.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-04-17 09:42:44 -05:00
James Rich
9c75f5a3f4
fix(auto): always cancel group summary when dismissing a conversation
...
Reading notificationManager.activeNotifications immediately after
cancel() races with NotificationManagerService, so the count of
remaining children was unreliable and the summary could linger.
Drop it unconditionally — the next inbound message rebuilds it via
showGroupSummary().
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-04-17 09:25:13 -05:00