From a4dd520248d1b84714dcdd80cb510024abe54540 Mon Sep 17 00:00:00 2001 From: Stanislav Dmitrenko <7953703+avently@users.noreply.github.com> Date: Thu, 1 Dec 2022 01:20:08 +0300 Subject: [PATCH] android: Better shared preference handling (#1471) * android: Better shared preference handling * To make sure we return real value, not untransformed one * Revert "To make sure we return real value, not untransformed one" This reverts commit 5a268e2cf440ff8dcce5c6d03713d0da5cd5e6ed. --- .../main/java/chat/simplex/app/model/SimpleXAPI.kt | 14 +++++++++++++- .../app/views/chatlist/ChatListNavLinkView.kt | 2 +- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/apps/android/app/src/main/java/chat/simplex/app/model/SimpleXAPI.kt b/apps/android/app/src/main/java/chat/simplex/app/model/SimpleXAPI.kt index 0b2a5aa892..3e1165fe5b 100644 --- a/apps/android/app/src/main/java/chat/simplex/app/model/SimpleXAPI.kt +++ b/apps/android/app/src/main/java/chat/simplex/app/model/SimpleXAPI.kt @@ -14,6 +14,7 @@ import androidx.compose.material.* import androidx.compose.material.icons.Icons import androidx.compose.material.icons.filled.* import androidx.compose.material.icons.outlined.* +import androidx.compose.runtime.* import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Color import androidx.compose.ui.graphics.toArgb @@ -1480,7 +1481,18 @@ open class ChatController(var ctrl: ChatCtrl?, val ntfManager: NtfManager, val a } } -class SharedPreference(val get: () -> T, val set: (T) -> Unit) +class SharedPreference(val get: () -> T, set: (T) -> Unit) { + val set: (T) -> Unit + private val _state: MutableState by lazy { mutableStateOf(get()) } + val state: State by lazy { _state } + + init { + this.set = { value -> + set(value) + _state.value = value + } + } +} // ChatCommand sealed class CC { diff --git a/apps/android/app/src/main/java/chat/simplex/app/views/chatlist/ChatListNavLinkView.kt b/apps/android/app/src/main/java/chat/simplex/app/views/chatlist/ChatListNavLinkView.kt index 8f6fc34c89..6596b45054 100644 --- a/apps/android/app/src/main/java/chat/simplex/app/views/chatlist/ChatListNavLinkView.kt +++ b/apps/android/app/src/main/java/chat/simplex/app/views/chatlist/ChatListNavLinkView.kt @@ -33,7 +33,7 @@ fun ChatListNavLinkView(chat: Chat, chatModel: ChatModel) { chat.chatStats.unreadCount > 0 || chat.chatStats.unreadChat } val stopped = chatModel.chatRunning.value == false - val linkMode = chatModel.controller.appPrefs.simplexLinkMode.get() + val linkMode by remember { chatModel.controller.appPrefs.simplexLinkMode.state } LaunchedEffect(chat.id) { showMenu.value = false delay(500L)