Просмотр исходного кода

增加纯黑暗色模式,清理代码

HapeLee 1 год назад
Родитель
Сommit
011aaa0bb9
34 измененных файлов с 848 добавлено и 459 удалено
  1. 13 11
      app/src/main/java/io/legato/kazusa/base/BaseActivity.kt
  2. 1 11
      app/src/main/java/io/legato/kazusa/constant/PreferKey.kt
  3. 6 7
      app/src/main/java/io/legato/kazusa/help/config/AppConfig.kt
  4. 8 4
      app/src/main/java/io/legato/kazusa/lib/prefs/ThemeCardPreference.kt
  5. 3 4
      app/src/main/java/io/legato/kazusa/lib/theme/ThemeStore.kt
  6. 0 6
      app/src/main/java/io/legato/kazusa/lib/theme/ThemeStorePrefKeys.kt
  7. 8 1
      app/src/main/java/io/legato/kazusa/ui/book/info/BookInfoActivity.kt
  8. 0 3
      app/src/main/java/io/legato/kazusa/ui/config/ConfigActivity.kt
  9. 4 4
      app/src/main/java/io/legato/kazusa/ui/config/ThemeConfigFragment.kt
  10. 0 140
      app/src/main/java/io/legato/kazusa/ui/config/WelcomeConfigFragment.kt
  11. 1 1
      app/src/main/java/io/legato/kazusa/ui/main/MainActivity.kt
  12. 3 3
      app/src/main/java/io/legato/kazusa/ui/main/bookshelf/books/BookshelfFragment2.kt
  13. 0 2
      app/src/main/java/io/legato/kazusa/ui/welcome/WelcomeActivity.kt
  14. 0 1
      app/src/main/java/io/legato/kazusa/utils/ToastUtils.kt
  15. 1 0
      app/src/main/res/layout/activity_about.xml
  16. 1 0
      app/src/main/res/layout/activity_config.xml
  17. 1 0
      app/src/main/res/layout/activity_rss_artivles.xml
  18. 3 3
      app/src/main/res/layout/fragment_bookshelf1.xml
  19. 31 15
      app/src/main/res/layout/fragment_bookshelf2.xml
  20. 1 0
      app/src/main/res/layout/fragment_bookshelf3.xml
  21. 1 0
      app/src/main/res/layout/fragment_explore.xml
  22. 1 0
      app/src/main/res/layout/fragment_my_config.xml
  23. 1 0
      app/src/main/res/layout/fragment_privacy.xml
  24. 1 0
      app/src/main/res/layout/fragment_rss.xml
  25. 3 3
      app/src/main/res/layout/item_bookshelf_grid_compact.xml
  26. 4 3
      app/src/main/res/layout/item_bookshelf_grid_compact_group.xml
  27. 239 47
      app/src/main/res/values-night/colors.xml
  28. 5 0
      app/src/main/res/values-night/themes.xml
  29. 4 0
      app/src/main/res/values/array_values.xml
  30. 7 3
      app/src/main/res/values/arrays.xml
  31. 238 48
      app/src/main/res/values/colors.xml
  32. 254 50
      app/src/main/res/values/themes.xml
  33. 5 5
      app/src/main/res/xml/pref_config_theme.xml
  34. 0 84
      app/src/main/res/xml/pref_config_welcome.xml

+ 13 - 11
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.AppLog
 import io.legato.kazusa.constant.EventBus
 import io.legato.kazusa.constant.EventBus
 import io.legato.kazusa.constant.Theme
 import io.legato.kazusa.constant.Theme
+import io.legato.kazusa.help.config.AppConfig
 import io.legato.kazusa.help.config.ThemeConfig
 import io.legato.kazusa.help.config.ThemeConfig
 import io.legato.kazusa.utils.applyOpenTint
 import io.legato.kazusa.utils.applyOpenTint
 import io.legato.kazusa.utils.applyTint
 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.getPrefString
 import io.legato.kazusa.utils.hideSoftInput
 import io.legato.kazusa.utils.hideSoftInput
 import io.legato.kazusa.utils.observeEvent
 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.toastOnUi
 import io.legato.kazusa.utils.windowSize
 import io.legato.kazusa.utils.windowSize
 
 
@@ -74,7 +73,7 @@ abstract class BaseActivity<VB : ViewBinding>(
         super.onCreate(savedInstanceState)
         super.onCreate(savedInstanceState)
         WindowCompat.setDecorFitsSystemWindows(window, false)
         WindowCompat.setDecorFitsSystemWindows(window, false)
         enableEdgeToEdge()
         enableEdgeToEdge()
-        window.setNavigationBarColorAuto(themeColor(com.google.android.material.R.attr.colorSurface))
+        //window.setNavigationBarColorAuto(themeColor(com.google.android.material.R.attr.colorSurface))
         //setupSystemBar()
         //setupSystemBar()
         setContentView(binding.root)
         setContentView(binding.root)
         upBackgroundImage()
         upBackgroundImage()
@@ -129,18 +128,21 @@ abstract class BaseActivity<VB : ViewBinding>(
 
 
     open fun initTheme() {
     open fun initTheme() {
         when (getPrefString("app_theme", "0")) {
         when (getPrefString("app_theme", "0")) {
-            "0" ->
-            {
-                DynamicColors.applyToActivitiesIfAvailable(application)
-            }
+            "0" -> DynamicColors.applyToActivitiesIfAvailable(application)
             "1" -> setTheme(R.style.Theme_Base_GR)
             "1" -> setTheme(R.style.Theme_Base_GR)
             "2" -> setTheme(R.style.Theme_Base_Lemon)
             "2" -> setTheme(R.style.Theme_Base_Lemon)
             "3" -> setTheme(R.style.Theme_Base_WH)
             "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() {
     open fun upBackgroundImage() {

+ 1 - 11
app/src/main/java/io/legato/kazusa/constant/PreferKey.kt

@@ -78,9 +78,6 @@ object PreferKey {
     const val textFullJustify = "textFullJustify"
     const val textFullJustify = "textFullJustify"
     const val textBottomJustify = "textBottomJustify"
     const val textBottomJustify = "textBottomJustify"
     const val autoReadSpeed = "autoReadSpeed"
     const val autoReadSpeed = "autoReadSpeed"
-    //const val barElevation = "barElevation"
-    //const val transparentStatusBar = "transparentStatusBar"
-    //const val immNavigationBar = "immNavigationBar"
     const val defaultCover = "defaultCover"
     const val defaultCover = "defaultCover"
     const val defaultCoverDark = "defaultCoverDark"
     const val defaultCoverDark = "defaultCoverDark"
     const val replaceEnableDefault = "replaceEnableDefault"
     const val replaceEnableDefault = "replaceEnableDefault"
@@ -126,13 +123,6 @@ object PreferKey {
     const val tocCountWords = "tocCountWords"
     const val tocCountWords = "tocCountWords"
     const val enableReadRecord = "enableReadRecord"
     const val enableReadRecord = "enableReadRecord"
     const val localBookImportSort = "localBookImportSort"
     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 pageTouchSlop = "pageTouchSlop"
     const val showAddToShelfAlert = "showAddToShelfAlert"
     const val showAddToShelfAlert = "showAddToShelfAlert"
     const val ignoreAudioFocus = "ignoreAudioFocus"
     const val ignoreAudioFocus = "ignoreAudioFocus"
@@ -211,6 +201,6 @@ object PreferKey {
     const val sharedElementEnterTransitionEnable = "sharedElementEnterTransitionEnable"
     const val sharedElementEnterTransitionEnable = "sharedElementEnterTransitionEnable"
     const val bookshelfLayoutGridLandscape = "bookshelfLayoutGridLandscape"
     const val bookshelfLayoutGridLandscape = "bookshelfLayoutGridLandscape"
     const val bookshelfLayoutGridPortrait = "bookshelfLayoutGridPortrait"
     const val bookshelfLayoutGridPortrait = "bookshelfLayoutGridPortrait"
-
     const val tabletInterface = "tabletInterface"
     const val tabletInterface = "tabletInterface"
+    const val pureBlack = "pure_black"
 }
 }

+ 6 - 7
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
     var showUnread: Boolean
         get() = appCtx.getPrefBoolean(PreferKey.showUnread, true)
         get() = appCtx.getPrefBoolean(PreferKey.showUnread, true)
         set(value) {
         set(value) {
@@ -615,7 +609,7 @@ object AppConfig : SharedPreferences.OnSharedPreferenceChangeListener {
         }
         }
 
 
     var bookshelfSortOrder: Int
     var bookshelfSortOrder: Int
-        get() = appCtx.getPrefInt(PreferKey.bookshelfSortOrder, 0)
+        get() = appCtx.getPrefInt(PreferKey.bookshelfSortOrder, 1)
         set(value) {
         set(value) {
             appCtx.putPrefInt(PreferKey.bookshelfSortOrder, value)
             appCtx.putPrefInt(PreferKey.bookshelfSortOrder, value)
         }
         }
@@ -814,5 +808,10 @@ object AppConfig : SharedPreferences.OnSharedPreferenceChangeListener {
             appCtx.putPrefString(PreferKey.tabletInterface, value)
             appCtx.putPrefString(PreferKey.tabletInterface, value)
         }
         }
 
 
+    var pureBlack
+        get() = appCtx.getPrefBoolean(PreferKey.pureBlack, false)
+        set(value) {
+            appCtx.getPrefBoolean(PreferKey.pureBlack, value)
+        }
 }
 }
 
 

+ 8 - 4
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,
         "1" to R.style.Theme_Base_GR,
         "2" to R.style.Theme_Base_Lemon,
         "2" to R.style.Theme_Base_Lemon,
         "3" to R.style.Theme_Base_WH,
         "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<Int> {
     private fun getThemeColors(value: String): List<Int> {

+ 3 - 4
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.annotation.SuppressLint
 import android.content.Context
 import android.content.Context
 import android.content.SharedPreferences
 import android.content.SharedPreferences
-import android.graphics.Color
 import androidx.annotation.AttrRes
 import androidx.annotation.AttrRes
 import androidx.annotation.CheckResult
 import androidx.annotation.CheckResult
 import androidx.annotation.ColorInt
 import androidx.annotation.ColorInt
 import androidx.annotation.ColorRes
 import androidx.annotation.ColorRes
 import androidx.core.content.ContextCompat
 import androidx.core.content.ContextCompat
+import androidx.core.graphics.toColorInt
 import io.legato.kazusa.utils.ColorUtils
 import io.legato.kazusa.utils.ColorUtils
 import splitties.init.appCtx
 import splitties.init.appCtx
-import androidx.core.graphics.toColorInt
 
 
 /**
 /**
  * @author Aidan Follestad (afollestad), Karim Abou Zeid (kabouzeid)
  * @author Aidan Follestad (afollestad), Karim Abou Zeid (kabouzeid)
@@ -208,7 +207,7 @@ private constructor(private val mContext: Context) : ThemeStoreInterface {
                 ThemeUtils.resolveColor(
                 ThemeUtils.resolveColor(
                     context,
                     context,
                     androidx.appcompat.R.attr.colorPrimaryDark,
                     androidx.appcompat.R.attr.colorPrimaryDark,
-                    Color.parseColor("#37474F")
+                    "#37474F".toColorInt()
                 )
                 )
             )
             )
         }
         }
@@ -221,7 +220,7 @@ private constructor(private val mContext: Context) : ThemeStoreInterface {
                 ThemeUtils.resolveColor(
                 ThemeUtils.resolveColor(
                     context,
                     context,
                     androidx.appcompat.R.attr.colorAccent,
                     androidx.appcompat.R.attr.colorAccent,
-                    Color.parseColor("#263238")
+                    "#263238".toColorInt()
                 )
                 )
             )
             )
         }
         }

+ 0 - 6
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)
  * @author Aidan Follestad (afollestad), Karim Abou Zeid (kabouzeid)
  */
  */
 object ThemeStorePrefKeys {
 object ThemeStorePrefKeys {
-    const val KEY_DYNAMIC_COLORS_ENABLED = ""
 
 
     const val CONFIG_PREFS_KEY_DEFAULT = "app_themes"
     const val CONFIG_PREFS_KEY_DEFAULT = "app_themes"
     const val IS_CONFIGURED_KEY = "is_configured"
     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_APPLY_PRIMARY_NAVBAR = "apply_primary_navbar"
     const val KEY_AUTO_GENERATE_PRIMARYDARK = "auto_generate_primarydark"
     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"
 }
 }

+ 8 - 1
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.Context
 import android.content.Intent
 import android.content.Intent
 import android.content.res.ColorStateList
 import android.content.res.ColorStateList
+import android.content.res.Configuration
 import android.graphics.Color
 import android.graphics.Color
 import android.graphics.RenderEffect
 import android.graphics.RenderEffect
 import android.graphics.Shader
 import android.graphics.Shader
@@ -533,7 +534,13 @@ class BookInfoActivity :
         val surfaceTransition = ValueAnimator.ofArgb(surfaceFinalColor, colorSurface).apply {
         val surfaceTransition = ValueAnimator.ofArgb(surfaceFinalColor, colorSurface).apply {
             duration = 400L
             duration = 400L
             addUpdateListener { animation ->
             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.cdInfo?.setCardBackgroundColor(color)
                 binding.llInfo.setBackgroundColor(color)
                 binding.llInfo.setBackgroundColor(color)
                 (binding.llCover.background as? GradientDrawable)?.colors =
                 (binding.llCover.background as? GradientDrawable)?.colors =

+ 0 - 3
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 androidx.fragment.app.Fragment
 import io.legato.kazusa.R
 import io.legato.kazusa.R
 import io.legato.kazusa.base.VMBaseActivity
 import io.legato.kazusa.base.VMBaseActivity
-import io.legato.kazusa.constant.EventBus
 import io.legato.kazusa.databinding.ActivityConfigBinding
 import io.legato.kazusa.databinding.ActivityConfigBinding
-import io.legato.kazusa.utils.observeEvent
 import io.legato.kazusa.utils.viewbindingdelegate.viewBinding
 import io.legato.kazusa.utils.viewbindingdelegate.viewBinding
 
 
 class ConfigActivity : VMBaseActivity<ActivityConfigBinding, ConfigViewModel>() {
 class ConfigActivity : VMBaseActivity<ActivityConfigBinding, ConfigViewModel>() {
@@ -23,7 +21,6 @@ class ConfigActivity : VMBaseActivity<ActivityConfigBinding, ConfigViewModel>()
             ConfigTag.THEME_CONFIG -> replaceFragment<ThemeConfigFragment>(configTag)
             ConfigTag.THEME_CONFIG -> replaceFragment<ThemeConfigFragment>(configTag)
             ConfigTag.BACKUP_CONFIG -> replaceFragment<BackupConfigFragment>(configTag)
             ConfigTag.BACKUP_CONFIG -> replaceFragment<BackupConfigFragment>(configTag)
             ConfigTag.COVER_CONFIG -> replaceFragment<CoverConfigFragment>(configTag)
             ConfigTag.COVER_CONFIG -> replaceFragment<CoverConfigFragment>(configTag)
-            ConfigTag.WELCOME_CONFIG -> replaceFragment<WelcomeConfigFragment>(configTag)
             else -> finish()
             else -> finish()
         }
         }
     }
     }

+ 4 - 4
app/src/main/java/io/legato/kazusa/ui/config/ThemeConfigFragment.kt

@@ -136,6 +136,10 @@ class ThemeConfigFragment : PreferenceFragmentCompat(),
                 //recreateActivities()
                 //recreateActivities()
             }
             }
 
 
+            PreferKey.pureBlack -> {
+                recreateActivities()
+            }
+
             PreferKey.cPrimary,
             PreferKey.cPrimary,
             PreferKey.cAccent,
             PreferKey.cAccent,
             PreferKey.cBackground,
             PreferKey.cBackground,
@@ -193,10 +197,6 @@ class ThemeConfigFragment : PreferenceFragmentCompat(),
             "coverConfig" -> startActivity<ConfigActivity> {
             "coverConfig" -> startActivity<ConfigActivity> {
                 putExtra("configTag", ConfigTag.COVER_CONFIG)
                 putExtra("configTag", ConfigTag.COVER_CONFIG)
             }
             }
-
-            "welcomeStyle" -> startActivity<ConfigActivity> {
-                putExtra("configTag", ConfigTag.WELCOME_CONFIG)
-            }
         }
         }
         return super.onPreferenceTreeClick(preference)
         return super.onPreferenceTreeClick(preference)
     }
     }

+ 0 - 140
app/src/main/java/io/legato/kazusa/ui/config/WelcomeConfigFragment.kt

@@ -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<Preference>(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)
-            }
-        }
-    }
-
-}

