From d62802463701cb2b32a7335885861d8be1a11266 Mon Sep 17 00:00:00 2001 From: GG Bond Date: Fri, 10 May 2024 16:14:26 +0800 Subject: [PATCH] Refine --- .../com/hippo/ehviewer/ui/screen/GalleryListScreen.kt | 2 +- .../kotlin/com/hippo/ehviewer/ui/tools/CircularLayout.kt | 3 +-- .../com/hippo/ehviewer/ui/tools/RememberGlobally.kt | 9 ++++----- 3 files changed, 6 insertions(+), 8 deletions(-) diff --git a/app/src/main/kotlin/com/hippo/ehviewer/ui/screen/GalleryListScreen.kt b/app/src/main/kotlin/com/hippo/ehviewer/ui/screen/GalleryListScreen.kt index 2ecc7c993..825c68ff8 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/ui/screen/GalleryListScreen.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/ui/screen/GalleryListScreen.kt @@ -175,7 +175,7 @@ fun GalleryListScreen(lub: ListUrlBuilder, navigator: DestinationsNavigator) = c var searchBarOffsetY by remember { mutableIntStateOf(0) } var showSearchLayout by rememberSaveable { mutableStateOf(false) } - var category by rememberInDataStore("SearchCategory") { mutableIntStateOf(EhUtils.ALL_CATEGORY) } + var category by rememberInDataStore("SearchCategory") { EhUtils.ALL_CATEGORY } var searchMethod by rememberSaveable { mutableIntStateOf(1) } var advancedSearchOption by rememberSaveable { mutableStateOf(AdvancedSearchOption()) } var imageUri by rememberSaveable { mutableStateOf(null) } diff --git a/app/src/main/kotlin/com/hippo/ehviewer/ui/tools/CircularLayout.kt b/app/src/main/kotlin/com/hippo/ehviewer/ui/tools/CircularLayout.kt index 925385685..266469bd4 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/ui/tools/CircularLayout.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/ui/tools/CircularLayout.kt @@ -6,7 +6,6 @@ import androidx.compose.foundation.gestures.draggable2D import androidx.compose.foundation.gestures.rememberDraggable2DState import androidx.compose.runtime.Composable import androidx.compose.runtime.getValue -import androidx.compose.runtime.mutableFloatStateOf import androidx.compose.runtime.rememberCoroutineScope import androidx.compose.runtime.setValue import androidx.compose.ui.Modifier @@ -36,7 +35,7 @@ fun CircularLayout( content: @Composable () -> Unit, ) { val coroutineScope = rememberCoroutineScope() - var delta by rememberInDataStore("FavDialogTheta") { mutableFloatStateOf(0F) } + var delta by rememberInDataStore("FavDialogTheta") { 0F } val state = rememberDraggable2DState { val prevOfs = currentOfs val prevTheta = currentTheta diff --git a/app/src/main/kotlin/com/hippo/ehviewer/ui/tools/RememberGlobally.kt b/app/src/main/kotlin/com/hippo/ehviewer/ui/tools/RememberGlobally.kt index 93a7eae3d..c65008a88 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/ui/tools/RememberGlobally.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/ui/tools/RememberGlobally.kt @@ -3,7 +3,6 @@ package com.hippo.ehviewer.ui.tools import androidx.compose.runtime.Composable import androidx.compose.runtime.DisallowComposableCalls import androidx.compose.runtime.DisposableEffect -import androidx.compose.runtime.MutableState import androidx.compose.runtime.currentCompositeKeyHash import androidx.compose.runtime.getValue import androidx.compose.runtime.mutableStateOf @@ -58,16 +57,16 @@ inline fun rememberInVM( } } +// Find out how make this work with any generic `Serializable` type @Composable inline fun rememberInDataStore( key: String, - crossinline defaultValue: @DisallowComposableCalls () -> MutableState, + crossinline defaultValue: @DisallowComposableCalls () -> T, ) = with(dataStateFlow) { remember { val keyObj = byteArrayPreferencesKey(key) - value[keyObj]?.let { bytes -> - mutableStateOf(Cbor.decodeFromByteArray(bytes)) - } ?: defaultValue() + val r = value[keyObj]?.let { bytes -> Cbor.decodeFromByteArray(bytes) } ?: defaultValue() + mutableStateOf(r) }.also { value -> DisposableEffect(key) { onDispose {