From 011aaa0bb942a59aac02bf948d25aa495da2eba1 Mon Sep 17 00:00:00 2001 From: HapeLee <1321903405@qq.com> Date: Wed, 10 Sep 2025 19:32:52 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E7=BA=AF=E9=BB=91=E6=9A=97?= =?UTF-8?q?=E8=89=B2=E6=A8=A1=E5=BC=8F=EF=BC=8C=E6=B8=85=E7=90=86=E4=BB=A3?= =?UTF-8?q?=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../io/legato/kazusa/base/BaseActivity.kt | 24 +- .../io/legato/kazusa/constant/PreferKey.kt | 12 +- .../io/legato/kazusa/help/config/AppConfig.kt | 13 +- .../kazusa/lib/prefs/ThemeCardPreference.kt | 12 +- .../io/legato/kazusa/lib/theme/ThemeStore.kt | 7 +- .../kazusa/lib/theme/ThemeStorePrefKeys.kt | 6 - .../kazusa/ui/book/info/BookInfoActivity.kt | 9 +- .../legato/kazusa/ui/config/ConfigActivity.kt | 3 - .../kazusa/ui/config/ThemeConfigFragment.kt | 8 +- .../kazusa/ui/config/WelcomeConfigFragment.kt | 140 -------- .../io/legato/kazusa/ui/main/MainActivity.kt | 2 +- .../bookshelf/books/BookshelfFragment2.kt | 6 +- .../kazusa/ui/welcome/WelcomeActivity.kt | 2 - .../java/io/legato/kazusa/utils/ToastUtils.kt | 1 - app/src/main/res/layout/activity_about.xml | 1 + app/src/main/res/layout/activity_config.xml | 1 + .../main/res/layout/activity_rss_artivles.xml | 1 + .../main/res/layout/fragment_bookshelf1.xml | 6 +- .../main/res/layout/fragment_bookshelf2.xml | 46 ++- .../main/res/layout/fragment_bookshelf3.xml | 1 + app/src/main/res/layout/fragment_explore.xml | 1 + .../main/res/layout/fragment_my_config.xml | 1 + app/src/main/res/layout/fragment_privacy.xml | 1 + app/src/main/res/layout/fragment_rss.xml | 1 + .../layout/item_bookshelf_grid_compact.xml | 6 +- .../item_bookshelf_grid_compact_group.xml | 7 +- app/src/main/res/values-night/colors.xml | 286 +++++++++++++--- app/src/main/res/values-night/themes.xml | 5 + app/src/main/res/values/array_values.xml | 4 + app/src/main/res/values/arrays.xml | 10 +- app/src/main/res/values/colors.xml | 286 +++++++++++++--- app/src/main/res/values/themes.xml | 304 +++++++++++++++--- app/src/main/res/xml/pref_config_theme.xml | 10 +- app/src/main/res/xml/pref_config_welcome.xml | 84 ----- 34 files changed, 848 insertions(+), 459 deletions(-) delete mode 100644 app/src/main/java/io/legato/kazusa/ui/config/WelcomeConfigFragment.kt delete mode 100644 app/src/main/res/xml/pref_config_welcome.xml diff --git a/app/src/main/java/io/legato/kazusa/base/BaseActivity.kt b/app/src/main/java/io/legato/kazusa/base/BaseActivity.kt index b8c77ada6..55dccfbd0 100644 --- a/app/src/main/java/io/legato/kazusa/base/BaseActivity.kt +++ b/app/src/main/java/io/legato/kazusa/base/BaseActivity.kt @@ -21,6 +21,7 @@ import io.legato.kazusa.R import io.legato.kazusa.constant.AppLog import io.legato.kazusa.constant.EventBus import io.legato.kazusa.constant.Theme +import io.legato.kazusa.help.config.AppConfig import io.legato.kazusa.help.config.ThemeConfig import io.legato.kazusa.utils.applyOpenTint import io.legato.kazusa.utils.applyTint @@ -28,8 +29,6 @@ import io.legato.kazusa.utils.disableAutoFill import io.legato.kazusa.utils.getPrefString import io.legato.kazusa.utils.hideSoftInput import io.legato.kazusa.utils.observeEvent -import io.legato.kazusa.utils.setNavigationBarColorAuto -import io.legato.kazusa.utils.themeColor import io.legato.kazusa.utils.toastOnUi import io.legato.kazusa.utils.windowSize @@ -74,7 +73,7 @@ abstract class BaseActivity( super.onCreate(savedInstanceState) WindowCompat.setDecorFitsSystemWindows(window, false) enableEdgeToEdge() - window.setNavigationBarColorAuto(themeColor(com.google.android.material.R.attr.colorSurface)) + //window.setNavigationBarColorAuto(themeColor(com.google.android.material.R.attr.colorSurface)) //setupSystemBar() setContentView(binding.root) upBackgroundImage() @@ -129,18 +128,21 @@ abstract class BaseActivity( open fun initTheme() { when (getPrefString("app_theme", "0")) { - "0" -> - { - DynamicColors.applyToActivitiesIfAvailable(application) - } + "0" -> DynamicColors.applyToActivitiesIfAvailable(application) "1" -> setTheme(R.style.Theme_Base_GR) "2" -> setTheme(R.style.Theme_Base_Lemon) "3" -> setTheme(R.style.Theme_Base_WH) - "4" -> setTheme(R.style.Theme_Base_Koharu) - "5" -> setTheme(R.style.Theme_Base_Yuuka) - "6" -> setTheme(R.style.Theme_Base_Phoebe) - "7" -> setTheme(R.style.AppTheme_Transparent) + "4" -> setTheme(R.style.Theme_Base_Sora) + "5" -> setTheme(R.style.Theme_Base_August) + "6" -> setTheme(R.style.Theme_Base_Carlotta) + "7" -> setTheme(R.style.Theme_Base_Koharu) + "8" -> setTheme(R.style.Theme_Base_Yuuka) + "9" -> setTheme(R.style.Theme_Base_Phoebe) + "10" -> setTheme(R.style.Theme_Base_Mujika) + "11" -> setTheme(R.style.AppTheme_Transparent) } + if (AppConfig.pureBlack) + setTheme(R.style.ThemeOverlay_PureBlack) } open fun upBackgroundImage() { diff --git a/app/src/main/java/io/legato/kazusa/constant/PreferKey.kt b/app/src/main/java/io/legato/kazusa/constant/PreferKey.kt index bf834adcd..d6c8820b0 100644 --- a/app/src/main/java/io/legato/kazusa/constant/PreferKey.kt +++ b/app/src/main/java/io/legato/kazusa/constant/PreferKey.kt @@ -78,9 +78,6 @@ object PreferKey { const val textFullJustify = "textFullJustify" const val textBottomJustify = "textBottomJustify" const val autoReadSpeed = "autoReadSpeed" - //const val barElevation = "barElevation" - //const val transparentStatusBar = "transparentStatusBar" - //const val immNavigationBar = "immNavigationBar" const val defaultCover = "defaultCover" const val defaultCoverDark = "defaultCoverDark" const val replaceEnableDefault = "replaceEnableDefault" @@ -126,13 +123,6 @@ object PreferKey { const val tocCountWords = "tocCountWords" const val enableReadRecord = "enableReadRecord" const val localBookImportSort = "localBookImportSort" - const val customWelcome = "customWelcome" - const val welcomeImage = "welcomeImagePath" - const val welcomeImageDark = "welcomeImagePathDark" - const val welcomeShowText = "welcomeShowText" - const val welcomeShowTextDark = "welcomeShowTextDark" - const val welcomeShowIcon = "welcomeShowIcon" - const val welcomeShowIconDark = "welcomeShowIconDark" const val pageTouchSlop = "pageTouchSlop" const val showAddToShelfAlert = "showAddToShelfAlert" const val ignoreAudioFocus = "ignoreAudioFocus" @@ -211,6 +201,6 @@ object PreferKey { const val sharedElementEnterTransitionEnable = "sharedElementEnterTransitionEnable" const val bookshelfLayoutGridLandscape = "bookshelfLayoutGridLandscape" const val bookshelfLayoutGridPortrait = "bookshelfLayoutGridPortrait" - const val tabletInterface = "tabletInterface" + const val pureBlack = "pure_black" } diff --git a/app/src/main/java/io/legato/kazusa/help/config/AppConfig.kt b/app/src/main/java/io/legato/kazusa/help/config/AppConfig.kt index 9beeb3113..bd41be3e9 100644 --- a/app/src/main/java/io/legato/kazusa/help/config/AppConfig.kt +++ b/app/src/main/java/io/legato/kazusa/help/config/AppConfig.kt @@ -149,12 +149,6 @@ object AppConfig : SharedPreferences.OnSharedPreferenceChangeListener { } } - var isFirstLaunch: Boolean - get() = appCtx.getPrefBoolean(PreferKey.isFirstLaunch, true) - set(value) { - appCtx.putPrefBoolean(PreferKey.isFirstLaunch, value) - } - var showUnread: Boolean get() = appCtx.getPrefBoolean(PreferKey.showUnread, true) set(value) { @@ -615,7 +609,7 @@ object AppConfig : SharedPreferences.OnSharedPreferenceChangeListener { } var bookshelfSortOrder: Int - get() = appCtx.getPrefInt(PreferKey.bookshelfSortOrder, 0) + get() = appCtx.getPrefInt(PreferKey.bookshelfSortOrder, 1) set(value) { appCtx.putPrefInt(PreferKey.bookshelfSortOrder, value) } @@ -814,5 +808,10 @@ object AppConfig : SharedPreferences.OnSharedPreferenceChangeListener { appCtx.putPrefString(PreferKey.tabletInterface, value) } + var pureBlack + get() = appCtx.getPrefBoolean(PreferKey.pureBlack, false) + set(value) { + appCtx.getPrefBoolean(PreferKey.pureBlack, value) + } } diff --git a/app/src/main/java/io/legato/kazusa/lib/prefs/ThemeCardPreference.kt b/app/src/main/java/io/legato/kazusa/lib/prefs/ThemeCardPreference.kt index 849cf6527..bf8d18c1b 100644 --- a/app/src/main/java/io/legato/kazusa/lib/prefs/ThemeCardPreference.kt +++ b/app/src/main/java/io/legato/kazusa/lib/prefs/ThemeCardPreference.kt @@ -91,10 +91,14 @@ class ThemeCardPreference(context: Context, attrs: AttributeSet) : Preference(co "1" to R.style.Theme_Base_GR, "2" to R.style.Theme_Base_Lemon, "3" to R.style.Theme_Base_WH, - "4" to R.style.Theme_Base_Koharu, - "5" to R.style.Theme_Base_Yuuka, - "6" to R.style.Theme_Base_Phoebe, - "7" to R.style.AppTheme_Transparent + "4" to R.style.Theme_Base_Sora, + "5" to R.style.Theme_Base_August, + "6" to R.style.Theme_Base_Carlotta, + "7" to R.style.Theme_Base_Koharu, + "8" to R.style.Theme_Base_Yuuka, + "9" to R.style.Theme_Base_Phoebe, + "10" to R.style.Theme_Base_Mujika, + "11" to R.style.AppTheme_Transparent ) private fun getThemeColors(value: String): List { diff --git a/app/src/main/java/io/legato/kazusa/lib/theme/ThemeStore.kt b/app/src/main/java/io/legato/kazusa/lib/theme/ThemeStore.kt index ac47d9727..8e85b4661 100644 --- a/app/src/main/java/io/legato/kazusa/lib/theme/ThemeStore.kt +++ b/app/src/main/java/io/legato/kazusa/lib/theme/ThemeStore.kt @@ -3,15 +3,14 @@ package io.legato.kazusa.lib.theme import android.annotation.SuppressLint import android.content.Context import android.content.SharedPreferences -import android.graphics.Color import androidx.annotation.AttrRes import androidx.annotation.CheckResult import androidx.annotation.ColorInt import androidx.annotation.ColorRes import androidx.core.content.ContextCompat +import androidx.core.graphics.toColorInt import io.legato.kazusa.utils.ColorUtils import splitties.init.appCtx -import androidx.core.graphics.toColorInt /** * @author Aidan Follestad (afollestad), Karim Abou Zeid (kabouzeid) @@ -208,7 +207,7 @@ private constructor(private val mContext: Context) : ThemeStoreInterface { ThemeUtils.resolveColor( context, androidx.appcompat.R.attr.colorPrimaryDark, - Color.parseColor("#37474F") + "#37474F".toColorInt() ) ) } @@ -221,7 +220,7 @@ private constructor(private val mContext: Context) : ThemeStoreInterface { ThemeUtils.resolveColor( context, androidx.appcompat.R.attr.colorAccent, - Color.parseColor("#263238") + "#263238".toColorInt() ) ) } diff --git a/app/src/main/java/io/legato/kazusa/lib/theme/ThemeStorePrefKeys.kt b/app/src/main/java/io/legato/kazusa/lib/theme/ThemeStorePrefKeys.kt index 1940cef8a..c6df1f653 100644 --- a/app/src/main/java/io/legato/kazusa/lib/theme/ThemeStorePrefKeys.kt +++ b/app/src/main/java/io/legato/kazusa/lib/theme/ThemeStorePrefKeys.kt @@ -4,7 +4,6 @@ package io.legato.kazusa.lib.theme * @author Aidan Follestad (afollestad), Karim Abou Zeid (kabouzeid) */ object ThemeStorePrefKeys { - const val KEY_DYNAMIC_COLORS_ENABLED = "" const val CONFIG_PREFS_KEY_DEFAULT = "app_themes" const val IS_CONFIGURED_KEY = "is_configured" @@ -29,9 +28,4 @@ object ThemeStorePrefKeys { const val KEY_APPLY_PRIMARY_NAVBAR = "apply_primary_navbar" const val KEY_AUTO_GENERATE_PRIMARYDARK = "auto_generate_primarydark" - const val KEY_COLOR_PRIMARY = "key_color_primary" - const val KEY_COLOR_ON_PRIMARY = "key_color_on_primary" - const val KEY_COLOR_PRIMARY_CONTAINER = "key_color_primary_container" - const val KEY_COLOR_ON_PRIMARY_CONTAINER = "key_color_on_primary_container" - const val KEY_COLOR_SECONDARY = "key_color_secondary" } \ No newline at end of file diff --git a/app/src/main/java/io/legato/kazusa/ui/book/info/BookInfoActivity.kt b/app/src/main/java/io/legato/kazusa/ui/book/info/BookInfoActivity.kt index dfb435a75..2f8d412dd 100644 --- a/app/src/main/java/io/legato/kazusa/ui/book/info/BookInfoActivity.kt +++ b/app/src/main/java/io/legato/kazusa/ui/book/info/BookInfoActivity.kt @@ -5,6 +5,7 @@ import android.annotation.SuppressLint import android.content.Context import android.content.Intent import android.content.res.ColorStateList +import android.content.res.Configuration import android.graphics.Color import android.graphics.RenderEffect import android.graphics.Shader @@ -533,7 +534,13 @@ class BookInfoActivity : val surfaceTransition = ValueAnimator.ofArgb(surfaceFinalColor, colorSurface).apply { duration = 400L addUpdateListener { animation -> - val color = animation.animatedValue as Int + val nightModeFlags = + resources.configuration.uiMode and Configuration.UI_MODE_NIGHT_MASK + val isDarkMode = nightModeFlags == Configuration.UI_MODE_NIGHT_YES + var color = animation.animatedValue as Int + if (AppConfig.pureBlack && isDarkMode) { + color = Color.BLACK + } binding.cdInfo?.setCardBackgroundColor(color) binding.llInfo.setBackgroundColor(color) (binding.llCover.background as? GradientDrawable)?.colors = diff --git a/app/src/main/java/io/legato/kazusa/ui/config/ConfigActivity.kt b/app/src/main/java/io/legato/kazusa/ui/config/ConfigActivity.kt index 702ba483e..a865bb231 100644 --- a/app/src/main/java/io/legato/kazusa/ui/config/ConfigActivity.kt +++ b/app/src/main/java/io/legato/kazusa/ui/config/ConfigActivity.kt @@ -5,9 +5,7 @@ import androidx.activity.viewModels import androidx.fragment.app.Fragment import io.legato.kazusa.R import io.legato.kazusa.base.VMBaseActivity -import io.legato.kazusa.constant.EventBus import io.legato.kazusa.databinding.ActivityConfigBinding -import io.legato.kazusa.utils.observeEvent import io.legato.kazusa.utils.viewbindingdelegate.viewBinding class ConfigActivity : VMBaseActivity() { @@ -23,7 +21,6 @@ class ConfigActivity : VMBaseActivity() ConfigTag.THEME_CONFIG -> replaceFragment(configTag) ConfigTag.BACKUP_CONFIG -> replaceFragment(configTag) ConfigTag.COVER_CONFIG -> replaceFragment(configTag) - ConfigTag.WELCOME_CONFIG -> replaceFragment(configTag) else -> finish() } } diff --git a/app/src/main/java/io/legato/kazusa/ui/config/ThemeConfigFragment.kt b/app/src/main/java/io/legato/kazusa/ui/config/ThemeConfigFragment.kt index 5d747e92e..3f21ea20b 100644 --- a/app/src/main/java/io/legato/kazusa/ui/config/ThemeConfigFragment.kt +++ b/app/src/main/java/io/legato/kazusa/ui/config/ThemeConfigFragment.kt @@ -136,6 +136,10 @@ class ThemeConfigFragment : PreferenceFragmentCompat(), //recreateActivities() } + PreferKey.pureBlack -> { + recreateActivities() + } + PreferKey.cPrimary, PreferKey.cAccent, PreferKey.cBackground, @@ -193,10 +197,6 @@ class ThemeConfigFragment : PreferenceFragmentCompat(), "coverConfig" -> startActivity { putExtra("configTag", ConfigTag.COVER_CONFIG) } - - "welcomeStyle" -> startActivity { - putExtra("configTag", ConfigTag.WELCOME_CONFIG) - } } return super.onPreferenceTreeClick(preference) } diff --git a/app/src/main/java/io/legato/kazusa/ui/config/WelcomeConfigFragment.kt b/app/src/main/java/io/legato/kazusa/ui/config/WelcomeConfigFragment.kt deleted file mode 100644 index a67cdfa4a..000000000 --- a/app/src/main/java/io/legato/kazusa/ui/config/WelcomeConfigFragment.kt +++ /dev/null @@ -1,140 +0,0 @@ -package io.legato.kazusa.ui.config - -import android.annotation.SuppressLint -import android.content.SharedPreferences -import android.net.Uri -import android.os.Bundle -import android.view.View -import androidx.preference.Preference -import io.legato.kazusa.R -import io.legato.kazusa.constant.PreferKey -import io.legato.kazusa.lib.dialogs.selector -import io.legato.kazusa.lib.prefs.fragment.PreferenceFragment -//import io.legado.app.lib.theme.primaryColor -import io.legato.kazusa.model.BookCover -import io.legato.kazusa.utils.* -import splitties.init.appCtx -import java.io.FileOutputStream - -class WelcomeConfigFragment : PreferenceFragment(), - SharedPreferences.OnSharedPreferenceChangeListener { - - private val requestWelcomeImage = 221 - private val requestWelcomeImageDark = 222 - private val selectImage = registerForActivityResult(SelectImageContract()) { - it.uri?.let { uri -> - when (it.requestCode) { - requestWelcomeImage -> setCoverFromUri(PreferKey.welcomeImage, uri) - requestWelcomeImageDark -> setCoverFromUri(PreferKey.welcomeImageDark, uri) - } - } - } - - override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) { - addPreferencesFromResource(R.xml.pref_config_welcome) - upPreferenceSummary(PreferKey.welcomeImage, getPrefString(PreferKey.welcomeImage)) - upPreferenceSummary(PreferKey.welcomeImageDark, getPrefString(PreferKey.welcomeImageDark)) - } - - override fun onViewCreated(view: View, savedInstanceState: Bundle?) { - super.onViewCreated(view, savedInstanceState) - activity?.setTitle(R.string.welcome_style) - //listView.setEdgeEffectColor(primaryColor) - } - - override fun onCreate(savedInstanceState: Bundle?) { - super.onCreate(savedInstanceState) - preferenceManager.sharedPreferences?.registerOnSharedPreferenceChangeListener(this) - } - - override fun onDestroy() { - super.onDestroy() - preferenceManager.sharedPreferences?.unregisterOnSharedPreferenceChangeListener(this) - } - - override fun onSharedPreferenceChanged(sharedPreferences: SharedPreferences?, key: String?) { - sharedPreferences ?: return - when (key) { - PreferKey.welcomeImage, - PreferKey.welcomeImageDark -> { - upPreferenceSummary(key, getPrefString(key)) - } - } - } - - @SuppressLint("PrivateResource") - override fun onPreferenceTreeClick(preference: Preference): Boolean { - when (preference.key) { - PreferKey.welcomeImage -> - if (getPrefString(preference.key).isNullOrEmpty()) { - selectImage.launch(requestWelcomeImage) - } else { - context?.selector( - items = arrayListOf( - getString(R.string.delete), - getString(R.string.select_image) - ) - ) { _, i -> - if (i == 0) { - removePref(preference.key) - BookCover.upDefaultCover() - } else { - selectImage.launch(requestWelcomeImage) - } - } - } - PreferKey.welcomeImageDark -> - if (getPrefString(preference.key).isNullOrEmpty()) { - selectImage.launch(requestWelcomeImageDark) - } else { - context?.selector( - items = arrayListOf( - getString(R.string.delete), - getString(R.string.select_image) - ) - ) { _, i -> - if (i == 0) { - removePref(preference.key) - BookCover.upDefaultCover() - } else { - selectImage.launch(requestWelcomeImageDark) - } - } - } - } - return super.onPreferenceTreeClick(preference) - } - - private fun upPreferenceSummary(preferenceKey: String, value: String?) { - val preference = findPreference(preferenceKey) ?: return - when (preferenceKey) { - PreferKey.welcomeImage, - PreferKey.welcomeImageDark -> preference.summary = if (value.isNullOrBlank()) { - getString(R.string.select_image) - } else { - value - } - else -> preference.summary = value - } - } - - private fun setCoverFromUri(preferenceKey: String, uri: Uri) { - readUri(uri) { fileDoc, inputStream -> - kotlin.runCatching { - var file = requireContext().externalFiles - val suffix = fileDoc.name.substringAfterLast(".") - val fileName = uri.inputStream(requireContext()).getOrThrow().use { - MD5Utils.md5Encode(it) + ".$suffix" - } - file = FileUtils.createFileIfNotExist(file, "covers", fileName) - FileOutputStream(file).use { - inputStream.copyTo(it) - } - putPrefString(preferenceKey, file.absolutePath) - }.onFailure { - appCtx.toastOnUi(it.localizedMessage) - } - } - } - -} \ No newline at end of file diff --git a/app/src/main/java/io/legato/kazusa/ui/main/MainActivity.kt b/app/src/main/java/io/legato/kazusa/ui/main/MainActivity.kt index 6afab4d2b..da8d1e79d 100644 --- a/app/src/main/java/io/legato/kazusa/ui/main/MainActivity.kt +++ b/app/src/main/java/io/legato/kazusa/ui/main/MainActivity.kt @@ -107,7 +107,7 @@ class MainActivity : VMBaseActivity(), override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) - if (AppConfig.isFirstLaunch) { + if (LocalConfig.isFirstOpenApp) { startActivity() finish() return diff --git a/app/src/main/java/io/legato/kazusa/ui/main/bookshelf/books/BookshelfFragment2.kt b/app/src/main/java/io/legato/kazusa/ui/main/bookshelf/books/BookshelfFragment2.kt index b460a116d..4d5f4eb86 100644 --- a/app/src/main/java/io/legato/kazusa/ui/main/bookshelf/books/BookshelfFragment2.kt +++ b/app/src/main/java/io/legato/kazusa/ui/main/bookshelf/books/BookshelfFragment2.kt @@ -99,7 +99,7 @@ class BookshelfFragment2() : BaseBookshelfFragment(R.layout.fragment_bookshelf2) private var enableRefresh = true override fun onFragmentCreated(view: View, savedInstanceState: Bundle?) { - setSupportToolbar(binding.titleBar.toolbar) + setSupportToolbar(binding.topBar) initRecyclerView() initBookGroupData() initAllBooksData() @@ -182,7 +182,7 @@ class BookshelfFragment2() : BaseBookshelfFragment(R.layout.fragment_bookshelf2) private fun initBooksData() { if (groupId == BookGroup.Companion.IdRoot) { if (isAdded) { - binding.titleBar.title = getString(R.string.bookshelf) + binding.topBar.title = getString(R.string.bookshelf) binding.refreshLayout.isEnabled = true enableRefresh = true } @@ -190,7 +190,7 @@ class BookshelfFragment2() : BaseBookshelfFragment(R.layout.fragment_bookshelf2) bookGroups.firstOrNull { groupId == it.groupId }?.let { - binding.titleBar.title = it.groupName + binding.topBar.title = it.groupName binding.refreshLayout.isEnabled = it.enableRefresh enableRefresh = it.enableRefresh } diff --git a/app/src/main/java/io/legato/kazusa/ui/welcome/WelcomeActivity.kt b/app/src/main/java/io/legato/kazusa/ui/welcome/WelcomeActivity.kt index 3f26e5ea4..16cbae0c3 100644 --- a/app/src/main/java/io/legato/kazusa/ui/welcome/WelcomeActivity.kt +++ b/app/src/main/java/io/legato/kazusa/ui/welcome/WelcomeActivity.kt @@ -7,7 +7,6 @@ import androidx.viewpager2.adapter.FragmentStateAdapter import androidx.viewpager2.widget.ViewPager2 import io.legato.kazusa.base.BaseActivity import io.legato.kazusa.databinding.ActivityWelcomeBinding -import io.legato.kazusa.help.config.AppConfig import io.legato.kazusa.help.config.LocalConfig import io.legato.kazusa.ui.main.MainActivity import io.legato.kazusa.utils.startActivity @@ -96,7 +95,6 @@ class WelcomeActivity : BaseActivity() { } private fun finishSetup() { - AppConfig.isFirstLaunch = false startActivity() finish() } diff --git a/app/src/main/java/io/legato/kazusa/utils/ToastUtils.kt b/app/src/main/java/io/legato/kazusa/utils/ToastUtils.kt index fa4967bcc..16949c429 100644 --- a/app/src/main/java/io/legato/kazusa/utils/ToastUtils.kt +++ b/app/src/main/java/io/legato/kazusa/utils/ToastUtils.kt @@ -67,7 +67,6 @@ fun Context.longToastOnUiLegacy(message: CharSequence) { /** * JS 专用弹窗,短时间显示 */ - fun Context.toastForJs(message: CharSequence?, duration: Int = Toast.LENGTH_SHORT) { runOnUI { kotlin.runCatching { diff --git a/app/src/main/res/layout/activity_about.xml b/app/src/main/res/layout/activity_about.xml index 8e49f65a1..17e619ba3 100644 --- a/app/src/main/res/layout/activity_about.xml +++ b/app/src/main/res/layout/activity_about.xml @@ -11,6 +11,7 @@ android:id="@+id/app_bar" android:layout_width="match_parent" android:layout_height="wrap_content" + android:background="@android:color/transparent" android:fitsSystemWindows="true"> diff --git a/app/src/main/res/layout/activity_rss_artivles.xml b/app/src/main/res/layout/activity_rss_artivles.xml index 781495481..a0bdaff00 100644 --- a/app/src/main/res/layout/activity_rss_artivles.xml +++ b/app/src/main/res/layout/activity_rss_artivles.xml @@ -10,6 +10,7 @@ android:id="@+id/title_bar" android:layout_width="match_parent" android:layout_height="wrap_content" + android:background="@android:color/transparent" android:fitsSystemWindows="true" app:liftOnScroll="false" android:stateListAnimator="@null"> diff --git a/app/src/main/res/layout/fragment_bookshelf1.xml b/app/src/main/res/layout/fragment_bookshelf1.xml index f6a5a16ec..037d1dc5c 100644 --- a/app/src/main/res/layout/fragment_bookshelf1.xml +++ b/app/src/main/res/layout/fragment_bookshelf1.xml @@ -9,7 +9,7 @@ android:id="@+id/title_bar" android:layout_width="match_parent" android:layout_height="wrap_content" - android:background="?attr/colorSurface" + android:background="@android:color/transparent" android:fitsSystemWindows="true" app:liftOnScroll="false" android:stateListAnimator="@null"> @@ -20,7 +20,7 @@ style="?attr/collapsingToolbarLayoutMediumStyle" app:collapsedTitleTextAppearance="?attr/textAppearanceTitleLarge" app:expandedTitleTextAppearance="?attr/textAppearanceHeadlineLarge" - app:contentScrim="?attr/colorSurface" + app:contentScrim="?attr/colorSurfaceContainer" app:titleCollapseMode="scale" app:layout_scrollFlags="scroll|exitUntilCollapsed|snap"> @@ -37,7 +37,7 @@ android:id="@+id/tab_layout" android:layout_width="match_parent" android:layout_height="wrap_content" - android:background="?attr/colorSurface" + android:background="@android:color/transparent" android:paddingHorizontal="16dp"/> diff --git a/app/src/main/res/layout/fragment_bookshelf2.xml b/app/src/main/res/layout/fragment_bookshelf2.xml index 49f87b4d5..a72480071 100644 --- a/app/src/main/res/layout/fragment_bookshelf2.xml +++ b/app/src/main/res/layout/fragment_bookshelf2.xml @@ -1,26 +1,46 @@ - + android:layout_height="match_parent"> - + android:background="@android:color/transparent" + android:fitsSystemWindows="true" + android:stateListAnimator="@null" + app:liftOnScroll="false"> + + + + + + + + + app:layout_behavior="@string/appbar_scrolling_view_behavior"> - \ No newline at end of file + diff --git a/app/src/main/res/layout/fragment_bookshelf3.xml b/app/src/main/res/layout/fragment_bookshelf3.xml index c5136d953..f819f5c05 100644 --- a/app/src/main/res/layout/fragment_bookshelf3.xml +++ b/app/src/main/res/layout/fragment_bookshelf3.xml @@ -9,6 +9,7 @@ android:id="@+id/title_bar" android:layout_width="match_parent" android:layout_height="wrap_content" + android:background="@android:color/transparent" android:fitsSystemWindows="true" app:liftOnScroll="false" android:stateListAnimator="@null"> diff --git a/app/src/main/res/layout/fragment_explore.xml b/app/src/main/res/layout/fragment_explore.xml index 46f9a106c..a29339f49 100644 --- a/app/src/main/res/layout/fragment_explore.xml +++ b/app/src/main/res/layout/fragment_explore.xml @@ -11,6 +11,7 @@ android:id="@+id/app_bar" android:layout_width="match_parent" android:layout_height="wrap_content" + android:background="@android:color/transparent" android:fitsSystemWindows="true"> diff --git a/app/src/main/res/layout/fragment_privacy.xml b/app/src/main/res/layout/fragment_privacy.xml index 635c007f8..87095e365 100644 --- a/app/src/main/res/layout/fragment_privacy.xml +++ b/app/src/main/res/layout/fragment_privacy.xml @@ -18,6 +18,7 @@ @@ -20,7 +20,7 @@ android:layout_height="wrap_content" android:clickable="true" android:focusable="true" - app:cardBackgroundColor="@android:color/transparent" + android:background="?attr/selectableItemBackground" app:cardCornerRadius="6dp" app:layout_constraintTop_toTopOf="parent" app:strokeWidth="0dp"> diff --git a/app/src/main/res/layout/item_bookshelf_grid_compact_group.xml b/app/src/main/res/layout/item_bookshelf_grid_compact_group.xml index 8fa91c8ec..c3b694ab2 100644 --- a/app/src/main/res/layout/item_bookshelf_grid_compact_group.xml +++ b/app/src/main/res/layout/item_bookshelf_grid_compact_group.xml @@ -4,13 +4,13 @@ xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="wrap_content" - android:background="?attr/selectableItemBackground" + app:cardBackgroundColor="@android:color/transparent" app:strokeWidth="0dp"> @@ -20,7 +20,8 @@ android:layout_height="wrap_content" android:clickable="true" android:focusable="true" - app:cardCornerRadius="8dp" + android:background="?attr/selectableItemBackground" + app:cardCornerRadius="6dp" app:layout_constraintTop_toTopOf="parent" app:strokeWidth="0dp"> diff --git a/app/src/main/res/values-night/colors.xml b/app/src/main/res/values-night/colors.xml index ed4bf0fa4..88d2f3236 100644 --- a/app/src/main/res/values-night/colors.xml +++ b/app/src/main/res/values-night/colors.xml @@ -1,52 +1,52 @@ - #B1D18A - #1F3701 - #354E16 - #CDEDA3 - #BFCBAD - #2A331E - #404A33 - #DCE7C8 - #A0D0CB - #003735 - #1F4E4B - #BCECE7 - #FFB4AB - #690005 - #93000A - #FFDAD6 - #12140E - #E2E3D8 - #12140E - #E2E3D8 - #44483D - #C5C8BA - #8F9285 - #44483D - #000000 - #E2E3D8 - #2F312A - #4C662B - #CDEDA3 - #102000 - #B1D18A - #354E16 - #DCE7C8 - #151E0B - #BFCBAD - #404A33 - #BCECE7 - #00201E - #A0D0CB - #1F4E4B - #12140E - #383A32 - #0C0F09 - #1A1C16 - #1E201A - #282B24 - #33362E + #B1D18A + #1F3701 + #354E16 + #CDEDA3 + #BFCBAD + #2A331E + #404A33 + #DCE7C8 + #A0D0CB + #003735 + #1F4E4B + #BCECE7 + #FFB4AB + #690005 + #93000A + #FFDAD6 + #12140E + #E2E3D8 + #12140E + #E2E3D8 + #44483D + #C5C8BA + #8F9285 + #44483D + #000000 + #E2E3D8 + #2F312A + #4C662B + #CDEDA3 + #102000 + #B1D18A + #354E16 + #DCE7C8 + #151E0B + #BFCBAD + #404A33 + #BCECE7 + #00201E + #A0D0CB + #1F4E4B + #12140E + #383A32 + #0C0F09 + #1A1C16 + #1E201A + #282B24 + #33362E #C7C6C6 @@ -193,6 +193,198 @@ #322828 #3D3232 + #A5C9FE + #00315D + #214876 + #D4E3FF + #BCC7DC + #263141 + #3D4758 + #D8E3F8 + #D9BDE3 + #3D2946 + #543F5E + #F6D9FF + #FFB4AB + #690005 + #93000A + #FFDAD6 + #111318 + #E1E2E9 + #111318 + #E1E2E9 + #43474E + #C3C6CF + #8D9199 + #43474E + #000000 + #E1E2E9 + #2E3035 + #3B608F + #D4E3FF + #001C39 + #A5C9FE + #214876 + #D8E3F8 + #111C2B + #BCC7DC + #3D4758 + #F6D9FF + #271430 + #D9BDE3 + #543F5E + #111318 + #37393E + #0C0E13 + #191C20 + #1D2024 + #282A2F + #32353A + + #FFB59F + #561F0E + #723522 + #FFDBD1 + #E7BDB2 + #442A22 + #5D4037 + #FFDBD1 + #D8C68D + #3A2F05 + #524619 + #F5E1A7 + #FFB4AB + #690005 + #93000A + #FFDAD6 + #1A110F + #F1DFDA + #1A110F + #F1DFDA + #53433F + #D8C2BC + #A08C87 + #53433F + #000000 + #F1DFDA + #392E2B + #8F4C37 + #FFDBD1 + #3A0B00 + #FFB59F + #723522 + #FFDBD1 + #2C150F + #E7BDB2 + #5D4037 + #F5E1A7 + #231B00 + #D8C68D + #524619 + #1A110F + #423734 + #140C0A + #231917 + #271D1B + #322825 + #3D322F + + #FFB0CA + #541D33 + #6F334A + #FFD9E3 + #E2BDC7 + #422931 + #5A3F48 + #FFD9E3 + #EFBC94 + #48290C + #623F20 + #FFDCC2 + #FFB4AB + #690005 + #93000A + #FFDAD6 + #191114 + #EFDFE2 + #191114 + #EFDFE2 + #514347 + #D5C2C6 + #9E8C90 + #514347 + #000000 + #EFDFE2 + #372E30 + #8B4A62 + #FFD9E3 + #39071E + #FFB0CA + #6F334A + #FFD9E3 + #2B151D + #E2BDC7 + #5A3F48 + #FFDCC2 + #2E1500 + #EFBC94 + #623F20 + #191114 + #403739 + #140C0E + #22191C + #261D20 + #31282A + #3C3235 + + #FFB1C0 + #551D2B + #713341 + #FFD9DF + #E4BDC3 + #43292E + #5C3F44 + #FFD9DF + #B6C4FF + #1D2D61 + #354479 + #DCE1FF + #FFB4AB + #690005 + #93000A + #FFDAD6 + #191113 + #EFDEE0 + #191113 + #EFDEE0 + #524345 + #D6C2C4 + #9F8C8F + #524345 + #000000 + #EFDEE0 + #382E2F + #8E4958 + #FFD9DF + #3A0717 + #FFB1C0 + #713341 + #FFD9DF + #2B151A + #E4BDC3 + #5C3F44 + #DCE1FF + #04174B + #B6C4FF + #354479 + #191113 + #413738 + #140C0D + #22191B + #261D1F + #312829 + #3C3234 + #BFC2FF #272B60 #3E4278 diff --git a/app/src/main/res/values-night/themes.xml b/app/src/main/res/values-night/themes.xml index 4d4cf0140..fd4a0c3e6 100644 --- a/app/src/main/res/values-night/themes.xml +++ b/app/src/main/res/values-night/themes.xml @@ -12,4 +12,9 @@ @style/AppTheme.AlertDialog + + \ No newline at end of file diff --git a/app/src/main/res/values/array_values.xml b/app/src/main/res/values/array_values.xml index 0dcdd4798..eff278840 100644 --- a/app/src/main/res/values/array_values.xml +++ b/app/src/main/res/values/array_values.xml @@ -35,6 +35,10 @@ 5 6 7 + 8 + 9 + 10 + 11 diff --git a/app/src/main/res/values/arrays.xml b/app/src/main/res/values/arrays.xml index f2d05ae9d..3956c1ce1 100644 --- a/app/src/main/res/values/arrays.xml +++ b/app/src/main/res/values/arrays.xml @@ -59,9 +59,13 @@ 草野 柠檬 黑白 - Koharu - Yuuka - Phoebe + 晴空 + 八月 + 新浪潮 + + 千禧年 + 隐海修会 + 乐队 透明 diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml index a40e09931..c1381841a 100644 --- a/app/src/main/res/values/colors.xml +++ b/app/src/main/res/values/colors.xml @@ -1,54 +1,53 @@ - - #4C662B - #FFFFFF - #CDEDA3 - #354E16 - #586249 - #FFFFFF - #DCE7C8 - #404A33 - #386663 - #FFFFFF - #BCECE7 - #1F4E4B - #BA1A1A - #FFFFFF - #FFDAD6 - #93000A - #F9FAEF - #1A1C16 - #F9FAEF - #1A1C16 - #E1E4D5 - #44483D - #75796C - #C5C8BA - #000000 - #2F312A - #F1F2E6 - #B1D18A - #CDEDA3 - #102000 - #B1D18A - #354E16 - #DCE7C8 - #151E0B - #BFCBAD - #404A33 - #BCECE7 - #00201E - #A0D0CB - #1F4E4B - #DADBD0 - #F9FAEF - #FFFFFF - #F3F4E9 - #EEEFE3 - #E8E9DE - #E2E3D8 + #4C662B + #FFFFFF + #CDEDA3 + #354E16 + #586249 + #FFFFFF + #DCE7C8 + #404A33 + #386663 + #FFFFFF + #BCECE7 + #1F4E4B + #BA1A1A + #FFFFFF + #FFDAD6 + #93000A + #F9FAEF + #1A1C16 + #F9FAEF + #1A1C16 + #E1E4D5 + #44483D + #75796C + #C5C8BA + #000000 + #2F312A + #F1F2E6 + #B1D18A + #CDEDA3 + #102000 + #B1D18A + #354E16 + #DCE7C8 + #151E0B + #BFCBAD + #404A33 + #BCECE7 + #00201E + #A0D0CB + #1F4E4B + #DADBD0 + #F9FAEF + #FFFFFF + #F3F4E9 + #EEEFE3 + #E8E9DE + #E2E3D8 #5C5C5C @@ -197,6 +196,197 @@ #F6E4E4 #F0DEDE + #3B608F + #FFFFFF + #D4E3FF + #214876 + #545F71 + #FFFFFF + #D8E3F8 + #3D4758 + #6D5677 + #FFFFFF + #F6D9FF + #543F5E + #BA1A1A + #FFFFFF + #FFDAD6 + #93000A + #F8F9FF + #191C20 + #F8F9FF + #191C20 + #DFE2EB + #43474E + #73777F + #C3C6CF + #000000 + #2E3035 + #F0F0F7 + #A5C9FE + #D4E3FF + #001C39 + #A5C9FE + #214876 + #D8E3F8 + #111C2B + #BCC7DC + #3D4758 + #F6D9FF + #271430 + #D9BDE3 + #543F5E + #D9DAE0 + #F8F9FF + #FFFFFF + #F2F3FA + #EDEDF4 + #E7E8EE + #E1E2E9 + + #8F4C37 + #FFFFFF + #FFDBD1 + #723522 + #77574D + #FFFFFF + #FFDBD1 + #5D4037 + #6B5D2F + #FFFFFF + #F5E1A7 + #524619 + #BA1A1A + #FFFFFF + #FFDAD6 + #93000A + #FFF8F6 + #231917 + #FFF8F6 + #231917 + #F5DED7 + #53433F + #85736E + #D8C2BC + #000000 + #392E2B + #FFEDE8 + #FFB59F + #FFDBD1 + #3A0B00 + #FFB59F + #723522 + #FFDBD1 + #2C150F + #E7BDB2 + #5D4037 + #F5E1A7 + #231B00 + #D8C68D + #524619 + #E8D6D2 + #FFF8F6 + #FFFFFF + #FFF1ED + #FCEAE5 + #F7E4E0 + #F1DFDA + + #8B4A62 + #FFFFFF + #FFD9E3 + #6F334A + #74565F + #FFFFFF + #FFD9E3 + #5A3F48 + #7D5635 + #FFFFFF + #FFDCC2 + #623F20 + #BA1A1A + #FFFFFF + #FFDAD6 + #93000A + #FFF8F8 + #22191C + #FFF8F8 + #22191C + #F2DDE2 + #514347 + #837377 + #D5C2C6 + #000000 + #372E30 + #FDEDF0 + #FFB0CA + #FFD9E3 + #39071E + #FFB0CA + #6F334A + #FFD9E3 + #2B151D + #E2BDC7 + #5A3F48 + #FFDCC2 + #2E1500 + #EFBC94 + #623F20 + #E6D6D9 + #FFF8F8 + #FFFFFF + #FFF0F2 + #FAEAED + #F4E4E7 + #EFDFE2 + + #8E4958 + #FFFFFF + #FFD9DF + #713341 + #75565C + #FFFFFF + #FFD9DF + #5C3F44 + #4D5C92 + #FFFFFF + #DCE1FF + #354479 + #BA1A1A + #FFFFFF + #FFDAD6 + #93000A + #FFF8F7 + #22191B + #FFF8F7 + #22191B + #F3DDE0 + #524345 + #847375 + #D6C2C4 + #000000 + #382E2F + #FEEDEE + #FFB1C0 + #FFD9DF + #3A0717 + #FFB1C0 + #713341 + #FFD9DF + #2B151A + #E4BDC3 + #5C3F44 + #DCE1FF + #04174B + #B6C4FF + #354479 + #E7D6D8 + #FFF8F7 + #FFFFFF + #FFF0F1 + #FBEAEB + #F5E4E6 + #EFDEE0 #565992 #FFFFFF diff --git a/app/src/main/res/values/themes.xml b/app/src/main/res/values/themes.xml index c41ad756d..34a97cd63 100644 --- a/app/src/main/res/values/themes.xml +++ b/app/src/main/res/values/themes.xml @@ -1,7 +1,5 @@ - //**************************************************************Theme******************************************************************************// - + + - + + + + + + + + +