mirror of
https://github.com/anyproto/anytype-kotlin.git
synced 2025-06-08 05:47:05 +09:00
DROID)2195 Multispaces | Tech | Space settings refactoring (#853)
This commit is contained in:
parent
dc19f96c93
commit
c163c67312
76 changed files with 379 additions and 270 deletions
|
@ -92,18 +92,6 @@ class DefaultAuthCache(
|
|||
encryptedPrefs.edit().putString(CURRENT_ACCOUNT_ID_KEY, id).apply()
|
||||
}
|
||||
|
||||
override suspend fun saveLastOpenedObject(id: String) {
|
||||
encryptedPrefs.edit().putString(LAST_OPENED_OBJECT_KEY, id).apply()
|
||||
}
|
||||
|
||||
override suspend fun getLastOpenedObject(): String? {
|
||||
return encryptedPrefs.getString(LAST_OPENED_OBJECT_KEY, null)
|
||||
}
|
||||
|
||||
override suspend fun clearLastOpenedObject() {
|
||||
encryptedPrefs.edit().remove(LAST_OPENED_OBJECT_KEY).apply()
|
||||
}
|
||||
|
||||
override suspend fun getNetworkMode(): NetworkModeConfig = networkModeProvider.get()
|
||||
override suspend fun setNetworkMode(modeConfig: NetworkModeConfig) {
|
||||
networkModeProvider.set(modeConfig)
|
||||
|
|
|
@ -24,6 +24,7 @@ import com.anytypeio.anytype.persistence.model.asWallpaper
|
|||
import com.anytypeio.anytype.persistence.preferences.SPACE_PREFERENCE_FILENAME
|
||||
import com.anytypeio.anytype.persistence.preferences.SpacePrefSerializer
|
||||
import kotlinx.coroutines.flow.Flow
|
||||
import kotlinx.coroutines.flow.first
|
||||
import kotlinx.coroutines.flow.map
|
||||
|
||||
class DefaultUserSettingsCache(
|
||||
|
@ -251,6 +252,54 @@ class DefaultUserSettingsCache(
|
|||
}
|
||||
}
|
||||
|
||||
override suspend fun setLastOpenedObject(id: Id, space: SpaceId) {
|
||||
context.spacePrefsStore.updateData { existingPreferences ->
|
||||
val givenSpacePreference = existingPreferences
|
||||
.preferences
|
||||
.getOrDefault(
|
||||
key = space.id,
|
||||
defaultValue = SpacePreference()
|
||||
)
|
||||
val updated = givenSpacePreference.copy(
|
||||
lastOpenedObject = id
|
||||
)
|
||||
val result = buildMap {
|
||||
putAll(existingPreferences.preferences)
|
||||
put(key = space.id, updated)
|
||||
}
|
||||
SpacePreferences(preferences = result)
|
||||
}
|
||||
}
|
||||
|
||||
override suspend fun getLastOpenedObject(space: SpaceId): Id? {
|
||||
return context.spacePrefsStore
|
||||
.data
|
||||
.map { preferences ->
|
||||
preferences
|
||||
.preferences[space.id]
|
||||
?.lastOpenedObject
|
||||
}
|
||||
.first()
|
||||
}
|
||||
|
||||
override suspend fun clearLastOpenedObject(space: SpaceId) {
|
||||
context.spacePrefsStore.updateData { existingPreferences ->
|
||||
val givenSpacePreference = existingPreferences
|
||||
.preferences
|
||||
.getOrDefault(key = space.id, defaultValue = SpacePreference())
|
||||
val updated = givenSpacePreference.copy(
|
||||
lastOpenedObject = null
|
||||
)
|
||||
val result = buildMap {
|
||||
putAll(existingPreferences.preferences)
|
||||
put(key = space.id, updated)
|
||||
}
|
||||
SpacePreferences(
|
||||
preferences = result
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
companion object {
|
||||
const val CURRENT_SPACE_KEY = "prefs.user_settings.current_space"
|
||||
const val DEFAULT_OBJECT_TYPE_ID_KEY = "prefs.user_settings.default_object_type.id"
|
||||
|
|
|
@ -11,4 +11,5 @@ message SpacePreferences {
|
|||
message SpacePreference {
|
||||
optional string defaultObjectTypeKey = 1;
|
||||
repeated string pinnedObjectTypeIds = 2;
|
||||
optional string lastOpenedObject = 3;
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue