Skip to content

Commit 6cb0196

Browse files
authored
Migrate (mostly) maps prefs to repo (meshtastic#2776)
1 parent 4be0cd7 commit 6cb0196

5 files changed

Lines changed: 23 additions & 43 deletions

File tree

app/src/fdroid/java/com/geeksville/mesh/ui/map/MapViewModel.kt

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,7 @@
1717

1818
package com.geeksville.mesh.ui.map
1919

20-
import android.content.SharedPreferences
21-
import androidx.core.content.edit
20+
import com.geeksville.mesh.android.prefs.UiPrefs
2221
import com.geeksville.mesh.database.NodeRepository
2322
import com.geeksville.mesh.database.PacketRepository
2423
import dagger.hilt.android.lifecycle.HiltViewModel
@@ -28,12 +27,14 @@ import javax.inject.Inject
2827
class MapViewModel
2928
@Inject
3029
constructor(
31-
preferences: SharedPreferences,
30+
uiPrefs: UiPrefs,
3231
packetRepository: PacketRepository,
3332
nodeRepository: NodeRepository,
34-
) : BaseMapViewModel(preferences, nodeRepository, packetRepository) {
33+
) : BaseMapViewModel(uiPrefs, nodeRepository, packetRepository) {
3534

3635
var mapStyleId: Int
37-
get() = preferences.getInt(MAP_STYLE_ID, 0)
38-
set(value) = preferences.edit { putInt(MAP_STYLE_ID, value) }
36+
get() = uiPrefs.mapStyle
37+
set(value) {
38+
uiPrefs.mapStyle = value
39+
}
3940
}

app/src/google/java/com/geeksville/mesh/ui/map/MapViewModel.kt

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ import androidx.core.content.edit
2424
import androidx.lifecycle.viewModelScope
2525
import com.geeksville.mesh.ConfigProtos
2626
import com.geeksville.mesh.android.BuildUtils.debug
27+
import com.geeksville.mesh.android.prefs.UiPrefs
2728
import com.geeksville.mesh.database.NodeRepository
2829
import com.geeksville.mesh.database.PacketRepository
2930
import com.geeksville.mesh.repository.datastore.RadioConfigRepository
@@ -72,18 +73,19 @@ data class MapCameraPosition(
7273
val bearing: Float,
7374
)
7475

75-
@Suppress("TooManyFunctions")
76+
@Suppress("TooManyFunctions", "LongParameterList")
7677
@HiltViewModel
7778
class MapViewModel
7879
@Inject
7980
constructor(
8081
private val application: Application,
81-
preferences: SharedPreferences,
82+
uiPrefs: UiPrefs,
83+
private val preferences: SharedPreferences,
8284
nodeRepository: NodeRepository,
8385
packetRepository: PacketRepository,
8486
radioConfigRepository: RadioConfigRepository,
8587
private val customTileProviderRepository: CustomTileProviderRepository,
86-
) : BaseMapViewModel(preferences, nodeRepository, packetRepository) {
88+
) : BaseMapViewModel(uiPrefs, nodeRepository, packetRepository) {
8789

8890
private val _errorFlow = MutableSharedFlow<String>()
8991
val errorFlow: SharedFlow<String> = _errorFlow.asSharedFlow()

app/src/main/java/com/geeksville/mesh/model/MetricsViewModel.kt

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@
1818
package com.geeksville.mesh.model
1919

2020
import android.app.Application
21-
import android.content.SharedPreferences
2221
import android.net.Uri
2322
import androidx.annotation.StringRes
2423
import androidx.compose.ui.unit.Dp
@@ -38,6 +37,7 @@ import com.geeksville.mesh.Portnums.PortNum
3837
import com.geeksville.mesh.R
3938
import com.geeksville.mesh.TelemetryProtos.Telemetry
4039
import com.geeksville.mesh.android.Logging
40+
import com.geeksville.mesh.android.prefs.UiPrefs
4141
import com.geeksville.mesh.database.MeshLogRepository
4242
import com.geeksville.mesh.database.entity.FirmwareRelease
4343
import com.geeksville.mesh.database.entity.MeshLog
@@ -47,7 +47,6 @@ import com.geeksville.mesh.repository.api.DeviceHardwareRepository
4747
import com.geeksville.mesh.repository.api.FirmwareReleaseRepository
4848
import com.geeksville.mesh.repository.datastore.RadioConfigRepository
4949
import com.geeksville.mesh.service.ServiceAction
50-
import com.geeksville.mesh.ui.map.MAP_STYLE_ID
5150
import dagger.hilt.android.lifecycle.HiltViewModel
5251
import kotlinx.coroutines.flow.MutableStateFlow
5352
import kotlinx.coroutines.flow.StateFlow
@@ -204,7 +203,7 @@ constructor(
204203
private val radioConfigRepository: RadioConfigRepository,
205204
private val deviceHardwareRepository: DeviceHardwareRepository,
206205
private val firmwareReleaseRepository: FirmwareReleaseRepository,
207-
private val preferences: SharedPreferences,
206+
private val uiPrefs: UiPrefs,
208207
) : ViewModel(),
209208
Logging {
210209
private val destNum = savedStateHandle.toRoute<NodesRoutes.NodeDetailGraph>().destNum
@@ -234,7 +233,7 @@ constructor(
234233
fun getUser(nodeNum: Int) = radioConfigRepository.getUser(nodeNum)
235234

236235
val tileSource
237-
get() = CustomTileSource.getTileSource(preferences.getInt(MAP_STYLE_ID, 0))
236+
get() = CustomTileSource.getTileSource(uiPrefs.mapStyle)
238237

239238
fun deleteLog(uuid: String) = viewModelScope.launch(dispatchers.io) { meshLogRepository.deleteLog(uuid) }
240239

app/src/main/java/com/geeksville/mesh/ui/map/BaseMapViewModel.kt

Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -17,10 +17,9 @@
1717

1818
package com.geeksville.mesh.ui.map
1919

20-
import android.content.SharedPreferences
21-
import androidx.core.content.edit
2220
import androidx.lifecycle.ViewModel
2321
import androidx.lifecycle.viewModelScope
22+
import com.geeksville.mesh.android.prefs.UiPrefs
2423
import com.geeksville.mesh.database.NodeRepository
2524
import com.geeksville.mesh.database.PacketRepository
2625
import com.geeksville.mesh.database.entity.Packet
@@ -35,7 +34,7 @@ import kotlinx.coroutines.flow.stateIn
3534

3635
@Suppress("TooManyFunctions")
3736
abstract class BaseMapViewModel(
38-
protected val preferences: SharedPreferences,
37+
protected val uiPrefs: UiPrefs,
3938
nodeRepository: NodeRepository,
4039
packetRepository: PacketRepository,
4140
) : ViewModel() {
@@ -62,28 +61,27 @@ abstract class BaseMapViewModel(
6261
}
6362
.stateIn(scope = viewModelScope, started = SharingStarted.WhileSubscribed(5_000), initialValue = emptyMap())
6463

65-
private val showOnlyFavorites = MutableStateFlow(preferences.getBoolean("only-favorites", false))
64+
private val showOnlyFavorites = MutableStateFlow(uiPrefs.showOnlyFavorites)
6665

67-
private val showWaypointsOnMap = MutableStateFlow(preferences.getBoolean("show-waypoints-on-map", true))
66+
private val showWaypointsOnMap = MutableStateFlow(uiPrefs.showWaypointsOnMap)
6867

69-
private val showPrecisionCircleOnMap =
70-
MutableStateFlow(preferences.getBoolean("show-precision-circle-on-map", true))
68+
private val showPrecisionCircleOnMap = MutableStateFlow(uiPrefs.showPrecisionCircleOnMap)
7169

7270
fun toggleOnlyFavorites() {
7371
val current = showOnlyFavorites.value
74-
preferences.edit { putBoolean("only-favorites", !current) }
72+
uiPrefs.showOnlyFavorites = !current
7573
showOnlyFavorites.value = !current
7674
}
7775

7876
fun toggleShowWaypointsOnMap() {
7977
val current = showWaypointsOnMap.value
80-
preferences.edit { putBoolean("show-waypoints-on-map", !current) }
78+
uiPrefs.showWaypointsOnMap = !current
8179
showWaypointsOnMap.value = !current
8280
}
8381

8482
fun toggleShowPrecisionCircleOnMap() {
8583
val current = showPrecisionCircleOnMap.value
86-
preferences.edit { putBoolean("show-precision-circle-on-map", !current) }
84+
uiPrefs.showPrecisionCircleOnMap = !current
8785
showPrecisionCircleOnMap.value = !current
8886
}
8987

app/src/main/java/com/geeksville/mesh/ui/map/Constants.kt

Lines changed: 0 additions & 20 deletions
This file was deleted.

0 commit comments

Comments
 (0)