change (media preview config) : manage migration of local data
This commit is contained in:
@@ -22,9 +22,10 @@ interface AppPreferencesStore {
|
||||
suspend fun setTheme(theme: String)
|
||||
fun getThemeFlow(): Flow<String?>
|
||||
|
||||
fun getHideInviteAvatarsFlow(): Flow<Boolean>
|
||||
|
||||
fun getTimelineMediaPreviewValueFlow(): Flow<MediaPreviewValue>
|
||||
suspend fun setHideInviteAvatars(hide: Boolean?)
|
||||
fun getHideInviteAvatarsFlow(): Flow<Boolean?>
|
||||
suspend fun setTimelineMediaPreviewValue(mediaPreviewValue: MediaPreviewValue?)
|
||||
fun getTimelineMediaPreviewValueFlow(): Flow<MediaPreviewValue?>
|
||||
|
||||
suspend fun setTracingLogLevel(logLevel: LogLevel)
|
||||
fun getTracingLogLevelFlow(): Flow<LogLevel>
|
||||
|
||||
@@ -85,15 +85,35 @@ class DefaultAppPreferencesStore @Inject constructor(
|
||||
}
|
||||
}
|
||||
|
||||
override fun getHideInviteAvatarsFlow(): Flow<Boolean> {
|
||||
override fun getHideInviteAvatarsFlow(): Flow<Boolean?> {
|
||||
return store.data.map { prefs ->
|
||||
prefs[hideInviteAvatarsKey] == true
|
||||
prefs[hideInviteAvatarsKey]
|
||||
}
|
||||
}
|
||||
|
||||
override fun getTimelineMediaPreviewValueFlow(): Flow<MediaPreviewValue> {
|
||||
override suspend fun setHideInviteAvatars(hide: Boolean?) {
|
||||
store.edit { prefs ->
|
||||
if (hide != null) {
|
||||
prefs[hideInviteAvatarsKey] = hide
|
||||
} else {
|
||||
prefs.remove(hideInviteAvatarsKey)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
override suspend fun setTimelineMediaPreviewValue(mediaPreviewValue: MediaPreviewValue?) {
|
||||
store.edit { prefs ->
|
||||
if (mediaPreviewValue != null) {
|
||||
prefs[timelineMediaPreviewValueKey] = mediaPreviewValue.name
|
||||
} else {
|
||||
prefs.remove(timelineMediaPreviewValueKey)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
override fun getTimelineMediaPreviewValueFlow(): Flow<MediaPreviewValue?> {
|
||||
return store.data.map { prefs ->
|
||||
prefs[timelineMediaPreviewValueKey]?.let { MediaPreviewValue.valueOf(it) } ?: MediaPreviewValue.On
|
||||
prefs[timelineMediaPreviewValueKey]?.let { MediaPreviewValue.valueOf(it) }
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -17,8 +17,8 @@ import kotlinx.coroutines.flow.MutableStateFlow
|
||||
class InMemoryAppPreferencesStore(
|
||||
isDeveloperModeEnabled: Boolean = false,
|
||||
customElementCallBaseUrl: String? = null,
|
||||
hideInviteAvatars: Boolean = false,
|
||||
timelineMediaPreviewValue: MediaPreviewValue = MediaPreviewValue.On,
|
||||
hideInviteAvatars: Boolean? = null,
|
||||
timelineMediaPreviewValue: MediaPreviewValue? = null,
|
||||
theme: String? = null,
|
||||
logLevel: LogLevel = LogLevel.INFO,
|
||||
traceLockPacks: Set<TraceLogPack> = emptySet(),
|
||||
@@ -55,14 +55,22 @@ class InMemoryAppPreferencesStore(
|
||||
return theme
|
||||
}
|
||||
|
||||
override fun getHideInviteAvatarsFlow(): Flow<Boolean> {
|
||||
override fun getHideInviteAvatarsFlow(): Flow<Boolean?> {
|
||||
return hideInviteAvatars
|
||||
}
|
||||
|
||||
override fun getTimelineMediaPreviewValueFlow(): Flow<MediaPreviewValue> {
|
||||
override fun getTimelineMediaPreviewValueFlow(): Flow<MediaPreviewValue?> {
|
||||
return timelineMediaPreviewValue
|
||||
}
|
||||
|
||||
override suspend fun setHideInviteAvatars(hide: Boolean?) {
|
||||
hideInviteAvatars.value = hide
|
||||
}
|
||||
|
||||
override suspend fun setTimelineMediaPreviewValue(mediaPreviewValue: MediaPreviewValue?) {
|
||||
timelineMediaPreviewValue.value = mediaPreviewValue
|
||||
}
|
||||
|
||||
override suspend fun setTracingLogLevel(logLevel: LogLevel) {
|
||||
this.logLevel.value = logLevel
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user