+ 1 - 1
app/src/main/java/io/legato/kazusa/ui/main/MainActivity.kt

@@ -107,7 +107,7 @@ class MainActivity : VMBaseActivity<ActivityMainBinding, MainViewModel>(),
     override fun onCreate(savedInstanceState: Bundle?) {
     override fun onCreate(savedInstanceState: Bundle?) {
         super.onCreate(savedInstanceState)
         super.onCreate(savedInstanceState)
 
 
-        if (AppConfig.isFirstLaunch) {
+        if (LocalConfig.isFirstOpenApp) {
             startActivity<WelcomeActivity>()
             startActivity<WelcomeActivity>()
             finish()
             finish()
             return
             return

+ 3 - 3
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
     private var enableRefresh = true
 
 
     override fun onFragmentCreated(view: View, savedInstanceState: Bundle?) {
     override fun onFragmentCreated(view: View, savedInstanceState: Bundle?) {
-        setSupportToolbar(binding.titleBar.toolbar)
+        setSupportToolbar(binding.topBar)
         initRecyclerView()
         initRecyclerView()
         initBookGroupData()
         initBookGroupData()
         initAllBooksData()
         initAllBooksData()
@@ -182,7 +182,7 @@ class BookshelfFragment2() : BaseBookshelfFragment(R.layout.fragment_bookshelf2)
     private fun initBooksData() {
     private fun initBooksData() {
         if (groupId == BookGroup.Companion.IdRoot) {
         if (groupId == BookGroup.Companion.IdRoot) {
             if (isAdded) {
             if (isAdded) {
-                binding.titleBar.title = getString(R.string.bookshelf)
+                binding.topBar.title = getString(R.string.bookshelf)
                 binding.refreshLayout.isEnabled = true
                 binding.refreshLayout.isEnabled = true
                 enableRefresh = true
                 enableRefresh = true
             }
             }
@@ -190,7 +190,7 @@ class BookshelfFragment2() : BaseBookshelfFragment(R.layout.fragment_bookshelf2)
             bookGroups.firstOrNull {
             bookGroups.firstOrNull {
                 groupId == it.groupId
                 groupId == it.groupId
             }?.let {
             }?.let {
-                binding.titleBar.title = it.groupName
+                binding.topBar.title = it.groupName
                 binding.refreshLayout.isEnabled = it.enableRefresh
                 binding.refreshLayout.isEnabled = it.enableRefresh
                 enableRefresh = it.enableRefresh
                 enableRefresh = it.enableRefresh
             }
             }

+ 0 - 2
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 androidx.viewpager2.widget.ViewPager2
 import io.legato.kazusa.base.BaseActivity
 import io.legato.kazusa.base.BaseActivity
 import io.legato.kazusa.databinding.ActivityWelcomeBinding
 import io.legato.kazusa.databinding.ActivityWelcomeBinding
-import io.legato.kazusa.help.config.AppConfig
 import io.legato.kazusa.help.config.LocalConfig
 import io.legato.kazusa.help.config.LocalConfig
 import io.legato.kazusa.ui.main.MainActivity
 import io.legato.kazusa.ui.main.MainActivity
 import io.legato.kazusa.utils.startActivity
 import io.legato.kazusa.utils.startActivity
@@ -96,7 +95,6 @@ class WelcomeActivity : BaseActivity<ActivityWelcomeBinding>() {
     }
     }
 
 
     private fun finishSetup() {
     private fun finishSetup() {
-        AppConfig.isFirstLaunch = false
         startActivity<MainActivity>()
         startActivity<MainActivity>()
         finish()
         finish()
     }
     }

+ 0 - 1
app/src/main/java/io/legato/kazusa/utils/ToastUtils.kt

@@ -67,7 +67,6 @@ fun Context.longToastOnUiLegacy(message: CharSequence) {
 /**
 /**
  * JS 专用弹窗,短时间显示
  * JS 专用弹窗,短时间显示
  */
  */
-
 fun Context.toastForJs(message: CharSequence?, duration: Int = Toast.LENGTH_SHORT) {
 fun Context.toastForJs(message: CharSequence?, duration: Int = Toast.LENGTH_SHORT) {
     runOnUI {
     runOnUI {
         kotlin.runCatching {
         kotlin.runCatching {

+ 1 - 0
app/src/main/res/layout/activity_about.xml

@@ -11,6 +11,7 @@
         android:id="@+id/app_bar"
         android:id="@+id/app_bar"
         android:layout_width="match_parent"
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
         android:layout_height="wrap_content"
+        android:background="@android:color/transparent"
         android:fitsSystemWindows="true">
         android:fitsSystemWindows="true">
 
 
         <com.google.android.material.appbar.CollapsingToolbarLayout
         <com.google.android.material.appbar.CollapsingToolbarLayout

+ 1 - 0
app/src/main/res/layout/activity_config.xml

@@ -9,6 +9,7 @@
         android:id="@+id/title_bar"
         android:id="@+id/title_bar"
         android:layout_width="match_parent"
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
         android:layout_height="wrap_content"
+        android:background="@android:color/transparent"
         android:fitsSystemWindows="true"
         android:fitsSystemWindows="true"
         app:liftOnScroll="false"
         app:liftOnScroll="false"
         android:stateListAnimator="@null">
         android:stateListAnimator="@null">

+ 1 - 0
app/src/main/res/layout/activity_rss_artivles.xml

@@ -10,6 +10,7 @@
         android:id="@+id/title_bar"
         android:id="@+id/title_bar"
         android:layout_width="match_parent"
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
         android:layout_height="wrap_content"
+        android:background="@android:color/transparent"
         android:fitsSystemWindows="true"
         android:fitsSystemWindows="true"
         app:liftOnScroll="false"
         app:liftOnScroll="false"
         android:stateListAnimator="@null">
         android:stateListAnimator="@null">

+ 3 - 3
app/src/main/res/layout/fragment_bookshelf1.xml

@@ -9,7 +9,7 @@
         android:id="@+id/title_bar"
         android:id="@+id/title_bar"
         android:layout_width="match_parent"
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
         android:layout_height="wrap_content"
-        android:background="?attr/colorSurface"
+        android:background="@android:color/transparent"
         android:fitsSystemWindows="true"
         android:fitsSystemWindows="true"
         app:liftOnScroll="false"
         app:liftOnScroll="false"
         android:stateListAnimator="@null">
         android:stateListAnimator="@null">
@@ -20,7 +20,7 @@
             style="?attr/collapsingToolbarLayoutMediumStyle"
             style="?attr/collapsingToolbarLayoutMediumStyle"
             app:collapsedTitleTextAppearance="?attr/textAppearanceTitleLarge"
             app:collapsedTitleTextAppearance="?attr/textAppearanceTitleLarge"
             app:expandedTitleTextAppearance="?attr/textAppearanceHeadlineLarge"
             app:expandedTitleTextAppearance="?attr/textAppearanceHeadlineLarge"
-            app:contentScrim="?attr/colorSurface"
+            app:contentScrim="?attr/colorSurfaceContainer"
             app:titleCollapseMode="scale"
             app:titleCollapseMode="scale"
             app:layout_scrollFlags="scroll|exitUntilCollapsed|snap">
             app:layout_scrollFlags="scroll|exitUntilCollapsed|snap">
 
 
@@ -37,7 +37,7 @@
             android:id="@+id/tab_layout"
             android:id="@+id/tab_layout"
             android:layout_width="match_parent"
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
             android:layout_height="wrap_content"
-            android:background="?attr/colorSurface"
+            android:background="@android:color/transparent"
             android:paddingHorizontal="16dp"/>
             android:paddingHorizontal="16dp"/>
 
 
     </com.google.android.material.appbar.AppBarLayout>
     </com.google.android.material.appbar.AppBarLayout>

+ 31 - 15
app/src/main/res/layout/fragment_bookshelf2.xml

@@ -1,26 +1,46 @@
 <?xml version="1.0" encoding="utf-8"?>
 <?xml version="1.0" encoding="utf-8"?>
-<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
+<androidx.coordinatorlayout.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:app="http://schemas.android.com/apk/res-auto"
     xmlns:app="http://schemas.android.com/apk/res-auto"
     xmlns:tools="http://schemas.android.com/tools"
     xmlns:tools="http://schemas.android.com/tools"
     android:layout_width="match_parent"
     android:layout_width="match_parent"
-    android:layout_height="match_parent"
-    android:orientation="vertical">
+    android:layout_height="match_parent">
 
 
-    <io.legato.kazusa.ui.widget.TitleBar
+    <com.google.android.material.appbar.AppBarLayout
         android:id="@+id/title_bar"
         android:id="@+id/title_bar"
         android:layout_width="match_parent"
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
         android:layout_height="wrap_content"
-        app:attachToActivity="false"
-        app:layout_constraintTop_toTopOf="parent"
-        app:title="@string/bookshelf" />
+        android:background="@android:color/transparent"
+        android:fitsSystemWindows="true"
+        android:stateListAnimator="@null"
+        app:liftOnScroll="false">
+
+        <com.google.android.material.appbar.CollapsingToolbarLayout
+            style="?attr/collapsingToolbarLayoutMediumStyle"
+            android:layout_width="match_parent"
+            android:layout_height="?attr/collapsingToolbarLayoutMediumSize"
+            app:collapsedTitleTextAppearance="?attr/textAppearanceTitleLarge"
+            app:contentScrim="?attr/colorSurface"
+            app:expandedTitleTextAppearance="?attr/textAppearanceHeadlineLarge"
+            app:layout_scrollFlags="scroll|exitUntilCollapsed|snap"
+            app:titleCollapseMode="scale">
+
+            <com.google.android.material.appbar.MaterialToolbar
+                android:id="@+id/top_bar"
+                android:layout_width="match_parent"
+                android:layout_height="?attr/actionBarSize"
+                app:layout_collapseMode="pin"
+                app:title="@string/bookshelf" />
+
+        </com.google.android.material.appbar.CollapsingToolbarLayout>
+
+    </com.google.android.material.appbar.AppBarLayout>
 
 
     <androidx.swiperefreshlayout.widget.SwipeRefreshLayout
     <androidx.swiperefreshlayout.widget.SwipeRefreshLayout
         android:id="@+id/refresh_layout"
         android:id="@+id/refresh_layout"
         android:layout_width="match_parent"
         android:layout_width="match_parent"
-        android:layout_height="0dp"
+        android:layout_height="match_parent"
         android:paddingHorizontal="8dp"
         android:paddingHorizontal="8dp"
-        app:layout_constraintTop_toBottomOf="@+id/title_bar"
-        app:layout_constraintBottom_toBottomOf="parent">
+        app:layout_behavior="@string/appbar_scrolling_view_behavior">
 
 
         <androidx.recyclerview.widget.RecyclerView
         <androidx.recyclerview.widget.RecyclerView
             android:id="@+id/rv_bookshelf"
             android:id="@+id/rv_bookshelf"
@@ -39,10 +59,6 @@
         android:gravity="center"
         android:gravity="center"
         android:text="@string/bookshelf_empty"
         android:text="@string/bookshelf_empty"
         android:visibility="gone"
         android:visibility="gone"
-        app:layout_constraintTop_toBottomOf="@+id/title_bar"
-        app:layout_constraintBottom_toBottomOf="parent"
-        app:layout_constraintLeft_toLeftOf="parent"
-        app:layout_constraintRight_toRightOf="parent"
         tools:text="TextView" />
         tools:text="TextView" />
 
 
-</androidx.constraintlayout.widget.ConstraintLayout>
+</androidx.coordinatorlayout.widget.CoordinatorLayout>

+ 1 - 0
app/src/main/res/layout/fragment_bookshelf3.xml

@@ -9,6 +9,7 @@
         android:id="@+id/title_bar"
         android:id="@+id/title_bar"
         android:layout_width="match_parent"
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
         android:layout_height="wrap_content"
+        android:background="@android:color/transparent"
         android:fitsSystemWindows="true"
         android:fitsSystemWindows="true"
         app:liftOnScroll="false"
         app:liftOnScroll="false"
         android:stateListAnimator="@null">
         android:stateListAnimator="@null">

+ 1 - 0
app/src/main/res/layout/fragment_explore.xml

@@ -11,6 +11,7 @@
         android:id="@+id/app_bar"
         android:id="@+id/app_bar"
         android:layout_width="match_parent"
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
         android:layout_height="wrap_content"
+        android:background="@android:color/transparent"
         android:fitsSystemWindows="true">
         android:fitsSystemWindows="true">
 
 
         <com.google.android.material.appbar.CollapsingToolbarLayout
         <com.google.android.material.appbar.CollapsingToolbarLayout

+ 1 - 0
app/src/main/res/layout/fragment_my_config.xml

@@ -8,6 +8,7 @@
         android:id="@+id/title_bar"
         android:id="@+id/title_bar"
         android:layout_width="match_parent"
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
         android:layout_height="wrap_content"
+        android:background="@android:color/transparent"
         app:attachToActivity="false"
         app:attachToActivity="false"
         android:fitsSystemWindows="true">
         android:fitsSystemWindows="true">
 
 

+ 1 - 0
app/src/main/res/layout/fragment_privacy.xml

@@ -18,6 +18,7 @@
         <LinearLayout
         <LinearLayout
             android:layout_width="match_parent"
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
             android:layout_height="wrap_content"
+            android:paddingBottom="40dp"
             android:orientation="vertical">
             android:orientation="vertical">
 
 
             <TextView
             <TextView

+ 1 - 0
app/src/main/res/layout/fragment_rss.xml

@@ -11,6 +11,7 @@
         android:id="@+id/app_bar"
         android:id="@+id/app_bar"
         android:layout_width="match_parent"
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
         android:layout_height="wrap_content"
+        android:background="@android:color/transparent"
         android:fitsSystemWindows="true">
         android:fitsSystemWindows="true">
 
 
         <com.google.android.material.appbar.CollapsingToolbarLayout
         <com.google.android.material.appbar.CollapsingToolbarLayout

+ 3 - 3
app/src/main/res/layout/item_bookshelf_grid_compact.xml

@@ -4,13 +4,13 @@
     xmlns:tools="http://schemas.android.com/tools"
     xmlns:tools="http://schemas.android.com/tools"
     android:layout_width="match_parent"
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
     android:layout_height="wrap_content"
-    android:background="?attr/selectableItemBackground"
+    app:cardBackgroundColor="@android:color/transparent"
     app:strokeWidth="0dp">
     app:strokeWidth="0dp">
 
 
     <FrameLayout
     <FrameLayout
         android:layout_width="match_parent"
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
         android:layout_height="wrap_content"
-        android:paddingHorizontal="6dp"
+        android:paddingHorizontal="8dp"
         android:paddingTop="2dp"
         android:paddingTop="2dp"
         android:paddingBottom="12dp">
         android:paddingBottom="12dp">
 
 
@@ -20,7 +20,7 @@
             android:layout_height="wrap_content"
             android:layout_height="wrap_content"
             android:clickable="true"
             android:clickable="true"
             android:focusable="true"
             android:focusable="true"
-            app:cardBackgroundColor="@android:color/transparent"
+            android:background="?attr/selectableItemBackground"
             app:cardCornerRadius="6dp"
             app:cardCornerRadius="6dp"
             app:layout_constraintTop_toTopOf="parent"
             app:layout_constraintTop_toTopOf="parent"
             app:strokeWidth="0dp">
             app:strokeWidth="0dp">

+ 4 - 3
app/src/main/res/layout/item_bookshelf_grid_compact_group.xml

@@ -4,13 +4,13 @@
     xmlns:tools="http://schemas.android.com/tools"
     xmlns:tools="http://schemas.android.com/tools"
     android:layout_width="match_parent"
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
     android:layout_height="wrap_content"
-    android:background="?attr/selectableItemBackground"
+    app:cardBackgroundColor="@android:color/transparent"
     app:strokeWidth="0dp">
     app:strokeWidth="0dp">
 
 
     <LinearLayout
     <LinearLayout
         android:layout_width="match_parent"
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
         android:layout_height="wrap_content"
-        android:orientation="vertical"
+        android:paddingHorizontal="8dp"
         android:paddingTop="2dp"
         android:paddingTop="2dp"
         android:paddingBottom="12dp">
         android:paddingBottom="12dp">
 
 
@@ -20,7 +20,8 @@
             android:layout_height="wrap_content"
             android:layout_height="wrap_content"
             android:clickable="true"
             android:clickable="true"
             android:focusable="true"
             android:focusable="true"
-            app:cardCornerRadius="8dp"
+            android:background="?attr/selectableItemBackground"
+            app:cardCornerRadius="6dp"
             app:layout_constraintTop_toTopOf="parent"
             app:layout_constraintTop_toTopOf="parent"
             app:strokeWidth="0dp">
             app:strokeWidth="0dp">
 
 

+ 239 - 47
app/src/main/res/values-night/colors.xml

@@ -1,52 +1,52 @@
 <?xml version="1.0" encoding="utf-8"?>
 <?xml version="1.0" encoding="utf-8"?>
 <resources>
 <resources>
-    <color name="md_theme_primary">#B1D18A</color>
-    <color name="md_theme_onPrimary">#1F3701</color>
-    <color name="md_theme_primaryContainer">#354E16</color>
-    <color name="md_theme_onPrimaryContainer">#CDEDA3</color>
-    <color name="md_theme_secondary">#BFCBAD</color>
-    <color name="md_theme_onSecondary">#2A331E</color>
-    <color name="md_theme_secondaryContainer">#404A33</color>
-    <color name="md_theme_onSecondaryContainer">#DCE7C8</color>
-    <color name="md_theme_tertiary">#A0D0CB</color>
-    <color name="md_theme_onTertiary">#003735</color>
-    <color name="md_theme_tertiaryContainer">#1F4E4B</color>
-    <color name="md_theme_onTertiaryContainer">#BCECE7</color>
-    <color name="md_theme_error">#FFB4AB</color>
-    <color name="md_theme_onError">#690005</color>
-    <color name="md_theme_errorContainer">#93000A</color>
-    <color name="md_theme_onErrorContainer">#FFDAD6</color>
-    <color name="md_theme_background">#12140E</color>
-    <color name="md_theme_onBackground">#E2E3D8</color>
-    <color name="md_theme_surface">#12140E</color>
-    <color name="md_theme_onSurface">#E2E3D8</color>
-    <color name="md_theme_surfaceVariant">#44483D</color>
-    <color name="md_theme_onSurfaceVariant">#C5C8BA</color>
-    <color name="md_theme_outline">#8F9285</color>
-    <color name="md_theme_outlineVariant">#44483D</color>
-    <color name="md_theme_scrim">#000000</color>
-    <color name="md_theme_inverseSurface">#E2E3D8</color>
-    <color name="md_theme_inverseOnSurface">#2F312A</color>
-    <color name="md_theme_inversePrimary">#4C662B</color>
-    <color name="md_theme_primaryFixed">#CDEDA3</color>
-    <color name="md_theme_onPrimaryFixed">#102000</color>
-    <color name="md_theme_primaryFixedDim">#B1D18A</color>
-    <color name="md_theme_onPrimaryFixedVariant">#354E16</color>
-    <color name="md_theme_secondaryFixed">#DCE7C8</color>
-    <color name="md_theme_onSecondaryFixed">#151E0B</color>
-    <color name="md_theme_secondaryFixedDim">#BFCBAD</color>
-    <color name="md_theme_onSecondaryFixedVariant">#404A33</color>
-    <color name="md_theme_tertiaryFixed">#BCECE7</color>
-    <color name="md_theme_onTertiaryFixed">#00201E</color>
-    <color name="md_theme_tertiaryFixedDim">#A0D0CB</color>
-    <color name="md_theme_onTertiaryFixedVariant">#1F4E4B</color>
-    <color name="md_theme_surfaceDim">#12140E</color>
-    <color name="md_theme_surfaceBright">#383A32</color>
-    <color name="md_theme_surfaceContainerLowest">#0C0F09</color>
-    <color name="md_theme_surfaceContainerLow">#1A1C16</color>
-    <color name="md_theme_surfaceContainer">#1E201A</color>
-    <color name="md_theme_surfaceContainerHigh">#282B24</color>
-    <color name="md_theme_surfaceContainerHighest">#33362E</color>
+    <color name="gr_theme_primary">#B1D18A</color>
+    <color name="gr_theme_onPrimary">#1F3701</color>
+    <color name="gr_theme_primaryContainer">#354E16</color>
+    <color name="gr_theme_onPrimaryContainer">#CDEDA3</color>
+    <color name="gr_theme_secondary">#BFCBAD</color>
+    <color name="gr_theme_onSecondary">#2A331E</color>
+    <color name="gr_theme_secondaryContainer">#404A33</color>
+    <color name="gr_theme_onSecondaryContainer">#DCE7C8</color>
+    <color name="gr_theme_tertiary">#A0D0CB</color>
+    <color name="gr_theme_onTertiary">#003735</color>
+    <color name="gr_theme_tertiaryContainer">#1F4E4B</color>
+    <color name="gr_theme_onTertiaryContainer">#BCECE7</color>
+    <color name="gr_theme_error">#FFB4AB</color>
+    <color name="gr_theme_onError">#690005</color>
+    <color name="gr_theme_errorContainer">#93000A</color>
+    <color name="gr_theme_onErrorContainer">#FFDAD6</color>
+    <color name="gr_theme_background">#12140E</color>
+    <color name="gr_theme_onBackground">#E2E3D8</color>
+    <color name="gr_theme_surface">#12140E</color>
+    <color name="gr_theme_onSurface">#E2E3D8</color>
+    <color name="gr_theme_surfaceVariant">#44483D</color>
+    <color name="gr_theme_onSurfaceVariant">#C5C8BA</color>
+    <color name="gr_theme_outline">#8F9285</color>
+    <color name="gr_theme_outlineVariant">#44483D</color>
+    <color name="gr_theme_scrim">#000000</color>
+    <color name="gr_theme_inverseSurface">#E2E3D8</color>
+    <color name="gr_theme_inverseOnSurface">#2F312A</color>
+    <color name="gr_theme_inversePrimary">#4C662B</color>
+    <color name="gr_theme_primaryFixed">#CDEDA3</color>
+    <color name="gr_theme_onPrimaryFixed">#102000</color>
+    <color name="gr_theme_primaryFixedDim">#B1D18A</color>
+    <color name="gr_theme_onPrimaryFixedVariant">#354E16</color>
+    <color name="gr_theme_secondaryFixed">#DCE7C8</color>
+    <color name="gr_theme_onSecondaryFixed">#151E0B</color>
+    <color name="gr_theme_secondaryFixedDim">#BFCBAD</color>
+    <color name="gr_theme_onSecondaryFixedVariant">#404A33</color>
+    <color name="gr_theme_tertiaryFixed">#BCECE7</color>
+    <color name="gr_theme_onTertiaryFixed">#00201E</color>
+    <color name="gr_theme_tertiaryFixedDim">#A0D0CB</color>
+    <color name="gr_theme_onTertiaryFixedVariant">#1F4E4B</color>
+    <color name="gr_theme_surfaceDim">#12140E</color>
+    <color name="gr_theme_surfaceBright">#383A32</color>
+    <color name="gr_theme_surfaceContainerLowest">#0C0F09</color>
+    <color name="gr_theme_surfaceContainerLow">#1A1C16</color>
+    <color name="gr_theme_surfaceContainer">#1E201A</color>
+    <color name="gr_theme_surfaceContainerHigh">#282B24</color>
+    <color name="gr_theme_surfaceContainerHighest">#33362E</color>
 
 
 
 
     <color name="wh_theme_primary">#C7C6C6</color>
     <color name="wh_theme_primary">#C7C6C6</color>
@@ -193,6 +193,198 @@
     <color name="koharu_theme_surfaceContainerHigh">#322828</color>
     <color name="koharu_theme_surfaceContainerHigh">#322828</color>
     <color name="koharu_theme_surfaceContainerHighest">#3D3232</color>
     <color name="koharu_theme_surfaceContainerHighest">#3D3232</color>
 
 
+    <color name="sora_theme_primary">#A5C9FE</color>
+    <color name="sora_theme_onPrimary">#00315D</color>
+    <color name="sora_theme_primaryContainer">#214876</color>
+    <color name="sora_theme_onPrimaryContainer">#D4E3FF</color>
+    <color name="sora_theme_secondary">#BCC7DC</color>
+    <color name="sora_theme_onSecondary">#263141</color>
+    <color name="sora_theme_secondaryContainer">#3D4758</color>
+    <color name="sora_theme_onSecondaryContainer">#D8E3F8</color>
+    <color name="sora_theme_tertiary">#D9BDE3</color>
+    <color name="sora_theme_onTertiary">#3D2946</color>
+    <color name="sora_theme_tertiaryContainer">#543F5E</color>
+    <color name="sora_theme_onTertiaryContainer">#F6D9FF</color>
+    <color name="sora_theme_error">#FFB4AB</color>
+    <color name="sora_theme_onError">#690005</color>
+    <color name="sora_theme_errorContainer">#93000A</color>
+    <color name="sora_theme_onErrorContainer">#FFDAD6</color>
+    <color name="sora_theme_background">#111318</color>
+    <color name="sora_theme_onBackground">#E1E2E9</color>
+    <color name="sora_theme_surface">#111318</color>
+    <color name="sora_theme_onSurface">#E1E2E9</color>
+    <color name="sora_theme_surfaceVariant">#43474E</color>
+    <color name="sora_theme_onSurfaceVariant">#C3C6CF</color>
+    <color name="sora_theme_outline">#8D9199</color>
+    <color name="sora_theme_outlineVariant">#43474E</color>
+    <color name="sora_theme_scrim">#000000</color>
+    <color name="sora_theme_inverseSurface">#E1E2E9</color>
+    <color name="sora_theme_inverseOnSurface">#2E3035</color>
+    <color name="sora_theme_inversePrimary">#3B608F</color>
+    <color name="sora_theme_primaryFixed">#D4E3FF</color>
+    <color name="sora_theme_onPrimaryFixed">#001C39</color>
+    <color name="sora_theme_primaryFixedDim">#A5C9FE</color>
+    <color name="sora_theme_onPrimaryFixedVariant">#214876</color>
+    <color name="sora_theme_secondaryFixed">#D8E3F8</color>
+    <color name="sora_theme_onSecondaryFixed">#111C2B</color>
+    <color name="sora_theme_secondaryFixedDim">#BCC7DC</color>
+    <color name="sora_theme_onSecondaryFixedVariant">#3D4758</color>
+    <color name="sora_theme_tertiaryFixed">#F6D9FF</color>
+    <color name="sora_theme_onTertiaryFixed">#271430</color>
+    <color name="sora_theme_tertiaryFixedDim">#D9BDE3</color>
+    <color name="sora_theme_onTertiaryFixedVariant">#543F5E</color>
+    <color name="sora_theme_surfaceDim">#111318</color>
+    <color name="sora_theme_surfaceBright">#37393E</color>
+    <color name="sora_theme_surfaceContainerLowest">#0C0E13</color>
+    <color name="sora_theme_surfaceContainerLow">#191C20</color>
+    <color name="sora_theme_surfaceContainer">#1D2024</color>
+    <color name="sora_theme_surfaceContainerHigh">#282A2F</color>
+    <color name="sora_theme_surfaceContainerHighest">#32353A</color>
+
+    <color name="august_theme_primary">#FFB59F</color>
+    <color name="august_theme_onPrimary">#561F0E</color>
+    <color name="august_theme_primaryContainer">#723522</color>
+    <color name="august_theme_onPrimaryContainer">#FFDBD1</color>
+    <color name="august_theme_secondary">#E7BDB2</color>
+    <color name="august_theme_onSecondary">#442A22</color>
+    <color name="august_theme_secondaryContainer">#5D4037</color>
+    <color name="august_theme_onSecondaryContainer">#FFDBD1</color>
+    <color name="august_theme_tertiary">#D8C68D</color>
+    <color name="august_theme_onTertiary">#3A2F05</color>
+    <color name="august_theme_tertiaryContainer">#524619</color>
+    <color name="august_theme_onTertiaryContainer">#F5E1A7</color>
+    <color name="august_theme_error">#FFB4AB</color>
+    <color name="august_theme_onError">#690005</color>
+    <color name="august_theme_errorContainer">#93000A</color>
+    <color name="august_theme_onErrorContainer">#FFDAD6</color>
+    <color name="august_theme_background">#1A110F</color>
+    <color name="august_theme_onBackground">#F1DFDA</color>
+    <color name="august_theme_surface">#1A110F</color>
+    <color name="august_theme_onSurface">#F1DFDA</color>
+    <color name="august_theme_surfaceVariant">#53433F</color>
+    <color name="august_theme_onSurfaceVariant">#D8C2BC</color>
+    <color name="august_theme_outline">#A08C87</color>
+    <color name="august_theme_outlineVariant">#53433F</color>
+    <color name="august_theme_scrim">#000000</color>
+    <color name="august_theme_inverseSurface">#F1DFDA</color>
+    <color name="august_theme_inverseOnSurface">#392E2B</color>
+    <color name="august_theme_inversePrimary">#8F4C37</color>
+    <color name="august_theme_primaryFixed">#FFDBD1</color>
+    <color name="august_theme_onPrimaryFixed">#3A0B00</color>
+    <color name="august_theme_primaryFixedDim">#FFB59F</color>
+    <color name="august_theme_onPrimaryFixedVariant">#723522</color>
+    <color name="august_theme_secondaryFixed">#FFDBD1</color>
+    <color name="august_theme_onSecondaryFixed">#2C150F</color>
+    <color name="august_theme_secondaryFixedDim">#E7BDB2</color>
+    <color name="august_theme_onSecondaryFixedVariant">#5D4037</color>
+    <color name="august_theme_tertiaryFixed">#F5E1A7</color>
+    <color name="august_theme_onTertiaryFixed">#231B00</color>
+    <color name="august_theme_tertiaryFixedDim">#D8C68D</color>
+    <color name="august_theme_onTertiaryFixedVariant">#524619</color>
+    <color name="august_theme_surfaceDim">#1A110F</color>
+    <color name="august_theme_surfaceBright">#423734</color>
+    <color name="august_theme_surfaceContainerLowest">#140C0A</color>
+    <color name="august_theme_surfaceContainerLow">#231917</color>
+    <color name="august_theme_surfaceContainer">#271D1B</color>
+    <color name="august_theme_surfaceContainerHigh">#322825</color>
+    <color name="august_theme_surfaceContainerHighest">#3D322F</color>
+
+    <color name="carlotta_theme_primary">#FFB0CA</color>
+    <color name="carlotta_theme_onPrimary">#541D33</color>
+    <color name="carlotta_theme_primaryContainer">#6F334A</color>
+    <color name="carlotta_theme_onPrimaryContainer">#FFD9E3</color>
+    <color name="carlotta_theme_secondary">#E2BDC7</color>
+    <color name="carlotta_theme_onSecondary">#422931</color>
+    <color name="carlotta_theme_secondaryContainer">#5A3F48</color>
+    <color name="carlotta_theme_onSecondaryContainer">#FFD9E3</color>
+    <color name="carlotta_theme_tertiary">#EFBC94</color>
+    <color name="carlotta_theme_onTertiary">#48290C</color>
+    <color name="carlotta_theme_tertiaryContainer">#623F20</color>
+    <color name="carlotta_theme_onTertiaryContainer">#FFDCC2</color>
+    <color name="carlotta_theme_error">#FFB4AB</color>
+    <color name="carlotta_theme_onError">#690005</color>
+    <color name="carlotta_theme_errorContainer">#93000A</color>
+    <color name="carlotta_theme_onErrorContainer">#FFDAD6</color>
+    <color name="carlotta_theme_background">#191114</color>
+    <color name="carlotta_theme_onBackground">#EFDFE2</color>
+    <color name="carlotta_theme_surface">#191114</color>
+    <color name="carlotta_theme_onSurface">#EFDFE2</color>
+    <color name="carlotta_theme_surfaceVariant">#514347</color>
+    <color name="carlotta_theme_onSurfaceVariant">#D5C2C6</color>
+    <color name="carlotta_theme_outline">#9E8C90</color>
+    <color name="carlotta_theme_outlineVariant">#514347</color>
+    <color name="carlotta_theme_scrim">#000000</color>
+    <color name="carlotta_theme_inverseSurface">#EFDFE2</color>
+    <color name="carlotta_theme_inverseOnSurface">#372E30</color>
+    <color name="carlotta_theme_inversePrimary">#8B4A62</color>
+    <color name="carlotta_theme_primaryFixed">#FFD9E3</color>
+    <color name="carlotta_theme_onPrimaryFixed">#39071E</color>
+    <color name="carlotta_theme_primaryFixedDim">#FFB0CA</color>
+    <color name="carlotta_theme_onPrimaryFixedVariant">#6F334A</color>
+    <color name="carlotta_theme_secondaryFixed">#FFD9E3</color>
+    <color name="carlotta_theme_onSecondaryFixed">#2B151D</color>
+    <color name="carlotta_theme_secondaryFixedDim">#E2BDC7</color>
+    <color name="carlotta_theme_onSecondaryFixedVariant">#5A3F48</color>
+    <color name="carlotta_theme_tertiaryFixed">#FFDCC2</color>
+    <color name="carlotta_theme_onTertiaryFixed">#2E1500</color>
+    <color name="carlotta_theme_tertiaryFixedDim">#EFBC94</color>
+    <color name="carlotta_theme_onTertiaryFixedVariant">#623F20</color>
+    <color name="carlotta_theme_surfaceDim">#191114</color>
+    <color name="carlotta_theme_surfaceBright">#403739</color>
+    <color name="carlotta_theme_surfaceContainerLowest">#140C0E</color>
+    <color name="carlotta_theme_surfaceContainerLow">#22191C</color>
+    <color name="carlotta_theme_surfaceContainer">#261D20</color>
+    <color name="carlotta_theme_surfaceContainerHigh">#31282A</color>
+    <color name="carlotta_theme_surfaceContainerHighest">#3C3235</color>
+
+    <color name="mujika_theme_primary">#FFB1C0</color>
+    <color name="mujika_theme_onPrimary">#551D2B</color>
+    <color name="mujika_theme_primaryContainer">#713341</color>
+    <color name="mujika_theme_onPrimaryContainer">#FFD9DF</color>
+    <color name="mujika_theme_secondary">#E4BDC3</color>
+    <color name="mujika_theme_onSecondary">#43292E</color>
+    <color name="mujika_theme_secondaryContainer">#5C3F44</color>
+    <color name="mujika_theme_onSecondaryContainer">#FFD9DF</color>
+    <color name="mujika_theme_tertiary">#B6C4FF</color>
+    <color name="mujika_theme_onTertiary">#1D2D61</color>
+    <color name="mujika_theme_tertiaryContainer">#354479</color>
+    <color name="mujika_theme_onTertiaryContainer">#DCE1FF</color>
+    <color name="mujika_theme_error">#FFB4AB</color>
+    <color name="mujika_theme_onError">#690005</color>
+    <color name="mujika_theme_errorContainer">#93000A</color>
+    <color name="mujika_theme_onErrorContainer">#FFDAD6</color>
+    <color name="mujika_theme_background">#191113</color>
+    <color name="mujika_theme_onBackground">#EFDEE0</color>
+    <color name="mujika_theme_surface">#191113</color>
+    <color name="mujika_theme_onSurface">#EFDEE0</color>
+    <color name="mujika_theme_surfaceVariant">#524345</color>
+    <color name="mujika_theme_onSurfaceVariant">#D6C2C4</color>
+    <color name="mujika_theme_outline">#9F8C8F</color>
+    <color name="mujika_theme_outlineVariant">#524345</color>
+    <color name="mujika_theme_scrim">#000000</color>
+    <color name="mujika_theme_inverseSurface">#EFDEE0</color>
+    <color name="mujika_theme_inverseOnSurface">#382E2F</color>
+    <color name="mujika_theme_inversePrimary">#8E4958</color>
+    <color name="mujika_theme_primaryFixed">#FFD9DF</color>
+    <color name="mujika_theme_onPrimaryFixed">#3A0717</color>
+    <color name="mujika_theme_primaryFixedDim">#FFB1C0</color>
+    <color name="mujika_theme_onPrimaryFixedVariant">#713341</color>
+    <color name="mujika_theme_secondaryFixed">#FFD9DF</color>
+    <color name="mujika_theme_onSecondaryFixed">#2B151A</color>
+    <color name="mujika_theme_secondaryFixedDim">#E4BDC3</color>
+    <color name="mujika_theme_onSecondaryFixedVariant">#5C3F44</color>
+    <color name="mujika_theme_tertiaryFixed">#DCE1FF</color>
+    <color name="mujika_theme_onTertiaryFixed">#04174B</color>
+    <color name="mujika_theme_tertiaryFixedDim">#B6C4FF</color>
+    <color name="mujika_theme_onTertiaryFixedVariant">#354479</color>
+    <color name="mujika_theme_surfaceDim">#191113</color>
+    <color name="mujika_theme_surfaceBright">#413738</color>
+    <color name="mujika_theme_surfaceContainerLowest">#140C0D</color>
+    <color name="mujika_theme_surfaceContainerLow">#22191B</color>
+    <color name="mujika_theme_surfaceContainer">#261D1F</color>
+    <color name="mujika_theme_surfaceContainerHigh">#312829</color>
+    <color name="mujika_theme_surfaceContainerHighest">#3C3234</color>
+
     <color name="yuuka_theme_primary">#BFC2FF</color>
     <color name="yuuka_theme_primary">#BFC2FF</color>
     <color name="yuuka_theme_onPrimary">#272B60</color>
     <color name="yuuka_theme_onPrimary">#272B60</color>
     <color name="yuuka_theme_primaryContainer">#3E4278</color>
     <color name="yuuka_theme_primaryContainer">#3E4278</color>

+ 5 - 0
app/src/main/res/values-night/themes.xml

@@ -12,4 +12,9 @@
         <item name="alertDialogTheme">@style/AppTheme.AlertDialog</item>
         <item name="alertDialogTheme">@style/AppTheme.AlertDialog</item>
     </style>
     </style>
 
 
+    <style name="ThemeOverlay.PureBlack" parent="">
+        <item name="android:colorBackground">#000000</item>
+        <item name="colorSurface">#000000</item>
+    </style>
+
 </resources>
 </resources>

+ 4 - 0
app/src/main/res/values/array_values.xml

@@ -35,6 +35,10 @@
         <item>5</item>
         <item>5</item>
         <item>6</item>
         <item>6</item>
         <item>7</item>
         <item>7</item>
+        <item>8</item>
+        <item>9</item>
+        <item>10</item>
+        <item>11</item>
     </string-array>
     </string-array>
 
 
     <string-array name="screen_direction_value">
     <string-array name="screen_direction_value">

+ 7 - 3
app/src/main/res/values/arrays.xml

@@ -59,9 +59,13 @@
 		<item>草野</item>
 		<item>草野</item>
 		<item>柠檬</item>
 		<item>柠檬</item>
 		<item>黑白</item>
 		<item>黑白</item>
-		<item>Koharu</item>
-		<item>Yuuka</item>
-		<item>Phoebe</item>
+        <item>晴空</item>
+        <item>八月</item>
+        <item>新浪潮</item>
+        <item>春</item>
+        <item>千禧年</item>
+        <item>隐海修会</item>
+        <item>乐队</item>
         <item>透明</item>
         <item>透明</item>
 	</string-array>
 	</string-array>
 
 

+ 238 - 48
app/src/main/res/values/colors.xml

@@ -1,54 +1,53 @@
 <?xml version="1.0" encoding="utf-8"?>
 <?xml version="1.0" encoding="utf-8"?>
 <resources>
 <resources>
-
     <!--    GR Theme-->
     <!--    GR Theme-->
-    <color name="md_theme_primary">#4C662B</color>
-    <color name="md_theme_onPrimary">#FFFFFF</color>
-    <color name="md_theme_primaryContainer">#CDEDA3</color>
-    <color name="md_theme_onPrimaryContainer">#354E16</color>
-    <color name="md_theme_secondary">#586249</color>
-    <color name="md_theme_onSecondary">#FFFFFF</color>
-    <color name="md_theme_secondaryContainer">#DCE7C8</color>
-    <color name="md_theme_onSecondaryContainer">#404A33</color>
-    <color name="md_theme_tertiary">#386663</color>
-    <color name="md_theme_onTertiary">#FFFFFF</color>
-    <color name="md_theme_tertiaryContainer">#BCECE7</color>
-    <color name="md_theme_onTertiaryContainer">#1F4E4B</color>
-    <color name="md_theme_error">#BA1A1A</color>
-    <color name="md_theme_onError">#FFFFFF</color>
-    <color name="md_theme_errorContainer">#FFDAD6</color>
-    <color name="md_theme_onErrorContainer">#93000A</color>
-    <color name="md_theme_background">#F9FAEF</color>
-    <color name="md_theme_onBackground">#1A1C16</color>
-    <color name="md_theme_surface">#F9FAEF</color>
-    <color name="md_theme_onSurface">#1A1C16</color>
-    <color name="md_theme_surfaceVariant">#E1E4D5</color>
-    <color name="md_theme_onSurfaceVariant">#44483D</color>
-    <color name="md_theme_outline">#75796C</color>
-    <color name="md_theme_outlineVariant">#C5C8BA</color>
-    <color name="md_theme_scrim">#000000</color>
-    <color name="md_theme_inverseSurface">#2F312A</color>
-    <color name="md_theme_inverseOnSurface">#F1F2E6</color>
-    <color name="md_theme_inversePrimary">#B1D18A</color>
-    <color name="md_theme_primaryFixed">#CDEDA3</color>
-    <color name="md_theme_onPrimaryFixed">#102000</color>
-    <color name="md_theme_primaryFixedDim">#B1D18A</color>
-    <color name="md_theme_onPrimaryFixedVariant">#354E16</color>
-    <color name="md_theme_secondaryFixed">#DCE7C8</color>
-    <color name="md_theme_onSecondaryFixed">#151E0B</color>
-    <color name="md_theme_secondaryFixedDim">#BFCBAD</color>
-    <color name="md_theme_onSecondaryFixedVariant">#404A33</color>
-    <color name="md_theme_tertiaryFixed">#BCECE7</color>
-    <color name="md_theme_onTertiaryFixed">#00201E</color>
-    <color name="md_theme_tertiaryFixedDim">#A0D0CB</color>
-    <color name="md_theme_onTertiaryFixedVariant">#1F4E4B</color>
-    <color name="md_theme_surfaceDim">#DADBD0</color>
-    <color name="md_theme_surfaceBright">#F9FAEF</color>
-    <color name="md_theme_surfaceContainerLowest">#FFFFFF</color>
-    <color name="md_theme_surfaceContainerLow">#F3F4E9</color>
-    <color name="md_theme_surfaceContainer">#EEEFE3</color>
-    <color name="md_theme_surfaceContainerHigh">#E8E9DE</color>
-    <color name="md_theme_surfaceContainerHighest">#E2E3D8</color>
+    <color name="gr_theme_primary">#4C662B</color>
+    <color name="gr_theme_onPrimary">#FFFFFF</color>
+    <color name="gr_theme_primaryContainer">#CDEDA3</color>
+    <color name="gr_theme_onPrimaryContainer">#354E16</color>
+    <color name="gr_theme_secondary">#586249</color>
+    <color name="gr_theme_onSecondary">#FFFFFF</color>
+    <color name="gr_theme_secondaryContainer">#DCE7C8</color>
+    <color name="gr_theme_onSecondaryContainer">#404A33</color>
+    <color name="gr_theme_tertiary">#386663</color>
+    <color name="gr_theme_onTertiary">#FFFFFF</color>
+    <color name="gr_theme_tertiaryContainer">#BCECE7</color>
+    <color name="gr_theme_onTertiaryContainer">#1F4E4B</color>
+    <color name="gr_theme_error">#BA1A1A</color>
+    <color name="gr_theme_onError">#FFFFFF</color>
+    <color name="gr_theme_errorContainer">#FFDAD6</color>
+    <color name="gr_theme_onErrorContainer">#93000A</color>
+    <color name="gr_theme_background">#F9FAEF</color>
+    <color name="gr_theme_onBackground">#1A1C16</color>
+    <color name="gr_theme_surface">#F9FAEF</color>
+    <color name="gr_theme_onSurface">#1A1C16</color>
+    <color name="gr_theme_surfaceVariant">#E1E4D5</color>
+    <color name="gr_theme_onSurfaceVariant">#44483D</color>
+    <color name="gr_theme_outline">#75796C</color>
+    <color name="gr_theme_outlineVariant">#C5C8BA</color>
+    <color name="gr_theme_scrim">#000000</color>
+    <color name="gr_theme_inverseSurface">#2F312A</color>
+    <color name="gr_theme_inverseOnSurface">#F1F2E6</color>
+    <color name="gr_theme_inversePrimary">#B1D18A</color>
+    <color name="gr_theme_primaryFixed">#CDEDA3</color>
+    <color name="gr_theme_onPrimaryFixed">#102000</color>
+    <color name="gr_theme_primaryFixedDim">#B1D18A</color>
+    <color name="gr_theme_onPrimaryFixedVariant">#354E16</color>
+    <color name="gr_theme_secondaryFixed">#DCE7C8</color>
+    <color name="gr_theme_onSecondaryFixed">#151E0B</color>
+    <color name="gr_theme_secondaryFixedDim">#BFCBAD</color>
+    <color name="gr_theme_onSecondaryFixedVariant">#404A33</color>
+    <color name="gr_theme_tertiaryFixed">#BCECE7</color>
+    <color name="gr_theme_onTertiaryFixed">#00201E</color>
+    <color name="gr_theme_tertiaryFixedDim">#A0D0CB</color>
+    <color name="gr_theme_onTertiaryFixedVariant">#1F4E4B</color>
+    <color name="gr_theme_surfaceDim">#DADBD0</color>
+    <color name="gr_theme_surfaceBright">#F9FAEF</color>
+    <color name="gr_theme_surfaceContainerLowest">#FFFFFF</color>
+    <color name="gr_theme_surfaceContainerLow">#F3F4E9</color>
+    <color name="gr_theme_surfaceContainer">#EEEFE3</color>
+    <color name="gr_theme_surfaceContainerHigh">#E8E9DE</color>
+    <color name="gr_theme_surfaceContainerHighest">#E2E3D8</color>
 
 
     <!--    While Theme-->
     <!--    While Theme-->
     <color name="wh_theme_primary">#5C5C5C</color>
     <color name="wh_theme_primary">#5C5C5C</color>
@@ -197,6 +196,197 @@
     <color name="koharu_theme_surfaceContainerHigh">#F6E4E4</color>
     <color name="koharu_theme_surfaceContainerHigh">#F6E4E4</color>
     <color name="koharu_theme_surfaceContainerHighest">#F0DEDE</color>
     <color name="koharu_theme_surfaceContainerHighest">#F0DEDE</color>
 
 
+    <color name="sora_theme_primary">#3B608F</color>
+    <color name="sora_theme_onPrimary">#FFFFFF</color>
+    <color name="sora_theme_primaryContainer">#D4E3FF</color>
+    <color name="sora_theme_onPrimaryContainer">#214876</color>
+    <color name="sora_theme_secondary">#545F71</color>
+    <color name="sora_theme_onSecondary">#FFFFFF</color>
+    <color name="sora_theme_secondaryContainer">#D8E3F8</color>
+    <color name="sora_theme_onSecondaryContainer">#3D4758</color>
+    <color name="sora_theme_tertiary">#6D5677</color>
+    <color name="sora_theme_onTertiary">#FFFFFF</color>
+    <color name="sora_theme_tertiaryContainer">#F6D9FF</color>
+    <color name="sora_theme_onTertiaryContainer">#543F5E</color>
+    <color name="sora_theme_error">#BA1A1A</color>
+    <color name="sora_theme_onError">#FFFFFF</color>
+    <color name="sora_theme_errorContainer">#FFDAD6</color>
+    <color name="sora_theme_onErrorContainer">#93000A</color>
+    <color name="sora_theme_background">#F8F9FF</color>
+    <color name="sora_theme_onBackground">#191C20</color>
+    <color name="sora_theme_surface">#F8F9FF</color>
+    <color name="sora_theme_onSurface">#191C20</color>
+    <color name="sora_theme_surfaceVariant">#DFE2EB</color>
+    <color name="sora_theme_onSurfaceVariant">#43474E</color>
+    <color name="sora_theme_outline">#73777F</color>
+    <color name="sora_theme_outlineVariant">#C3C6CF</color>
+    <color name="sora_theme_scrim">#000000</color>
+    <color name="sora_theme_inverseSurface">#2E3035</color>
+    <color name="sora_theme_inverseOnSurface">#F0F0F7</color>
+    <color name="sora_theme_inversePrimary">#A5C9FE</color>
+    <color name="sora_theme_primaryFixed">#D4E3FF</color>
+    <color name="sora_theme_onPrimaryFixed">#001C39</color>
+    <color name="sora_theme_primaryFixedDim">#A5C9FE</color>
+    <color name="sora_theme_onPrimaryFixedVariant">#214876</color>
+    <color name="sora_theme_secondaryFixed">#D8E3F8</color>
+    <color name="sora_theme_onSecondaryFixed">#111C2B</color>
+    <color name="sora_theme_secondaryFixedDim">#BCC7DC</color>
+    <color name="sora_theme_onSecondaryFixedVariant">#3D4758</color>
+    <color name="sora_theme_tertiaryFixed">#F6D9FF</color>
+    <color name="sora_theme_onTertiaryFixed">#271430</color>
+    <color name="sora_theme_tertiaryFixedDim">#D9BDE3</color>
+    <color name="sora_theme_onTertiaryFixedVariant">#543F5E</color>
+    <color name="sora_theme_surfaceDim">#D9DAE0</color>
+    <color name="sora_theme_surfaceBright">#F8F9FF</color>
+    <color name="sora_theme_surfaceContainerLowest">#FFFFFF</color>
+    <color name="sora_theme_surfaceContainerLow">#F2F3FA</color>
+    <color name="sora_theme_surfaceContainer">#EDEDF4</color>
+    <color name="sora_theme_surfaceContainerHigh">#E7E8EE</color>
+    <color name="sora_theme_surfaceContainerHighest">#E1E2E9</color>
+
+    <color name="august_theme_primary">#8F4C37</color>
+    <color name="august_theme_onPrimary">#FFFFFF</color>
+    <color name="august_theme_primaryContainer">#FFDBD1</color>
+    <color name="august_theme_onPrimaryContainer">#723522</color>
+    <color name="august_theme_secondary">#77574D</color>
+    <color name="august_theme_onSecondary">#FFFFFF</color>
+    <color name="august_theme_secondaryContainer">#FFDBD1</color>
+    <color name="august_theme_onSecondaryContainer">#5D4037</color>
+    <color name="august_theme_tertiary">#6B5D2F</color>
+    <color name="august_theme_onTertiary">#FFFFFF</color>
+    <color name="august_theme_tertiaryContainer">#F5E1A7</color>
+    <color name="august_theme_onTertiaryContainer">#524619</color>
+    <color name="august_theme_error">#BA1A1A</color>
+    <color name="august_theme_onError">#FFFFFF</color>
+    <color name="august_theme_errorContainer">#FFDAD6</color>
+    <color name="august_theme_onErrorContainer">#93000A</color>
+    <color name="august_theme_background">#FFF8F6</color>
+    <color name="august_theme_onBackground">#231917</color>
+    <color name="august_theme_surface">#FFF8F6</color>
+    <color name="august_theme_onSurface">#231917</color>
+    <color name="august_theme_surfaceVariant">#F5DED7</color>
+    <color name="august_theme_onSurfaceVariant">#53433F</color>
+    <color name="august_theme_outline">#85736E</color>
+    <color name="august_theme_outlineVariant">#D8C2BC</color>
+    <color name="august_theme_scrim">#000000</color>
+    <color name="august_theme_inverseSurface">#392E2B</color>
+    <color name="august_theme_inverseOnSurface">#FFEDE8</color>
+    <color name="august_theme_inversePrimary">#FFB59F</color>
+    <color name="august_theme_primaryFixed">#FFDBD1</color>
+    <color name="august_theme_onPrimaryFixed">#3A0B00</color>
+    <color name="august_theme_primaryFixedDim">#FFB59F</color>
+    <color name="august_theme_onPrimaryFixedVariant">#723522</color>
+    <color name="august_theme_secondaryFixed">#FFDBD1</color>
+    <color name="august_theme_onSecondaryFixed">#2C150F</color>
+    <color name="august_theme_secondaryFixedDim">#E7BDB2</color>
+    <color name="august_theme_onSecondaryFixedVariant">#5D4037</color>
+    <color name="august_theme_tertiaryFixed">#F5E1A7</color>
+    <color name="august_theme_onTertiaryFixed">#231B00</color>
+    <color name="august_theme_tertiaryFixedDim">#D8C68D</color>
+    <color name="august_theme_onTertiaryFixedVariant">#524619</color>
+    <color name="august_theme_surfaceDim">#E8D6D2</color>
+    <color name="august_theme_surfaceBright">#FFF8F6</color>
+    <color name="august_theme_surfaceContainerLowest">#FFFFFF</color>
+    <color name="august_theme_surfaceContainerLow">#FFF1ED</color>
+    <color name="august_theme_surfaceContainer">#FCEAE5</color>
+    <color name="august_theme_surfaceContainerHigh">#F7E4E0</color>
+    <color name="august_theme_surfaceContainerHighest">#F1DFDA</color>
+
+    <color name="carlotta_theme_primary">#8B4A62</color>
+    <color name="carlotta_theme_onPrimary">#FFFFFF</color>
+    <color name="carlotta_theme_primaryContainer">#FFD9E3</color>
+    <color name="carlotta_theme_onPrimaryContainer">#6F334A</color>
+    <color name="carlotta_theme_secondary">#74565F</color>
+    <color name="carlotta_theme_onSecondary">#FFFFFF</color>
+    <color name="carlotta_theme_secondaryContainer">#FFD9E3</color>
+    <color name="carlotta_theme_onSecondaryContainer">#5A3F48</color>
+    <color name="carlotta_theme_tertiary">#7D5635</color>
+    <color name="carlotta_theme_onTertiary">#FFFFFF</color>
+    <color name="carlotta_theme_tertiaryContainer">#FFDCC2</color>
+    <color name="carlotta_theme_onTertiaryContainer">#623F20</color>
+    <color name="carlotta_theme_error">#BA1A1A</color>
+    <color name="carlotta_theme_onError">#FFFFFF</color>
+    <color name="carlotta_theme_errorContainer">#FFDAD6</color>
+    <color name="carlotta_theme_onErrorContainer">#93000A</color>
+    <color name="carlotta_theme_background">#FFF8F8</color>
+    <color name="carlotta_theme_onBackground">#22191C</color>
+    <color name="carlotta_theme_surface">#FFF8F8</color>
+    <color name="carlotta_theme_onSurface">#22191C</color>
+    <color name="carlotta_theme_surfaceVariant">#F2DDE2</color>
+    <color name="carlotta_theme_onSurfaceVariant">#514347</color>
+    <color name="carlotta_theme_outline">#837377</color>
+    <color name="carlotta_theme_outlineVariant">#D5C2C6</color>
+    <color name="carlotta_theme_scrim">#000000</color>
+    <color name="carlotta_theme_inverseSurface">#372E30</color>
+    <color name="carlotta_theme_inverseOnSurface">#FDEDF0</color>
+    <color name="carlotta_theme_inversePrimary">#FFB0CA</color>
+    <color name="carlotta_theme_primaryFixed">#FFD9E3</color>
+    <color name="carlotta_theme_onPrimaryFixed">#39071E</color>
+    <color name="carlotta_theme_primaryFixedDim">#FFB0CA</color>
+    <color name="carlotta_theme_onPrimaryFixedVariant">#6F334A</color>
+    <color name="carlotta_theme_secondaryFixed">#FFD9E3</color>
+    <color name="carlotta_theme_onSecondaryFixed">#2B151D</color>
+    <color name="carlotta_theme_secondaryFixedDim">#E2BDC7</color>
+    <color name="carlotta_theme_onSecondaryFixedVariant">#5A3F48</color>
+    <color name="carlotta_theme_tertiaryFixed">#FFDCC2</color>
+    <color name="carlotta_theme_onTertiaryFixed">#2E1500</color>
+    <color name="carlotta_theme_tertiaryFixedDim">#EFBC94</color>
+    <color name="carlotta_theme_onTertiaryFixedVariant">#623F20</color>
+    <color name="carlotta_theme_surfaceDim">#E6D6D9</color>
+    <color name="carlotta_theme_surfaceBright">#FFF8F8</color>
+    <color name="carlotta_theme_surfaceContainerLowest">#FFFFFF</color>
+    <color name="carlotta_theme_surfaceContainerLow">#FFF0F2</color>
+    <color name="carlotta_theme_surfaceContainer">#FAEAED</color>
+    <color name="carlotta_theme_surfaceContainerHigh">#F4E4E7</color>
+    <color name="carlotta_theme_surfaceContainerHighest">#EFDFE2</color>
+
+    <color name="mujika_theme_primary">#8E4958</color>
+    <color name="mujika_theme_onPrimary">#FFFFFF</color>
+    <color name="mujika_theme_primaryContainer">#FFD9DF</color>
+    <color name="mujika_theme_onPrimaryContainer">#713341</color>
+    <color name="mujika_theme_secondary">#75565C</color>
+    <color name="mujika_theme_onSecondary">#FFFFFF</color>
+    <color name="mujika_theme_secondaryContainer">#FFD9DF</color>
+    <color name="mujika_theme_onSecondaryContainer">#5C3F44</color>
+    <color name="mujika_theme_tertiary">#4D5C92</color>
+    <color name="mujika_theme_onTertiary">#FFFFFF</color>
+    <color name="mujika_theme_tertiaryContainer">#DCE1FF</color>
+    <color name="mujika_theme_onTertiaryContainer">#354479</color>
+    <color name="mujika_theme_error">#BA1A1A</color>
+    <color name="mujika_theme_onError">#FFFFFF</color>
+    <color name="mujika_theme_errorContainer">#FFDAD6</color>
+    <color name="mujika_theme_onErrorContainer">#93000A</color>
+    <color name="mujika_theme_background">#FFF8F7</color>
+    <color name="mujika_theme_onBackground">#22191B</color>
+    <color name="mujika_theme_surface">#FFF8F7</color>
+    <color name="mujika_theme_onSurface">#22191B</color>
+    <color name="mujika_theme_surfaceVariant">#F3DDE0</color>
+    <color name="mujika_theme_onSurfaceVariant">#524345</color>
+    <color name="mujika_theme_outline">#847375</color>
+    <color name="mujika_theme_outlineVariant">#D6C2C4</color>
+    <color name="mujika_theme_scrim">#000000</color>
+    <color name="mujika_theme_inverseSurface">#382E2F</color>
+    <color name="mujika_theme_inverseOnSurface">#FEEDEE</color>
+    <color name="mujika_theme_inversePrimary">#FFB1C0</color>
+    <color name="mujika_theme_primaryFixed">#FFD9DF</color>
+    <color name="mujika_theme_onPrimaryFixed">#3A0717</color>
+    <color name="mujika_theme_primaryFixedDim">#FFB1C0</color>
+    <color name="mujika_theme_onPrimaryFixedVariant">#713341</color>
+    <color name="mujika_theme_secondaryFixed">#FFD9DF</color>
+    <color name="mujika_theme_onSecondaryFixed">#2B151A</color>
+    <color name="mujika_theme_secondaryFixedDim">#E4BDC3</color>
+    <color name="mujika_theme_onSecondaryFixedVariant">#5C3F44</color>
+    <color name="mujika_theme_tertiaryFixed">#DCE1FF</color>
+    <color name="mujika_theme_onTertiaryFixed">#04174B</color>
+    <color name="mujika_theme_tertiaryFixedDim">#B6C4FF</color>
+    <color name="mujika_theme_onTertiaryFixedVariant">#354479</color>
+    <color name="mujika_theme_surfaceDim">#E7D6D8</color>
+    <color name="mujika_theme_surfaceBright">#FFF8F7</color>
+    <color name="mujika_theme_surfaceContainerLowest">#FFFFFF</color>
+    <color name="mujika_theme_surfaceContainerLow">#FFF0F1</color>
+    <color name="mujika_theme_surfaceContainer">#FBEAEB</color>
+    <color name="mujika_theme_surfaceContainerHigh">#F5E4E6</color>
+    <color name="mujika_theme_surfaceContainerHighest">#EFDEE0</color>
 
 
     <color name="yuuka_theme_primary">#565992</color>
     <color name="yuuka_theme_primary">#565992</color>
     <color name="yuuka_theme_onPrimary">#FFFFFF</color>
     <color name="yuuka_theme_onPrimary">#FFFFFF</color>

+ 254 - 50
app/src/main/res/values/themes.xml

@@ -1,7 +1,5 @@
 <resources >
 <resources >
 
 
-    //**************************************************************Theme******************************************************************************//
-
     <style name="Base.AppTheme" parent="Theme.Material3Expressive.DynamicColors.DayNight.NoActionBar">
     <style name="Base.AppTheme" parent="Theme.Material3Expressive.DynamicColors.DayNight.NoActionBar">
         <item name="android:windowActivityTransitions">true</item>
         <item name="android:windowActivityTransitions">true</item>
         <item name="android:windowContentTransitions">true</item>
         <item name="android:windowContentTransitions">true</item>
@@ -13,58 +11,62 @@
         <item name="alertDialogTheme">@style/AppTheme.AlertDialog</item>
         <item name="alertDialogTheme">@style/AppTheme.AlertDialog</item>
     </style>
     </style>
 
 
+    <style name="ThemeOverlay.PureBlack" parent="">
+
+    </style>
+
     <style name="Theme.Base.Dycolors" parent="Theme.Material3Expressive.DynamicColors.DayNight.NoActionBar">
     <style name="Theme.Base.Dycolors" parent="Theme.Material3Expressive.DynamicColors.DayNight.NoActionBar">
 
 
     </style>
     </style>
-    
+
     <style name="Theme.Base.GR" parent="Base.AppTheme">
     <style name="Theme.Base.GR" parent="Base.AppTheme">
-        <item name="colorPrimary">@color/md_theme_primary</item>
-        <item name="colorOnPrimary">@color/md_theme_onPrimary</item>
-        <item name="colorPrimaryContainer">@color/md_theme_primaryContainer</item>
-        <item name="colorOnPrimaryContainer">@color/md_theme_onPrimaryContainer</item>
-        <item name="colorSecondary">@color/md_theme_secondary</item>
-        <item name="colorOnSecondary">@color/md_theme_onSecondary</item>
-        <item name="colorSecondaryContainer">@color/md_theme_secondaryContainer</item>
-        <item name="colorOnSecondaryContainer">@color/md_theme_onSecondaryContainer</item>
-        <item name="colorTertiary">@color/md_theme_tertiary</item>
-        <item name="colorOnTertiary">@color/md_theme_onTertiary</item>
-        <item name="colorTertiaryContainer">@color/md_theme_tertiaryContainer</item>
-        <item name="colorOnTertiaryContainer">@color/md_theme_onTertiaryContainer</item>
-        <item name="colorError">@color/md_theme_error</item>
-        <item name="colorOnError">@color/md_theme_onError</item>
-        <item name="colorErrorContainer">@color/md_theme_errorContainer</item>
-        <item name="colorOnErrorContainer">@color/md_theme_onErrorContainer</item>
-        <item name="android:colorBackground">@color/md_theme_background</item>
-        <item name="android:textColor">@color/md_theme_onSurface</item>
-        <item name="colorOnBackground">@color/md_theme_onBackground</item>
-        <item name="colorSurface">@color/md_theme_surface</item>
-        <item name="colorOnSurface">@color/md_theme_onSurface</item>
-        <item name="colorSurfaceVariant">@color/md_theme_surfaceVariant</item>
-        <item name="colorOnSurfaceVariant">@color/md_theme_onSurfaceVariant</item>
-        <item name="colorOutline">@color/md_theme_outline</item>
-        <item name="colorOutlineVariant">@color/md_theme_outlineVariant</item>
-        <item name="colorSurfaceInverse">@color/md_theme_inverseSurface</item>
-        <item name="colorOnSurfaceInverse">@color/md_theme_inverseOnSurface</item>
-        <item name="colorPrimaryInverse">@color/md_theme_inversePrimary</item>
-        <item name="colorPrimaryFixed">@color/md_theme_primaryFixed</item>
-        <item name="colorOnPrimaryFixed">@color/md_theme_onPrimaryFixed</item>
-        <item name="colorPrimaryFixedDim">@color/md_theme_primaryFixedDim</item>
-        <item name="colorOnPrimaryFixedVariant">@color/md_theme_onPrimaryFixedVariant</item>
-        <item name="colorSecondaryFixed">@color/md_theme_secondaryFixed</item>
-        <item name="colorOnSecondaryFixed">@color/md_theme_onSecondaryFixed</item>
-        <item name="colorSecondaryFixedDim">@color/md_theme_secondaryFixedDim</item>
-        <item name="colorOnSecondaryFixedVariant">@color/md_theme_onSecondaryFixedVariant</item>
-        <item name="colorTertiaryFixed">@color/md_theme_tertiaryFixed</item>
-        <item name="colorOnTertiaryFixed">@color/md_theme_onTertiaryFixed</item>
-        <item name="colorTertiaryFixedDim">@color/md_theme_tertiaryFixedDim</item>
-        <item name="colorOnTertiaryFixedVariant">@color/md_theme_onTertiaryFixedVariant</item>
-        <item name="colorSurfaceDim">@color/md_theme_surfaceDim</item>
-        <item name="colorSurfaceBright">@color/md_theme_surfaceBright</item>
-        <item name="colorSurfaceContainerLowest">@color/md_theme_surfaceContainerLowest</item>
-        <item name="colorSurfaceContainerLow">@color/md_theme_surfaceContainerLow</item>
-        <item name="colorSurfaceContainer">@color/md_theme_surfaceContainer</item>
-        <item name="colorSurfaceContainerHigh">@color/md_theme_surfaceContainerHigh</item>
-        <item name="colorSurfaceContainerHighest">@color/md_theme_surfaceContainerHighest</item>
+        <item name="colorPrimary">@color/gr_theme_primary</item>
+        <item name="colorOnPrimary">@color/gr_theme_onPrimary</item>
+        <item name="colorPrimaryContainer">@color/gr_theme_primaryContainer</item>
+        <item name="colorOnPrimaryContainer">@color/gr_theme_onPrimaryContainer</item>
+        <item name="colorSecondary">@color/gr_theme_secondary</item>
+        <item name="colorOnSecondary">@color/gr_theme_onSecondary</item>
+        <item name="colorSecondaryContainer">@color/gr_theme_secondaryContainer</item>
+        <item name="colorOnSecondaryContainer">@color/gr_theme_onSecondaryContainer</item>
+        <item name="colorTertiary">@color/gr_theme_tertiary</item>
+        <item name="colorOnTertiary">@color/gr_theme_onTertiary</item>
+        <item name="colorTertiaryContainer">@color/gr_theme_tertiaryContainer</item>
+        <item name="colorOnTertiaryContainer">@color/gr_theme_onTertiaryContainer</item>
+        <item name="colorError">@color/gr_theme_error</item>
+        <item name="colorOnError">@color/gr_theme_onError</item>
+        <item name="colorErrorContainer">@color/gr_theme_errorContainer</item>
+        <item name="colorOnErrorContainer">@color/gr_theme_onErrorContainer</item>
+        <item name="android:colorBackground">@color/gr_theme_background</item>
+        <item name="android:textColor">@color/gr_theme_onSurface</item>
+        <item name="colorOnBackground">@color/gr_theme_onBackground</item>
+        <item name="colorSurface">@color/gr_theme_surface</item>
+        <item name="colorOnSurface">@color/gr_theme_onSurface</item>
+        <item name="colorSurfaceVariant">@color/gr_theme_surfaceVariant</item>
+        <item name="colorOnSurfaceVariant">@color/gr_theme_onSurfaceVariant</item>
+        <item name="colorOutline">@color/gr_theme_outline</item>
+        <item name="colorOutlineVariant">@color/gr_theme_outlineVariant</item>
+        <item name="colorSurfaceInverse">@color/gr_theme_inverseSurface</item>
+        <item name="colorOnSurfaceInverse">@color/gr_theme_inverseOnSurface</item>
+        <item name="colorPrimaryInverse">@color/gr_theme_inversePrimary</item>
+        <item name="colorPrimaryFixed">@color/gr_theme_primaryFixed</item>
+        <item name="colorOnPrimaryFixed">@color/gr_theme_onPrimaryFixed</item>
+        <item name="colorPrimaryFixedDim">@color/gr_theme_primaryFixedDim</item>
+        <item name="colorOnPrimaryFixedVariant">@color/gr_theme_onPrimaryFixedVariant</item>
+        <item name="colorSecondaryFixed">@color/gr_theme_secondaryFixed</item>
+        <item name="colorOnSecondaryFixed">@color/gr_theme_onSecondaryFixed</item>
+        <item name="colorSecondaryFixedDim">@color/gr_theme_secondaryFixedDim</item>
+        <item name="colorOnSecondaryFixedVariant">@color/gr_theme_onSecondaryFixedVariant</item>
+        <item name="colorTertiaryFixed">@color/gr_theme_tertiaryFixed</item>
+        <item name="colorOnTertiaryFixed">@color/gr_theme_onTertiaryFixed</item>
+        <item name="colorTertiaryFixedDim">@color/gr_theme_tertiaryFixedDim</item>
+        <item name="colorOnTertiaryFixedVariant">@color/gr_theme_onTertiaryFixedVariant</item>
+        <item name="colorSurfaceDim">@color/gr_theme_surfaceDim</item>
+        <item name="colorSurfaceBright">@color/gr_theme_surfaceBright</item>
+        <item name="colorSurfaceContainerLowest">@color/gr_theme_surfaceContainerLowest</item>
+        <item name="colorSurfaceContainerLow">@color/gr_theme_surfaceContainerLow</item>
+        <item name="colorSurfaceContainer">@color/gr_theme_surfaceContainer</item>
+        <item name="colorSurfaceContainerHigh">@color/gr_theme_surfaceContainerHigh</item>
+        <item name="colorSurfaceContainerHighest">@color/gr_theme_surfaceContainerHighest</item>
     </style>
     </style>
 
 
     <style name="Theme.Base.WH" parent="Base.AppTheme">
     <style name="Theme.Base.WH" parent="Base.AppTheme">
@@ -317,6 +319,208 @@
         <item name="colorSurfaceContainerHighest">@color/phoebe_theme_surfaceContainerHighest</item>
         <item name="colorSurfaceContainerHighest">@color/phoebe_theme_surfaceContainerHighest</item>
     </style>
     </style>
 
 
+    <style name="Theme.Base.Sora" parent="Base.AppTheme">
+        <item name="colorPrimary">@color/sora_theme_primary</item>
+        <item name="colorOnPrimary">@color/sora_theme_onPrimary</item>
+        <item name="colorPrimaryContainer">@color/sora_theme_primaryContainer</item>
+        <item name="colorOnPrimaryContainer">@color/sora_theme_onPrimaryContainer</item>
+        <item name="colorSecondary">@color/sora_theme_secondary</item>
+        <item name="colorOnSecondary">@color/sora_theme_onSecondary</item>
+        <item name="colorSecondaryContainer">@color/sora_theme_secondaryContainer</item>
+        <item name="colorOnSecondaryContainer">@color/sora_theme_onSecondaryContainer</item>
+        <item name="colorTertiary">@color/sora_theme_tertiary</item>
+        <item name="colorOnTertiary">@color/sora_theme_onTertiary</item>
+        <item name="colorTertiaryContainer">@color/sora_theme_tertiaryContainer</item>
+        <item name="colorOnTertiaryContainer">@color/sora_theme_onTertiaryContainer</item>
+        <item name="colorError">@color/sora_theme_error</item>
+        <item name="colorOnError">@color/sora_theme_onError</item>
+        <item name="colorErrorContainer">@color/sora_theme_errorContainer</item>
+        <item name="colorOnErrorContainer">@color/sora_theme_onErrorContainer</item>
+        <item name="android:colorBackground">@color/sora_theme_background</item>
+        <item name="android:textColor">@color/sora_theme_onSurface</item>
+        <item name="colorOnBackground">@color/sora_theme_onBackground</item>
+        <item name="colorSurface">@color/sora_theme_surface</item>
+        <item name="colorOnSurface">@color/sora_theme_onSurface</item>
+        <item name="colorSurfaceVariant">@color/sora_theme_surfaceVariant</item>
+        <item name="colorOnSurfaceVariant">@color/sora_theme_onSurfaceVariant</item>
+        <item name="colorOutline">@color/sora_theme_outline</item>
+        <item name="colorOutlineVariant">@color/sora_theme_outlineVariant</item>
+        <item name="colorSurfaceInverse">@color/sora_theme_inverseSurface</item>
+        <item name="colorOnSurfaceInverse">@color/sora_theme_inverseOnSurface</item>
+        <item name="colorPrimaryInverse">@color/sora_theme_inversePrimary</item>
+        <item name="colorPrimaryFixed">@color/sora_theme_primaryFixed</item>
+        <item name="colorOnPrimaryFixed">@color/sora_theme_onPrimaryFixed</item>
+        <item name="colorPrimaryFixedDim">@color/sora_theme_primaryFixedDim</item>
+        <item name="colorOnPrimaryFixedVariant">@color/sora_theme_onPrimaryFixedVariant</item>
+        <item name="colorSecondaryFixed">@color/sora_theme_secondaryFixed</item>
+        <item name="colorOnSecondaryFixed">@color/sora_theme_onSecondaryFixed</item>
+        <item name="colorSecondaryFixedDim">@color/sora_theme_secondaryFixedDim</item>
+        <item name="colorOnSecondaryFixedVariant">@color/sora_theme_onSecondaryFixedVariant</item>
+        <item name="colorTertiaryFixed">@color/sora_theme_tertiaryFixed</item>
+        <item name="colorOnTertiaryFixed">@color/sora_theme_onTertiaryFixed</item>
+        <item name="colorTertiaryFixedDim">@color/sora_theme_tertiaryFixedDim</item>
+        <item name="colorOnTertiaryFixedVariant">@color/sora_theme_onTertiaryFixedVariant</item>
+        <item name="colorSurfaceDim">@color/sora_theme_surfaceDim</item>
+        <item name="colorSurfaceBright">@color/sora_theme_surfaceBright</item>
+        <item name="colorSurfaceContainerLowest">@color/sora_theme_surfaceContainerLowest</item>
+        <item name="colorSurfaceContainerLow">@color/sora_theme_surfaceContainerLow</item>
+        <item name="colorSurfaceContainer">@color/sora_theme_surfaceContainer</item>
+        <item name="colorSurfaceContainerHigh">@color/sora_theme_surfaceContainerHigh</item>
+        <item name="colorSurfaceContainerHighest">@color/sora_theme_surfaceContainerHighest</item>
+    </style>
+
+    <style name="Theme.Base.August" parent="Base.AppTheme">
+        <item name="colorPrimary">@color/august_theme_primary</item>
+        <item name="colorOnPrimary">@color/august_theme_onPrimary</item>
+        <item name="colorPrimaryContainer">@color/august_theme_primaryContainer</item>
+        <item name="colorOnPrimaryContainer">@color/august_theme_onPrimaryContainer</item>
+        <item name="colorSecondary">@color/august_theme_secondary</item>
+        <item name="colorOnSecondary">@color/august_theme_onSecondary</item>
+        <item name="colorSecondaryContainer">@color/august_theme_secondaryContainer</item>
+        <item name="colorOnSecondaryContainer">@color/august_theme_onSecondaryContainer</item>
+        <item name="colorTertiary">@color/august_theme_tertiary</item>
+        <item name="colorOnTertiary">@color/august_theme_onTertiary</item>
+        <item name="colorTertiaryContainer">@color/august_theme_tertiaryContainer</item>
+        <item name="colorOnTertiaryContainer">@color/august_theme_onTertiaryContainer</item>
+        <item name="colorError">@color/august_theme_error</item>
+        <item name="colorOnError">@color/august_theme_onError</item>
+        <item name="colorErrorContainer">@color/august_theme_errorContainer</item>
+        <item name="colorOnErrorContainer">@color/august_theme_onErrorContainer</item>
+        <item name="android:colorBackground">@color/august_theme_background</item>
+        <item name="android:textColor">@color/august_theme_onSurface</item>
+        <item name="colorOnBackground">@color/august_theme_onBackground</item>
+        <item name="colorSurface">@color/august_theme_surface</item>
+        <item name="colorOnSurface">@color/august_theme_onSurface</item>
+        <item name="colorSurfaceVariant">@color/august_theme_surfaceVariant</item>
+        <item name="colorOnSurfaceVariant">@color/august_theme_onSurfaceVariant</item>
+        <item name="colorOutline">@color/august_theme_outline</item>
+        <item name="colorOutlineVariant">@color/august_theme_outlineVariant</item>
+        <item name="colorSurfaceInverse">@color/august_theme_inverseSurface</item>
+        <item name="colorOnSurfaceInverse">@color/august_theme_inverseOnSurface</item>
+        <item name="colorPrimaryInverse">@color/august_theme_inversePrimary</item>
+        <item name="colorPrimaryFixed">@color/august_theme_primaryFixed</item>
+        <item name="colorOnPrimaryFixed">@color/august_theme_onPrimaryFixed</item>
+        <item name="colorPrimaryFixedDim">@color/august_theme_primaryFixedDim</item>
+        <item name="colorOnPrimaryFixedVariant">@color/august_theme_onPrimaryFixedVariant</item>
+        <item name="colorSecondaryFixed">@color/august_theme_secondaryFixed</item>
+        <item name="colorOnSecondaryFixed">@color/august_theme_onSecondaryFixed</item>
+        <item name="colorSecondaryFixedDim">@color/august_theme_secondaryFixedDim</item>
+        <item name="colorOnSecondaryFixedVariant">@color/august_theme_onSecondaryFixedVariant</item>
+        <item name="colorTertiaryFixed">@color/august_theme_tertiaryFixed</item>
+        <item name="colorOnTertiaryFixed">@color/august_theme_onTertiaryFixed</item>
+        <item name="colorTertiaryFixedDim">@color/august_theme_tertiaryFixedDim</item>
+        <item name="colorOnTertiaryFixedVariant">@color/august_theme_onTertiaryFixedVariant</item>
+        <item name="colorSurfaceDim">@color/august_theme_surfaceDim</item>
+        <item name="colorSurfaceBright">@color/august_theme_surfaceBright</item>
+        <item name="colorSurfaceContainerLowest">@color/august_theme_surfaceContainerLowest</item>
+        <item name="colorSurfaceContainerLow">@color/august_theme_surfaceContainerLow</item>
+        <item name="colorSurfaceContainer">@color/august_theme_surfaceContainer</item>
+        <item name="colorSurfaceContainerHigh">@color/august_theme_surfaceContainerHigh</item>
+        <item name="colorSurfaceContainerHighest">@color/august_theme_surfaceContainerHighest</item>
+    </style>
+
+    <style name="Theme.Base.Carlotta" parent="Base.AppTheme">
+        <item name="colorPrimary">@color/carlotta_theme_primary</item>
+        <item name="colorOnPrimary">@color/carlotta_theme_onPrimary</item>
+        <item name="colorPrimaryContainer">@color/carlotta_theme_primaryContainer</item>
+        <item name="colorOnPrimaryContainer">@color/carlotta_theme_onPrimaryContainer</item>
+        <item name="colorSecondary">@color/carlotta_theme_secondary</item>
+        <item name="colorOnSecondary">@color/carlotta_theme_onSecondary</item>
+        <item name="colorSecondaryContainer">@color/carlotta_theme_secondaryContainer</item>
+        <item name="colorOnSecondaryContainer">@color/carlotta_theme_onSecondaryContainer</item>
+        <item name="colorTertiary">@color/carlotta_theme_tertiary</item>
+        <item name="colorOnTertiary">@color/carlotta_theme_onTertiary</item>
+        <item name="colorTertiaryContainer">@color/carlotta_theme_tertiaryContainer</item>
+        <item name="colorOnTertiaryContainer">@color/carlotta_theme_onTertiaryContainer</item>
+        <item name="colorError">@color/carlotta_theme_error</item>
+        <item name="colorOnError">@color/carlotta_theme_onError</item>
+        <item name="colorErrorContainer">@color/carlotta_theme_errorContainer</item>
+        <item name="colorOnErrorContainer">@color/carlotta_theme_onErrorContainer</item>
+        <item name="android:colorBackground">@color/carlotta_theme_background</item>
+        <item name="android:textColor">@color/carlotta_theme_onSurface</item>
+        <item name="colorOnBackground">@color/carlotta_theme_onBackground</item>
+        <item name="colorSurface">@color/carlotta_theme_surface</item>
+        <item name="colorOnSurface">@color/carlotta_theme_onSurface</item>
+        <item name="colorSurfaceVariant">@color/carlotta_theme_surfaceVariant</item>
+        <item name="colorOnSurfaceVariant">@color/carlotta_theme_onSurfaceVariant</item>
+        <item name="colorOutline">@color/carlotta_theme_outline</item>
+        <item name="colorOutlineVariant">@color/carlotta_theme_outlineVariant</item>
+        <item name="colorSurfaceInverse">@color/carlotta_theme_inverseSurface</item>
+        <item name="colorOnSurfaceInverse">@color/carlotta_theme_inverseOnSurface</item>
+        <item name="colorPrimaryInverse">@color/carlotta_theme_inversePrimary</item>
+        <item name="colorPrimaryFixed">@color/carlotta_theme_primaryFixed</item>
+        <item name="colorOnPrimaryFixed">@color/carlotta_theme_onPrimaryFixed</item>
+        <item name="colorPrimaryFixedDim">@color/carlotta_theme_primaryFixedDim</item>
+        <item name="colorOnPrimaryFixedVariant">@color/carlotta_theme_onPrimaryFixedVariant</item>
+        <item name="colorSecondaryFixed">@color/carlotta_theme_secondaryFixed</item>
+        <item name="colorOnSecondaryFixed">@color/carlotta_theme_onSecondaryFixed</item>
+        <item name="colorSecondaryFixedDim">@color/carlotta_theme_secondaryFixedDim</item>
+        <item name="colorOnSecondaryFixedVariant">@color/carlotta_theme_onSecondaryFixedVariant
+        </item>
+        <item name="colorTertiaryFixed">@color/carlotta_theme_tertiaryFixed</item>
+        <item name="colorOnTertiaryFixed">@color/carlotta_theme_onTertiaryFixed</item>
+        <item name="colorTertiaryFixedDim">@color/carlotta_theme_tertiaryFixedDim</item>
+        <item name="colorOnTertiaryFixedVariant">@color/carlotta_theme_onTertiaryFixedVariant</item>
+        <item name="colorSurfaceDim">@color/carlotta_theme_surfaceDim</item>
+        <item name="colorSurfaceBright">@color/carlotta_theme_surfaceBright</item>
+        <item name="colorSurfaceContainerLowest">@color/carlotta_theme_surfaceContainerLowest</item>
+        <item name="colorSurfaceContainerLow">@color/carlotta_theme_surfaceContainerLow</item>
+        <item name="colorSurfaceContainer">@color/carlotta_theme_surfaceContainer</item>
+        <item name="colorSurfaceContainerHigh">@color/carlotta_theme_surfaceContainerHigh</item>
+        <item name="colorSurfaceContainerHighest">@color/carlotta_theme_surfaceContainerHighest
+        </item>
+    </style>
+
+    <style name="Theme.Base.Mujika" parent="Base.AppTheme">
+        <item name="colorPrimary">@color/mujika_theme_primary</item>
+        <item name="colorOnPrimary">@color/mujika_theme_onPrimary</item>
+        <item name="colorPrimaryContainer">@color/mujika_theme_primaryContainer</item>
+        <item name="colorOnPrimaryContainer">@color/mujika_theme_onPrimaryContainer</item>
+        <item name="colorSecondary">@color/mujika_theme_secondary</item>
+        <item name="colorOnSecondary">@color/mujika_theme_onSecondary</item>
+        <item name="colorSecondaryContainer">@color/mujika_theme_secondaryContainer</item>
+        <item name="colorOnSecondaryContainer">@color/mujika_theme_onSecondaryContainer</item>
+        <item name="colorTertiary">@color/mujika_theme_tertiary</item>
+        <item name="colorOnTertiary">@color/mujika_theme_onTertiary</item>
+        <item name="colorTertiaryContainer">@color/mujika_theme_tertiaryContainer</item>
+        <item name="colorOnTertiaryContainer">@color/mujika_theme_onTertiaryContainer</item>
+        <item name="colorError">@color/mujika_theme_error</item>
+        <item name="colorOnError">@color/mujika_theme_onError</item>
+        <item name="colorErrorContainer">@color/mujika_theme_errorContainer</item>
+        <item name="colorOnErrorContainer">@color/mujika_theme_onErrorContainer</item>
+        <item name="android:colorBackground">@color/mujika_theme_background</item>
+        <item name="android:textColor">@color/mujika_theme_onSurface</item>
+        <item name="colorOnBackground">@color/mujika_theme_onBackground</item>
+        <item name="colorSurface">@color/mujika_theme_surface</item>
+        <item name="colorOnSurface">@color/mujika_theme_onSurface</item>
+        <item name="colorSurfaceVariant">@color/mujika_theme_surfaceVariant</item>
+        <item name="colorOnSurfaceVariant">@color/mujika_theme_onSurfaceVariant</item>
+        <item name="colorOutline">@color/mujika_theme_outline</item>
+        <item name="colorOutlineVariant">@color/mujika_theme_outlineVariant</item>
+        <item name="colorSurfaceInverse">@color/mujika_theme_inverseSurface</item>
+        <item name="colorOnSurfaceInverse">@color/mujika_theme_inverseOnSurface</item>
+        <item name="colorPrimaryInverse">@color/mujika_theme_inversePrimary</item>
+        <item name="colorPrimaryFixed">@color/mujika_theme_primaryFixed</item>
+        <item name="colorOnPrimaryFixed">@color/mujika_theme_onPrimaryFixed</item>
+        <item name="colorPrimaryFixedDim">@color/mujika_theme_primaryFixedDim</item>
+        <item name="colorOnPrimaryFixedVariant">@color/mujika_theme_onPrimaryFixedVariant</item>
+        <item name="colorSecondaryFixed">@color/mujika_theme_secondaryFixed</item>
+        <item name="colorOnSecondaryFixed">@color/mujika_theme_onSecondaryFixed</item>
+        <item name="colorSecondaryFixedDim">@color/mujika_theme_secondaryFixedDim</item>
+        <item name="colorOnSecondaryFixedVariant">@color/mujika_theme_onSecondaryFixedVariant</item>
+        <item name="colorTertiaryFixed">@color/mujika_theme_tertiaryFixed</item>
+        <item name="colorOnTertiaryFixed">@color/mujika_theme_onTertiaryFixed</item>
+        <item name="colorTertiaryFixedDim">@color/mujika_theme_tertiaryFixedDim</item>
+        <item name="colorOnTertiaryFixedVariant">@color/mujika_theme_onTertiaryFixedVariant</item>
+        <item name="colorSurfaceDim">@color/mujika_theme_surfaceDim</item>
+        <item name="colorSurfaceBright">@color/mujika_theme_surfaceBright</item>
+        <item name="colorSurfaceContainerLowest">@color/mujika_theme_surfaceContainerLowest</item>
+        <item name="colorSurfaceContainerLow">@color/mujika_theme_surfaceContainerLow</item>
+        <item name="colorSurfaceContainer">@color/mujika_theme_surfaceContainer</item>
+        <item name="colorSurfaceContainerHigh">@color/mujika_theme_surfaceContainerHigh</item>
+        <item name="colorSurfaceContainerHighest">@color/mujika_theme_surfaceContainerHighest</item>
+    </style>
+
     <!-- 透明主题 -->
     <!-- 透明主题 -->
     <style name="AppTheme.Transparent" parent="Base.AppTheme">
     <style name="AppTheme.Transparent" parent="Base.AppTheme">
         <item name="colorPrimary">@color/transparent_theme_primary</item>
         <item name="colorPrimary">@color/transparent_theme_primary</item>

+ 5 - 5
app/src/main/res/xml/pref_config_theme.xml

@@ -30,6 +30,11 @@
             app:iconSpaceReserved="false"
             app:iconSpaceReserved="false"
             app:tipText="透明主题请于设置背景图片后设置" />
             app:tipText="透明主题请于设置背景图片后设置" />
 
 
+        <io.legato.kazusa.lib.prefs.SwitchPreference
+            android:defaultValue="false"
+            android:key="pure_black"
+            android:title="纯黑暗色模式" />
+
         <io.legato.kazusa.lib.prefs.IconListPreference
         <io.legato.kazusa.lib.prefs.IconListPreference
             android:defaultValue="ic_launcher"
             android:defaultValue="ic_launcher"
             android:entries="@array/icon_names"
             android:entries="@array/icon_names"
@@ -47,11 +52,6 @@
             app:entries="@array/tabletInterface"
             app:entries="@array/tabletInterface"
             app:entryValues="@array/tabletInterface_value" />
             app:entryValues="@array/tabletInterface_value" />
 
 
-        <io.legato.kazusa.lib.prefs.Preference
-            android:key="welcomeStyle"
-            android:title="@string/welcome_style"
-            android:summary="@string/welcome_style_summary" />
-
         <io.legato.kazusa.lib.prefs.Preference
         <io.legato.kazusa.lib.prefs.Preference
             android:key="fontScale"
             android:key="fontScale"
             android:summary="@string/font_scale_summary"
             android:summary="@string/font_scale_summary"

+ 0 - 84
app/src/main/res/xml/pref_config_welcome.xml

@@ -1,84 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<androidx.preference.PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:app="http://schemas.android.com/apk/res-auto">
-
-    <io.legato.kazusa.lib.prefs.SwitchPreference
-        android:defaultValue="false"
-        android:key="customWelcome"
-        android:summary="@string/custom_welcome_summary"
-        android:title="@string/custom_welcome"
-        app:allowDividerAbove="false"
-        app:allowDividerBelow="false"
-        app:iconSpaceReserved="false" />
-
-    <io.legato.kazusa.lib.prefs.PreferenceCategory
-        android:key="dayThemeCategory"
-        android:title="@string/day"
-        app:allowDividerAbove="true"
-        app:allowDividerBelow="false"
-        app:iconSpaceReserved="false"
-        app:layout="@layout/view_preference_category">
-
-        <io.legato.kazusa.lib.prefs.Preference
-            android:key="welcomeImagePath"
-            android:title="@string/background_image"
-            app:allowDividerAbove="false"
-            app:allowDividerBelow="false"
-            app:iconSpaceReserved="false" />
-
-        <io.legato.kazusa.lib.prefs.SwitchPreference
-            android:defaultValue="true"
-            android:key="welcomeShowText"
-            android:summary="@string/welcome_text"
-            android:title="@string/show_welcome_text"
-            app:allowDividerAbove="false"
-            app:allowDividerBelow="false"
-            app:iconSpaceReserved="false" />
-
-        <io.legato.kazusa.lib.prefs.SwitchPreference
-            android:defaultValue="true"
-            android:key="welcomeShowIcon"
-            android:summary="@string/show_default_book_icon"
-            android:title="@string/show_icon"
-            app:allowDividerAbove="false"
-            app:allowDividerBelow="false"
-            app:iconSpaceReserved="false" />
-
-    </io.legato.kazusa.lib.prefs.PreferenceCategory>
-
-    <io.legato.kazusa.lib.prefs.PreferenceCategory
-        android:key="nightThemeCategory"
-        android:title="@string/night"
-        app:allowDividerAbove="true"
-        app:allowDividerBelow="false"
-        app:iconSpaceReserved="false"
-        app:layout="@layout/view_preference_category">
-
-        <io.legato.kazusa.lib.prefs.Preference
-            android:key="welcomeImagePathDark"
-            android:title="@string/background_image"
-            app:allowDividerAbove="false"
-            app:allowDividerBelow="false"
-            app:iconSpaceReserved="false" />
-
-        <io.legato.kazusa.lib.prefs.SwitchPreference
-            android:defaultValue="true"
-            android:key="welcomeShowTextDark"
-            android:summary="@string/welcome_text"
-            android:title="@string/show_welcome_text"
-            app:allowDividerAbove="false"
-            app:allowDividerBelow="false"
-            app:iconSpaceReserved="false" />
-
-        <io.legato.kazusa.lib.prefs.SwitchPreference
-            android:defaultValue="true"
-            android:key="welcomeShowIconDark"
-            android:summary="@string/show_default_book_icon"
-            android:title="@string/show_icon"
-            app:allowDividerAbove="false"
-            app:allowDividerBelow="false"
-            app:iconSpaceReserved="false" />
-
-    </io.legato.kazusa.lib.prefs.PreferenceCategory>
-
-</androidx.preference.PreferenceScreen>