From e400acf3050104892a4f8782abc8d79f2a94605f Mon Sep 17 00:00:00 2001 From: James Rich <2199651+jamesarich@users.noreply.github.com> Date: Mon, 6 Jul 2026 18:01:17 -0500 Subject: [PATCH] fix(geofence): restrict crossing alerts to creator, add per-geofence opt-in (#6117) Co-authored-by: Claude Opus 4.8 --- .skills/compose-ui/strings-index.txt | 2 + .../kotlin/org/meshtastic/app/map/MapView.kt | 38 +++++- .../org/meshtastic/app/map/MapViewModel.kt | 11 +- .../kotlin/org/meshtastic/app/map/MapView.kt | 28 +++++ .../org/meshtastic/app/map/MapViewModel.kt | 11 +- .../app/map/component/WaypointMarkers.kt | 14 ++- .../core/data/manager/GeofenceMonitor.kt | 31 +++-- .../core/data/manager/GeofenceMonitorTest.kt | 48 ++++++-- .../core/data/manager/MeshDataHandlerTest.kt | 2 + .../core/model/geofence/ActiveWaypoints.kt | 13 ++ .../model/geofence/ActiveWaypointsTest.kt | 34 ++++++ .../notification/NotificationPrefsImpl.kt | 40 ++++++- .../notification/NotificationPrefsTest.kt | 45 +++++++ .../core/repository/AppPreferences.kt | 8 ++ .../composeResources/values/strings.xml | 2 + .../core/testing/FakeNotificationPrefs.kt | 7 ++ .../DesktopNotificationManagerTest.kt | 7 ++ .../map/component/WaypointInfoDialog.kt | 112 ++++++++++++++++++ .../component/WaypointInfoDialogPreviews.kt | 68 +++++++++++ .../feature/map/BaseMapViewModel.kt | 12 ++ .../feature/map/SharedMapViewModel.kt | 11 +- .../feature/map/BaseMapViewModelTest.kt | 2 + .../screenshots/feature/MapScreenshotTests.kt | 16 +++ ...pointInfoDialogOptedIn_Dark_d19fbf1f_0.png | Bin 0 -> 46576 bytes ...ointInfoDialogOptedIn_Light_b29dc7a7_0.png | Bin 0 -> 47030 bytes ...ointInfoDialogReadOnly_Dark_d19fbf1f_0.png | Bin 0 -> 46423 bytes ...intInfoDialogReadOnly_Light_b29dc7a7_0.png | Bin 0 -> 46849 bytes 27 files changed, 526 insertions(+), 36 deletions(-) create mode 100644 feature/map/src/androidMain/kotlin/org/meshtastic/feature/map/component/WaypointInfoDialog.kt create mode 100644 feature/map/src/androidMain/kotlin/org/meshtastic/feature/map/component/WaypointInfoDialogPreviews.kt create mode 100644 screenshot-tests/src/screenshotTestDebug/reference/org/meshtastic/screenshots/feature/MapScreenshotTestsKt/ScreenshotWaypointInfoDialogOptedIn_Dark_d19fbf1f_0.png create mode 100644 screenshot-tests/src/screenshotTestDebug/reference/org/meshtastic/screenshots/feature/MapScreenshotTestsKt/ScreenshotWaypointInfoDialogOptedIn_Light_b29dc7a7_0.png create mode 100644 screenshot-tests/src/screenshotTestDebug/reference/org/meshtastic/screenshots/feature/MapScreenshotTestsKt/ScreenshotWaypointInfoDialogReadOnly_Dark_d19fbf1f_0.png create mode 100644 screenshot-tests/src/screenshotTestDebug/reference/org/meshtastic/screenshots/feature/MapScreenshotTestsKt/ScreenshotWaypointInfoDialogReadOnly_Light_b29dc7a7_0.png diff --git a/.skills/compose-ui/strings-index.txt b/.skills/compose-ui/strings-index.txt index 6709a4fba..95889f93f 100644 --- a/.skills/compose-ui/strings-index.txt +++ b/.skills/compose-ui/strings-index.txt @@ -669,6 +669,8 @@ generate_input_event_on_press generate_qr_code ### GEOFENCE ### geofence +geofence_alerts_opt_in +geofence_alerts_opt_in_desc geofence_box_author_confirm geofence_box_author_hint geofence_box_author_hint_viewport diff --git a/androidApp/src/fdroid/kotlin/org/meshtastic/app/map/MapView.kt b/androidApp/src/fdroid/kotlin/org/meshtastic/app/map/MapView.kt index 1fb0e79b2..ca4984b64 100644 --- a/androidApp/src/fdroid/kotlin/org/meshtastic/app/map/MapView.kt +++ b/androidApp/src/fdroid/kotlin/org/meshtastic/app/map/MapView.kt @@ -143,6 +143,7 @@ import org.meshtastic.feature.map.LastHeardFilter import org.meshtastic.feature.map.component.EditWaypointDialog import org.meshtastic.feature.map.component.MapButton import org.meshtastic.feature.map.component.MapControlsOverlay +import org.meshtastic.feature.map.component.WaypointInfoDialog import org.meshtastic.proto.Waypoint import org.osmdroid.bonuspack.utils.BonusPackHelper.getBitmapFromVectorDrawable import org.osmdroid.config.Configuration @@ -256,6 +257,7 @@ fun MapView( var showDownloadButton: Boolean by remember { mutableStateOf(false) } var showEditWaypointDialog by remember { mutableStateOf(null) } var showDeleteWaypointDialog by remember { mutableStateOf(null) } + var showGeofenceInfoDialog by remember { mutableStateOf(null) } var showCacheManagerDialog by remember { mutableStateOf(false) } var showCurrentCacheInfo by remember { mutableStateOf(false) } var showPurgeTileSourceDialog by remember { mutableStateOf(false) } @@ -424,11 +426,15 @@ fun MapView( performHapticFeedback() Logger.d { "marker long pressed id=$id" } val waypoint = waypoints[id]?.waypoint ?: return - // edit only when unlocked or lockedTo myNodeNum - if (waypoint.locked_to in setOf(0, mapViewModel.myNodeNum ?: 0) && isConnected) { - showEditWaypointDialog = waypoint - } else { - showDeleteWaypointDialog = waypoint + when { + // Foreign geofences: read-only view hosting the receiver-local crossing-alert opt-in. + waypoint.toGeofence() != null && !mapViewModel.isMyWaypoint(id) -> showGeofenceInfoDialog = waypoint + + // edit only when unlocked or lockedTo myNodeNum + waypoint.locked_to in setOf(0, mapViewModel.myNodeNum ?: 0) && isConnected -> + showEditWaypointDialog = waypoint + + else -> showDeleteWaypointDialog = waypoint } } @@ -819,6 +825,28 @@ fun MapView( ) } + showGeofenceInfoDialog?.let { waypoint -> + val optIns by mapViewModel.geofenceAlertOptIns.collectAsStateWithLifecycle() + WaypointInfoDialog( + waypoint = waypoint, + displayUnits = displayUnits, + alertsEnabled = waypoint.id in optIns, + onToggleAlerts = { mapViewModel.setGeofenceAlertOptIn(waypoint.id, it) }, + onDismissRequest = { showGeofenceInfoDialog = null }, + // Unlocked foreign geofences can still be edited/re-broadcast (only while connected, since editing means + // re-sending); locked ones stay read-only. + onEdit = + if (waypoint.locked_to == 0 && isConnected) { + { + showGeofenceInfoDialog = null + showEditWaypointDialog = waypoint + } + } else { + null + }, + ) + } + if (showDeleteWaypointDialog != null) { val waypoint = showDeleteWaypointDialog ?: return val canDeleteForEveryone = waypoint.locked_to in setOf(0, mapViewModel.myNodeNum ?: 0) && isConnected diff --git a/androidApp/src/fdroid/kotlin/org/meshtastic/app/map/MapViewModel.kt b/androidApp/src/fdroid/kotlin/org/meshtastic/app/map/MapViewModel.kt index c48b0d412..49ffec776 100644 --- a/androidApp/src/fdroid/kotlin/org/meshtastic/app/map/MapViewModel.kt +++ b/androidApp/src/fdroid/kotlin/org/meshtastic/app/map/MapViewModel.kt @@ -24,6 +24,7 @@ import org.koin.core.annotation.KoinViewModel import org.meshtastic.core.common.BuildConfigProvider import org.meshtastic.core.repository.MapPrefs import org.meshtastic.core.repository.NodeRepository +import org.meshtastic.core.repository.NotificationPrefs import org.meshtastic.core.repository.PacketRepository import org.meshtastic.core.repository.RadioConfigRepository import org.meshtastic.core.repository.RadioController @@ -37,9 +38,17 @@ class MapViewModel( nodeRepository: NodeRepository, radioController: RadioController, radioConfigRepository: RadioConfigRepository, + notificationPrefs: NotificationPrefs, buildConfigProvider: BuildConfigProvider, savedStateHandle: SavedStateHandle, -) : BaseMapViewModel(mapPrefs, nodeRepository, packetRepository, radioController, radioConfigRepository) { +) : BaseMapViewModel( + mapPrefs, + nodeRepository, + packetRepository, + radioController, + radioConfigRepository, + notificationPrefs, +) { private val _selectedWaypointId = MutableStateFlow(savedStateHandle.get("waypointId")) val selectedWaypointId: StateFlow = _selectedWaypointId.asStateFlow() diff --git a/androidApp/src/google/kotlin/org/meshtastic/app/map/MapView.kt b/androidApp/src/google/kotlin/org/meshtastic/app/map/MapView.kt index 7eafc1637..61a7c02c7 100644 --- a/androidApp/src/google/kotlin/org/meshtastic/app/map/MapView.kt +++ b/androidApp/src/google/kotlin/org/meshtastic/app/map/MapView.kt @@ -150,6 +150,7 @@ import org.meshtastic.feature.map.LastHeardFilter import org.meshtastic.feature.map.component.EditWaypointDialog import org.meshtastic.feature.map.component.MapButton import org.meshtastic.feature.map.component.MapControlsOverlay +import org.meshtastic.feature.map.component.WaypointInfoDialog import org.meshtastic.feature.map.tracerouteNodeSelection import org.meshtastic.proto.BoundingBox import org.meshtastic.proto.Config.DisplayConfig.DisplayUnits @@ -250,6 +251,7 @@ fun MapView( val mapFilterState by mapViewModel.mapFilterStateFlow.collectAsStateWithLifecycle() val ourNodeInfo by mapViewModel.ourNodeInfo.collectAsStateWithLifecycle() var editingWaypoint by remember { mutableStateOf(null) } + var geofenceInfoWaypoint by remember { mutableStateOf(null) } val displayUnits by mapViewModel.displayUnits.collectAsStateWithLifecycle() // --- Geofence box authoring (Main mode) --- @@ -648,6 +650,7 @@ fun MapView( myNodeNum = myNodeNum, isConnected = isConnected, onEditWaypointRequest = { editingWaypoint = it }, + onShowGeofenceInfo = { geofenceInfoWaypoint = it }, selectedWaypointId = selectedWaypointId, mapLayers = mapLayers, mapViewModel = mapViewModel, @@ -719,6 +722,28 @@ fun MapView( }, ) } + + geofenceInfoWaypoint?.let { waypoint -> + val optIns by mapViewModel.geofenceAlertOptIns.collectAsStateWithLifecycle() + WaypointInfoDialog( + waypoint = waypoint, + displayUnits = displayUnits, + alertsEnabled = waypoint.id in optIns, + onToggleAlerts = { mapViewModel.setGeofenceAlertOptIn(waypoint.id, it) }, + onDismissRequest = { geofenceInfoWaypoint = null }, + // Unlocked foreign geofences can still be edited/re-broadcast (only while connected, since editing + // means re-sending); locked ones stay read-only. + onEdit = + if (waypoint.locked_to == 0 && isConnected) { + { + geofenceInfoWaypoint = null + editingWaypoint = waypoint + } + } else { + null + }, + ) + } } // Box-authoring affordance: instruct the user to tap two corners, with a cancel that re-opens the editor. @@ -901,6 +926,7 @@ private fun MainMapContent( myNodeNum: Int?, isConnected: Boolean, onEditWaypointRequest: (Waypoint) -> Unit, + onShowGeofenceInfo: (Waypoint) -> Unit, selectedWaypointId: Int?, mapLayers: List, mapViewModel: MapViewModel, @@ -942,6 +968,8 @@ private fun MainMapContent( myNodeNum = myNodeNum ?: 0, isConnected = isConnected, onEditWaypointRequest = onEditWaypointRequest, + isMyWaypoint = mapViewModel::isMyWaypoint, + onShowGeofenceInfo = onShowGeofenceInfo, selectedWaypointId = selectedWaypointId, ) diff --git a/androidApp/src/google/kotlin/org/meshtastic/app/map/MapViewModel.kt b/androidApp/src/google/kotlin/org/meshtastic/app/map/MapViewModel.kt index c378dc6ef..6cd8a7b7d 100644 --- a/androidApp/src/google/kotlin/org/meshtastic/app/map/MapViewModel.kt +++ b/androidApp/src/google/kotlin/org/meshtastic/app/map/MapViewModel.kt @@ -52,6 +52,7 @@ import org.meshtastic.core.di.CoroutineDispatchers import org.meshtastic.core.model.NodeAddress import org.meshtastic.core.repository.MapPrefs import org.meshtastic.core.repository.NodeRepository +import org.meshtastic.core.repository.NotificationPrefs import org.meshtastic.core.repository.PacketRepository import org.meshtastic.core.repository.RadioConfigRepository import org.meshtastic.core.repository.RadioController @@ -91,8 +92,16 @@ class MapViewModel( radioController: RadioController, private val customTileProviderRepository: CustomTileProviderRepository, uiPrefs: UiPrefs, + notificationPrefs: NotificationPrefs, savedStateHandle: SavedStateHandle, -) : BaseMapViewModel(mapPrefs, nodeRepository, packetRepository, radioController, radioConfigRepository) { +) : BaseMapViewModel( + mapPrefs, + nodeRepository, + packetRepository, + radioController, + radioConfigRepository, + notificationPrefs, +) { private val _selectedWaypointId = MutableStateFlow(savedStateHandle.get("waypointId")) val selectedWaypointId: StateFlow = _selectedWaypointId.asStateFlow() diff --git a/androidApp/src/google/kotlin/org/meshtastic/app/map/component/WaypointMarkers.kt b/androidApp/src/google/kotlin/org/meshtastic/app/map/component/WaypointMarkers.kt index 97dd9a433..73b66698b 100644 --- a/androidApp/src/google/kotlin/org/meshtastic/app/map/component/WaypointMarkers.kt +++ b/androidApp/src/google/kotlin/org/meshtastic/app/map/component/WaypointMarkers.kt @@ -50,6 +50,8 @@ fun WaypointMarkers( myNodeNum: Int, isConnected: Boolean, onEditWaypointRequest: (Waypoint) -> Unit, + isMyWaypoint: (Int) -> Boolean, + onShowGeofenceInfo: (Waypoint) -> Unit, selectedWaypointId: Int? = null, ) { val scope = rememberCoroutineScope() @@ -92,10 +94,14 @@ fun WaypointMarkers( snippet = snippet, visible = true, onInfoWindowClick = { - if (waypoint.locked_to == 0 || waypoint.locked_to == myNodeNum || !isConnected) { - onEditWaypointRequest(waypoint) - } else { - scope.launch { context.showToast(Res.string.locked) } + when { + // Foreign geofences: read-only view hosting the receiver-local crossing-alert opt-in. + waypoint.toGeofence() != null && !isMyWaypoint(waypoint.id) -> onShowGeofenceInfo(waypoint) + + waypoint.locked_to == 0 || waypoint.locked_to == myNodeNum || !isConnected -> + onEditWaypointRequest(waypoint) + + else -> scope.launch { context.showToast(Res.string.locked) } } }, ) diff --git a/core/data/src/commonMain/kotlin/org/meshtastic/core/data/manager/GeofenceMonitor.kt b/core/data/src/commonMain/kotlin/org/meshtastic/core/data/manager/GeofenceMonitor.kt index 19908c568..3be4260f5 100644 --- a/core/data/src/commonMain/kotlin/org/meshtastic/core/data/manager/GeofenceMonitor.kt +++ b/core/data/src/commonMain/kotlin/org/meshtastic/core/data/manager/GeofenceMonitor.kt @@ -20,16 +20,18 @@ import co.touchlab.kermit.Logger import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.channels.Channel import kotlinx.coroutines.flow.catch +import kotlinx.coroutines.flow.combine import kotlinx.coroutines.launch import org.koin.core.annotation.Named import org.koin.core.annotation.Single import org.meshtastic.core.common.util.nowSeconds import org.meshtastic.core.model.geofence.activeWaypointPackets -import org.meshtastic.core.model.geofence.notifiesOnCrossing +import org.meshtastic.core.model.geofence.geofencesToMonitor import org.meshtastic.core.model.geofence.toGeofence import org.meshtastic.core.model.util.GeoConstants.DEG_D import org.meshtastic.core.repository.MeshNotificationManager import org.meshtastic.core.repository.NodeManager +import org.meshtastic.core.repository.NotificationPrefs import org.meshtastic.core.repository.PacketRepository import org.meshtastic.core.resources.Res import org.meshtastic.core.resources.geofence @@ -50,7 +52,10 @@ import kotlin.concurrent.Volatile * * Hooked from [MeshDataHandlerImpl.handlePosition]; holds the active geofence-bearing waypoints in memory (refreshed * from [PacketRepository.getWaypoints], normalised via [activeWaypointPackets] so stale/expired transmissions can't - * fire). Crossing state lives in [GeofenceCrossingStore] (in-memory, baseline-on-first-sighting). + * fire). By default only waypoints created by THIS device are tracked — geofences are mesh-broadcast, so without that + * filter every receiver in range would alert on the creator's crossings — but the user can opt in to specific foreign + * geofences via [NotificationPrefs.geofenceAlertOptIns]. Crossing state lives in [GeofenceCrossingStore] (in-memory, + * baseline-on-first-sighting). * * Received positions are funnelled through a single ordered worker so that two positions for the same node can never be * evaluated out of order (which would corrupt the inside/outside baseline and fire a spurious or missed alert). @@ -61,6 +66,7 @@ class GeofenceMonitor( private val nodeManager: NodeManager, private val serviceNotifications: MeshNotificationManager, private val crossingStore: GeofenceCrossingStore, + private val notificationPrefs: NotificationPrefs, @Named("ServiceScope") private val scope: CoroutineScope, ) { @@ -85,18 +91,19 @@ class GeofenceMonitor( } } } - // A bad emission must not tear down the snapshot for the rest of the session. + // A bad emission must not tear down the snapshot for the rest of the session. Combined with myNodeNum (so the + // creator-only filter recomputes once our node number is known — waypoints can arrive before we're connected) + // and the opt-in set (so subscribing to a foreign geofence takes effect immediately). scope.launch { - packetRepository.value - .getWaypoints() + combine( + packetRepository.value.getWaypoints(), + nodeManager.myNodeNum, + notificationPrefs.geofenceAlertOptIns, + ) { packets, myNodeNum, optIns -> + packets.activeWaypointPackets(nowSeconds).values.geofencesToMonitor(myNodeNum, optIns) + } .catch { Logger.e(it) { "Geofence waypoint stream failed; geofence tracking paused" } } - .collect { packets -> - val active = - packets - .activeWaypointPackets(nowSeconds) - .values - .mapNotNull { it.waypoint } - .filter { it.notifiesOnCrossing } + .collect { active -> activeGeofences = active crossingStore.retainOnly(active.map { it.id }.toSet()) } diff --git a/core/data/src/commonTest/kotlin/org/meshtastic/core/data/manager/GeofenceMonitorTest.kt b/core/data/src/commonTest/kotlin/org/meshtastic/core/data/manager/GeofenceMonitorTest.kt index df22ce3ae..5997c33cf 100644 --- a/core/data/src/commonTest/kotlin/org/meshtastic/core/data/manager/GeofenceMonitorTest.kt +++ b/core/data/src/commonTest/kotlin/org/meshtastic/core/data/manager/GeofenceMonitorTest.kt @@ -25,6 +25,7 @@ import dev.mokkery.verify.VerifyMode.Companion.exactly import dev.mokkery.verifySuspend import kotlinx.coroutines.ExperimentalCoroutinesApi import kotlinx.coroutines.cancel +import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.coroutines.flow.flowOf import kotlinx.coroutines.test.StandardTestDispatcher import kotlinx.coroutines.test.TestScope @@ -34,6 +35,7 @@ import org.meshtastic.core.model.DataPacket import org.meshtastic.core.model.Node import org.meshtastic.core.repository.MeshNotificationManager import org.meshtastic.core.repository.NodeManager +import org.meshtastic.core.repository.NotificationPrefs import org.meshtastic.core.repository.PacketRepository import org.meshtastic.proto.Position import org.meshtastic.proto.Waypoint @@ -72,33 +74,59 @@ class GeofenceMonitorTest { notify_favorites_only = favoritesOnly, ) + private data class Mocks( + val packetRepository: PacketRepository, + val nodeManager: NodeManager, + val notifications: MeshNotificationManager, + val notificationPrefs: NotificationPrefs, + ) + private fun mocks( wp: Waypoint, senderIsFavorite: Boolean = false, - ): Triple { + createdByLocal: Boolean = true, + optedInIds: Set = emptySet(), + ): Mocks { val packetRepository: PacketRepository = mock(MockMode.autofill) val nodeManager: NodeManager = mock(MockMode.autofill) val notifications: MeshNotificationManager = mock(MockMode.autofill) - every { packetRepository.getWaypoints() } returns - flowOf(listOf(DataPacket(to = "!abcdabcd", channel = 0, waypoint = wp))) + val notificationPrefs: NotificationPrefs = mock(MockMode.autofill) + // from defaults to ^local (locally created); a remote creator uses another node's hex id. + val packet = + DataPacket(to = "!abcdabcd", channel = 0, waypoint = wp).also { + if (!createdByLocal) it.from = "!0000000$sender" + } + every { packetRepository.getWaypoints() } returns flowOf(listOf(packet)) + every { nodeManager.myNodeNum } returns MutableStateFlow(myNodeNum) every { nodeManager.nodeDBbyNodeNum } returns mapOf(sender to Node(num = sender, isFavorite = senderIsFavorite)) - return Triple(packetRepository, nodeManager, notifications) + every { notificationPrefs.geofenceAlertOptIns } returns MutableStateFlow(optedInIds) + return Mocks(packetRepository, nodeManager, notifications, notificationPrefs) } private fun expectNoNotification( wp: Waypoint, senderIsFavorite: Boolean = false, + createdByLocal: Boolean = true, + optedInIds: Set = emptySet(), drive: (GeofenceMonitor) -> Unit, ) = runTest { val scope = TestScope(StandardTestDispatcher(testScheduler)) - val (repo, nodes, notifications) = mocks(wp, senderIsFavorite) - val monitor = GeofenceMonitor(lazy { repo }, nodes, notifications, GeofenceCrossingStore(), scope) + val m = mocks(wp, senderIsFavorite, createdByLocal, optedInIds) + val monitor = + GeofenceMonitor( + lazy { m.packetRepository }, + m.nodeManager, + m.notifications, + GeofenceCrossingStore(), + m.notificationPrefs, + scope, + ) scope.advanceUntilIdle() // collect the active-geofence snapshot drive(monitor) scope.advanceUntilIdle() - verifySuspend(exactly(0)) { notifications.updateWaypointNotification(any(), any(), any(), any(), any()) } + verifySuspend(exactly(0)) { m.notifications.updateWaypointNotification(any(), any(), any(), any(), any()) } scope.cancel() // stop the serial worker so runTest sees no leaked coroutine } @@ -118,6 +146,12 @@ class GeofenceMonitorTest { m.onPositionReceived(myNodeNum, myNodeNum, inside) // sender == self } + @Test + fun remoteCreatedGeofenceDoesNotNotify() = expectNoNotification(waypoint(), createdByLocal = false) { m -> + m.onPositionReceived(sender, myNodeNum, outside) // baseline + m.onPositionReceived(sender, myNodeNum, inside) // genuine ENTER, but we didn't create this geofence + } + @Test fun enterOnlyWaypointDoesNotNotifyOnExit() = expectNoNotification(waypoint(enter = true, exit = false)) { m -> m.onPositionReceived(sender, myNodeNum, inside) // baseline inside diff --git a/core/data/src/commonTest/kotlin/org/meshtastic/core/data/manager/MeshDataHandlerTest.kt b/core/data/src/commonTest/kotlin/org/meshtastic/core/data/manager/MeshDataHandlerTest.kt index eeb13d0a5..1b149d6b6 100644 --- a/core/data/src/commonTest/kotlin/org/meshtastic/core/data/manager/MeshDataHandlerTest.kt +++ b/core/data/src/commonTest/kotlin/org/meshtastic/core/data/manager/MeshDataHandlerTest.kt @@ -56,6 +56,7 @@ import org.meshtastic.core.repository.ServiceRepository import org.meshtastic.core.repository.StoreForwardPacketHandler import org.meshtastic.core.repository.TelemetryPacketHandler import org.meshtastic.core.repository.TracerouteHandler +import org.meshtastic.core.testing.FakeNotificationPrefs import org.meshtastic.proto.ChannelSet import org.meshtastic.proto.ChannelSettings import org.meshtastic.proto.Data @@ -147,6 +148,7 @@ class MeshDataHandlerTest { nodeManager = nodeManager, serviceNotifications = serviceNotifications, crossingStore = GeofenceCrossingStore(), + notificationPrefs = FakeNotificationPrefs(), scope = geofenceScope, ), meshBeaconRepository = meshBeaconRepository, diff --git a/core/model/src/commonMain/kotlin/org/meshtastic/core/model/geofence/ActiveWaypoints.kt b/core/model/src/commonMain/kotlin/org/meshtastic/core/model/geofence/ActiveWaypoints.kt index bb35e166a..4ad7d4ee5 100644 --- a/core/model/src/commonMain/kotlin/org/meshtastic/core/model/geofence/ActiveWaypoints.kt +++ b/core/model/src/commonMain/kotlin/org/meshtastic/core/model/geofence/ActiveWaypoints.kt @@ -17,6 +17,8 @@ package org.meshtastic.core.model.geofence import org.meshtastic.core.model.DataPacket +import org.meshtastic.core.model.isFromLocal +import org.meshtastic.proto.Waypoint /** * Collapse a raw waypoint-packet list into the set of currently active waypoints, keyed by waypoint id. @@ -33,3 +35,14 @@ fun List.activeWaypointPackets(nowSeconds: Long): Map nowSeconds } + +/** + * The geofences whose crossings THIS device should raise notifications for: waypoints we created ([isFromLocal]) plus + * any the user has explicitly opted into ([optedInIds]). Foreign geofences are excluded by default because waypoints + * are mesh-broadcast — every receiver stores them, so without this gate everyone in range would alert on the creator's + * crossings. Only waypoints that actually request crossing notifications ([notifiesOnCrossing]) survive. + */ +fun Collection.geofencesToMonitor(myNodeNum: Int?, optedInIds: Set): List = + filter { it.isFromLocal(myNodeNum) || (it.waypoint?.id in optedInIds) } + .mapNotNull { it.waypoint } + .filter { it.notifiesOnCrossing } diff --git a/core/model/src/commonTest/kotlin/org/meshtastic/core/model/geofence/ActiveWaypointsTest.kt b/core/model/src/commonTest/kotlin/org/meshtastic/core/model/geofence/ActiveWaypointsTest.kt index 6d15d441f..c0aa57218 100644 --- a/core/model/src/commonTest/kotlin/org/meshtastic/core/model/geofence/ActiveWaypointsTest.kt +++ b/core/model/src/commonTest/kotlin/org/meshtastic/core/model/geofence/ActiveWaypointsTest.kt @@ -53,4 +53,38 @@ class ActiveWaypointsTest { assertTrue(result.containsKey(2)) assertTrue(result.containsKey(3)) } + + private val myNodeNum = 7 + + private fun geofence(id: Int) = Waypoint(id = id, geofence_radius = 100, notify_on_enter = true) + + private fun localPacket(wp: Waypoint) = DataPacket(to = "!abcdabcd", channel = 0, waypoint = wp) // from = ^local + + private fun remotePacket(wp: Waypoint) = + DataPacket(to = "!abcdabcd", channel = 0, waypoint = wp).also { it.from = "!00000009" } // node 9 + + @Test + fun geofencesToMonitorKeepsOwnDropsForeign() { + val packets = listOf(localPacket(geofence(1)), remotePacket(geofence(2))) + + val monitored = packets.geofencesToMonitor(myNodeNum, optedInIds = emptySet()).map { it.id } + + assertEquals(listOf(1), monitored) // only the locally-created geofence + } + + @Test + fun geofencesToMonitorIncludesOptedInForeign() { + val packets = listOf(localPacket(geofence(1)), remotePacket(geofence(2))) + + val monitored = packets.geofencesToMonitor(myNodeNum, optedInIds = setOf(2)).map { it.id }.sorted() + + assertEquals(listOf(1, 2), monitored) // opting into #2 adds the foreign geofence back + } + + @Test + fun geofencesToMonitorDropsWaypointsWithNoCrossingNotifications() { + val silent = localPacket(Waypoint(id = 1, geofence_radius = 100)) // notify_on_enter/exit both false + + assertTrue(listOf(silent).geofencesToMonitor(myNodeNum, optedInIds = emptySet()).isEmpty()) + } } diff --git a/core/prefs/src/commonMain/kotlin/org/meshtastic/core/prefs/notification/NotificationPrefsImpl.kt b/core/prefs/src/commonMain/kotlin/org/meshtastic/core/prefs/notification/NotificationPrefsImpl.kt index 763e92834..b30167d7d 100644 --- a/core/prefs/src/commonMain/kotlin/org/meshtastic/core/prefs/notification/NotificationPrefsImpl.kt +++ b/core/prefs/src/commonMain/kotlin/org/meshtastic/core/prefs/notification/NotificationPrefsImpl.kt @@ -20,6 +20,7 @@ import androidx.datastore.core.DataStore import androidx.datastore.preferences.core.Preferences import androidx.datastore.preferences.core.booleanPreferencesKey import androidx.datastore.preferences.core.edit +import androidx.datastore.preferences.core.stringPreferencesKey import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.SupervisorJob import kotlinx.coroutines.flow.SharingStarted @@ -67,10 +68,39 @@ class NotificationPrefsImpl( scope.launch { dataStore.edit { it[KEY_LOW_BATTERY_ENABLED] = enabled } } } - private companion object { - val KEY_MESSAGES_ENABLED = booleanPreferencesKey("notif_messages_enabled") - val KEY_NODE_EVENTS_ENABLED = booleanPreferencesKey("notif_node_events_enabled") - val KEY_NODE_EVENTS_AUTO_DISABLED = booleanPreferencesKey("notif_node_events_auto_disabled_event") - val KEY_LOW_BATTERY_ENABLED = booleanPreferencesKey("notif_low_battery_enabled") + // Stored as an insertion-ordered CSV of ints (DataStore has no int-set key, and a plain set can't express age). + // Ordering lets us evict the oldest opt-in once capped; non-numeric leftovers are ignored on read. + override val geofenceAlertOptIns: StateFlow> = + dataStore.data + .map { prefs -> parseOptInIds(prefs[KEY_GEOFENCE_ALERT_OPT_INS]).toSet() } + .stateIn(scope, SharingStarted.Eagerly, emptySet()) + + override fun setGeofenceAlertOptIn(waypointId: Int, enabled: Boolean) { + scope.launch { + dataStore.edit { prefs -> + val ids = parseOptInIds(prefs[KEY_GEOFENCE_ALERT_OPT_INS]).toMutableList() + ids.remove(waypointId) // re-toggling moves it to the most-recent slot + if (enabled) { + ids.add(waypointId) + // Bound growth: opt-ins accumulate as waypoints churn, so keep only the most-recent MAX. + while (ids.size > MAX_GEOFENCE_OPT_INS) ids.removeAt(0) + } + prefs[KEY_GEOFENCE_ALERT_OPT_INS] = ids.joinToString(",") + } + } + } + + companion object { + /** Cap on remembered foreign-geofence opt-ins; far above realistic manual use, oldest evicted past it. */ + const val MAX_GEOFENCE_OPT_INS = 100 + + private fun parseOptInIds(csv: String?): List = + csv?.split(',')?.mapNotNull { it.toIntOrNull() }?.distinct() ?: emptyList() + + private val KEY_MESSAGES_ENABLED = booleanPreferencesKey("notif_messages_enabled") + private val KEY_NODE_EVENTS_ENABLED = booleanPreferencesKey("notif_node_events_enabled") + private val KEY_NODE_EVENTS_AUTO_DISABLED = booleanPreferencesKey("notif_node_events_auto_disabled_event") + private val KEY_LOW_BATTERY_ENABLED = booleanPreferencesKey("notif_low_battery_enabled") + private val KEY_GEOFENCE_ALERT_OPT_INS = stringPreferencesKey("notif_geofence_alert_opt_ins") } } diff --git a/core/prefs/src/commonTest/kotlin/org/meshtastic/core/prefs/notification/NotificationPrefsTest.kt b/core/prefs/src/commonTest/kotlin/org/meshtastic/core/prefs/notification/NotificationPrefsTest.kt index b628e1010..1ab64cbe3 100644 --- a/core/prefs/src/commonTest/kotlin/org/meshtastic/core/prefs/notification/NotificationPrefsTest.kt +++ b/core/prefs/src/commonTest/kotlin/org/meshtastic/core/prefs/notification/NotificationPrefsTest.kt @@ -29,6 +29,7 @@ import org.meshtastic.core.repository.NotificationPrefs import kotlin.test.AfterTest import kotlin.test.BeforeTest import kotlin.test.Test +import kotlin.test.assertEquals import kotlin.test.assertFalse import kotlin.test.assertTrue import kotlin.uuid.Uuid @@ -89,4 +90,48 @@ class NotificationPrefsTest { notificationPrefs.setLowBatteryEnabled(false) assertFalse(notificationPrefs.lowBatteryEnabled.value) } + + @Test + fun `geofenceAlertOptIns defaults to empty`() = + testScope.runTest { assertTrue(notificationPrefs.geofenceAlertOptIns.value.isEmpty()) } + + @Test + fun `geofenceAlertOptIns adds and removes waypoint ids`() = testScope.runTest { + notificationPrefs.setGeofenceAlertOptIn(42, enabled = true) + notificationPrefs.setGeofenceAlertOptIn(7, enabled = true) + assertEquals(setOf(7, 42), notificationPrefs.geofenceAlertOptIns.value) + + notificationPrefs.setGeofenceAlertOptIn(42, enabled = false) + assertEquals(setOf(7), notificationPrefs.geofenceAlertOptIns.value) + } + + @Test + fun `geofenceAlertOptIns caps size and evicts oldest`() = testScope.runTest { + val max = NotificationPrefsImpl.MAX_GEOFENCE_OPT_INS + (1..max + 2).forEach { notificationPrefs.setGeofenceAlertOptIn(it, enabled = true) } + + val ids = notificationPrefs.geofenceAlertOptIns.value + assertEquals(max, ids.size) + assertFalse(1 in ids) // oldest two evicted + assertFalse(2 in ids) + assertTrue(max + 2 in ids) // newest kept + } + + @Test + fun `geofenceAlertOptIns retoggle refreshes eviction order`() = testScope.runTest { + val max = NotificationPrefsImpl.MAX_GEOFENCE_OPT_INS + (1..max).forEach { notificationPrefs.setGeofenceAlertOptIn(it, enabled = true) } // 1 = oldest + + notificationPrefs.setGeofenceAlertOptIn( + 1, + enabled = true, + ) // re-toggle → 1 becomes most-recent, 2 now oldest + notificationPrefs.setGeofenceAlertOptIn(max + 1, enabled = true) // forces one eviction + + val ids = notificationPrefs.geofenceAlertOptIns.value + assertEquals(max, ids.size) + assertTrue(1 in ids) // retoggled id survived + assertFalse(2 in ids) // 2 became the oldest and was evicted + assertTrue(max + 1 in ids) + } } diff --git a/core/repository/src/commonMain/kotlin/org/meshtastic/core/repository/AppPreferences.kt b/core/repository/src/commonMain/kotlin/org/meshtastic/core/repository/AppPreferences.kt index da9b01218..073b0b4d1 100644 --- a/core/repository/src/commonMain/kotlin/org/meshtastic/core/repository/AppPreferences.kt +++ b/core/repository/src/commonMain/kotlin/org/meshtastic/core/repository/AppPreferences.kt @@ -204,6 +204,14 @@ interface NotificationPrefs { val lowBatteryEnabled: StateFlow fun setLowBatteryEnabled(enabled: Boolean) + + /** + * Waypoint ids of foreign (not locally-created) geofences the user has opted in to receiving crossing alerts for. + * Geofences are mesh-broadcast, so by default only the creator is alerted; this is the per-geofence opt-in. + */ + val geofenceAlertOptIns: StateFlow> + + fun setGeofenceAlertOptIn(waypointId: Int, enabled: Boolean) } /** Reactive interface for general map preferences. */ diff --git a/core/resources/src/commonMain/composeResources/values/strings.xml b/core/resources/src/commonMain/composeResources/values/strings.xml index 85c963a01..dc1abcf61 100644 --- a/core/resources/src/commonMain/composeResources/values/strings.xml +++ b/core/resources/src/commonMain/composeResources/values/strings.xml @@ -693,6 +693,8 @@ Generate QR Code Geofence + Notify me of crossings + Get an alert when nodes enter or leave this geofence Confirm area Tap two corners to define the area Pan the map to frame the area, then tap Confirm area diff --git a/core/testing/src/commonMain/kotlin/org/meshtastic/core/testing/FakeNotificationPrefs.kt b/core/testing/src/commonMain/kotlin/org/meshtastic/core/testing/FakeNotificationPrefs.kt index 15149f5f2..8c8825e61 100644 --- a/core/testing/src/commonMain/kotlin/org/meshtastic/core/testing/FakeNotificationPrefs.kt +++ b/core/testing/src/commonMain/kotlin/org/meshtastic/core/testing/FakeNotificationPrefs.kt @@ -43,4 +43,11 @@ class FakeNotificationPrefs : NotificationPrefs { override fun setLowBatteryEnabled(enabled: Boolean) { lowBatteryEnabled.value = enabled } + + override val geofenceAlertOptIns = MutableStateFlow>(emptySet()) + + override fun setGeofenceAlertOptIn(waypointId: Int, enabled: Boolean) { + geofenceAlertOptIns.value = + geofenceAlertOptIns.value.toMutableSet().apply { if (enabled) add(waypointId) else remove(waypointId) } + } } diff --git a/desktopApp/src/test/kotlin/org/meshtastic/desktop/notification/DesktopNotificationManagerTest.kt b/desktopApp/src/test/kotlin/org/meshtastic/desktop/notification/DesktopNotificationManagerTest.kt index 9d50ceb7d..ed16d102f 100644 --- a/desktopApp/src/test/kotlin/org/meshtastic/desktop/notification/DesktopNotificationManagerTest.kt +++ b/desktopApp/src/test/kotlin/org/meshtastic/desktop/notification/DesktopNotificationManagerTest.kt @@ -67,6 +67,13 @@ class DesktopNotificationManagerTest { override fun setLowBatteryEnabled(enabled: Boolean) { lowBatteryEnabled.value = enabled } + + override val geofenceAlertOptIns = MutableStateFlow>(emptySet()) + + override fun setGeofenceAlertOptIn(waypointId: Int, enabled: Boolean) { + geofenceAlertOptIns.value = + geofenceAlertOptIns.value.toMutableSet().apply { if (enabled) add(waypointId) else remove(waypointId) } + } } @Test diff --git a/feature/map/src/androidMain/kotlin/org/meshtastic/feature/map/component/WaypointInfoDialog.kt b/feature/map/src/androidMain/kotlin/org/meshtastic/feature/map/component/WaypointInfoDialog.kt new file mode 100644 index 000000000..060bf820b --- /dev/null +++ b/feature/map/src/androidMain/kotlin/org/meshtastic/feature/map/component/WaypointInfoDialog.kt @@ -0,0 +1,112 @@ +/* + * Copyright (c) 2026 Meshtastic LLC + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package org.meshtastic.feature.map.component + +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.Spacer +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.size +import androidx.compose.material3.AlertDialog +import androidx.compose.material3.HorizontalDivider +import androidx.compose.material3.MaterialTheme +import androidx.compose.material3.Switch +import androidx.compose.material3.Text +import androidx.compose.material3.TextButton +import androidx.compose.runtime.Composable +import androidx.compose.ui.Modifier +import androidx.compose.ui.text.font.FontWeight +import androidx.compose.ui.unit.dp +import org.jetbrains.compose.resources.stringResource +import org.meshtastic.core.model.util.toDistanceString +import org.meshtastic.core.resources.Res +import org.meshtastic.core.resources.close +import org.meshtastic.core.resources.edit +import org.meshtastic.core.resources.geofence +import org.meshtastic.core.resources.geofence_alerts_opt_in +import org.meshtastic.core.resources.geofence_alerts_opt_in_desc +import org.meshtastic.core.resources.geofence_radius +import org.meshtastic.core.resources.geofence_set_area +import org.meshtastic.core.ui.component.BasicListItem +import org.meshtastic.proto.Config.DisplayConfig.DisplayUnits +import org.meshtastic.proto.Waypoint + +/** + * Read-only view of a geofence waypoint the local device did NOT create. Editing/re-broadcasting someone else's + * geofence is not offered here; the one interactive control is the receiver-local opt-in that decides whether THIS + * device raises crossing notifications for it (foreign geofences are silent by default — see + * [org.meshtastic.core.data.manager .GeofenceMonitor]). Reached for both locked and unlocked foreign geofences, so the + * locked case gets a view at all. Unlocked foreign geofences are still editable — [onEdit], when non-null, opens the + * full editor. + */ +@Composable +fun WaypointInfoDialog( + waypoint: Waypoint, + displayUnits: DisplayUnits, + alertsEnabled: Boolean, + onToggleAlerts: (Boolean) -> Unit, + onDismissRequest: () -> Unit, + onEdit: (() -> Unit)? = null, + modifier: Modifier = Modifier, +) { + val emoji = if (waypoint.icon == 0) PUSHPIN else waypoint.icon + val title = waypoint.name.takeIf { it.isNotBlank() } ?: stringResource(Res.string.geofence) + + AlertDialog( + onDismissRequest = onDismissRequest, + title = { Text(text = "${String(Character.toChars(emoji))} $title", fontWeight = FontWeight.Bold) }, + text = { + Column(modifier = Modifier.fillMaxWidth()) { + if (waypoint.description.isNotBlank()) { + Text(waypoint.description, style = MaterialTheme.typography.bodyMedium) + Spacer(modifier = Modifier.size(8.dp)) + } + if (waypoint.geofence_radius > 0) { + Text( + "${stringResource(Res.string.geofence_radius)}: " + + waypoint.geofence_radius.toDistanceString(displayUnits), + style = MaterialTheme.typography.bodyMedium, + ) + } + if (waypoint.bounding_box != null) { + Text(stringResource(Res.string.geofence_set_area), style = MaterialTheme.typography.bodyMedium) + } + + Spacer(modifier = Modifier.size(8.dp)) + HorizontalDivider() + + // The one interactive control: whether this device alerts on crossings of a geofence it didn't create. + BasicListItem( + text = stringResource(Res.string.geofence_alerts_opt_in), + supportingText = stringResource(Res.string.geofence_alerts_opt_in_desc), + trailingContent = { Switch(checked = alertsEnabled, onCheckedChange = null) }, + onClick = { onToggleAlerts(!alertsEnabled) }, + ) + } + }, + confirmButton = { TextButton(onClick = onDismissRequest) { Text(stringResource(Res.string.close)) } }, + // Unlocked foreign geofences stay editable; the button is absent for locked ones. + dismissButton = + if (onEdit != null) { + { TextButton(onClick = onEdit) { Text(stringResource(Res.string.edit)) } } + } else { + null + }, + modifier = modifier, + ) +} + +private const val PUSHPIN = 0x1F4CD // 📍 Round Pushpin diff --git a/feature/map/src/androidMain/kotlin/org/meshtastic/feature/map/component/WaypointInfoDialogPreviews.kt b/feature/map/src/androidMain/kotlin/org/meshtastic/feature/map/component/WaypointInfoDialogPreviews.kt new file mode 100644 index 000000000..3f6277598 --- /dev/null +++ b/feature/map/src/androidMain/kotlin/org/meshtastic/feature/map/component/WaypointInfoDialogPreviews.kt @@ -0,0 +1,68 @@ +/* + * Copyright (c) 2026 Meshtastic LLC + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package org.meshtastic.feature.map.component + +import androidx.compose.runtime.Composable +import androidx.compose.ui.tooling.preview.PreviewLightDark +import org.meshtastic.core.ui.theme.AppTheme +import org.meshtastic.proto.Config.DisplayConfig.DisplayUnits +import org.meshtastic.proto.Waypoint + +private fun sampleGeofence(lockedTo: Int) = Waypoint( + id = 42, + name = "Trailhead", + description = "North gate of the reserve", + latitude_i = 377_749_000, + longitude_i = -1_224_194_000, + geofence_radius = 500, + notify_on_enter = true, + locked_to = lockedTo, +) + +/** Locked foreign geofence: read-only, opt-in off, no Edit affordance. */ +@PreviewLightDark +@Composable +@Suppress("PreviewPublic") +fun WaypointInfoDialogReadOnlyPreview() { + AppTheme { + WaypointInfoDialog( + waypoint = sampleGeofence(lockedTo = 7), + displayUnits = DisplayUnits.METRIC, + alertsEnabled = false, + onToggleAlerts = {}, + onDismissRequest = {}, + onEdit = null, + ) + } +} + +/** Unlocked foreign geofence: opted in, with the Edit affordance into the full editor. */ +@PreviewLightDark +@Composable +@Suppress("PreviewPublic") +fun WaypointInfoDialogOptedInPreview() { + AppTheme { + WaypointInfoDialog( + waypoint = sampleGeofence(lockedTo = 0), + displayUnits = DisplayUnits.METRIC, + alertsEnabled = true, + onToggleAlerts = {}, + onDismissRequest = {}, + onEdit = {}, + ) + } +} diff --git a/feature/map/src/commonMain/kotlin/org/meshtastic/feature/map/BaseMapViewModel.kt b/feature/map/src/commonMain/kotlin/org/meshtastic/feature/map/BaseMapViewModel.kt index b98333eb1..f84647a77 100644 --- a/feature/map/src/commonMain/kotlin/org/meshtastic/feature/map/BaseMapViewModel.kt +++ b/feature/map/src/commonMain/kotlin/org/meshtastic/feature/map/BaseMapViewModel.kt @@ -32,9 +32,11 @@ import org.meshtastic.core.model.Node import org.meshtastic.core.model.NodeAddress import org.meshtastic.core.model.TracerouteOverlay import org.meshtastic.core.model.geofence.activeWaypointPackets +import org.meshtastic.core.model.isFromLocal import org.meshtastic.core.model.util.DistanceUnit import org.meshtastic.core.repository.MapPrefs import org.meshtastic.core.repository.NodeRepository +import org.meshtastic.core.repository.NotificationPrefs import org.meshtastic.core.repository.PacketRepository import org.meshtastic.core.repository.RadioConfigRepository import org.meshtastic.core.repository.RadioController @@ -63,6 +65,7 @@ open class BaseMapViewModel( private val packetRepository: PacketRepository, private val radioController: RadioController, private val radioConfigRepository: RadioConfigRepository, + private val notificationPrefs: NotificationPrefs, ) : ViewModel() { val myNodeInfo = nodeRepository.myNodeInfo @@ -105,6 +108,15 @@ open class BaseMapViewModel( .mapLatest { list -> list.activeWaypointPackets(nowSeconds) } .stateInWhileSubscribed(initialValue = emptyMap()) + /** Waypoint ids of foreign geofences the user opted in to crossing alerts for (see [NotificationPrefs]). */ + val geofenceAlertOptIns: StateFlow> = notificationPrefs.geofenceAlertOptIns + + fun setGeofenceAlertOptIn(waypointId: Int, enabled: Boolean) = + notificationPrefs.setGeofenceAlertOptIn(waypointId, enabled) + + /** True if the waypoint with [id] was created by this device (vs. received from another node over the mesh). */ + fun isMyWaypoint(id: Int): Boolean = waypoints.value[id]?.isFromLocal(myNodeNum) == true + private val showOnlyFavorites = MutableStateFlow(mapPrefs.showOnlyFavorites.value) val showOnlyFavoritesOnMap: StateFlow = showOnlyFavorites.asStateFlow() diff --git a/feature/map/src/commonMain/kotlin/org/meshtastic/feature/map/SharedMapViewModel.kt b/feature/map/src/commonMain/kotlin/org/meshtastic/feature/map/SharedMapViewModel.kt index 6c9f6e650..482e7702f 100644 --- a/feature/map/src/commonMain/kotlin/org/meshtastic/feature/map/SharedMapViewModel.kt +++ b/feature/map/src/commonMain/kotlin/org/meshtastic/feature/map/SharedMapViewModel.kt @@ -19,6 +19,7 @@ package org.meshtastic.feature.map import org.koin.core.annotation.KoinViewModel import org.meshtastic.core.repository.MapPrefs import org.meshtastic.core.repository.NodeRepository +import org.meshtastic.core.repository.NotificationPrefs import org.meshtastic.core.repository.PacketRepository import org.meshtastic.core.repository.RadioConfigRepository import org.meshtastic.core.repository.RadioController @@ -30,4 +31,12 @@ class SharedMapViewModel( packetRepository: PacketRepository, radioController: RadioController, radioConfigRepository: RadioConfigRepository, -) : BaseMapViewModel(mapPrefs, nodeRepository, packetRepository, radioController, radioConfigRepository) + notificationPrefs: NotificationPrefs, +) : BaseMapViewModel( + mapPrefs, + nodeRepository, + packetRepository, + radioController, + radioConfigRepository, + notificationPrefs, +) diff --git a/feature/map/src/commonTest/kotlin/org/meshtastic/feature/map/BaseMapViewModelTest.kt b/feature/map/src/commonTest/kotlin/org/meshtastic/feature/map/BaseMapViewModelTest.kt index d9cf52da7..909c3bcb2 100644 --- a/feature/map/src/commonTest/kotlin/org/meshtastic/feature/map/BaseMapViewModelTest.kt +++ b/feature/map/src/commonTest/kotlin/org/meshtastic/feature/map/BaseMapViewModelTest.kt @@ -34,6 +34,7 @@ import org.meshtastic.core.model.NodeAddress import org.meshtastic.core.repository.MapPrefs import org.meshtastic.core.repository.PacketRepository import org.meshtastic.core.testing.FakeNodeRepository +import org.meshtastic.core.testing.FakeNotificationPrefs import org.meshtastic.core.testing.FakeRadioConfigRepository import org.meshtastic.core.testing.FakeRadioController import org.meshtastic.core.testing.TestDataFactory @@ -80,6 +81,7 @@ class BaseMapViewModelTest { packetRepository = packetRepository, radioController = radioController, radioConfigRepository = radioConfigRepository, + notificationPrefs = FakeNotificationPrefs(), ) } diff --git a/screenshot-tests/src/screenshotTest/kotlin/org/meshtastic/screenshots/feature/MapScreenshotTests.kt b/screenshot-tests/src/screenshotTest/kotlin/org/meshtastic/screenshots/feature/MapScreenshotTests.kt index aa084f4b5..7ed5b7304 100644 --- a/screenshot-tests/src/screenshotTest/kotlin/org/meshtastic/screenshots/feature/MapScreenshotTests.kt +++ b/screenshot-tests/src/screenshotTest/kotlin/org/meshtastic/screenshots/feature/MapScreenshotTests.kt @@ -20,6 +20,8 @@ import androidx.compose.runtime.Composable import androidx.compose.ui.tooling.preview.PreviewLightDark import com.android.tools.screenshot.PreviewTest import org.meshtastic.feature.map.component.MapControlsOverlayPreview +import org.meshtastic.feature.map.component.WaypointInfoDialogOptedInPreview +import org.meshtastic.feature.map.component.WaypointInfoDialogReadOnlyPreview @PreviewTest @PreviewLightDark @@ -27,3 +29,17 @@ import org.meshtastic.feature.map.component.MapControlsOverlayPreview fun ScreenshotMapControlsOverlay() { MapControlsOverlayPreview() } + +@PreviewTest +@PreviewLightDark +@Composable +fun ScreenshotWaypointInfoDialogReadOnly() { + WaypointInfoDialogReadOnlyPreview() +} + +@PreviewTest +@PreviewLightDark +@Composable +fun ScreenshotWaypointInfoDialogOptedIn() { + WaypointInfoDialogOptedInPreview() +} diff --git a/screenshot-tests/src/screenshotTestDebug/reference/org/meshtastic/screenshots/feature/MapScreenshotTestsKt/ScreenshotWaypointInfoDialogOptedIn_Dark_d19fbf1f_0.png b/screenshot-tests/src/screenshotTestDebug/reference/org/meshtastic/screenshots/feature/MapScreenshotTestsKt/ScreenshotWaypointInfoDialogOptedIn_Dark_d19fbf1f_0.png new file mode 100644 index 0000000000000000000000000000000000000000..cb34475fc4b0adc627e6a3a85e0a3912a0813329 GIT binary patch literal 46576 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 wX$(>fH=2X;+-7(<|mu*9y&CI73 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 CQ5pah6AII}NuE@uFnjCCAYzzzx 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

nCLTr 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ⅈuBBmSa?6 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 literal 0 HcmV?d00001 diff --git a/screenshot-tests/src/screenshotTestDebug/reference/org/meshtastic/screenshots/feature/MapScreenshotTestsKt/ScreenshotWaypointInfoDialogReadOnly_Light_b29dc7a7_0.png b/screenshot-tests/src/screenshotTestDebug/reference/org/meshtastic/screenshots/feature/MapScreenshotTestsKt/ScreenshotWaypointInfoDialogReadOnly_Light_b29dc7a7_0.png new file mode 100644 index 0000000000000000000000000000000000000000..abf647e3c76ea05c39fa9a1318c853c4a01610c2 GIT binary patch literal 46849 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