From 87dde92daedb4b84471b26750799f91fb13a2d1c Mon Sep 17 00:00:00 2001 From: HuanCheng65 <22636177+HuanCheng65@users.noreply.github.com> Date: Mon, 25 Sep 2023 13:36:08 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=A4=9C=E9=97=B4=E6=A8=A1=E5=BC=8F?= =?UTF-8?q?=E9=99=8D=E4=BD=8E=E7=BC=A9=E7=95=A5=E5=9B=BE=E4=BA=AE=E5=BA=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../page/settings/habit/HabitSettingsPage.kt | 17 +++++++++++++++++ .../tieba/post/ui/widgets/compose/Images.kt | 19 +++++++++++++++++++ .../tieba/post/utils/AppPreferencesUtils.kt | 6 +++--- app/src/main/res/values/strings.xml | 1 + 4 files changed, 40 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/com/huanchengfly/tieba/post/ui/page/settings/habit/HabitSettingsPage.kt b/app/src/main/java/com/huanchengfly/tieba/post/ui/page/settings/habit/HabitSettingsPage.kt index 65b325ae..5da6a2a0 100644 --- a/app/src/main/java/com/huanchengfly/tieba/post/ui/page/settings/habit/HabitSettingsPage.kt +++ b/app/src/main/java/com/huanchengfly/tieba/post/ui/page/settings/habit/HabitSettingsPage.kt @@ -7,6 +7,7 @@ import androidx.compose.material.icons.Icons import androidx.compose.material.icons.outlined.BrandingWatermark import androidx.compose.material.icons.outlined.CalendarViewDay import androidx.compose.material.icons.outlined.ExitToApp +import androidx.compose.material.icons.outlined.NightsStay import androidx.compose.material.icons.outlined.PhotoSizeSelectActual import androidx.compose.material.icons.outlined.SecurityUpdateWarning import androidx.compose.material.icons.outlined.StarOutline @@ -104,6 +105,22 @@ fun HabitSettingsPage( }, ) } + prefsItem { + SwitchPref( + key = "imageDarkenWhenNightMode", + title = stringResource(id = R.string.settings_image_darken_when_night_mode), + defaultChecked = true, + leadingIcon = { + LeadingIcon { + AvatarIcon( + icon = Icons.Outlined.NightsStay, + size = Sizes.Small, + contentDescription = null, + ) + } + }, + ) + } prefsItem { ListPref( key = "default_sort_type", diff --git a/app/src/main/java/com/huanchengfly/tieba/post/ui/widgets/compose/Images.kt b/app/src/main/java/com/huanchengfly/tieba/post/ui/widgets/compose/Images.kt index f0e6c37b..4161d070 100644 --- a/app/src/main/java/com/huanchengfly/tieba/post/ui/widgets/compose/Images.kt +++ b/app/src/main/java/com/huanchengfly/tieba/post/ui/widgets/compose/Images.kt @@ -11,6 +11,8 @@ import androidx.compose.runtime.remember import androidx.compose.runtime.rememberUpdatedState import androidx.compose.runtime.setValue import androidx.compose.ui.Modifier +import androidx.compose.ui.graphics.ColorFilter +import androidx.compose.ui.graphics.ColorMatrix import androidx.compose.ui.layout.ContentScale import androidx.compose.ui.platform.LocalContext import com.github.panpf.sketch.compose.AsyncImage @@ -23,6 +25,7 @@ import com.huanchengfly.tieba.post.ui.page.photoview.PhotoViewActivity import com.huanchengfly.tieba.post.ui.page.photoview.PhotoViewActivity.Companion.EXTRA_PHOTO_VIEW_DATA import com.huanchengfly.tieba.post.utils.ImageUtil import com.huanchengfly.tieba.post.utils.NetworkUtil +import com.huanchengfly.tieba.post.utils.ThemeUtil import com.huanchengfly.tieba.post.utils.appPreferences fun shouldLoadImage(context: Context, skipNetworkCheck: Boolean): Boolean { @@ -71,11 +74,27 @@ fun NetworkImage( } } + val currentTheme by remember { ThemeUtil.themeState } + val isNightMode = remember(currentTheme) { ThemeUtil.isNightMode(currentTheme) } + val colorFilter = if (isNightMode && context.appPreferences.imageDarkenWhenNightMode) { + ColorFilter.colorMatrix( + ColorMatrix( + floatArrayOf( + 1f, 0f, 0f, 0f, -35f, + 0f, 1f, 0f, 0f, -35f, + 0f, 0f, 1f, 0f, -35f, + 0f, 0f, 0f, 1f, 0f + ) + ) + ) + } else null + AsyncImage( request = request, contentDescription = contentDescription, modifier = modifier.then(clickableModifier), contentScale = contentScale, + colorFilter = colorFilter, ) } diff --git a/app/src/main/java/com/huanchengfly/tieba/post/utils/AppPreferencesUtils.kt b/app/src/main/java/com/huanchengfly/tieba/post/utils/AppPreferencesUtils.kt index 4de63ed1..da1b0fa5 100644 --- a/app/src/main/java/com/huanchengfly/tieba/post/utils/AppPreferencesUtils.kt +++ b/app/src/main/java/com/huanchengfly/tieba/post/utils/AppPreferencesUtils.kt @@ -115,6 +115,8 @@ open class AppPreferencesUtils private constructor(ctx: Context) { var homePageScroll by DataStoreDelegates.boolean(defaultValue = false) + var imageDarkenWhenNightMode by DataStoreDelegates.boolean(defaultValue = true) + var imageLoadType by DataStoreDelegates.string( key = "image_load_type", defaultValue = "0" @@ -132,15 +134,13 @@ open class AppPreferencesUtils private constructor(ctx: Context) { var oldTheme by DataStoreDelegates.string(key = "old_theme") - var oksignWorkId by DataStoreDelegates.string() - var oksignSlowMode by DataStoreDelegates.boolean( defaultValue = true, key = "oksign_slow_mode" ) var oksignUseOfficialOksign by DataStoreDelegates.boolean( - defaultValue = false, + defaultValue = true, key = "oksign_use_official_oksign" ) diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index f3ac4cbb..bffccb7b 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -724,4 +724,5 @@ 清除全部 动态取色 夜间主题 + 夜间模式压暗缩略图