From 3984c97e39b154fd6948fa169408fa367562902a Mon Sep 17 00:00:00 2001
From: Phil Oliver <3497406+poliver@users.noreply.github.com>
Date: Sun, 12 Oct 2025 16:27:27 -0400
Subject: [PATCH] Move `NodeMapScreen` to `:feature:map` (#3443)
---
.../java/com/geeksville/mesh/navigation/NodesNavigation.kt | 2 +-
.../org/meshtastic/feature/map}/node/NodeMapScreen.kt | 3 +--
.../org/meshtastic/feature/map}/node/NodeMapScreen.kt | 3 +--
feature/messaging/detekt-baseline.xml | 6 ------
4 files changed, 3 insertions(+), 11 deletions(-)
rename {app/src/fdroid/java/com/geeksville/mesh/ui => feature/map/src/fdroid/kotlin/org/meshtastic/feature/map}/node/NodeMapScreen.kt (96%)
rename {app/src/google/java/com/geeksville/mesh/ui => feature/map/src/google/kotlin/org/meshtastic/feature/map}/node/NodeMapScreen.kt (95%)
diff --git a/app/src/main/java/com/geeksville/mesh/navigation/NodesNavigation.kt b/app/src/main/java/com/geeksville/mesh/navigation/NodesNavigation.kt
index 7611bf388..c646c3388 100644
--- a/app/src/main/java/com/geeksville/mesh/navigation/NodesNavigation.kt
+++ b/app/src/main/java/com/geeksville/mesh/navigation/NodesNavigation.kt
@@ -50,13 +50,13 @@ import com.geeksville.mesh.ui.metrics.SignalMetricsScreen
import com.geeksville.mesh.ui.metrics.TracerouteLogScreen
import com.geeksville.mesh.ui.node.NodeDetailScreen
import com.geeksville.mesh.ui.node.NodeListScreen
-import com.geeksville.mesh.ui.node.NodeMapScreen
import org.meshtastic.core.navigation.ContactsRoutes
import org.meshtastic.core.navigation.DEEP_LINK_BASE_URI
import org.meshtastic.core.navigation.NodeDetailRoutes
import org.meshtastic.core.navigation.NodesRoutes
import org.meshtastic.core.navigation.Route
import org.meshtastic.core.strings.R
+import org.meshtastic.feature.map.node.NodeMapScreen
import org.meshtastic.feature.map.node.NodeMapViewModel
fun NavGraphBuilder.nodesGraph(navController: NavHostController) {
diff --git a/app/src/fdroid/java/com/geeksville/mesh/ui/node/NodeMapScreen.kt b/feature/map/src/fdroid/kotlin/org/meshtastic/feature/map/node/NodeMapScreen.kt
similarity index 96%
rename from app/src/fdroid/java/com/geeksville/mesh/ui/node/NodeMapScreen.kt
rename to feature/map/src/fdroid/kotlin/org/meshtastic/feature/map/node/NodeMapScreen.kt
index 3e5414b13..c79e813e7 100644
--- a/app/src/fdroid/java/com/geeksville/mesh/ui/node/NodeMapScreen.kt
+++ b/feature/map/src/fdroid/kotlin/org/meshtastic/feature/map/node/NodeMapScreen.kt
@@ -15,7 +15,7 @@
* along with this program. If not, see .
*/
-package com.geeksville.mesh.ui.node
+package org.meshtastic.feature.map.node
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.runtime.Composable
@@ -29,7 +29,6 @@ import org.meshtastic.feature.map.addCopyright
import org.meshtastic.feature.map.addPolyline
import org.meshtastic.feature.map.addPositionMarkers
import org.meshtastic.feature.map.addScaleBarOverlay
-import org.meshtastic.feature.map.node.NodeMapViewModel
import org.meshtastic.feature.map.rememberMapViewWithLifecycle
import org.osmdroid.util.BoundingBox
import org.osmdroid.util.GeoPoint
diff --git a/app/src/google/java/com/geeksville/mesh/ui/node/NodeMapScreen.kt b/feature/map/src/google/kotlin/org/meshtastic/feature/map/node/NodeMapScreen.kt
similarity index 95%
rename from app/src/google/java/com/geeksville/mesh/ui/node/NodeMapScreen.kt
rename to feature/map/src/google/kotlin/org/meshtastic/feature/map/node/NodeMapScreen.kt
index c92e4867d..9263f0efa 100644
--- a/app/src/google/java/com/geeksville/mesh/ui/node/NodeMapScreen.kt
+++ b/feature/map/src/google/kotlin/org/meshtastic/feature/map/node/NodeMapScreen.kt
@@ -15,7 +15,7 @@
* along with this program. If not, see .
*/
-package com.geeksville.mesh.ui.node
+package org.meshtastic.feature.map.node
import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.padding
@@ -26,7 +26,6 @@ import androidx.compose.ui.Modifier
import androidx.lifecycle.compose.collectAsStateWithLifecycle
import org.meshtastic.core.ui.component.MainAppBar
import org.meshtastic.feature.map.MapView
-import org.meshtastic.feature.map.node.NodeMapViewModel
@Composable
fun NodeMapScreen(nodeMapViewModel: NodeMapViewModel, onNavigateUp: () -> Unit) {
diff --git a/feature/messaging/detekt-baseline.xml b/feature/messaging/detekt-baseline.xml
index 8f7848890..e117b9886 100644
--- a/feature/messaging/detekt-baseline.xml
+++ b/feature/messaging/detekt-baseline.xml
@@ -17,15 +17,9 @@
LambdaParameterInRestartableEffect:MessageList.kt$onUnreadChanged
LongParameterList:MessageViewModel.kt$MessageViewModel$( private val nodeRepository: NodeRepository, radioConfigRepository: RadioConfigRepository, quickChatActionRepository: QuickChatActionRepository, private val serviceRepository: ServiceRepository, private val packetRepository: PacketRepository, private val uiPrefs: UiPrefs, private val meshServiceNotifications: MeshServiceNotifications, )
ModifierMissing:Message.kt$MessageScreen
- ModifierMissing:MessageActions.kt$MessageStatusButton
- ModifierMissing:MessageActions.kt$ReactionButton
- ModifierMissing:MessageActions.kt$ReplyButton
- ModifierMissing:Reaction.kt$ReactionDialog
ModifierNotUsedAtRoot:QuickChat.kt$modifier = modifier.fillMaxSize().padding(innerPadding)
MutableStateParam:MessageList.kt$selectedIds
ParameterNaming:MessageList.kt$onUnreadChanged
- PreviewPublic:Reaction.kt$ReactionItemPreview
- PreviewPublic:Reaction.kt$ReactionRowPreview
TooManyFunctions:MessageViewModel.kt$MessageViewModel : ViewModel
Wrapping:Message.kt${ event -> when (event) { is MessageScreenEvent.SendMessage -> { viewModel.sendMessage(event.text, contactKey, event.replyingToPacketId) if (event.replyingToPacketId != null) replyingToPacketId = null messageInputState.clearText() } is MessageScreenEvent.SendReaction -> viewModel.sendReaction(event.emoji, event.messageId, contactKey) is MessageScreenEvent.DeleteMessages -> { viewModel.deleteMessages(event.ids) selectedMessageIds.value = emptySet() showDeleteDialog = false } is MessageScreenEvent.ClearUnreadCount -> viewModel.clearUnreadCount(contactKey, event.lastReadMessageId) is MessageScreenEvent.NodeDetails -> navigateToNodeDetails(event.node.num) is MessageScreenEvent.SetTitle -> viewModel.setTitle(event.title) is MessageScreenEvent.NavigateToMessages -> navigateToMessages(event.contactKey) is MessageScreenEvent.NavigateToNodeDetails -> navigateToNodeDetails(event.nodeNum) MessageScreenEvent.NavigateBack -> onNavigateBack() is MessageScreenEvent.CopyToClipboard -> { clipboardManager.nativeClipboard.setPrimaryClip(ClipData.newPlainText(event.text, event.text)) selectedMessageIds.value = emptySet() } } }