diff --git a/app/detekt-baseline.xml b/app/detekt-baseline.xml
index 52110d240..4af55d5f5 100644
--- a/app/detekt-baseline.xml
+++ b/app/detekt-baseline.xml
@@ -8,19 +8,16 @@
CommentWrapping:SignalMetrics.kt$Metric.SNR$/* Selected 12 as the max to get 4 equal vertical sections. */
ComposableNaming:NodeDetailScreen.kt$notesSection
ComposableParamOrder:ChannelSettingsItemList.kt$ChannelSettingsItemList
- ComposableParamOrder:Debug.kt$DebugMenuActions
ComposableParamOrder:Debug.kt$DecodedPayloadBlock
ComposableParamOrder:DebugSearch.kt$DebugSearchState
ComposableParamOrder:DebugSearch.kt$DebugSearchStateviewModelDefaults
ComposableParamOrder:DeviceMetrics.kt$DeviceMetricsChart
- ComposableParamOrder:EditBase64Preference.kt$EditBase64Preference
ComposableParamOrder:EmptyStateContent.kt$EmptyStateContent
ComposableParamOrder:EnvironmentCharts.kt$ChartContent
ComposableParamOrder:EnvironmentCharts.kt$EnvironmentMetricsChart
ComposableParamOrder:EnvironmentCharts.kt$MetricPlottingCanvas
ComposableParamOrder:HostMetricsLog.kt$HostMetricsItem
ComposableParamOrder:HostMetricsLog.kt$LogLine
- ComposableParamOrder:MainAppBar.kt$MainAppBar
ComposableParamOrder:MapReportingPreference.kt$MapReportingPreference
ComposableParamOrder:Message.kt$MessageScreen
ComposableParamOrder:Message.kt$QuickChatRow
@@ -69,7 +66,6 @@
FinalNewline:UsbRepositoryModule.kt$com.geeksville.mesh.repository.usb.UsbRepositoryModule.kt
ForbiddenComment:SafeBluetooth.kt$SafeBluetooth$// TODO: display some kind of UI about restarting BLE
LambdaParameterEventTrailing:Channel.kt$onConfirm
- LambdaParameterEventTrailing:MainAppBar.kt$onClickChip
LambdaParameterEventTrailing:Message.kt$onClick
LambdaParameterEventTrailing:Message.kt$onSendMessage
LambdaParameterEventTrailing:MessageList.kt$onReply
@@ -105,9 +101,6 @@
MagicNumber:Debug.kt$3
MagicNumber:EditChannelDialog.kt$16
MagicNumber:EditChannelDialog.kt$32
- MagicNumber:EditListPreference.kt$12
- MagicNumber:EditListPreference.kt$12345
- MagicNumber:EditListPreference.kt$67890
MagicNumber:LocationRepository.kt$LocationRepository$1000L
MagicNumber:LocationRepository.kt$LocationRepository$30
MagicNumber:LocationRepository.kt$LocationRepository$31
@@ -161,8 +154,6 @@
ModifierMissing:Contacts.kt$ContactsScreen
ModifierMissing:Contacts.kt$SelectionToolbar
ModifierMissing:DeviceMetrics.kt$DeviceMetricsScreen
- ModifierMissing:EmojiPicker.kt$EmojiPicker
- ModifierMissing:EmojiPicker.kt$EmojiPickerDialog
ModifierMissing:EmptyStateContent.kt$EmptyStateContent
ModifierMissing:EnvironmentMetrics.kt$EnvironmentMetricsScreen
ModifierMissing:HostMetricsLog.kt$HostMetricsLogScreen
@@ -181,12 +172,10 @@
ModifierMissing:PositionLog.kt$PositionItem
ModifierMissing:PositionLog.kt$PositionLogScreen
ModifierMissing:PowerMetrics.kt$PowerMetricsScreen
- ModifierMissing:PreferenceDivider.kt$PreferenceDivider
ModifierMissing:RadioConfig.kt$RadioConfigItemList
ModifierMissing:RadioConfigScreenList.kt$RadioConfigScreenList
ModifierMissing:Reaction.kt$ReactionDialog
ModifierMissing:SecurityConfigItemList.kt$SecurityConfigScreen
- ModifierMissing:SecurityIcon.kt$SecurityIcon
ModifierMissing:SettingsScreen.kt$SettingsScreen
ModifierMissing:Share.kt$ShareScreen
ModifierMissing:SignalMetrics.kt$SignalMetricsScreen
@@ -276,15 +265,12 @@
ParameterNaming:ContactSharing.kt$onSharedContactRequested
ParameterNaming:Contacts.kt$onDeleteSelected
ParameterNaming:Contacts.kt$onMuteSelected
- ParameterNaming:DropDownPreference.kt$onItemSelected
- ParameterNaming:EditListPreference.kt$onValuesChanged
ParameterNaming:MapReportingPreference.kt$onMapReportingEnabledChanged
ParameterNaming:MapReportingPreference.kt$onPositionPrecisionChanged
ParameterNaming:MapReportingPreference.kt$onPublishIntervalSecsChanged
ParameterNaming:MapReportingPreference.kt$onShouldReportLocationChanged
ParameterNaming:MessageList.kt$onUnreadChanged
ParameterNaming:NodeDetailScreen.kt$onFirmwareSelected
- ParameterNaming:PositionPrecisionPreference.kt$onValueChanged
ParameterNaming:UsbDevices.kt$onDeviceSelected
ParameterNaming:WelcomeScreen.kt$onGetStarted
PreviewPublic:Channel.kt$ModemPresetInfoPreview
@@ -335,7 +321,6 @@
TopLevelPropertyNaming:Constants.kt$const val prefix = "com.geeksville.mesh"
UnusedParameter:ChannelSettingsItemList.kt$onBack: () -> Unit
UnusedParameter:ChannelSettingsItemList.kt$title: String
- UnusedParameter:DropDownPreference.kt$modifier: Modifier = Modifier
UtilityClassWithPublicConstructor:NetworkRepositoryModule.kt$NetworkRepositoryModule
ViewModelForwarding:Main.kt$ScannedQrCodeDialog(uIViewModel, newChannelSet)
ViewModelForwarding:Main.kt$VersionChecks(uIViewModel)
diff --git a/app/src/fdroid/java/com/geeksville/mesh/ui/map/components/EditWaypointDialog.kt b/app/src/fdroid/java/com/geeksville/mesh/ui/map/components/EditWaypointDialog.kt
index 6eba0ba04..227be8a9c 100644
--- a/app/src/fdroid/java/com/geeksville/mesh/ui/map/components/EditWaypointDialog.kt
+++ b/app/src/fdroid/java/com/geeksville/mesh/ui/map/components/EditWaypointDialog.kt
@@ -64,10 +64,10 @@ import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.sp
import com.geeksville.mesh.MeshProtos.Waypoint
import com.geeksville.mesh.copy
-import com.geeksville.mesh.ui.common.components.EmojiPickerDialog
import com.geeksville.mesh.waypoint
import org.meshtastic.core.strings.R
import org.meshtastic.core.ui.component.EditTextPreference
+import org.meshtastic.core.ui.emoji.EmojiPickerDialog
import org.meshtastic.core.ui.theme.AppTheme
import java.text.SimpleDateFormat
import java.util.Calendar
diff --git a/app/src/google/java/com/geeksville/mesh/ui/map/components/EditWaypointDialog.kt b/app/src/google/java/com/geeksville/mesh/ui/map/components/EditWaypointDialog.kt
index 72de273f3..a05d34e4c 100644
--- a/app/src/google/java/com/geeksville/mesh/ui/map/components/EditWaypointDialog.kt
+++ b/app/src/google/java/com/geeksville/mesh/ui/map/components/EditWaypointDialog.kt
@@ -64,8 +64,8 @@ import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.sp
import com.geeksville.mesh.MeshProtos.Waypoint
import com.geeksville.mesh.copy
-import com.geeksville.mesh.ui.common.components.EmojiPickerDialog
import org.meshtastic.core.strings.R
+import org.meshtastic.core.ui.emoji.EmojiPickerDialog
import java.text.SimpleDateFormat
import java.util.Calendar
import java.util.Locale
diff --git a/app/src/google/java/com/geeksville/mesh/ui/node/NodeMapScreen.kt b/app/src/google/java/com/geeksville/mesh/ui/node/NodeMapScreen.kt
index f9dd1420b..81c0c778b 100644
--- a/app/src/google/java/com/geeksville/mesh/ui/node/NodeMapScreen.kt
+++ b/app/src/google/java/com/geeksville/mesh/ui/node/NodeMapScreen.kt
@@ -28,9 +28,9 @@ import androidx.hilt.lifecycle.viewmodel.compose.hiltViewModel
import androidx.lifecycle.compose.collectAsStateWithLifecycle
import androidx.navigation.NavHostController
import com.geeksville.mesh.model.MetricsViewModel
-import com.geeksville.mesh.ui.common.components.MainAppBar
import com.geeksville.mesh.ui.map.MapView
import com.geeksville.mesh.ui.map.NodeMapViewModel
+import org.meshtastic.core.ui.component.MainAppBar
const val DEG_D = 1e-7
diff --git a/app/src/main/java/com/geeksville/mesh/ui/Main.kt b/app/src/main/java/com/geeksville/mesh/ui/Main.kt
index 24df1c606..31a5b70d0 100644
--- a/app/src/main/java/com/geeksville/mesh/ui/Main.kt
+++ b/app/src/main/java/com/geeksville/mesh/ui/Main.kt
@@ -87,7 +87,6 @@ import com.geeksville.mesh.navigation.nodesGraph
import com.geeksville.mesh.navigation.settingsGraph
import com.geeksville.mesh.repository.radio.MeshActivity
import com.geeksville.mesh.service.MeshService
-import com.geeksville.mesh.ui.common.components.MainAppBar
import com.geeksville.mesh.ui.common.components.ScannedQrCodeDialog
import com.geeksville.mesh.ui.connections.DeviceType
import com.geeksville.mesh.ui.connections.components.TopLevelNavIcon
@@ -107,6 +106,7 @@ import org.meshtastic.core.navigation.Route
import org.meshtastic.core.navigation.SettingsRoutes
import org.meshtastic.core.service.ConnectionState
import org.meshtastic.core.strings.R
+import org.meshtastic.core.ui.component.MainAppBar
import org.meshtastic.core.ui.component.MultipleChoiceAlertDialog
import org.meshtastic.core.ui.component.SimpleAlertDialog
import org.meshtastic.core.ui.icon.Conversations
diff --git a/app/src/main/java/com/geeksville/mesh/ui/connections/ConnectionsScreen.kt b/app/src/main/java/com/geeksville/mesh/ui/connections/ConnectionsScreen.kt
index 28f776736..6010b5eff 100644
--- a/app/src/main/java/com/geeksville/mesh/ui/connections/ConnectionsScreen.kt
+++ b/app/src/main/java/com/geeksville/mesh/ui/connections/ConnectionsScreen.kt
@@ -64,7 +64,6 @@ import com.geeksville.mesh.model.BTScanModel
import com.geeksville.mesh.model.DeviceListEntry
import com.geeksville.mesh.navigation.ConfigRoute
import com.geeksville.mesh.navigation.getNavRouteFrom
-import com.geeksville.mesh.ui.common.components.MainAppBar
import com.geeksville.mesh.ui.connections.components.BLEDevices
import com.geeksville.mesh.ui.connections.components.ConnectionsSegmentedBar
import com.geeksville.mesh.ui.connections.components.CurrentlyConnectedInfo
@@ -78,6 +77,7 @@ import org.meshtastic.core.navigation.Route
import org.meshtastic.core.navigation.SettingsRoutes
import org.meshtastic.core.service.ConnectionState
import org.meshtastic.core.strings.R
+import org.meshtastic.core.ui.component.MainAppBar
import org.meshtastic.core.ui.component.SettingsItem
import org.meshtastic.core.ui.component.TitledCard
diff --git a/app/src/main/java/com/geeksville/mesh/ui/contact/ContactItem.kt b/app/src/main/java/com/geeksville/mesh/ui/contact/ContactItem.kt
index 6e729db61..346387315 100644
--- a/app/src/main/java/com/geeksville/mesh/ui/contact/ContactItem.kt
+++ b/app/src/main/java/com/geeksville/mesh/ui/contact/ContactItem.kt
@@ -51,8 +51,8 @@ import androidx.compose.ui.tooling.preview.PreviewLightDark
import androidx.compose.ui.unit.dp
import com.geeksville.mesh.AppOnlyProtos
import com.geeksville.mesh.model.Contact
-import com.geeksville.mesh.ui.common.components.SecurityIcon
import org.meshtastic.core.strings.R
+import org.meshtastic.core.ui.component.SecurityIcon
import org.meshtastic.core.ui.theme.AppTheme
@Suppress("LongMethod")
diff --git a/app/src/main/java/com/geeksville/mesh/ui/contact/Contacts.kt b/app/src/main/java/com/geeksville/mesh/ui/contact/Contacts.kt
index d7b126d74..945a0b50d 100644
--- a/app/src/main/java/com/geeksville/mesh/ui/contact/Contacts.kt
+++ b/app/src/main/java/com/geeksville/mesh/ui/contact/Contacts.kt
@@ -63,8 +63,8 @@ import androidx.hilt.lifecycle.viewmodel.compose.hiltViewModel
import androidx.lifecycle.compose.collectAsStateWithLifecycle
import com.geeksville.mesh.AppOnlyProtos
import com.geeksville.mesh.model.Contact
-import com.geeksville.mesh.ui.common.components.MainAppBar
import org.meshtastic.core.strings.R
+import org.meshtastic.core.ui.component.MainAppBar
import java.util.concurrent.TimeUnit
@OptIn(ExperimentalMaterial3ExpressiveApi::class)
diff --git a/app/src/main/java/com/geeksville/mesh/ui/debug/Debug.kt b/app/src/main/java/com/geeksville/mesh/ui/debug/Debug.kt
index 4b77a57d8..aad95916e 100644
--- a/app/src/main/java/com/geeksville/mesh/ui/debug/Debug.kt
+++ b/app/src/main/java/com/geeksville/mesh/ui/debug/Debug.kt
@@ -80,13 +80,13 @@ import androidx.hilt.lifecycle.viewmodel.compose.hiltViewModel
import androidx.lifecycle.compose.collectAsStateWithLifecycle
import com.geeksville.mesh.model.DebugViewModel
import com.geeksville.mesh.model.DebugViewModel.UiMeshLog
-import com.geeksville.mesh.ui.common.components.MainAppBar
import kotlinx.collections.immutable.toImmutableList
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.launch
import kotlinx.coroutines.withContext
import org.meshtastic.core.strings.R
import org.meshtastic.core.ui.component.CopyIconButton
+import org.meshtastic.core.ui.component.MainAppBar
import org.meshtastic.core.ui.component.SimpleAlertDialog
import org.meshtastic.core.ui.theme.AnnotationColor
import org.meshtastic.core.ui.theme.AppTheme
diff --git a/app/src/main/java/com/geeksville/mesh/ui/map/MapScreen.kt b/app/src/main/java/com/geeksville/mesh/ui/map/MapScreen.kt
index 985f6bbb9..3706f010a 100644
--- a/app/src/main/java/com/geeksville/mesh/ui/map/MapScreen.kt
+++ b/app/src/main/java/com/geeksville/mesh/ui/map/MapScreen.kt
@@ -26,8 +26,8 @@ import androidx.compose.ui.Modifier
import androidx.compose.ui.res.stringResource
import androidx.hilt.lifecycle.viewmodel.compose.hiltViewModel
import androidx.lifecycle.compose.collectAsStateWithLifecycle
-import com.geeksville.mesh.ui.common.components.MainAppBar
import org.meshtastic.core.strings.R
+import org.meshtastic.core.ui.component.MainAppBar
import org.meshtastic.feature.map.MapViewModel
@Composable
diff --git a/app/src/main/java/com/geeksville/mesh/ui/message/Message.kt b/app/src/main/java/com/geeksville/mesh/ui/message/Message.kt
index 116b36606..d5df880f7 100644
--- a/app/src/main/java/com/geeksville/mesh/ui/message/Message.kt
+++ b/app/src/main/java/com/geeksville/mesh/ui/message/Message.kt
@@ -95,7 +95,6 @@ import androidx.compose.ui.unit.dp
import androidx.hilt.lifecycle.viewmodel.compose.hiltViewModel
import androidx.lifecycle.compose.collectAsStateWithLifecycle
import com.geeksville.mesh.AppOnlyProtos
-import com.geeksville.mesh.ui.common.components.SecurityIcon
import com.geeksville.mesh.ui.sharing.SharedContactDialog
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.launch
@@ -105,6 +104,7 @@ import org.meshtastic.core.database.model.Node
import org.meshtastic.core.model.DataPacket
import org.meshtastic.core.model.util.getChannel
import org.meshtastic.core.strings.R
+import org.meshtastic.core.ui.component.SecurityIcon
import org.meshtastic.core.ui.theme.AppTheme
import org.meshtastic.feature.node.component.NodeKeyStatusIcon
import java.nio.charset.StandardCharsets
diff --git a/app/src/main/java/com/geeksville/mesh/ui/message/components/MessageActions.kt b/app/src/main/java/com/geeksville/mesh/ui/message/components/MessageActions.kt
index 504a05b72..187af2a20 100644
--- a/app/src/main/java/com/geeksville/mesh/ui/message/components/MessageActions.kt
+++ b/app/src/main/java/com/geeksville/mesh/ui/message/components/MessageActions.kt
@@ -39,9 +39,9 @@ import androidx.compose.runtime.remember
import androidx.compose.runtime.setValue
import androidx.compose.ui.Modifier
import androidx.compose.ui.res.stringResource
-import com.geeksville.mesh.ui.common.components.EmojiPickerDialog
import org.meshtastic.core.model.MessageStatus
import org.meshtastic.core.strings.R
+import org.meshtastic.core.ui.emoji.EmojiPickerDialog
@Composable
fun ReactionButton(onSendReaction: (String) -> Unit = {}) {
diff --git a/app/src/main/java/com/geeksville/mesh/ui/node/NodeDetailScreen.kt b/app/src/main/java/com/geeksville/mesh/ui/node/NodeDetailScreen.kt
index 927c518de..c77152a42 100644
--- a/app/src/main/java/com/geeksville/mesh/ui/node/NodeDetailScreen.kt
+++ b/app/src/main/java/com/geeksville/mesh/ui/node/NodeDetailScreen.kt
@@ -133,7 +133,6 @@ import com.geeksville.mesh.ConfigProtos
import com.geeksville.mesh.MeshProtos
import com.geeksville.mesh.model.MetricsState
import com.geeksville.mesh.model.MetricsViewModel
-import com.geeksville.mesh.ui.common.components.MainAppBar
import com.geeksville.mesh.ui.sharing.SharedContactDialog
import com.geeksville.mesh.util.thenIf
import com.mikepenz.markdown.m3.Markdown
@@ -156,6 +155,7 @@ import org.meshtastic.core.navigation.Route
import org.meshtastic.core.navigation.SettingsRoutes
import org.meshtastic.core.service.ServiceAction
import org.meshtastic.core.strings.R
+import org.meshtastic.core.ui.component.MainAppBar
import org.meshtastic.core.ui.component.SettingsItem
import org.meshtastic.core.ui.component.SettingsItemDetail
import org.meshtastic.core.ui.component.SettingsItemSwitch
diff --git a/app/src/main/java/com/geeksville/mesh/ui/node/NodeListScreen.kt b/app/src/main/java/com/geeksville/mesh/ui/node/NodeListScreen.kt
index f56db1653..7167d9750 100644
--- a/app/src/main/java/com/geeksville/mesh/ui/node/NodeListScreen.kt
+++ b/app/src/main/java/com/geeksville/mesh/ui/node/NodeListScreen.kt
@@ -58,13 +58,13 @@ import androidx.compose.ui.unit.dp
import androidx.hilt.lifecycle.viewmodel.compose.hiltViewModel
import androidx.lifecycle.compose.collectAsStateWithLifecycle
import com.geeksville.mesh.AdminProtos
-import com.geeksville.mesh.ui.common.components.MainAppBar
import com.geeksville.mesh.ui.sharing.AddContactFAB
import com.geeksville.mesh.ui.sharing.supportsQrCodeSharing
import org.meshtastic.core.database.model.Node
import org.meshtastic.core.model.DeviceVersion
import org.meshtastic.core.service.ConnectionState
import org.meshtastic.core.strings.R
+import org.meshtastic.core.ui.component.MainAppBar
import org.meshtastic.core.ui.component.rememberTimeTickWithLifecycle
import org.meshtastic.core.ui.theme.StatusColors.StatusRed
import org.meshtastic.feature.node.component.NodeActionDialogs
diff --git a/app/src/main/java/com/geeksville/mesh/ui/settings/SettingsScreen.kt b/app/src/main/java/com/geeksville/mesh/ui/settings/SettingsScreen.kt
index b70bf00d7..d899a8797 100644
--- a/app/src/main/java/com/geeksville/mesh/ui/settings/SettingsScreen.kt
+++ b/app/src/main/java/com/geeksville/mesh/ui/settings/SettingsScreen.kt
@@ -59,7 +59,6 @@ import com.geeksville.mesh.BuildConfig
import com.geeksville.mesh.ClientOnlyProtos.DeviceProfile
import com.geeksville.mesh.android.gpsDisabled
import com.geeksville.mesh.navigation.getNavRouteFrom
-import com.geeksville.mesh.ui.common.components.MainAppBar
import com.geeksville.mesh.ui.settings.radio.RadioConfigItemList
import com.geeksville.mesh.ui.settings.radio.RadioConfigViewModel
import com.geeksville.mesh.ui.settings.radio.components.EditDeviceProfileDialog
@@ -71,6 +70,7 @@ import com.google.accompanist.permissions.rememberMultiplePermissionsState
import kotlinx.coroutines.delay
import org.meshtastic.core.navigation.Route
import org.meshtastic.core.strings.R
+import org.meshtastic.core.ui.component.MainAppBar
import org.meshtastic.core.ui.component.MultipleChoiceAlertDialog
import org.meshtastic.core.ui.component.SettingsItem
import org.meshtastic.core.ui.component.SettingsItemDetail
diff --git a/app/src/main/java/com/geeksville/mesh/ui/settings/radio/components/AudioConfigItemList.kt b/app/src/main/java/com/geeksville/mesh/ui/settings/radio/components/AudioConfigItemList.kt
index 837e58240..fed6e3562 100644
--- a/app/src/main/java/com/geeksville/mesh/ui/settings/radio/components/AudioConfigItemList.kt
+++ b/app/src/main/java/com/geeksville/mesh/ui/settings/radio/components/AudioConfigItemList.kt
@@ -29,9 +29,9 @@ import androidx.navigation.NavController
import com.geeksville.mesh.ModuleConfigProtos.ModuleConfig.AudioConfig
import com.geeksville.mesh.copy
import com.geeksville.mesh.moduleConfig
-import com.geeksville.mesh.ui.common.components.DropDownPreference
import com.geeksville.mesh.ui.settings.radio.RadioConfigViewModel
import org.meshtastic.core.strings.R
+import org.meshtastic.core.ui.component.DropDownPreference
import org.meshtastic.core.ui.component.EditTextPreference
import org.meshtastic.core.ui.component.PreferenceCategory
import org.meshtastic.core.ui.component.SwitchPreference
diff --git a/app/src/main/java/com/geeksville/mesh/ui/settings/radio/components/BluetoothConfigItemList.kt b/app/src/main/java/com/geeksville/mesh/ui/settings/radio/components/BluetoothConfigItemList.kt
index 64d678512..e535bed80 100644
--- a/app/src/main/java/com/geeksville/mesh/ui/settings/radio/components/BluetoothConfigItemList.kt
+++ b/app/src/main/java/com/geeksville/mesh/ui/settings/radio/components/BluetoothConfigItemList.kt
@@ -29,9 +29,9 @@ import androidx.navigation.NavController
import com.geeksville.mesh.ConfigProtos.Config.BluetoothConfig
import com.geeksville.mesh.config
import com.geeksville.mesh.copy
-import com.geeksville.mesh.ui.common.components.DropDownPreference
import com.geeksville.mesh.ui.settings.radio.RadioConfigViewModel
import org.meshtastic.core.strings.R
+import org.meshtastic.core.ui.component.DropDownPreference
import org.meshtastic.core.ui.component.EditTextPreference
import org.meshtastic.core.ui.component.PreferenceCategory
import org.meshtastic.core.ui.component.SwitchPreference
diff --git a/app/src/main/java/com/geeksville/mesh/ui/settings/radio/components/CannedMessageConfigItemList.kt b/app/src/main/java/com/geeksville/mesh/ui/settings/radio/components/CannedMessageConfigItemList.kt
index bb916f935..6c4b09e70 100644
--- a/app/src/main/java/com/geeksville/mesh/ui/settings/radio/components/CannedMessageConfigItemList.kt
+++ b/app/src/main/java/com/geeksville/mesh/ui/settings/radio/components/CannedMessageConfigItemList.kt
@@ -35,9 +35,9 @@ import androidx.navigation.NavController
import com.geeksville.mesh.ModuleConfigProtos.ModuleConfig.CannedMessageConfig
import com.geeksville.mesh.copy
import com.geeksville.mesh.moduleConfig
-import com.geeksville.mesh.ui.common.components.DropDownPreference
import com.geeksville.mesh.ui.settings.radio.RadioConfigViewModel
import org.meshtastic.core.strings.R
+import org.meshtastic.core.ui.component.DropDownPreference
import org.meshtastic.core.ui.component.EditTextPreference
import org.meshtastic.core.ui.component.PreferenceCategory
import org.meshtastic.core.ui.component.SwitchPreference
diff --git a/app/src/main/java/com/geeksville/mesh/ui/settings/radio/components/ChannelSettingsItemList.kt b/app/src/main/java/com/geeksville/mesh/ui/settings/radio/components/ChannelSettingsItemList.kt
index 32cdd57ef..6520898fe 100644
--- a/app/src/main/java/com/geeksville/mesh/ui/settings/radio/components/ChannelSettingsItemList.kt
+++ b/app/src/main/java/com/geeksville/mesh/ui/settings/radio/components/ChannelSettingsItemList.kt
@@ -73,13 +73,13 @@ import androidx.navigation.NavController
import com.geeksville.mesh.ChannelProtos.ChannelSettings
import com.geeksville.mesh.ConfigProtos.Config.LoRaConfig
import com.geeksville.mesh.channelSettings
-import com.geeksville.mesh.ui.common.components.SecurityIcon
import com.geeksville.mesh.ui.settings.radio.RadioConfigViewModel
import org.meshtastic.core.model.Channel
import org.meshtastic.core.model.DeviceVersion
import org.meshtastic.core.strings.R
import org.meshtastic.core.ui.component.PreferenceCategory
import org.meshtastic.core.ui.component.PreferenceFooter
+import org.meshtastic.core.ui.component.SecurityIcon
import org.meshtastic.core.ui.component.dragContainer
import org.meshtastic.core.ui.component.dragDropItemsIndexed
import org.meshtastic.core.ui.component.rememberDragDropState
diff --git a/app/src/main/java/com/geeksville/mesh/ui/settings/radio/components/DetectionSensorConfigItemList.kt b/app/src/main/java/com/geeksville/mesh/ui/settings/radio/components/DetectionSensorConfigItemList.kt
index 77efbb1cc..4da4725d5 100644
--- a/app/src/main/java/com/geeksville/mesh/ui/settings/radio/components/DetectionSensorConfigItemList.kt
+++ b/app/src/main/java/com/geeksville/mesh/ui/settings/radio/components/DetectionSensorConfigItemList.kt
@@ -32,9 +32,9 @@ import androidx.navigation.NavController
import com.geeksville.mesh.ModuleConfigProtos.ModuleConfig
import com.geeksville.mesh.copy
import com.geeksville.mesh.moduleConfig
-import com.geeksville.mesh.ui.common.components.DropDownPreference
import com.geeksville.mesh.ui.settings.radio.RadioConfigViewModel
import org.meshtastic.core.strings.R
+import org.meshtastic.core.ui.component.DropDownPreference
import org.meshtastic.core.ui.component.EditTextPreference
import org.meshtastic.core.ui.component.PreferenceCategory
import org.meshtastic.core.ui.component.SwitchPreference
diff --git a/app/src/main/java/com/geeksville/mesh/ui/settings/radio/components/DeviceConfigItemList.kt b/app/src/main/java/com/geeksville/mesh/ui/settings/radio/components/DeviceConfigItemList.kt
index eb5ac6771..2e7263314 100644
--- a/app/src/main/java/com/geeksville/mesh/ui/settings/radio/components/DeviceConfigItemList.kt
+++ b/app/src/main/java/com/geeksville/mesh/ui/settings/radio/components/DeviceConfigItemList.kt
@@ -50,9 +50,9 @@ import androidx.navigation.NavController
import com.geeksville.mesh.ConfigProtos.Config.DeviceConfig
import com.geeksville.mesh.config
import com.geeksville.mesh.copy
-import com.geeksville.mesh.ui.common.components.DropDownPreference
import com.geeksville.mesh.ui.settings.radio.RadioConfigViewModel
import org.meshtastic.core.strings.R
+import org.meshtastic.core.ui.component.DropDownPreference
import org.meshtastic.core.ui.component.EditTextPreference
import org.meshtastic.core.ui.component.PreferenceCategory
import org.meshtastic.core.ui.component.SwitchPreference
diff --git a/app/src/main/java/com/geeksville/mesh/ui/settings/radio/components/DisplayConfigItemList.kt b/app/src/main/java/com/geeksville/mesh/ui/settings/radio/components/DisplayConfigItemList.kt
index 07c95e42c..f567834f9 100644
--- a/app/src/main/java/com/geeksville/mesh/ui/settings/radio/components/DisplayConfigItemList.kt
+++ b/app/src/main/java/com/geeksville/mesh/ui/settings/radio/components/DisplayConfigItemList.kt
@@ -29,9 +29,9 @@ import androidx.navigation.NavController
import com.geeksville.mesh.ConfigProtos.Config.DisplayConfig
import com.geeksville.mesh.config
import com.geeksville.mesh.copy
-import com.geeksville.mesh.ui.common.components.DropDownPreference
import com.geeksville.mesh.ui.settings.radio.RadioConfigViewModel
import org.meshtastic.core.strings.R
+import org.meshtastic.core.ui.component.DropDownPreference
import org.meshtastic.core.ui.component.EditTextPreference
import org.meshtastic.core.ui.component.PreferenceCategory
import org.meshtastic.core.ui.component.SwitchPreference
diff --git a/app/src/main/java/com/geeksville/mesh/ui/settings/radio/components/EditChannelDialog.kt b/app/src/main/java/com/geeksville/mesh/ui/settings/radio/components/EditChannelDialog.kt
index 4927b01cf..04257bb9e 100644
--- a/app/src/main/java/com/geeksville/mesh/ui/settings/radio/components/EditChannelDialog.kt
+++ b/app/src/main/java/com/geeksville/mesh/ui/settings/radio/components/EditChannelDialog.kt
@@ -45,11 +45,11 @@ import androidx.compose.ui.unit.dp
import com.geeksville.mesh.ChannelProtos
import com.geeksville.mesh.channelSettings
import com.geeksville.mesh.copy
-import com.geeksville.mesh.ui.common.components.EditBase64Preference
-import com.geeksville.mesh.ui.common.components.PositionPrecisionPreference
import org.meshtastic.core.model.Channel
import org.meshtastic.core.strings.R
+import org.meshtastic.core.ui.component.EditBase64Preference
import org.meshtastic.core.ui.component.EditTextPreference
+import org.meshtastic.core.ui.component.PositionPrecisionPreference
import org.meshtastic.core.ui.component.SwitchPreference
@Suppress("LongMethod")
diff --git a/app/src/main/java/com/geeksville/mesh/ui/settings/radio/components/LoRaConfigItemList.kt b/app/src/main/java/com/geeksville/mesh/ui/settings/radio/components/LoRaConfigItemList.kt
index 02a2822a3..a6deea4a9 100644
--- a/app/src/main/java/com/geeksville/mesh/ui/settings/radio/components/LoRaConfigItemList.kt
+++ b/app/src/main/java/com/geeksville/mesh/ui/settings/radio/components/LoRaConfigItemList.kt
@@ -35,15 +35,15 @@ import androidx.lifecycle.compose.collectAsStateWithLifecycle
import androidx.navigation.NavController
import com.geeksville.mesh.config
import com.geeksville.mesh.copy
-import com.geeksville.mesh.ui.common.components.DropDownPreference
-import com.geeksville.mesh.ui.common.components.PreferenceDivider
import com.geeksville.mesh.ui.settings.radio.RadioConfigViewModel
import org.meshtastic.core.model.Channel
import org.meshtastic.core.model.ChannelOption
import org.meshtastic.core.model.RegionInfo
import org.meshtastic.core.model.numChannels
import org.meshtastic.core.strings.R
+import org.meshtastic.core.ui.component.DropDownPreference
import org.meshtastic.core.ui.component.EditTextPreference
+import org.meshtastic.core.ui.component.PreferenceDivider
import org.meshtastic.core.ui.component.SignedIntegerEditTextPreference
import org.meshtastic.core.ui.component.SwitchPreference
import org.meshtastic.core.ui.component.TitledCard
diff --git a/app/src/main/java/com/geeksville/mesh/ui/settings/radio/components/MapReportingPreference.kt b/app/src/main/java/com/geeksville/mesh/ui/settings/radio/components/MapReportingPreference.kt
index b1909ee8c..8d5d1b610 100644
--- a/app/src/main/java/com/geeksville/mesh/ui/settings/radio/components/MapReportingPreference.kt
+++ b/app/src/main/java/com/geeksville/mesh/ui/settings/radio/components/MapReportingPreference.kt
@@ -40,12 +40,12 @@ import androidx.compose.ui.res.stringResource
import androidx.compose.ui.text.style.TextOverflow
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.dp
-import com.geeksville.mesh.ui.common.components.precisionBitsToMeters
import org.meshtastic.core.model.util.DistanceUnit
import org.meshtastic.core.model.util.toDistanceString
import org.meshtastic.core.strings.R
import org.meshtastic.core.ui.component.EditTextPreference
import org.meshtastic.core.ui.component.SwitchPreference
+import org.meshtastic.core.ui.component.precisionBitsToMeters
import kotlin.math.roundToInt
private const val POSITION_PRECISION_MIN = 12
diff --git a/app/src/main/java/com/geeksville/mesh/ui/settings/radio/components/NetworkConfigItemList.kt b/app/src/main/java/com/geeksville/mesh/ui/settings/radio/components/NetworkConfigItemList.kt
index 93a5035e3..3619ae91b 100644
--- a/app/src/main/java/com/geeksville/mesh/ui/settings/radio/components/NetworkConfigItemList.kt
+++ b/app/src/main/java/com/geeksville/mesh/ui/settings/radio/components/NetworkConfigItemList.kt
@@ -43,11 +43,11 @@ import androidx.navigation.NavController
import com.geeksville.mesh.ConfigProtos.Config.NetworkConfig
import com.geeksville.mesh.config
import com.geeksville.mesh.copy
-import com.geeksville.mesh.ui.common.components.DropDownPreference
import com.geeksville.mesh.ui.settings.radio.RadioConfigViewModel
import com.journeyapps.barcodescanner.ScanContract
import com.journeyapps.barcodescanner.ScanOptions
import org.meshtastic.core.strings.R
+import org.meshtastic.core.ui.component.DropDownPreference
import org.meshtastic.core.ui.component.EditIPv4Preference
import org.meshtastic.core.ui.component.EditPasswordPreference
import org.meshtastic.core.ui.component.EditTextPreference
diff --git a/app/src/main/java/com/geeksville/mesh/ui/settings/radio/components/PositionConfigItemList.kt b/app/src/main/java/com/geeksville/mesh/ui/settings/radio/components/PositionConfigItemList.kt
index 68e0cb0df..b53ed04e2 100644
--- a/app/src/main/java/com/geeksville/mesh/ui/settings/radio/components/PositionConfigItemList.kt
+++ b/app/src/main/java/com/geeksville/mesh/ui/settings/radio/components/PositionConfigItemList.kt
@@ -43,7 +43,6 @@ import com.geeksville.mesh.ConfigProtos
import com.geeksville.mesh.ConfigProtos.Config.PositionConfig
import com.geeksville.mesh.config
import com.geeksville.mesh.copy
-import com.geeksville.mesh.ui.common.components.DropDownPreference
import com.geeksville.mesh.ui.settings.radio.RadioConfigViewModel
import com.google.accompanist.permissions.ExperimentalPermissionsApi
import com.google.accompanist.permissions.rememberPermissionState
@@ -51,6 +50,7 @@ import kotlinx.coroutines.launch
import org.meshtastic.core.model.Position
import org.meshtastic.core.strings.R
import org.meshtastic.core.ui.component.BitwisePreference
+import org.meshtastic.core.ui.component.DropDownPreference
import org.meshtastic.core.ui.component.EditTextPreference
import org.meshtastic.core.ui.component.PreferenceCategory
import org.meshtastic.core.ui.component.SwitchPreference
diff --git a/app/src/main/java/com/geeksville/mesh/ui/settings/radio/components/RadioConfigScreenList.kt b/app/src/main/java/com/geeksville/mesh/ui/settings/radio/components/RadioConfigScreenList.kt
index 9f6e32395..7398032c5 100644
--- a/app/src/main/java/com/geeksville/mesh/ui/settings/radio/components/RadioConfigScreenList.kt
+++ b/app/src/main/java/com/geeksville/mesh/ui/settings/radio/components/RadioConfigScreenList.kt
@@ -29,10 +29,10 @@ import androidx.compose.ui.Modifier
import androidx.compose.ui.platform.LocalFocusManager
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.unit.dp
-import com.geeksville.mesh.ui.common.components.MainAppBar
import com.geeksville.mesh.ui.settings.radio.ResponseState
import com.google.protobuf.MessageLite
import org.meshtastic.core.strings.R
+import org.meshtastic.core.ui.component.MainAppBar
import org.meshtastic.core.ui.component.PreferenceFooter
@Composable
diff --git a/app/src/main/java/com/geeksville/mesh/ui/settings/radio/components/RemoteHardwareConfigItemList.kt b/app/src/main/java/com/geeksville/mesh/ui/settings/radio/components/RemoteHardwareConfigItemList.kt
index a0d4b40f1..bf0d7ce3d 100644
--- a/app/src/main/java/com/geeksville/mesh/ui/settings/radio/components/RemoteHardwareConfigItemList.kt
+++ b/app/src/main/java/com/geeksville/mesh/ui/settings/radio/components/RemoteHardwareConfigItemList.kt
@@ -28,9 +28,9 @@ import androidx.lifecycle.compose.collectAsStateWithLifecycle
import androidx.navigation.NavController
import com.geeksville.mesh.copy
import com.geeksville.mesh.moduleConfig
-import com.geeksville.mesh.ui.common.components.EditListPreference
import com.geeksville.mesh.ui.settings.radio.RadioConfigViewModel
import org.meshtastic.core.strings.R
+import org.meshtastic.core.ui.component.EditListPreference
import org.meshtastic.core.ui.component.PreferenceCategory
import org.meshtastic.core.ui.component.SwitchPreference
diff --git a/app/src/main/java/com/geeksville/mesh/ui/settings/radio/components/SecurityConfigItemList.kt b/app/src/main/java/com/geeksville/mesh/ui/settings/radio/components/SecurityConfigItemList.kt
index afe596b7e..289c30535 100644
--- a/app/src/main/java/com/geeksville/mesh/ui/settings/radio/components/SecurityConfigItemList.kt
+++ b/app/src/main/java/com/geeksville/mesh/ui/settings/radio/components/SecurityConfigItemList.kt
@@ -46,15 +46,15 @@ import androidx.navigation.NavController
import com.geeksville.mesh.ConfigProtos.Config.SecurityConfig
import com.geeksville.mesh.config
import com.geeksville.mesh.copy
-import com.geeksville.mesh.ui.common.components.EditBase64Preference
-import com.geeksville.mesh.ui.common.components.EditListPreference
import com.geeksville.mesh.ui.node.NodeActionButton
import com.geeksville.mesh.ui.settings.radio.RadioConfigViewModel
-import com.geeksville.mesh.util.encodeToString
-import com.geeksville.mesh.util.toByteString
import com.google.protobuf.ByteString
+import org.meshtastic.core.model.util.encodeToString
+import org.meshtastic.core.model.util.toByteString
import org.meshtastic.core.strings.R
import org.meshtastic.core.ui.component.CopyIconButton
+import org.meshtastic.core.ui.component.EditBase64Preference
+import org.meshtastic.core.ui.component.EditListPreference
import org.meshtastic.core.ui.component.PreferenceCategory
import org.meshtastic.core.ui.component.SwitchPreference
import java.security.SecureRandom
diff --git a/app/src/main/java/com/geeksville/mesh/ui/settings/radio/components/SerialConfigItemList.kt b/app/src/main/java/com/geeksville/mesh/ui/settings/radio/components/SerialConfigItemList.kt
index d306362ee..370da2c49 100644
--- a/app/src/main/java/com/geeksville/mesh/ui/settings/radio/components/SerialConfigItemList.kt
+++ b/app/src/main/java/com/geeksville/mesh/ui/settings/radio/components/SerialConfigItemList.kt
@@ -29,9 +29,9 @@ import androidx.navigation.NavController
import com.geeksville.mesh.ModuleConfigProtos.ModuleConfig.SerialConfig
import com.geeksville.mesh.copy
import com.geeksville.mesh.moduleConfig
-import com.geeksville.mesh.ui.common.components.DropDownPreference
import com.geeksville.mesh.ui.settings.radio.RadioConfigViewModel
import org.meshtastic.core.strings.R
+import org.meshtastic.core.ui.component.DropDownPreference
import org.meshtastic.core.ui.component.EditTextPreference
import org.meshtastic.core.ui.component.PreferenceCategory
import org.meshtastic.core.ui.component.SwitchPreference
diff --git a/app/src/main/java/com/geeksville/mesh/util/ByteStringExtensions.kt b/core/model/src/main/kotlin/org/meshtastic/core/model/util/ByteStringExtensions.kt
similarity index 96%
rename from app/src/main/java/com/geeksville/mesh/util/ByteStringExtensions.kt
rename to core/model/src/main/kotlin/org/meshtastic/core/model/util/ByteStringExtensions.kt
index a3de63f42..dc9c64b0e 100644
--- a/app/src/main/java/com/geeksville/mesh/util/ByteStringExtensions.kt
+++ b/core/model/src/main/kotlin/org/meshtastic/core/model/util/ByteStringExtensions.kt
@@ -15,11 +15,12 @@
* along with this program. If not, see .
*/
-package com.geeksville.mesh.util
+package org.meshtastic.core.model.util
import android.util.Base64
import com.google.protobuf.ByteString
import com.google.protobuf.kotlin.toByteString
fun ByteString.encodeToString() = Base64.encodeToString(this.toByteArray(), Base64.NO_WRAP)
+
fun String.toByteString() = Base64.decode(this, Base64.NO_WRAP).toByteString()
diff --git a/core/ui/build.gradle.kts b/core/ui/build.gradle.kts
index 450bdd9e7..1065e599f 100644
--- a/core/ui/build.gradle.kts
+++ b/core/ui/build.gradle.kts
@@ -18,6 +18,7 @@
plugins {
alias(libs.plugins.meshtastic.android.library)
alias(libs.plugins.meshtastic.android.library.compose)
+ alias(libs.plugins.meshtastic.hilt)
}
android { namespace = "org.meshtastic.core.ui" }
@@ -25,7 +26,12 @@ android { namespace = "org.meshtastic.core.ui" }
dependencies {
implementation(projects.core.database)
implementation(projects.core.model)
+ implementation(projects.core.navigation)
+ implementation(projects.core.prefs)
implementation(projects.core.proto)
implementation(projects.core.strings)
+
+ implementation(libs.bundles.coroutines)
implementation(libs.bundles.markdown)
+ implementation(libs.emoji2.emojipicker)
}
diff --git a/core/ui/detekt-baseline.xml b/core/ui/detekt-baseline.xml
index 4f2b259f6..c97624857 100644
--- a/core/ui/detekt-baseline.xml
+++ b/core/ui/detekt-baseline.xml
@@ -3,42 +3,40 @@
ComposableParamOrder:AlertDialogs.kt$SimpleAlertDialog
- ComposableParamOrder:BatteryInfo.kt$BatteryInfo
+ ComposableParamOrder:EditBase64Preference.kt$EditBase64Preference
ComposableParamOrder:EditTextPreference.kt$EditTextPreference
+ ComposableParamOrder:MainAppBar.kt$MainAppBar
ComposableParamOrder:MaterialBatteryInfo.kt$MaterialBatteryInfo
ComposableParamOrder:NodeChip.kt$NodeChip
ComposableParamOrder:SettingsItem.kt$SettingsItem
ComposableParamOrder:SignalInfo.kt$SignalInfo
ComposableParamOrder:SwitchPreference.kt$SwitchPreference
ContentSlotReused:AdaptiveTwoPane.kt$second
+ LambdaParameterEventTrailing:MainAppBar.kt$onClickChip
LongMethod:EditTextPreference.kt$@Composable fun EditTextPreference( title: String, value: String, enabled: Boolean, isError: Boolean, keyboardOptions: KeyboardOptions, keyboardActions: KeyboardActions, onValueChanged: (String) -> Unit, modifier: Modifier = Modifier, summary: String? = null, maxSize: Int = 0, // max_size - 1 (in bytes) onFocusChanged: (FocusState) -> Unit = {}, trailingIcon: (@Composable () -> Unit)? = null, visualTransformation: VisualTransformation = VisualTransformation.None, )
- MagicNumber:BatteryInfo.kt$100
- MagicNumber:BatteryInfo.kt$101
- MagicNumber:BatteryInfo.kt$14
- MagicNumber:BatteryInfo.kt$15
- MagicNumber:BatteryInfo.kt$34
- MagicNumber:BatteryInfo.kt$35
- MagicNumber:BatteryInfo.kt$4
- MagicNumber:BatteryInfo.kt$5
- MagicNumber:BatteryInfo.kt$79
- MagicNumber:BatteryInfo.kt$80
MagicNumber:EditIPv4Preference.kt$0xff
MagicNumber:EditIPv4Preference.kt$16
MagicNumber:EditIPv4Preference.kt$24
MagicNumber:EditIPv4Preference.kt$8
+ MagicNumber:EditListPreference.kt$12
+ MagicNumber:EditListPreference.kt$12345
+ MagicNumber:EditListPreference.kt$67890
MagicNumber:LazyColumnDragAndDropDemo.kt$50
ModifierMissing:AdaptiveTwoPane.kt$AdaptiveTwoPane
+ ModifierMissing:EmojiPicker.kt$EmojiPicker
+ ModifierMissing:EmojiPicker.kt$EmojiPickerDialog
ModifierMissing:IndoorAirQuality.kt$IndoorAirQuality
ModifierMissing:LoraSignalIndicator.kt$LoraSignalIndicator
ModifierMissing:LoraSignalIndicator.kt$Rssi
ModifierMissing:LoraSignalIndicator.kt$Snr
ModifierMissing:LoraSignalIndicator.kt$SnrAndRssi
+ ModifierMissing:PreferenceDivider.kt$PreferenceDivider
+ ModifierMissing:SecurityIcon.kt$SecurityIcon
ModifierMissing:SettingsItem.kt$SettingsItem
ModifierMissing:SettingsItem.kt$SettingsItemDetail
ModifierMissing:SettingsItem.kt$SettingsItemSwitch
ModifierMissing:SimpleAlertDialog.kt$SimpleAlertDialog
ModifierMissing:SlidingSelector.kt$OptionLabel
- ModifierNotUsedAtRoot:SignalInfo.kt$modifier = modifier
ModifierNotUsedAtRoot:TextDividerPreference.kt$modifier = modifier.fillMaxWidth().padding(all = 16.dp)
ModifierNotUsedAtRoot:TextDividerPreference.kt$modifier = modifier.fillMaxWidth().wrapContentWidth(Alignment.End)
ModifierReused:PreferenceCategory.kt$Card(modifier = modifier.padding(bottom = 8.dp)) { Column( modifier = Modifier.fillMaxWidth().padding(horizontal = 16.dp, vertical = 16.dp), horizontalAlignment = Alignment.CenterHorizontally, ) { ProvideTextStyle(MaterialTheme.typography.bodyLarge) { content() } } }
@@ -48,19 +46,21 @@
ModifierReused:TextDividerPreference.kt$Row(modifier = modifier.fillMaxWidth().padding(all = 16.dp), verticalAlignment = Alignment.CenterVertically) { Text( text = title, style = MaterialTheme.typography.bodyLarge, color = if (!enabled) { MaterialTheme.colorScheme.onSurface.copy(alpha = 0.38f) } else { Color.Unspecified }, ) if (trailingIcon != null) { Icon(trailingIcon, "trailingIcon", modifier = modifier.fillMaxWidth().wrapContentWidth(Alignment.End)) } }
MultipleEmitters:PreferenceCategory.kt$PreferenceCategory
ParameterNaming:BitwisePreference.kt$onItemSelected
+ ParameterNaming:DropDownPreference.kt$onItemSelected
ParameterNaming:EditIPv4Preference.kt$onValueChanged
+ ParameterNaming:EditListPreference.kt$onValuesChanged
ParameterNaming:EditPasswordPreference.kt$onValueChanged
ParameterNaming:EditTextPreference.kt$onValueChanged
+ ParameterNaming:PositionPrecisionPreference.kt$onValueChanged
ParameterNaming:PreferenceFooter.kt$onNegativeClicked
ParameterNaming:PreferenceFooter.kt$onPositiveClicked
ParameterNaming:SlidingSelector.kt$onOptionSelected
- PreviewPublic:BatteryInfo.kt$BatteryInfoPreview
- PreviewPublic:BatteryInfo.kt$BatteryInfoPreviewSimple
PreviewPublic:IndoorAirQuality.kt$IAQScalePreview
PreviewPublic:LazyColumnDragAndDropDemo.kt$LazyColumnDragAndDropDemo
PreviewPublic:MaterialBatteryInfo.kt$MaterialBatteryInfoPreview
PreviewPublic:SignalInfo.kt$SignalInfoPreview
PreviewPublic:SignalInfo.kt$SignalInfoSelfPreview
PreviewPublic:SignalInfo.kt$SignalInfoSimplePreview
+ UnusedParameter:DropDownPreference.kt$modifier: Modifier = Modifier
diff --git a/app/src/main/java/com/geeksville/mesh/ui/common/components/DropDownPreference.kt b/core/ui/src/main/kotlin/org/meshtastic/core/ui/component/DropDownPreference.kt
similarity index 99%
rename from app/src/main/java/com/geeksville/mesh/ui/common/components/DropDownPreference.kt
rename to core/ui/src/main/kotlin/org/meshtastic/core/ui/component/DropDownPreference.kt
index 36912e98c..35d262991 100644
--- a/app/src/main/java/com/geeksville/mesh/ui/common/components/DropDownPreference.kt
+++ b/core/ui/src/main/kotlin/org/meshtastic/core/ui/component/DropDownPreference.kt
@@ -15,7 +15,7 @@
* along with this program. If not, see .
*/
-package com.geeksville.mesh.ui.common.components
+package org.meshtastic.core.ui.component
import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.foundation.layout.padding
diff --git a/app/src/main/java/com/geeksville/mesh/ui/common/components/EditBase64Preference.kt b/core/ui/src/main/kotlin/org/meshtastic/core/ui/component/EditBase64Preference.kt
similarity index 97%
rename from app/src/main/java/com/geeksville/mesh/ui/common/components/EditBase64Preference.kt
rename to core/ui/src/main/kotlin/org/meshtastic/core/ui/component/EditBase64Preference.kt
index 5f430dbb6..8e17f812e 100644
--- a/app/src/main/java/com/geeksville/mesh/ui/common/components/EditBase64Preference.kt
+++ b/core/ui/src/main/kotlin/org/meshtastic/core/ui/component/EditBase64Preference.kt
@@ -15,7 +15,7 @@
* along with this program. If not, see .
*/
-package com.geeksville.mesh.ui.common.components
+package org.meshtastic.core.ui.component
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.fillMaxWidth
@@ -44,10 +44,10 @@ import androidx.compose.ui.text.input.ImeAction
import androidx.compose.ui.text.input.KeyboardType
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.dp
-import com.geeksville.mesh.util.encodeToString
-import com.geeksville.mesh.util.toByteString
import com.google.protobuf.ByteString
import org.meshtastic.core.model.Channel
+import org.meshtastic.core.model.util.encodeToString
+import org.meshtastic.core.model.util.toByteString
import org.meshtastic.core.strings.R
@Suppress("LongMethod")
diff --git a/app/src/main/java/com/geeksville/mesh/ui/common/components/EditListPreference.kt b/core/ui/src/main/kotlin/org/meshtastic/core/ui/component/EditListPreference.kt
similarity index 98%
rename from app/src/main/java/com/geeksville/mesh/ui/common/components/EditListPreference.kt
rename to core/ui/src/main/kotlin/org/meshtastic/core/ui/component/EditListPreference.kt
index 8fc3a3575..3f9d44a1a 100644
--- a/app/src/main/java/com/geeksville/mesh/ui/common/components/EditListPreference.kt
+++ b/core/ui/src/main/kotlin/org/meshtastic/core/ui/component/EditListPreference.kt
@@ -15,7 +15,7 @@
* along with this program. If not, see .
*/
-package com.geeksville.mesh.ui.common.components
+package org.meshtastic.core.ui.component
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.fillMaxWidth
@@ -46,7 +46,6 @@ import com.geeksville.mesh.copy
import com.geeksville.mesh.remoteHardwarePin
import com.google.protobuf.ByteString
import org.meshtastic.core.strings.R
-import org.meshtastic.core.ui.component.EditTextPreference
@Suppress("LongMethod")
@Composable
diff --git a/app/src/main/java/com/geeksville/mesh/ui/common/components/MainAppBar.kt b/core/ui/src/main/kotlin/org/meshtastic/core/ui/component/MainAppBar.kt
similarity index 94%
rename from app/src/main/java/com/geeksville/mesh/ui/common/components/MainAppBar.kt
rename to core/ui/src/main/kotlin/org/meshtastic/core/ui/component/MainAppBar.kt
index db01edfeb..901996bd1 100644
--- a/app/src/main/java/com/geeksville/mesh/ui/common/components/MainAppBar.kt
+++ b/core/ui/src/main/kotlin/org/meshtastic/core/ui/component/MainAppBar.kt
@@ -15,7 +15,7 @@
* along with this program. If not, see .
*/
-package com.geeksville.mesh.ui.common.components
+package org.meshtastic.core.ui.component
import androidx.compose.animation.AnimatedVisibility
import androidx.compose.animation.fadeIn
@@ -47,7 +47,8 @@ import org.meshtastic.core.database.model.Node
import org.meshtastic.core.navigation.ContactsRoutes
import org.meshtastic.core.navigation.SettingsRoutes
import org.meshtastic.core.strings.R
-import org.meshtastic.core.ui.component.NodeChip
+import org.meshtastic.core.ui.component.preview.BooleanProvider
+import org.meshtastic.core.ui.component.preview.previewNode
import org.meshtastic.core.ui.theme.AppTheme
@Suppress("CyclomaticComplexMethod")
@@ -128,7 +129,8 @@ fun MainAppBar(
{
IconButton(enabled = false, onClick = {}) {
Icon(
- imageVector = ImageVector.vectorResource(id = com.geeksville.mesh.R.drawable.app_icon),
+ imageVector =
+ ImageVector.vectorResource(id = org.meshtastic.core.ui.R.drawable.ic_meshtastic),
contentDescription = stringResource(id = R.string.application_icon),
)
}
diff --git a/app/src/main/java/com/geeksville/mesh/ui/common/components/PositionPrecisionPreference.kt b/core/ui/src/main/kotlin/org/meshtastic/core/ui/component/PositionPrecisionPreference.kt
similarity index 97%
rename from app/src/main/java/com/geeksville/mesh/ui/common/components/PositionPrecisionPreference.kt
rename to core/ui/src/main/kotlin/org/meshtastic/core/ui/component/PositionPrecisionPreference.kt
index 22133584c..67d8e8eff 100644
--- a/app/src/main/java/com/geeksville/mesh/ui/common/components/PositionPrecisionPreference.kt
+++ b/core/ui/src/main/kotlin/org/meshtastic/core/ui/component/PositionPrecisionPreference.kt
@@ -15,7 +15,7 @@
* along with this program. If not, see .
*/
-package com.geeksville.mesh.ui.common.components
+package org.meshtastic.core.ui.component
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.PaddingValues
@@ -34,7 +34,6 @@ import androidx.compose.ui.unit.dp
import org.meshtastic.core.model.util.DistanceUnit
import org.meshtastic.core.model.util.toDistanceString
import org.meshtastic.core.strings.R
-import org.meshtastic.core.ui.component.SwitchPreference
import kotlin.math.pow
import kotlin.math.roundToInt
diff --git a/app/src/main/java/com/geeksville/mesh/ui/common/components/PreferenceDivider.kt b/core/ui/src/main/kotlin/org/meshtastic/core/ui/component/PreferenceDivider.kt
similarity index 95%
rename from app/src/main/java/com/geeksville/mesh/ui/common/components/PreferenceDivider.kt
rename to core/ui/src/main/kotlin/org/meshtastic/core/ui/component/PreferenceDivider.kt
index 9914b67a7..675aec6dc 100644
--- a/app/src/main/java/com/geeksville/mesh/ui/common/components/PreferenceDivider.kt
+++ b/core/ui/src/main/kotlin/org/meshtastic/core/ui/component/PreferenceDivider.kt
@@ -15,7 +15,7 @@
* along with this program. If not, see .
*/
-package com.geeksville.mesh.ui.common.components
+package org.meshtastic.core.ui.component
import androidx.compose.foundation.layout.padding
import androidx.compose.material3.HorizontalDivider
diff --git a/app/src/main/java/com/geeksville/mesh/ui/common/components/SecurityIcon.kt b/core/ui/src/main/kotlin/org/meshtastic/core/ui/component/SecurityIcon.kt
similarity index 99%
rename from app/src/main/java/com/geeksville/mesh/ui/common/components/SecurityIcon.kt
rename to core/ui/src/main/kotlin/org/meshtastic/core/ui/component/SecurityIcon.kt
index 13dceefe2..fc8ffdaa2 100644
--- a/app/src/main/java/com/geeksville/mesh/ui/common/components/SecurityIcon.kt
+++ b/core/ui/src/main/kotlin/org/meshtastic/core/ui/component/SecurityIcon.kt
@@ -17,7 +17,7 @@
@file:Suppress("TooManyFunctions")
-package com.geeksville.mesh.ui.common.components
+package org.meshtastic.core.ui.component
import androidx.annotation.StringRes
import androidx.compose.foundation.layout.Arrangement
diff --git a/app/src/main/java/com/geeksville/mesh/ui/common/components/PreviewUtils.kt b/core/ui/src/main/kotlin/org/meshtastic/core/ui/component/preview/PreviewUtils.kt
similarity index 97%
rename from app/src/main/java/com/geeksville/mesh/ui/common/components/PreviewUtils.kt
rename to core/ui/src/main/kotlin/org/meshtastic/core/ui/component/preview/PreviewUtils.kt
index 1671181c8..280f95549 100644
--- a/app/src/main/java/com/geeksville/mesh/ui/common/components/PreviewUtils.kt
+++ b/core/ui/src/main/kotlin/org/meshtastic/core/ui/component/preview/PreviewUtils.kt
@@ -17,7 +17,7 @@
@file:Suppress("MatchingDeclarationName")
-package com.geeksville.mesh.ui.common.components
+package org.meshtastic.core.ui.component.preview
import androidx.compose.ui.tooling.preview.PreviewParameterProvider
import com.geeksville.mesh.MeshProtos
diff --git a/app/src/main/java/com/geeksville/mesh/util/CustomRecentEmojiProvider.kt b/core/ui/src/main/kotlin/org/meshtastic/core/ui/emoji/CustomRecentEmojiProvider.kt
similarity index 98%
rename from app/src/main/java/com/geeksville/mesh/util/CustomRecentEmojiProvider.kt
rename to core/ui/src/main/kotlin/org/meshtastic/core/ui/emoji/CustomRecentEmojiProvider.kt
index 7a53307ad..fd1724585 100644
--- a/app/src/main/java/com/geeksville/mesh/util/CustomRecentEmojiProvider.kt
+++ b/core/ui/src/main/kotlin/org/meshtastic/core/ui/emoji/CustomRecentEmojiProvider.kt
@@ -15,7 +15,7 @@
* along with this program. If not, see .
*/
-package com.geeksville.mesh.util
+package org.meshtastic.core.ui.emoji
import androidx.emoji2.emojipicker.RecentEmojiAsyncProvider
import com.google.common.util.concurrent.Futures
diff --git a/app/src/main/java/com/geeksville/mesh/ui/common/components/EmojiPicker.kt b/core/ui/src/main/kotlin/org/meshtastic/core/ui/emoji/EmojiPicker.kt
similarity index 94%
rename from app/src/main/java/com/geeksville/mesh/ui/common/components/EmojiPicker.kt
rename to core/ui/src/main/kotlin/org/meshtastic/core/ui/emoji/EmojiPicker.kt
index 56261e9b9..fa3b56e44 100644
--- a/app/src/main/java/com/geeksville/mesh/ui/common/components/EmojiPicker.kt
+++ b/core/ui/src/main/kotlin/org/meshtastic/core/ui/emoji/EmojiPicker.kt
@@ -15,7 +15,7 @@
* along with this program. If not, see .
*/
-package com.geeksville.mesh.ui.common.components
+package org.meshtastic.core.ui.emoji
import androidx.activity.compose.BackHandler
import androidx.compose.foundation.background
@@ -29,8 +29,6 @@ import androidx.compose.ui.Modifier
import androidx.compose.ui.viewinterop.AndroidView
import androidx.emoji2.emojipicker.RecentEmojiProviderAdapter
import androidx.hilt.lifecycle.viewmodel.compose.hiltViewModel
-import com.geeksville.mesh.ui.common.EmojiPickerViewModel
-import com.geeksville.mesh.util.CustomRecentEmojiProvider
import org.meshtastic.core.ui.component.BottomSheetDialog
@Composable
diff --git a/app/src/main/java/com/geeksville/mesh/ui/common/EmojiPickerViewModel.kt b/core/ui/src/main/kotlin/org/meshtastic/core/ui/emoji/EmojiPickerViewModel.kt
similarity index 96%
rename from app/src/main/java/com/geeksville/mesh/ui/common/EmojiPickerViewModel.kt
rename to core/ui/src/main/kotlin/org/meshtastic/core/ui/emoji/EmojiPickerViewModel.kt
index 9eabbfc7b..27c727612 100644
--- a/app/src/main/java/com/geeksville/mesh/ui/common/EmojiPickerViewModel.kt
+++ b/core/ui/src/main/kotlin/org/meshtastic/core/ui/emoji/EmojiPickerViewModel.kt
@@ -15,7 +15,7 @@
* along with this program. If not, see .
*/
-package com.geeksville.mesh.ui.common
+package org.meshtastic.core.ui.emoji
import androidx.lifecycle.ViewModel
import dagger.hilt.android.lifecycle.HiltViewModel
diff --git a/core/ui/src/main/res/drawable/ic_meshtastic.xml b/core/ui/src/main/res/drawable/ic_meshtastic.xml
new file mode 100644
index 000000000..2c6079c25
--- /dev/null
+++ b/core/ui/src/main/res/drawable/ic_meshtastic.xml
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+
+
+