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 @@
清除全部
动态取色
夜间主题
+ 夜间模式压暗缩略图