[DO NOT USE] Introduce MutableState<T>.rememberedAccessor

This commit is contained in:
tarsin committed 2023-06-05 17:49:49 +08:00
1 parent d2b5e5ec01
commit b56f136da0
2 files changed
+10 -2

No files matched your search

@@ -2,8 +2,10 @@ package com.hippo.ehviewer.ui.compose
import androidx.compose.runtime.Composable
import androidx.compose.runtime.MutableState
import androidx.compose.runtime.getValue
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember
import androidx.compose.runtime.setValue
import kotlin.reflect.KMutableProperty0
val <T> KMutableProperty0<T>.observed: MutableState<T>
@@ -19,3 +21,7 @@ val <T> KMutableProperty0<T>.observed: MutableState<T>
}
}
}
val <T> MutableState<T>.rememberedAccessor: KMutableProperty0<T>
@Composable
get() = remember { object { var value by this@rememberedAccessor }::value }
@@ -30,6 +30,7 @@ import com.hippo.ehviewer.R
import com.hippo.ehviewer.Settings
import com.hippo.ehviewer.download.downloadLocation
import com.hippo.ehviewer.ui.compose.observed
import com.hippo.ehviewer.ui.compose.rememberedAccessor
import com.hippo.ehviewer.ui.keepNoMediaFileStatus
import com.hippo.ehviewer.ui.legacy.BaseDialogBuilder
import com.hippo.ehviewer.ui.login.LocalNavController
@@ -103,10 +104,11 @@ fun DownloadScreen() {
selectDownloadDirLauncher.launch(null)
}
}
val mediaScan = Settings::mediaScan.observed
SwitchPreference(
title = stringResource(id = R.string.settings_download_media_scan),
summary = if (Settings.mediaScan) stringResource(id = R.string.settings_download_media_scan_summary_on) else stringResource(id = R.string.settings_download_media_scan_summary_off),
value = Settings::mediaScan,
summary = if (mediaScan.value) stringResource(id = R.string.settings_download_media_scan_summary_on) else stringResource(id = R.string.settings_download_media_scan_summary_off),
value = mediaScan.rememberedAccessor,
)
val multiThreadDownload = Settings::multiThreadDownload.observed
SimpleMenuPreferenceInt(