Add AnimatedVisibility for preference dependency

This commit is contained in:
tarsin committed 2023-06-06 15:49:37 +08:00
1 parent 8ee20070b6
commit 2ed726427f
1 file changed
+21 -9
@@ -3,6 +3,7 @@ package com.hippo.ehviewer.ui.settings
import android.content.DialogInterface
import android.os.Build
import android.text.Html
import androidx.compose.animation.AnimatedVisibility
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.Spacer
import androidx.compose.foundation.layout.padding
@@ -38,6 +39,7 @@ import com.hippo.ehviewer.client.EhUrl
import com.hippo.ehviewer.client.EhUtils
import com.hippo.ehviewer.client.parser.HomeParser
import com.hippo.ehviewer.ui.compose.observed
import com.hippo.ehviewer.ui.compose.rememberedAccessor
import com.hippo.ehviewer.ui.legacy.BaseDialogBuilder
import com.hippo.ehviewer.ui.login.LocalNavController
import com.hippo.ehviewer.util.whisperClipboard
@@ -73,7 +75,12 @@ fun EhScreen() {
val signOutMessage = stringResource(id = R.string.settings_eh_sign_out_tip)
val touristMode = stringResource(id = R.string.settings_eh_identity_cookies_tourist)
val copiedToClipboard = stringResource(id = R.string.copied_to_clipboard)
Column(modifier = Modifier.padding(top = paddingValues.calculateTopPadding()).nestedScroll(scrollBehavior.nestedScrollConnection).verticalScroll(rememberScrollState())) {
Column(
modifier = Modifier
.padding(top = paddingValues.calculateTopPadding())
.nestedScroll(scrollBehavior.nestedScrollConnection)
.verticalScroll(rememberScrollState()),
) {
Preference(
title = stringResource(id = R.string.account_name),
summary = Settings.displayName ?: touristMode,
@@ -253,17 +260,22 @@ fun EhScreen() {
title = stringResource(id = R.string.settings_eh_metered_network_warning),
value = Settings::meteredNetworkWarning,
)
val reqNews = Settings::requestNews.observed
SwitchPreference(
title = stringResource(id = R.string.settings_eh_request_news),
value = Settings::requestNews,
)
Preference(
title = stringResource(id = R.string.settings_eh_request_news_timepicker),
)
SwitchPreference(
title = stringResource(id = R.string.settings_eh_hide_hv_events),
value = Settings::requestNews,
value = reqNews.rememberedAccessor,
)
AnimatedVisibility(visible = reqNews.value) {
Preference(
title = stringResource(id = R.string.settings_eh_request_news_timepicker),
)
}
AnimatedVisibility(visible = reqNews.value) {
SwitchPreference(
title = stringResource(id = R.string.settings_eh_hide_hv_events),
value = Settings::requestNews,
)
}
Spacer(modifier = Modifier.size(paddingValues.calculateBottomPadding()))
}
}