Release GPS2Audio v2.5.44 POI category fix
This commit is contained in:
@@ -0,0 +1,53 @@
|
||||
package de.waypointaudio.data
|
||||
|
||||
import android.content.Context
|
||||
import androidx.datastore.preferences.core.booleanPreferencesKey
|
||||
import androidx.datastore.preferences.core.edit
|
||||
import androidx.datastore.preferences.preferencesDataStore
|
||||
import kotlinx.coroutines.flow.Flow
|
||||
import kotlinx.coroutines.flow.map
|
||||
|
||||
/**
|
||||
* v2.5.0 — Sichtbarkeitsoptionen für die optionalen Module der neuen
|
||||
* Audio-Bibliothek-Hauptseite. PTT- und Atmo-Modul lassen sich
|
||||
* unabhängig ein- und ausblenden ("Startseite anpassen").
|
||||
*
|
||||
* Default: beide Module sind sichtbar, damit bestehende Nutzer ihren
|
||||
* bisherigen Zugang zu Live-PTT und Atmo nicht verlieren.
|
||||
*/
|
||||
data class HomeModulesSettings(
|
||||
val showPtt: Boolean = true,
|
||||
val showAtmo: Boolean = true,
|
||||
val showMiniNowPlaying: Boolean = true
|
||||
)
|
||||
|
||||
private val Context.homeModulesDataStore by preferencesDataStore(name = "home_modules_settings")
|
||||
|
||||
class HomeModulesSettingsStore(private val context: Context) {
|
||||
|
||||
private companion object {
|
||||
val KEY_SHOW_PTT = booleanPreferencesKey("show_ptt")
|
||||
val KEY_SHOW_ATMO = booleanPreferencesKey("show_atmo")
|
||||
val KEY_SHOW_MINI_NOW = booleanPreferencesKey("show_mini_now")
|
||||
}
|
||||
|
||||
val settings: Flow<HomeModulesSettings> = context.homeModulesDataStore.data.map { prefs ->
|
||||
HomeModulesSettings(
|
||||
showPtt = prefs[KEY_SHOW_PTT] ?: true,
|
||||
showAtmo = prefs[KEY_SHOW_ATMO] ?: true,
|
||||
showMiniNowPlaying = prefs[KEY_SHOW_MINI_NOW] ?: true
|
||||
)
|
||||
}
|
||||
|
||||
suspend fun setShowPtt(value: Boolean) {
|
||||
context.homeModulesDataStore.edit { it[KEY_SHOW_PTT] = value }
|
||||
}
|
||||
|
||||
suspend fun setShowAtmo(value: Boolean) {
|
||||
context.homeModulesDataStore.edit { it[KEY_SHOW_ATMO] = value }
|
||||
}
|
||||
|
||||
suspend fun setShowMiniNowPlaying(value: Boolean) {
|
||||
context.homeModulesDataStore.edit { it[KEY_SHOW_MINI_NOW] = value }
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user