From 2ed726427faec67a165315a09ce8cf0bca66d5f0 Mon Sep 17 00:00:00 2001 From: tarsin Date: Tue, 6 Jun 2023 15:49:37 +0800 Subject: [PATCH] Add AnimatedVisibility for preference dependency --- .../hippo/ehviewer/ui/settings/EhScreen.kt | 30 +++++++++++++------ 1 file changed, 21 insertions(+), 9 deletions(-) diff --git a/app/src/main/java/com/hippo/ehviewer/ui/settings/EhScreen.kt b/app/src/main/java/com/hippo/ehviewer/ui/settings/EhScreen.kt index a447feb21..df42a6d33 100644 --- a/app/src/main/java/com/hippo/ehviewer/ui/settings/EhScreen.kt +++ b/app/src/main/java/com/hippo/ehviewer/ui/settings/EhScreen.kt @@ -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())) } }