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)