重写主题系统

This commit is contained in:
HapeLee
2025-06-07 04:39:02 +08:00
parent 588ac40282
commit 0bb2528fab
56 changed files with 531 additions and 665 deletions
+31 -23
View File
@@ -35,91 +35,99 @@
<activity <activity
android:name=".ui.welcome.WelcomeActivity" android:name=".ui.welcome.WelcomeActivity"
android:exported="true"> android:exported="true">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity> </activity>
<!-- 图标1 --> <!-- 图标1 -->
<activity <activity-alias
android:name=".ui.welcome.Launcher1" android:name=".ui.welcome.Launcher1"
android:enabled="false" android:enabled="false"
android:exported="true" android:exported="true"
android:icon="@mipmap/launcher1"> android:icon="@mipmap/launcher1"
android:targetActivity=".ui.main.MainActivity">
<intent-filter> <intent-filter>
<action android:name="android.intent.action.MAIN" /> <action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" /> <category android:name="android.intent.category.LAUNCHER" />
</intent-filter> </intent-filter>
</activity> </activity-alias>
<!-- 图标2 --> <!-- 图标2 -->
<activity <activity-alias
android:name=".ui.welcome.Launcher2" android:name=".ui.welcome.Launcher2"
android:enabled="false" android:enabled="false"
android:exported="true" android:exported="true"
android:icon="@mipmap/launcher2"> android:icon="@mipmap/launcher2"
android:targetActivity=".ui.main.MainActivity">
<intent-filter> <intent-filter>
<action android:name="android.intent.action.MAIN" /> <action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" /> <category android:name="android.intent.category.LAUNCHER" />
</intent-filter> </intent-filter>
</activity> </activity-alias>
<!-- 图标3 --> <!-- 图标3 -->
<activity <activity-alias
android:name=".ui.welcome.Launcher3" android:name=".ui.welcome.Launcher3"
android:enabled="false" android:enabled="false"
android:exported="true" android:exported="true"
android:icon="@mipmap/launcher3"> android:icon="@mipmap/launcher3"
android:targetActivity=".ui.main.MainActivity">
<intent-filter> <intent-filter>
<action android:name="android.intent.action.MAIN" /> <action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" /> <category android:name="android.intent.category.LAUNCHER" />
</intent-filter> </intent-filter>
</activity> </activity-alias>
<!-- 图标4 --> <!-- 图标4 -->
<activity <activity-alias
android:name=".ui.welcome.Launcher4" android:name=".ui.welcome.Launcher4"
android:enabled="false" android:enabled="false"
android:exported="true" android:exported="true"
android:icon="@mipmap/launcher4"> android:icon="@mipmap/launcher4"
android:targetActivity=".ui.main.MainActivity">
<intent-filter> <intent-filter>
<action android:name="android.intent.action.MAIN" /> <action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" /> <category android:name="android.intent.category.LAUNCHER" />
</intent-filter> </intent-filter>
</activity> </activity-alias>
<!-- 图标5 --> <!-- 图标5 -->
<activity <activity-alias
android:name=".ui.welcome.Launcher5" android:name=".ui.welcome.Launcher5"
android:enabled="false" android:enabled="false"
android:exported="true" android:exported="true"
android:icon="@mipmap/launcher5"> android:icon="@mipmap/launcher5"
android:targetActivity=".ui.main.MainActivity">
<intent-filter> <intent-filter>
<action android:name="android.intent.action.MAIN" /> <action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" /> <category android:name="android.intent.category.LAUNCHER" />
</intent-filter> </intent-filter>
</activity> </activity-alias>
<!-- 图标6 --> <!-- 图标6 -->
<activity <activity-alias
android:name=".ui.welcome.Launcher6" android:name=".ui.welcome.Launcher6"
android:enabled="false" android:enabled="false"
android:exported="true" android:exported="true"
android:icon="@mipmap/launcher6"> android:icon="@mipmap/launcher6"
android:targetActivity=".ui.main.MainActivity">
<intent-filter> <intent-filter>
<action android:name="android.intent.action.MAIN" /> <action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" /> <category android:name="android.intent.category.LAUNCHER" />
</intent-filter> </intent-filter>
</activity> </activity-alias>
<!-- 主界面 --> <!-- 主界面 -->
<activity <activity
android:name=".ui.main.MainActivity" android:name=".ui.main.MainActivity"
android:alwaysRetainTaskState="true" android:alwaysRetainTaskState="true"
android:configChanges="locale|keyboardHidden|orientation|screenSize|smallestScreenSize|screenLayout|uiMode" android:configChanges="locale|keyboardHidden|orientation|screenSize|smallestScreenSize|screenLayout|uiMode"
android:exported="true" android:exported="true"
android:launchMode="singleTask" /> android:launchMode="singleTask">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<!-- 阅读界面 --> <!-- 阅读界面 -->
<activity <activity
android:name=".ui.book.read.ReadBookActivity" android:name=".ui.book.read.ReadBookActivity"
+1 -1
View File
@@ -5,6 +5,7 @@ import android.app.Notification
import android.app.NotificationChannel import android.app.NotificationChannel
import android.app.NotificationManager import android.app.NotificationManager
import android.content.Context import android.content.Context
import android.content.SharedPreferences
import android.content.pm.ActivityInfo import android.content.pm.ActivityInfo
import android.content.pm.ApplicationInfo import android.content.pm.ApplicationInfo
import android.content.res.Configuration import android.content.res.Configuration
@@ -68,7 +69,6 @@ class App : Application() {
override fun onCreate() { override fun onCreate() {
super.onCreate() super.onCreate()
DynamicColors.applyToActivitiesIfAvailable(this)
CrashHandler(this) CrashHandler(this)
if (isDebuggable) { if (isDebuggable) {
ThreadUtils.setThreadAssertsDisabledForTesting(true) ThreadUtils.setThreadAssertsDisabledForTesting(true)
@@ -17,9 +17,11 @@ import androidx.annotation.RequiresApi
import androidx.appcompat.app.AppCompatActivity import androidx.appcompat.app.AppCompatActivity
import androidx.viewbinding.ViewBinding import androidx.viewbinding.ViewBinding
import com.google.android.material.appbar.AppBarLayout import com.google.android.material.appbar.AppBarLayout
import com.google.android.material.color.DynamicColors
import io.legato.kazusa.R import io.legato.kazusa.R
import io.legato.kazusa.constant.AppConst import io.legato.kazusa.constant.AppConst
import io.legato.kazusa.constant.AppLog import io.legato.kazusa.constant.AppLog
import io.legato.kazusa.constant.PreferKey
import io.legato.kazusa.constant.Theme import io.legato.kazusa.constant.Theme
import io.legato.kazusa.help.config.ThemeConfig import io.legato.kazusa.help.config.ThemeConfig
//import io.legado.app.lib.theme.backgroundColor //import io.legado.app.lib.theme.backgroundColor
@@ -27,6 +29,8 @@ 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
import io.legato.kazusa.utils.disableAutoFill import io.legato.kazusa.utils.disableAutoFill
import io.legato.kazusa.utils.getPrefBoolean
import io.legato.kazusa.utils.getPrefString
import io.legato.kazusa.utils.hideSoftInput import io.legato.kazusa.utils.hideSoftInput
import io.legato.kazusa.utils.toastOnUi import io.legato.kazusa.utils.toastOnUi
import io.legato.kazusa.utils.windowSize import io.legato.kazusa.utils.windowSize
@@ -70,8 +74,9 @@ abstract class BaseActivity<VB : ViewBinding>(
@SuppressLint("ObsoleteSdkInt") @SuppressLint("ObsoleteSdkInt")
override fun onCreate(savedInstanceState: Bundle?) { override fun onCreate(savedInstanceState: Bundle?) {
initTheme()
window.decorView.disableAutoFill() window.decorView.disableAutoFill()
//initTheme()
super.onCreate(savedInstanceState) super.onCreate(savedInstanceState)
//setupSystemBar() //setupSystemBar()
setContentView(binding.root) setContentView(binding.root)
@@ -128,26 +133,10 @@ abstract class BaseActivity<VB : ViewBinding>(
open fun onCompatOptionsItemSelected(item: MenuItem) = super.onOptionsItemSelected(item) open fun onCompatOptionsItemSelected(item: MenuItem) = super.onOptionsItemSelected(item)
open fun initTheme() { open fun initTheme() {
when (theme) { when (getPrefString("app_theme", "0")) {
Theme.Transparent -> setTheme(R.style.AppTheme_Transparent) "0" -> DynamicColors.applyToActivitiesIfAvailable(application)
Theme.Dark -> { "1" -> setTheme(R.style.Theme_Base_GR)
setTheme(R.style.AppTheme_Dark) "2" -> setTheme(R.style.Theme_Base_WH)
//window.decorView.applyBackgroundTint(backgroundColor)
}
Theme.Light -> {
setTheme(R.style.AppTheme_Light)
//window.decorView.applyBackgroundTint(backgroundColor)
}
else -> {
// if (ColorUtils.isColorLight(primaryColor)) {
// setTheme(R.style.AppTheme_Light)
// } else {
// setTheme(R.style.AppTheme_Dark)
// }
//window.decorView.applyBackgroundTint(backgroundColor)
}
} }
} }
@@ -179,4 +179,7 @@ object PreferKey {
const val showReadTitleAddition = "showReadTitleAddition" const val showReadTitleAddition = "showReadTitleAddition"
const val readBarStyleFollowPage = "readBarStyleFollowPage" const val readBarStyleFollowPage = "readBarStyleFollowPage"
const val contentSelectSpeakMod = "contentReadAloudMod" const val contentSelectSpeakMod = "contentReadAloudMod"
const val dynamicColors = "dynamicColors"
const val themePref = "themePref"
} }
@@ -1,5 +1,5 @@
package io.legato.kazusa.constant package io.legato.kazusa.constant
enum class Theme { enum class Theme {
Dark, Light, Auto, Transparent, EInk; Dark, Light, Auto, Transparent, EInk, GR;
} }
@@ -100,7 +100,6 @@ object AppConfig : SharedPreferences.OnSharedPreferenceChangeListener {
get() = when (themeMode) { get() = when (themeMode) {
"1" -> false "1" -> false
"2" -> true "2" -> true
"3" -> false
else -> sysConfiguration.isNightMode else -> sysConfiguration.isNightMode
} }
set(value) { set(value) {
@@ -42,7 +42,6 @@ object ThemeConfig {
} }
fun getTheme() = when { fun getTheme() = when {
AppConfig.isEInkMode -> Theme.EInk
AppConfig.isNightTheme -> Theme.Dark AppConfig.isNightTheme -> Theme.Dark
else -> Theme.Light else -> Theme.Light
} }
@@ -216,58 +215,7 @@ object ThemeConfig {
* 更新主题 * 更新主题
*/ */
fun applyTheme(context: Context) = with(context) { fun applyTheme(context: Context) = with(context) {
when {
AppConfig.isEInkMode -> {
ThemeStore.editTheme(this)
.primaryColor(Color.WHITE)
.accentColor(Color.BLACK)
.backgroundColor(Color.WHITE)
.bottomBackground(Color.WHITE)
.apply()
}
AppConfig.isNightTheme -> {
val primary =
getPrefInt(PreferKey.cNPrimary, getCompatColor(R.color.md_blue_grey_600))
val accent =
getPrefInt(PreferKey.cNAccent, getCompatColor(R.color.md_deep_orange_800))
var background =
getPrefInt(PreferKey.cNBackground, getCompatColor(R.color.md_grey_900))
if (ColorUtils.isColorLight(background)) {
background = getCompatColor(R.color.md_grey_900)
putPrefInt(PreferKey.cNBackground, background)
}
val bBackground =
getPrefInt(PreferKey.cNBBackground, getCompatColor(R.color.md_grey_850))
ThemeStore.editTheme(this)
.primaryColor(ColorUtils.withAlpha(primary, 1f))
.accentColor(ColorUtils.withAlpha(accent, 1f))
.backgroundColor(ColorUtils.withAlpha(background, 1f))
.bottomBackground(ColorUtils.withAlpha(bBackground, 1f))
.apply()
}
else -> {
val primary =
getPrefInt(PreferKey.cPrimary, getCompatColor(R.color.md_brown_500))
val accent =
getPrefInt(PreferKey.cAccent, getCompatColor(R.color.md_red_600))
var background =
getPrefInt(PreferKey.cBackground, getCompatColor(R.color.md_grey_100))
if (!ColorUtils.isColorLight(background)) {
background = getCompatColor(R.color.md_grey_100)
putPrefInt(PreferKey.cBackground, background)
}
val bBackground =
getPrefInt(PreferKey.cBBackground, getCompatColor(R.color.md_grey_200))
ThemeStore.editTheme(this)
.primaryColor(ColorUtils.withAlpha(primary, 1f))
.accentColor(ColorUtils.withAlpha(accent, 1f))
.backgroundColor(ColorUtils.withAlpha(background, 1f))
.bottomBackground(ColorUtils.withAlpha(bBackground, 1f))
.apply()
}
}
} }
@Keep @Keep
@@ -6,20 +6,22 @@ import android.widget.TextView
import androidx.preference.ListPreference import androidx.preference.ListPreference
import androidx.preference.PreferenceViewHolder import androidx.preference.PreferenceViewHolder
import io.legato.kazusa.R import io.legato.kazusa.R
import androidx.core.content.withStyledAttributes
//import io.legado.app.lib.theme.bottomBackground //import io.legado.app.lib.theme.bottomBackground
//import io.legado.app.lib.theme.getPrimaryTextColor //import io.legado.app.lib.theme.getPrimaryTextColor
class NameListPreference(context: Context, attrs: AttributeSet) : ListPreference(context, attrs) { class NameListPreference(context: Context, attrs: AttributeSet) : ListPreference(context, attrs) {
private val isBottomBackground: Boolean private var isBottomBackground: Boolean = false
init { init {
layoutResource = R.layout.view_preference layoutResource = R.layout.view_preference
widgetLayoutResource = R.layout.item_fillet_text widgetLayoutResource = R.layout.item_fillet_text
val typedArray = context.obtainStyledAttributes(attrs, R.styleable.Preference) context.withStyledAttributes(attrs, R.styleable.Preference) {
isBottomBackground = typedArray.getBoolean(R.styleable.Preference_isBottomBackground, false) isBottomBackground = getBoolean(R.styleable.Preference_isBottomBackground, false)
typedArray.recycle() }
} }
override fun onBindViewHolder(holder: PreferenceViewHolder) { override fun onBindViewHolder(holder: PreferenceViewHolder) {
@@ -107,7 +107,7 @@ open class Preference(context: Context, attrs: AttributeSet) :
} }
final override fun onBindViewHolder(holder: PreferenceViewHolder) { override fun onBindViewHolder(holder: PreferenceViewHolder) {
super.onBindViewHolder(holder) super.onBindViewHolder(holder)
onBindView(holder) onBindView(holder)
onLongClick?.let { listener -> onLongClick?.let { listener ->
@@ -6,32 +6,32 @@ import androidx.appcompat.widget.SwitchCompat
import androidx.preference.PreferenceViewHolder import androidx.preference.PreferenceViewHolder
import androidx.preference.SwitchPreferenceCompat import androidx.preference.SwitchPreferenceCompat
import io.legato.kazusa.R import io.legato.kazusa.R
import androidx.core.content.withStyledAttributes
//import io.legado.app.lib.theme.accentColor //import io.legado.app.lib.theme.accentColor
class SwitchPreference(context: Context, attrs: AttributeSet) : class SwitchPreference(context: Context, attrs: AttributeSet) :
SwitchPreferenceCompat(context, attrs) { SwitchPreferenceCompat(context, attrs) {
private val isBottomBackground: Boolean private var isBottomBackground: Boolean = false
private var onLongClick: ((preference: SwitchPreference) -> Boolean)? = null private var onLongClick: ((preference: SwitchPreference) -> Boolean)? = null
init { init {
layoutResource = R.layout.view_preference layoutResource = R.layout.view_preference
widgetLayoutResource = R.layout.preference_widget_material_switch widgetLayoutResource = R.layout.preference_widget_material_switch
val typedArray = context.obtainStyledAttributes(attrs, R.styleable.Preference) context.withStyledAttributes(attrs, R.styleable.Preference) {
isBottomBackground = typedArray.getBoolean(R.styleable.Preference_isBottomBackground, false) isBottomBackground = getBoolean(R.styleable.Preference_isBottomBackground, false)
typedArray.recycle() }
} }
override fun onBindViewHolder(holder: PreferenceViewHolder) { override fun onBindViewHolder(holder: PreferenceViewHolder) {
val v = Preference.bindView<SwitchCompat>( Preference.bindView<SwitchCompat>(
context, holder, icon, title, summary, context, holder, icon, title, summary,
widgetLayoutResource, widgetLayoutResource,
androidx.preference.R.id.switchWidget, androidx.preference.R.id.switchWidget,
isBottomBackground = isBottomBackground isBottomBackground = isBottomBackground
) )
if (v is SwitchCompat && !v.isInEditMode) {
//v.applyTint(context.accentColor)
}
super.onBindViewHolder(holder) super.onBindViewHolder(holder)
onLongClick?.let { listener -> onLongClick?.let { listener ->
holder.itemView.setOnLongClickListener { holder.itemView.setOnLongClickListener {
@@ -52,6 +52,7 @@ class AllBookmarkActivity : VMBaseActivity<ActivityAllBookmarkBinding, AllBookma
} }
private fun initView() { private fun initView() {
setSupportActionBar(binding.topBar)
binding.recyclerView.addItemDecoration(BookmarkDecoration(this,adapter)) binding.recyclerView.addItemDecoration(BookmarkDecoration(this,adapter))
binding.recyclerView.adapter = adapter binding.recyclerView.adapter = adapter
binding.recyclerView.applyNavigationBarPadding() binding.recyclerView.applyNavigationBarPadding()
@@ -28,7 +28,7 @@ class ConfigActivity : VMBaseActivity<ActivityConfigBinding, ConfigViewModel>()
override fun setTitle(resId: Int) { override fun setTitle(resId: Int) {
super.setTitle(resId) super.setTitle(resId)
binding.titleBar.setTitle(resId) binding.topBar.setTitle(resId)
} }
inline fun <reified T : Fragment> replaceFragment(configTag: String) { inline fun <reified T : Fragment> replaceFragment(configTag: String) {
@@ -6,6 +6,7 @@ import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
import androidx.lifecycle.lifecycleScope import androidx.lifecycle.lifecycleScope
import io.legato.kazusa.R import io.legato.kazusa.R
import io.legato.kazusa.base.BaseBottomSheetDialogFragment
import io.legato.kazusa.base.BaseDialogFragment import io.legato.kazusa.base.BaseDialogFragment
import io.legato.kazusa.databinding.DialogCoverRuleConfigBinding import io.legato.kazusa.databinding.DialogCoverRuleConfigBinding
//import io.legado.app.lib.theme.primaryColor //import io.legado.app.lib.theme.primaryColor
@@ -19,13 +20,13 @@ import kotlinx.coroutines.launch
import kotlinx.coroutines.withContext import kotlinx.coroutines.withContext
import splitties.views.onClick import splitties.views.onClick
class CoverRuleConfigDialog : BaseDialogFragment(R.layout.dialog_cover_rule_config) { class CoverRuleConfigDialog : BaseBottomSheetDialogFragment(R.layout.dialog_cover_rule_config) {
val binding by viewBinding(DialogCoverRuleConfigBinding::bind) val binding by viewBinding(DialogCoverRuleConfigBinding::bind)
override fun onStart() { override fun onStart() {
super.onStart() super.onStart()
setLayout(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT)
} }
override fun onFragmentCreated(view: View, savedInstanceState: Bundle?) { override fun onFragmentCreated(view: View, savedInstanceState: Bundle?) {
@@ -7,6 +7,7 @@ import android.os.Build
import android.os.Bundle import android.os.Bundle
import android.view.View import android.view.View
import android.widget.SeekBar import android.widget.SeekBar
import androidx.preference.ListPreference
import androidx.preference.Preference import androidx.preference.Preference
import androidx.preference.PreferenceFragmentCompat import androidx.preference.PreferenceFragmentCompat
import io.legato.kazusa.R import io.legato.kazusa.R
@@ -22,6 +23,7 @@ import io.legato.kazusa.lib.dialogs.alert
import io.legato.kazusa.lib.dialogs.selector import io.legato.kazusa.lib.dialogs.selector
import io.legato.kazusa.lib.prefs.ColorPreference import io.legato.kazusa.lib.prefs.ColorPreference
import io.legato.kazusa.lib.prefs.NameListPreference import io.legato.kazusa.lib.prefs.NameListPreference
import io.legato.kazusa.lib.prefs.ThemeModePreference
//import io.legado.app.lib.theme.primaryColor //import io.legado.app.lib.theme.primaryColor
import io.legato.kazusa.ui.widget.number.NumberPickerDialog import io.legato.kazusa.ui.widget.number.NumberPickerDialog
import io.legato.kazusa.ui.widget.seekbar.SeekBarChangeListener import io.legato.kazusa.ui.widget.seekbar.SeekBarChangeListener
@@ -71,6 +73,7 @@ class ThemeConfigFragment : PreferenceFragmentCompat(),
if (Build.VERSION.SDK_INT < 26) { if (Build.VERSION.SDK_INT < 26) {
preferenceScreen.removePreferenceRecursively(PreferKey.launcherIcon) preferenceScreen.removePreferenceRecursively(PreferKey.launcherIcon)
} }
upPreferenceSummary(PreferKey.themePref)
upPreferenceSummary(PreferKey.bgImage, getPrefString(PreferKey.bgImage)) upPreferenceSummary(PreferKey.bgImage, getPrefString(PreferKey.bgImage))
upPreferenceSummary(PreferKey.bgImageN, getPrefString(PreferKey.bgImageN)) upPreferenceSummary(PreferKey.bgImageN, getPrefString(PreferKey.bgImageN))
//upPreferenceSummary(PreferKey.barElevation, AppConfig.elevation.toString()) //upPreferenceSummary(PreferKey.barElevation, AppConfig.elevation.toString())
@@ -95,12 +98,20 @@ class ThemeConfigFragment : PreferenceFragmentCompat(),
} }
} }
} }
findPreference<NameListPreference>(PreferKey.themeMode)?.let { findPreference<ThemeModePreference>(PreferKey.themeMode)?.let {
it.setOnPreferenceChangeListener { _, _ -> it.setOnPreferenceChangeListener { _, _ ->
ThemeConfig.applyDayNight(requireContext()) ThemeConfig.applyDayNight(requireContext())
true true
} }
} }
findPreference<ListPreference>(PreferKey.themePref)?.let {
it.setOnPreferenceChangeListener { _, _ ->
val intent = requireActivity().intent
requireActivity().finish()
startActivity(intent)
true
}
}
} }
override fun onViewCreated(view: View, savedInstanceState: Bundle?) { override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
@@ -126,6 +137,11 @@ class ThemeConfigFragment : PreferenceFragmentCompat(),
PreferKey.launcherIcon -> LauncherIconHelp.changeIcon(getPrefString(key)) PreferKey.launcherIcon -> LauncherIconHelp.changeIcon(getPrefString(key))
//PreferKey.transparentStatusBar -> recreateActivities() //PreferKey.transparentStatusBar -> recreateActivities()
//PreferKey.immNavigationBar -> recreateActivities() //PreferKey.immNavigationBar -> recreateActivities()
PreferKey.themePref -> {
val intent = requireActivity().intent
requireActivity().finish()
startActivity(intent)
}
PreferKey.cPrimary, PreferKey.cPrimary,
PreferKey.cAccent, PreferKey.cAccent,
PreferKey.cBackground, PreferKey.cBackground,
@@ -139,9 +155,11 @@ class ThemeConfigFragment : PreferenceFragmentCompat(),
PreferKey.cNBBackground -> { PreferKey.cNBBackground -> {
upTheme(true) upTheme(true)
} }
PreferKey.themeMode -> { PreferKey.themeMode -> {
ThemeConfig.applyDayNight(requireContext()) ThemeConfig.applyDayNight(requireContext())
} }
PreferKey.bgImage, PreferKey.bgImage,
PreferKey.bgImageN -> { PreferKey.bgImageN -> {
upPreferenceSummary(key, getPrefString(key)) upPreferenceSummary(key, getPrefString(key))
@@ -27,7 +27,7 @@ open class WelcomeActivity : BaseActivity<ActivityWelcomeBinding>() {
if (intent.flags and Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT != 0) { if (intent.flags and Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT != 0) {
finish() finish()
} else { } else {
binding.root.postDelayed(600) { startMainActivity() } binding.root.postDelayed(100) { startMainActivity() }
} }
} }
@@ -1,23 +1,42 @@
<?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"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent"> 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:layout_constraintTop_toTopOf="parent" android:background="@color/transparent"
app:title="@string/all_bookmark" /> android:fitsSystemWindows="true">
<com.google.android.material.appbar.CollapsingToolbarLayout
android:layout_width="match_parent"
android:layout_height="?attr/collapsingToolbarLayoutLargeSize"
style="?attr/collapsingToolbarLayoutLargeSize"
app:titleCollapseMode="scale"
app:collapsedTitleTextAppearance="?attr/textAppearanceTitleLarge"
app:expandedTitleTextAppearance="?attr/textAppearanceHeadlineLarge"
app:layout_scrollFlags="scroll|exitUntilCollapsed|snap">
<com.google.android.material.appbar.MaterialToolbar
android:id="@+id/top_bar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
app:navigationIcon="@drawable/ic_arrow_back"
app:title="@string/all_bookmark"
app:layout_collapseMode="pin" />
</com.google.android.material.appbar.CollapsingToolbarLayout>
</com.google.android.material.appbar.AppBarLayout>
<androidx.recyclerview.widget.RecyclerView <androidx.recyclerview.widget.RecyclerView
android:id="@+id/recycler_view" android:id="@+id/recycler_view"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="0dp" android:layout_height="match_parent"
android:clipToPadding="false" android:clipToPadding="false"
app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager" app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager"
app:layout_constraintBottom_toBottomOf="parent" app:layout_behavior="@string/appbar_scrolling_view_behavior" />
app:layout_constraintTop_toBottomOf="@+id/title_bar" />
</androidx.constraintlayout.widget.ConstraintLayout> </androidx.coordinatorlayout.widget.CoordinatorLayout>
@@ -17,7 +17,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="@color/transparent" android:background="@android:color/transparent"
android:fitsSystemWindows="true"> android:fitsSystemWindows="true">
<com.google.android.material.appbar.CollapsingToolbarLayout <com.google.android.material.appbar.CollapsingToolbarLayout
+35 -7
View File
@@ -1,21 +1,49 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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"
android:orientation="vertical"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent"> 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:layout_constraintTop_toTopOf="parent" android:fitsSystemWindows="true"
app:title="设置" /> app:liftOnScroll="false"
android:stateListAnimator="@null">
<com.google.android.material.appbar.CollapsingToolbarLayout
android:layout_width="match_parent"
android:layout_height="?attr/collapsingToolbarLayoutLargeSize"
style="?attr/collapsingToolbarLayoutLargeSize"
app:collapsedTitleTextAppearance="?attr/textAppearanceTitleLarge"
app:expandedTitleTextAppearance="?attr/textAppearanceHeadlineLarge"
app:titleCollapseMode="scale"
app:layout_scrollFlags="scroll|exitUntilCollapsed|snap">
<com.google.android.material.appbar.MaterialToolbar
android:id="@+id/top_bar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
app:navigationIcon="@drawable/ic_arrow_back"
app:layout_collapseMode="pin" />
</com.google.android.material.appbar.CollapsingToolbarLayout>
</com.google.android.material.appbar.AppBarLayout>
<androidx.core.widget.NestedScrollView
android:id="@+id/configScrollView"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_behavior="@string/appbar_scrolling_view_behavior"
android:fillViewport="true">
<LinearLayout <LinearLayout
android:id="@+id/configFrameLayout" android:id="@+id/configFrameLayout"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="wrap_content"
android:orientation="vertical" /> android:orientation="vertical" />
</androidx.core.widget.NestedScrollView>
</LinearLayout> </androidx.coordinatorlayout.widget.CoordinatorLayout>
@@ -16,14 +16,15 @@
<androidx.constraintlayout.widget.ConstraintLayout <androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:paddingVertical="8dp"
android:paddingHorizontal="16dp"> android:paddingHorizontal="16dp">
<TextView <TextView
android:id="@+id/tv_book_name" android:id="@+id/tv_book_name"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:padding="6dp"
android:singleLine="true" android:singleLine="true"
android:layout_marginBottom="4dp"
app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toLeftOf="@+id/tv_remove" app:layout_constraintRight_toLeftOf="@+id/tv_remove"
app:layout_constraintTop_toTopOf="parent" app:layout_constraintTop_toTopOf="parent"
@@ -34,7 +35,7 @@
android:id="@+id/tv_reading_time" android:id="@+id/tv_reading_time"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:padding="6dp" style="@style/ChapterNameText"
android:singleLine="true" android:singleLine="true"
app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toLeftOf="@+id/tv_remove" app:layout_constraintRight_toLeftOf="@+id/tv_remove"
@@ -46,9 +47,8 @@
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
style="@style/Widget.Material3.Button.IconButton.Filled.Tonal" style="@style/Widget.Material3.Button.IconButton.Filled.Tonal"
android:padding="6dp"
app:icon="@drawable/ic_clear_all" app:icon="@drawable/ic_clear_all"
android:text="@string/clear" android:text="清除所有"
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintRight_toRightOf="parent" app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent" /> app:layout_constraintTop_toTopOf="parent" />
@@ -59,7 +59,6 @@
android:id="@+id/recycler_view" android:id="@+id/recycler_view"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
android:paddingHorizontal="16dp"
android:clipToPadding="false" android:clipToPadding="false"
app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager" /> app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager" />
@@ -32,7 +32,7 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:hint="@string/replace_rule_summary"> android:hint="@string/replace_rule_summary">
<io.legato.kazusa.lib.theme.view.ThemeEditText <com.google.android.material.textfield.TextInputEditText
android:id="@+id/et_name" android:id="@+id/et_name"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
@@ -45,7 +45,7 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:hint="@string/group"> android:hint="@string/group">
<io.legato.kazusa.lib.theme.view.ThemeEditText <com.google.android.material.textfield.TextInputEditText
android:id="@+id/et_group" android:id="@+id/et_group"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
@@ -58,7 +58,7 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:hint="@string/replace_rule"> android:hint="@string/replace_rule">
<io.legato.kazusa.lib.theme.view.ThemeEditText <com.google.android.material.textfield.TextInputEditText
android:id="@+id/et_replace_rule" android:id="@+id/et_replace_rule"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
@@ -94,7 +94,7 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:hint="@string/replace_to"> android:hint="@string/replace_to">
<io.legato.kazusa.lib.theme.view.ThemeEditText <com.google.android.material.textfield.TextInputEditText
android:id="@+id/et_replace_to" android:id="@+id/et_replace_to"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
@@ -130,7 +130,7 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:hint="@string/replace_scope"> android:hint="@string/replace_scope">
<io.legato.kazusa.lib.theme.view.ThemeEditText <com.google.android.material.textfield.TextInputEditText
android:id="@+id/et_scope" android:id="@+id/et_scope"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
@@ -143,7 +143,7 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:hint="@string/replace_exclude_scope"> android:hint="@string/replace_exclude_scope">
<io.legato.kazusa.lib.theme.view.ThemeEditText <com.google.android.material.textfield.TextInputEditText
android:id="@+id/et_exclude_scope" android:id="@+id/et_exclude_scope"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
@@ -156,7 +156,7 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:hint="@string/timeout_millisecond"> android:hint="@string/timeout_millisecond">
<io.legato.kazusa.lib.theme.view.ThemeEditText <com.google.android.material.textfield.TextInputEditText
android:id="@+id/et_timeout" android:id="@+id/et_timeout"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
@@ -4,24 +4,41 @@
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:orientation="vertical"> android:orientation="vertical"
android:paddingHorizontal="16dp"
android:paddingVertical="8dp">
<androidx.appcompat.widget.Toolbar <LinearLayout
android:id="@+id/tool_bar"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:theme="?attr/actionBarStyle" android:orientation="vertical"
app:title="@string/check_source_config" android:gravity="center"
app:titleTextAppearance="@style/ToolbarTitle" /> android:paddingVertical="8dp"
android:paddingHorizontal="16dp">
<io.legato.kazusa.ui.widget.text.TextInputLayout <View
android:layout_width="36dp"
android:layout_height="4dp"
android:layout_gravity="center_horizontal"
android:background="@drawable/bg_bottom_sheet_handle"
android:layout_marginBottom="16dp" />
<TextView
android:id="@+id/bottom_sheet_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/check_source_config"
android:textSize="18sp"
android:textStyle="bold" />
</LinearLayout>
<com.google.android.material.textfield.TextInputLayout
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:paddingLeft="12dp" android:paddingTop="8dp">
android:paddingRight="12dp"
android:paddingTop="3dp">
<io.legato.kazusa.lib.theme.view.ThemeEditText <com.google.android.material.textfield.TextInputEditText
android:id="@+id/check_source_timeout" android:id="@+id/check_source_timeout"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
@@ -29,43 +46,42 @@
android:digits="1234567890" android:digits="1234567890"
tools:ignore="SpeakableTextPresentCheck,TouchTargetSizeCheck" /> tools:ignore="SpeakableTextPresentCheck,TouchTargetSizeCheck" />
</io.legato.kazusa.ui.widget.text.TextInputLayout> </com.google.android.material.textfield.TextInputLayout>
<io.legato.kazusa.ui.widget.text.AccentTextView <TextView
android:paddingLeft="12dp"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:paddingVertical="8dp"
android:text="@string/check_source_item" /> android:text="@string/check_source_item" />
<com.google.android.flexbox.FlexboxLayout <com.google.android.flexbox.FlexboxLayout
android:layout_width="match_parent" android:layout_width="match_parent"
android:paddingLeft="12dp"
android:paddingRight="12dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
app:flexWrap="wrap" app:flexWrap="wrap"
app:justifyContent="space_between"> app:justifyContent="space_between">
<io.legato.kazusa.lib.theme.view.ThemeCheckBox <com.google.android.material.checkbox.MaterialCheckBox
android:id="@+id/check_search" android:id="@+id/check_search"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:text="@string/search" /> android:text="@string/search" />
<io.legato.kazusa.lib.theme.view.ThemeCheckBox <com.google.android.material.checkbox.MaterialCheckBox
android:id="@+id/check_discovery" android:id="@+id/check_discovery"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:text="@string/discovery" /> android:text="@string/discovery" />
<io.legato.kazusa.lib.theme.view.ThemeCheckBox <com.google.android.material.checkbox.MaterialCheckBox
android:id="@+id/check_info" android:id="@+id/check_info"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:text="@string/source_tab_info" /> android:text="@string/source_tab_info" />
<io.legato.kazusa.lib.theme.view.ThemeCheckBox <com.google.android.material.checkbox.MaterialCheckBox
android:id="@+id/check_category" android:id="@+id/check_category"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:text="@string/chapter_list" /> android:text="@string/chapter_list" />
<io.legato.kazusa.lib.theme.view.ThemeCheckBox <com.google.android.material.checkbox.MaterialCheckBox
android:id="@+id/check_content" android:id="@+id/check_content"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
@@ -76,23 +92,22 @@
<com.google.android.flexbox.FlexboxLayout <com.google.android.flexbox.FlexboxLayout
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:paddingLeft="12dp"
android:paddingRight="12dp"
app:justifyContent="flex_end"> app:justifyContent="flex_end">
<io.legato.kazusa.ui.widget.text.AccentTextView <com.google.android.material.button.MaterialButton
android:id="@+id/tv_cancel" android:id="@+id/tv_cancel"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:padding="12dp" style="@style/Widget.Material3.Button.TonalButton"
android:layout_marginEnd="8dp"
android:text="@string/cancel" android:text="@string/cancel"
tools:ignore="RtlHardcoded" /> tools:ignore="RtlHardcoded" />
<io.legato.kazusa.ui.widget.text.AccentTextView <com.google.android.material.button.MaterialButton
android:id="@+id/tv_ok" android:id="@+id/tv_ok"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:padding="12dp" style="@style/Widget.Material3.Button.TonalButton"
android:text="@string/ok" android:text="@string/ok"
tools:ignore="RtlHardcoded" /> tools:ignore="RtlHardcoded" />
@@ -6,13 +6,30 @@
xmlns:tools="http://schemas.android.com/tools" xmlns:tools="http://schemas.android.com/tools"
android:orientation="vertical"> android:orientation="vertical">
<androidx.appcompat.widget.Toolbar <LinearLayout
android:id="@+id/tool_bar"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:theme="?attr/actionBarStyle" android:orientation="vertical"
app:title="@string/cover_config" android:gravity="center"
app:titleTextAppearance="@style/ToolbarTitle" /> android:paddingVertical="16dp"
android:paddingHorizontal="16dp">
<View
android:layout_width="36dp"
android:layout_height="4dp"
android:layout_gravity="center_horizontal"
android:background="@drawable/bg_bottom_sheet_handle"
android:layout_marginBottom="16dp" />
<TextView
android:id="@+id/bottom_sheet_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/cover_config"
android:textSize="18sp"
android:textStyle="bold" />
</LinearLayout>
<androidx.core.widget.NestedScrollView <androidx.core.widget.NestedScrollView
android:layout_width="match_parent" android:layout_width="match_parent"
@@ -25,39 +42,39 @@
android:orientation="vertical" android:orientation="vertical"
android:padding="16dp"> android:padding="16dp">
<io.legato.kazusa.lib.theme.view.ThemeCheckBox <com.google.android.material.checkbox.MaterialCheckBox
android:id="@+id/cb_enable" android:id="@+id/cb_enable"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:text="@string/enable" /> android:text="@string/enable" />
<io.legato.kazusa.ui.widget.text.TextInputLayout <com.google.android.material.textfield.TextInputLayout
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:paddingTop="3dp"> android:paddingTop="3dp">
<io.legato.kazusa.lib.theme.view.ThemeEditText <com.google.android.material.textfield.TextInputEditText
android:id="@+id/edit_search_url" android:id="@+id/edit_search_url"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:hint="@string/r_search_url" android:hint="@string/r_search_url"
tools:ignore="SpeakableTextPresentCheck,TouchTargetSizeCheck" /> tools:ignore="SpeakableTextPresentCheck,TouchTargetSizeCheck" />
</io.legato.kazusa.ui.widget.text.TextInputLayout> </com.google.android.material.textfield.TextInputLayout>
<io.legato.kazusa.ui.widget.text.TextInputLayout <com.google.android.material.textfield.TextInputLayout
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:paddingTop="3dp"> android:paddingTop="3dp">
<io.legato.kazusa.lib.theme.view.ThemeEditText <com.google.android.material.textfield.TextInputEditText
android:id="@+id/edit_cover_url_rule" android:id="@+id/edit_cover_url_rule"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:hint="@string/rule_cover_url" android:hint="@string/rule_cover_url"
tools:ignore="SpeakableTextPresentCheck,TouchTargetSizeCheck" /> tools:ignore="SpeakableTextPresentCheck,TouchTargetSizeCheck" />
</io.legato.kazusa.ui.widget.text.TextInputLayout> </com.google.android.material.textfield.TextInputLayout>
</LinearLayout> </LinearLayout>
@@ -71,11 +88,11 @@
app:flexWrap="wrap" app:flexWrap="wrap"
app:justifyContent="space_between"> app:justifyContent="space_between">
<io.legato.kazusa.ui.widget.text.AccentTextView <com.google.android.material.button.MaterialButton
android:id="@+id/tv_footer_left" android:id="@+id/tv_footer_left"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:padding="12dp" style="@style/Widget.Material3.Button.TonalButton"
android:text="@string/btn_default_s" android:text="@string/btn_default_s"
tools:ignore="RtlHardcoded" /> tools:ignore="RtlHardcoded" />
@@ -84,20 +101,20 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:orientation="horizontal"> android:orientation="horizontal">
<TextView <com.google.android.material.button.MaterialButton
android:id="@+id/tv_cancel" android:id="@+id/tv_cancel"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:padding="12dp" style="@style/Widget.Material3.Button.TonalButton"
android:layout_marginEnd="8dp"
android:text="@string/cancel" android:text="@string/cancel"
android:textColor="@color/secondaryText"
tools:ignore="RtlHardcoded" /> tools:ignore="RtlHardcoded" />
<io.legato.kazusa.ui.widget.text.AccentTextView <com.google.android.material.button.MaterialButton
android:id="@+id/tv_ok" android:id="@+id/tv_ok"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:padding="12dp" style="@style/Widget.Material3.Button.TonalButton"
android:text="@string/ok" android:text="@string/ok"
tools:ignore="RtlHardcoded" /> tools:ignore="RtlHardcoded" />
@@ -24,49 +24,49 @@
android:orientation="vertical" android:orientation="vertical"
android:padding="16dp"> android:padding="16dp">
<io.legato.kazusa.ui.widget.text.TextInputLayout <com.google.android.material.textfield.TextInputLayout
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:paddingTop="3dp"> android:paddingTop="8dp">
<io.legato.kazusa.lib.theme.view.ThemeEditText <com.google.android.material.textfield.TextInputEditText
android:id="@+id/edit_upload_url" android:id="@+id/edit_upload_url"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:hint="@string/upload_url" android:hint="@string/upload_url"
tools:ignore="SpeakableTextPresentCheck,TouchTargetSizeCheck" /> tools:ignore="SpeakableTextPresentCheck,TouchTargetSizeCheck" />
</io.legato.kazusa.ui.widget.text.TextInputLayout> </com.google.android.material.textfield.TextInputLayout>
<io.legato.kazusa.ui.widget.text.TextInputLayout <com.google.android.material.textfield.TextInputLayout
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:paddingTop="3dp"> android:paddingTop="8dp">
<io.legato.kazusa.lib.theme.view.ThemeEditText <com.google.android.material.textfield.TextInputEditText
android:id="@+id/edit_download_url_rule" android:id="@+id/edit_download_url_rule"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:hint="@string/download_url_rule" android:hint="@string/download_url_rule"
tools:ignore="SpeakableTextPresentCheck,TouchTargetSizeCheck" /> tools:ignore="SpeakableTextPresentCheck,TouchTargetSizeCheck" />
</io.legato.kazusa.ui.widget.text.TextInputLayout> </com.google.android.material.textfield.TextInputLayout>
<io.legato.kazusa.ui.widget.text.TextInputLayout <com.google.android.material.textfield.TextInputLayout
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:paddingTop="3dp"> android:paddingTop="8dp">
<io.legato.kazusa.lib.theme.view.ThemeEditText <com.google.android.material.textfield.TextInputEditText
android:id="@+id/edit_summary" android:id="@+id/edit_summary"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:hint="@string/summary" android:hint="@string/summary"
tools:ignore="SpeakableTextPresentCheck,TouchTargetSizeCheck" /> tools:ignore="SpeakableTextPresentCheck,TouchTargetSizeCheck" />
</io.legato.kazusa.ui.widget.text.TextInputLayout> </com.google.android.material.textfield.TextInputLayout>
<io.legato.kazusa.lib.theme.view.ThemeCheckBox <com.google.android.material.checkbox.MaterialCheckBox
android:id="@+id/cb_compress" android:id="@+id/cb_compress"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
@@ -80,16 +80,15 @@
<com.google.android.flexbox.FlexboxLayout <com.google.android.flexbox.FlexboxLayout
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:paddingLeft="12dp" android:paddingHorizontal="16dp"
android:paddingRight="12dp"
app:flexWrap="wrap" app:flexWrap="wrap"
app:justifyContent="space_between"> app:justifyContent="space_between">
<io.legato.kazusa.ui.widget.text.AccentTextView <com.google.android.material.button.MaterialButton
android:id="@+id/tv_footer_left" android:id="@+id/tv_footer_left"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:padding="12dp" style="@style/Widget.Material3.Button.TonalButton"
android:text="@string/test" android:text="@string/test"
tools:ignore="RtlHardcoded" /> tools:ignore="RtlHardcoded" />
@@ -98,19 +97,20 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:orientation="horizontal"> android:orientation="horizontal">
<io.legato.kazusa.ui.widget.text.AccentTextView <com.google.android.material.button.MaterialButton
android:id="@+id/tv_cancel" android:id="@+id/tv_cancel"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:padding="12dp" style="@style/Widget.Material3.Button.TonalButton"
android:layout_marginEnd="8dp"
android:text="@string/cancel" android:text="@string/cancel"
tools:ignore="RtlHardcoded" /> tools:ignore="RtlHardcoded" />
<io.legato.kazusa.ui.widget.text.AccentTextView <com.google.android.material.button.MaterialButton
android:id="@+id/tv_ok" android:id="@+id/tv_ok"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:padding="12dp" style="@style/Widget.Material3.Button.TonalButton"
android:text="@string/ok" android:text="@string/ok"
tools:ignore="RtlHardcoded" /> tools:ignore="RtlHardcoded" />
-1
View File
@@ -24,7 +24,6 @@
app:title="@string/login" app:title="@string/login"
app:displayHomeAsUp="false" app:displayHomeAsUp="false"
app:fitStatusBar="false" app:fitStatusBar="false"
app:popupTheme="@style/AppTheme.PopupOverlay"
app:titleTextAppearance="@style/ToolbarTitle" /> app:titleTextAppearance="@style/ToolbarTitle" />
<androidx.core.widget.NestedScrollView <androidx.core.widget.NestedScrollView
@@ -11,7 +11,6 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:elevation="5dp" android:elevation="5dp"
android:theme="?attr/actionBarStyle" android:theme="?attr/actionBarStyle"
app:popupTheme="@style/AppTheme.PopupOverlay"
app:title="跳转确认" app:title="跳转确认"
app:titleTextAppearance="@style/ToolbarTitle" /> app:titleTextAppearance="@style/ToolbarTitle" />
@@ -20,7 +20,6 @@
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:theme="?attr/actionBarStyle" android:theme="?attr/actionBarStyle"
app:popupTheme="@style/AppTheme.PopupOverlay"
app:title="@string/favorite" app:title="@string/favorite"
app:titleTextAppearance="@style/ToolbarTitle" /> app:titleTextAppearance="@style/ToolbarTitle" />
@@ -14,7 +14,6 @@
app:displayHomeAsUp="false" app:displayHomeAsUp="false"
app:fitStatusBar="false" app:fitStatusBar="false"
app:layout_constraintTop_toTopOf="parent" app:layout_constraintTop_toTopOf="parent"
app:popupTheme="@style/AppTheme.PopupOverlay"
app:title="@string/search_scope" app:title="@string/search_scope"
app:titleTextAppearance="@style/ToolbarTitle" /> app:titleTextAppearance="@style/ToolbarTitle" />
@@ -14,7 +14,6 @@
app:attachToActivity="false" app:attachToActivity="false"
app:contentLayout="@layout/view_search" app:contentLayout="@layout/view_search"
app:fitStatusBar="false" app:fitStatusBar="false"
app:popupTheme="@style/AppTheme.PopupOverlay"
app:titleTextAppearance="@style/ToolbarTitle" app:titleTextAppearance="@style/ToolbarTitle"
tools:ignore="RtlHardcoded,RtlSymmetry" /> tools:ignore="RtlHardcoded,RtlSymmetry" />
@@ -10,7 +10,6 @@
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:theme="?attr/actionBarStyle" android:theme="?attr/actionBarStyle"
app:popupTheme="@style/AppTheme.PopupOverlay"
app:titleTextAppearance="@style/ToolbarTitle" app:titleTextAppearance="@style/ToolbarTitle"
app:layout_constraintTop_toTopOf="parent" /> app:layout_constraintTop_toTopOf="parent" />
+1 -2
View File
@@ -11,8 +11,7 @@
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:theme="?attr/actionBarStyle" android:theme="?attr/actionBarStyle"
app:titleTextAppearance="@style/ToolbarTitle" app:titleTextAppearance="@style/ToolbarTitle" />
app:popupTheme="@style/AppTheme.PopupOverlay" />
<androidx.recyclerview.widget.RecyclerView <androidx.recyclerview.widget.RecyclerView
android:id="@+id/recycler_view" android:id="@+id/recycler_view"
@@ -2,7 +2,7 @@
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" <LinearLayout 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="wrap_content" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:padding="16dp"> android:padding="16dp">
@@ -20,7 +20,6 @@
android:theme="?attr/actionBarStyle" android:theme="?attr/actionBarStyle"
app:displayHomeAsUp="false" app:displayHomeAsUp="false"
app:fitStatusBar="false" app:fitStatusBar="false"
app:popupTheme="@style/AppTheme.PopupOverlay"
app:title="@string/txt_toc_rule" app:title="@string/txt_toc_rule"
app:titleTextAppearance="@style/ToolbarTitle" /> app:titleTextAppearance="@style/ToolbarTitle" />
@@ -10,7 +10,6 @@
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:theme="?attr/actionBarStyle" android:theme="?attr/actionBarStyle"
app:popupTheme="@style/AppTheme.PopupOverlay"
app:titleTextAppearance="@style/ToolbarTitle" /> app:titleTextAppearance="@style/ToolbarTitle" />
<io.legato.kazusa.ui.widget.text.ScrollTextView <io.legato.kazusa.ui.widget.text.ScrollTextView
@@ -23,7 +23,6 @@
app:displayHomeAsUp="false" app:displayHomeAsUp="false"
app:fitStatusBar="false" app:fitStatusBar="false"
app:title="Set variable" app:title="Set variable"
app:popupTheme="@style/AppTheme.PopupOverlay"
app:titleTextAppearance="@style/ToolbarTitle" /> app:titleTextAppearance="@style/ToolbarTitle" />
<io.legato.kazusa.ui.widget.text.AccentTextView <io.legato.kazusa.ui.widget.text.AccentTextView
@@ -12,7 +12,6 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:elevation="5dp" android:elevation="5dp"
android:theme="?attr/actionBarStyle" android:theme="?attr/actionBarStyle"
app:popupTheme="@style/AppTheme.PopupOverlay"
app:title="@string/input_verification_code" app:title="@string/input_verification_code"
app:titleTextAppearance="@style/ToolbarTitle" /> app:titleTextAppearance="@style/ToolbarTitle" />
@@ -25,7 +25,6 @@
app:title="@string/server_config" app:title="@string/server_config"
app:displayHomeAsUp="false" app:displayHomeAsUp="false"
app:fitStatusBar="false" app:fitStatusBar="false"
app:popupTheme="@style/AppTheme.PopupOverlay"
app:titleTextAppearance="@style/ToolbarTitle" /> app:titleTextAppearance="@style/ToolbarTitle" />
<io.legato.kazusa.ui.widget.text.TextInputLayout <io.legato.kazusa.ui.widget.text.TextInputLayout
@@ -11,19 +11,19 @@
android:paddingEnd="16dp" android:paddingEnd="16dp"
android:background="?attr/selectableItemBackground"> android:background="?attr/selectableItemBackground">
<io.legato.kazusa.lib.theme.view.ThemeCheckBox <com.google.android.material.checkbox.MaterialCheckBox
android:id="@+id/cb_name" android:id="@+id/cb_name"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:scrollbars="none" android:scrollbars="none"
android:singleLine="true" android:maxLines="2"
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toLeftOf="@+id/swt_enabled" app:layout_constraintRight_toLeftOf="@+id/swt_enabled"
app:layout_constraintTop_toTopOf="parent" app:layout_constraintTop_toTopOf="parent"
tools:ignore="RtlSymmetry" /> tools:ignore="RtlSymmetry" />
<io.legato.kazusa.lib.theme.view.ThemeSwitch <com.google.android.material.materialswitch.MaterialSwitch
android:id="@+id/swt_enabled" android:id="@+id/swt_enabled"
android:name="@string/enable" android:name="@string/enable"
android:layout_width="wrap_content" android:layout_width="wrap_content"
+3 -2
View File
@@ -12,11 +12,12 @@
<androidx.appcompat.widget.AppCompatTextView <androidx.appcompat.widget.AppCompatTextView
android:id="@+id/tv_error_message" android:id="@+id/tv_error_message"
style="@style/Style.Text.Primary.Normal" android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingTop="16dp" android:paddingTop="16dp"
android:paddingBottom="16dp" /> android:paddingBottom="16dp" />
<androidx.appcompat.widget.AppCompatButton <com.google.android.material.button.MaterialButton
android:id="@+id/btn_error_retry" android:id="@+id/btn_error_retry"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
+3 -3
View File
@@ -8,12 +8,12 @@
<androidx.core.widget.ContentLoadingProgressBar <androidx.core.widget.ContentLoadingProgressBar
android:id="@+id/loading_progress" android:id="@+id/loading_progress"
android:layout_width="48dp" android:layout_width="48dp"
android:layout_height="48dp" android:layout_height="48dp" />
style="@style/Widget.AppCompat.ProgressBar" />
<androidx.appcompat.widget.AppCompatTextView <androidx.appcompat.widget.AppCompatTextView
android:id="@+id/tv_loading_message" android:id="@+id/tv_loading_message"
style="@style/Style.Text.Second.Normal.Wrap" android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingTop="16dp" android:paddingTop="16dp"
android:text="@string/dynamic_loading" /> android:text="@string/dynamic_loading" />
</LinearLayout> </LinearLayout>
+1 -1
View File
@@ -35,7 +35,7 @@
<TextView <TextView
android:id="@+id/preference_title" android:id="@+id/preference_title"
android:singleLine="true" android:singleLine="true"
android:textSize="16sp" android:textSize="18sp"
android:text="@string/title" android:text="@string/title"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" /> android:layout_height="wrap_content" />
@@ -4,6 +4,4 @@
android:id="@+id/toolbar" android:id="@+id/toolbar"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:theme="@style/AppTheme.AppBarOverlay.Dark" app:titleTextAppearance="@style/ToolbarTitle" />
app:titleTextAppearance="@style/ToolbarTitle"
app:popupTheme="@style/AppTheme.PopupOverlay" />
@@ -36,7 +36,6 @@
<item>Adaptar do sistema</item> <item>Adaptar do sistema</item>
<item>Tema Claro</item> <item>Tema Claro</item>
<item>Tema Oscuro</item> <item>Tema Oscuro</item>
<item>Tema E-Ink</item>
</string-array> </string-array>
<string-array name="NavBarColors"> <string-array name="NavBarColors">
+48 -94
View File
@@ -47,100 +47,54 @@
<color name="md_theme_surfaceContainer">#1E201A</color> <color name="md_theme_surfaceContainer">#1E201A</color>
<color name="md_theme_surfaceContainerHigh">#282B24</color> <color name="md_theme_surfaceContainerHigh">#282B24</color>
<color name="md_theme_surfaceContainerHighest">#33362E</color> <color name="md_theme_surfaceContainerHighest">#33362E</color>
<color name="md_theme_primary_mediumContrast">#C7E79E</color>
<color name="md_theme_onPrimary_mediumContrast">#172B00</color> <color name="wh_theme_primary">#C7C6C6</color>
<color name="md_theme_primaryContainer_mediumContrast">#7D9A59</color> <color name="wh_theme_onPrimary">#303031</color>
<color name="md_theme_onPrimaryContainer_mediumContrast">#000000</color> <color name="wh_theme_primaryContainer">#919090</color>
<color name="md_theme_secondary_mediumContrast">#D5E1C2</color> <color name="wh_theme_onPrimaryContainer">#050606</color>
<color name="md_theme_onSecondary_mediumContrast">#1F2814</color> <color name="wh_theme_secondary">#C8C6C5</color>
<color name="md_theme_secondaryContainer_mediumContrast">#8A9579</color> <color name="wh_theme_onSecondary">#303030</color>
<color name="md_theme_onSecondaryContainer_mediumContrast">#000000</color> <color name="wh_theme_secondaryContainer">#474746</color>
<color name="md_theme_tertiary_mediumContrast">#B5E6E1</color> <color name="wh_theme_onSecondaryContainer">#B7B5B4</color>
<color name="md_theme_onTertiary_mediumContrast">#002B29</color> <color name="wh_theme_tertiary">#CBC5C7</color>
<color name="md_theme_tertiaryContainer_mediumContrast">#6B9995</color> <color name="wh_theme_onTertiary">#323031</color>
<color name="md_theme_onTertiaryContainer_mediumContrast">#000000</color> <color name="wh_theme_tertiaryContainer">#948F91</color>
<color name="md_theme_error_mediumContrast">#FFD2CC</color> <color name="wh_theme_onTertiaryContainer">#060506</color>
<color name="md_theme_onError_mediumContrast">#540003</color> <color name="wh_theme_error">#FFB4AB</color>
<color name="md_theme_errorContainer_mediumContrast">#FF5449</color> <color name="wh_theme_onError">#690005</color>
<color name="md_theme_onErrorContainer_mediumContrast">#000000</color> <color name="wh_theme_errorContainer">#93000A</color>
<color name="md_theme_background_mediumContrast">#12140E</color> <color name="wh_theme_onErrorContainer">#FFDAD6</color>
<color name="md_theme_onBackground_mediumContrast">#E2E3D8</color> <color name="wh_theme_background">#141313</color>
<color name="md_theme_surface_mediumContrast">#12140E</color> <color name="wh_theme_onBackground">#E5E2E1</color>
<color name="md_theme_onSurface_mediumContrast">#FFFFFF</color> <color name="wh_theme_surface">#141313</color>
<color name="md_theme_surfaceVariant_mediumContrast">#44483D</color> <color name="wh_theme_onSurface">#E5E2E1</color>
<color name="md_theme_onSurfaceVariant_mediumContrast">#DBDECF</color> <color name="wh_theme_surfaceVariant">#444748</color>
<color name="md_theme_outline_mediumContrast">#B0B3A6</color> <color name="wh_theme_onSurfaceVariant">#C4C7C7</color>
<color name="md_theme_outlineVariant_mediumContrast">#8E9285</color> <color name="wh_theme_outline">#8E9192</color>
<color name="md_theme_scrim_mediumContrast">#000000</color> <color name="wh_theme_outlineVariant">#444748</color>
<color name="md_theme_inverseSurface_mediumContrast">#E2E3D8</color> <color name="wh_theme_scrim">#000000</color>
<color name="md_theme_inverseOnSurface_mediumContrast">#282B24</color> <color name="wh_theme_inverseSurface">#E5E2E1</color>
<color name="md_theme_inversePrimary_mediumContrast">#364F17</color> <color name="wh_theme_inverseOnSurface">#313030</color>
<color name="md_theme_primaryFixed_mediumContrast">#CDEDA3</color> <color name="wh_theme_inversePrimary">#5E5E5E</color>
<color name="md_theme_onPrimaryFixed_mediumContrast">#081400</color> <color name="wh_theme_primaryFixed">#E3E2E2</color>
<color name="md_theme_primaryFixedDim_mediumContrast">#B1D18A</color> <color name="wh_theme_onPrimaryFixed">#1B1C1C</color>
<color name="md_theme_onPrimaryFixedVariant_mediumContrast">#253D05</color> <color name="wh_theme_primaryFixedDim">#C7C6C6</color>
<color name="md_theme_secondaryFixed_mediumContrast">#DCE7C8</color> <color name="wh_theme_onPrimaryFixedVariant">#464747</color>
<color name="md_theme_onSecondaryFixed_mediumContrast">#0B1403</color> <color name="wh_theme_secondaryFixed">#E5E2E1</color>
<color name="md_theme_secondaryFixedDim_mediumContrast">#BFCBAD</color> <color name="wh_theme_onSecondaryFixed">#1B1C1C</color>
<color name="md_theme_onSecondaryFixedVariant_mediumContrast">#303924</color> <color name="wh_theme_secondaryFixedDim">#C8C6C5</color>
<color name="md_theme_tertiaryFixed_mediumContrast">#BCECE7</color> <color name="wh_theme_onSecondaryFixedVariant">#474746</color>
<color name="md_theme_onTertiaryFixed_mediumContrast">#001413</color> <color name="wh_theme_tertiaryFixed">#E7E1E3</color>
<color name="md_theme_tertiaryFixedDim_mediumContrast">#A0D0CB</color> <color name="wh_theme_onTertiaryFixed">#1D1B1D</color>
<color name="md_theme_onTertiaryFixedVariant_mediumContrast">#083D3A</color> <color name="wh_theme_tertiaryFixedDim">#CBC5C7</color>
<color name="md_theme_surfaceDim_mediumContrast">#12140E</color> <color name="wh_theme_onTertiaryFixedVariant">#494648</color>
<color name="md_theme_surfaceBright_mediumContrast">#43453D</color> <color name="wh_theme_surfaceDim">#141313</color>
<color name="md_theme_surfaceContainerLowest_mediumContrast">#060804</color> <color name="wh_theme_surfaceBright">#3A3939</color>
<color name="md_theme_surfaceContainerLow_mediumContrast">#1C1E18</color> <color name="wh_theme_surfaceContainerLowest">#0E0E0E</color>
<color name="md_theme_surfaceContainer_mediumContrast">#262922</color> <color name="wh_theme_surfaceContainerLow">#1C1B1B</color>
<color name="md_theme_surfaceContainerHigh_mediumContrast">#31342C</color> <color name="wh_theme_surfaceContainer">#201F1F</color>
<color name="md_theme_surfaceContainerHighest_mediumContrast">#3C3F37</color> <color name="wh_theme_surfaceContainerHigh">#2A2A2A</color>
<color name="md_theme_primary_highContrast">#DAFBB0</color> <color name="wh_theme_surfaceContainerHighest">#353434</color>
<color name="md_theme_onPrimary_highContrast">#000000</color>
<color name="md_theme_primaryContainer_highContrast">#ADCD86</color>
<color name="md_theme_onPrimaryContainer_highContrast">#050E00</color>
<color name="md_theme_secondary_highContrast">#E9F4D5</color>
<color name="md_theme_onSecondary_highContrast">#000000</color>
<color name="md_theme_secondaryContainer_highContrast">#BCC7A9</color>
<color name="md_theme_onSecondaryContainer_highContrast">#060D01</color>
<color name="md_theme_tertiary_highContrast">#C9F9F5</color>
<color name="md_theme_onTertiary_highContrast">#000000</color>
<color name="md_theme_tertiaryContainer_highContrast">#9CCCC7</color>
<color name="md_theme_onTertiaryContainer_highContrast">#000E0D</color>
<color name="md_theme_error_highContrast">#FFECE9</color>
<color name="md_theme_onError_highContrast">#000000</color>
<color name="md_theme_errorContainer_highContrast">#FFAEA4</color>
<color name="md_theme_onErrorContainer_highContrast">#220001</color>
<color name="md_theme_background_highContrast">#12140E</color>
<color name="md_theme_onBackground_highContrast">#E2E3D8</color>
<color name="md_theme_surface_highContrast">#12140E</color>
<color name="md_theme_onSurface_highContrast">#FFFFFF</color>
<color name="md_theme_surfaceVariant_highContrast">#44483D</color>
<color name="md_theme_onSurfaceVariant_highContrast">#FFFFFF</color>
<color name="md_theme_outline_highContrast">#EEF2E2</color>
<color name="md_theme_outlineVariant_highContrast">#C1C4B6</color>
<color name="md_theme_scrim_highContrast">#000000</color>
<color name="md_theme_inverseSurface_highContrast">#E2E3D8</color>
<color name="md_theme_inverseOnSurface_highContrast">#000000</color>
<color name="md_theme_inversePrimary_highContrast">#364F17</color>
<color name="md_theme_primaryFixed_highContrast">#CDEDA3</color>
<color name="md_theme_onPrimaryFixed_highContrast">#000000</color>
<color name="md_theme_primaryFixedDim_highContrast">#B1D18A</color>
<color name="md_theme_onPrimaryFixedVariant_highContrast">#081400</color>
<color name="md_theme_secondaryFixed_highContrast">#DCE7C8</color>
<color name="md_theme_onSecondaryFixed_highContrast">#000000</color>
<color name="md_theme_secondaryFixedDim_highContrast">#BFCBAD</color>
<color name="md_theme_onSecondaryFixedVariant_highContrast">#0B1403</color>
<color name="md_theme_tertiaryFixed_highContrast">#BCECE7</color>
<color name="md_theme_onTertiaryFixed_highContrast">#000000</color>
<color name="md_theme_tertiaryFixedDim_highContrast">#A0D0CB</color>
<color name="md_theme_onTertiaryFixedVariant_highContrast">#001413</color>
<color name="md_theme_surfaceDim_highContrast">#12140E</color>
<color name="md_theme_surfaceBright_highContrast">#4F5149</color>
<color name="md_theme_surfaceContainerLowest_highContrast">#000000</color>
<color name="md_theme_surfaceContainerLow_highContrast">#1E201A</color>
<color name="md_theme_surfaceContainer_highContrast">#2F312A</color>
<color name="md_theme_surfaceContainerHigh_highContrast">#3A3C35</color>
<color name="md_theme_surfaceContainerHighest_highContrast">#454840</color>
<color name="disabled">@color/md_dark_disabled</color> <color name="disabled">@color/md_dark_disabled</color>
-24
View File
@@ -1,24 +0,0 @@
<resources>
<style name="Base.AppTheme" parent="Theme.Material3.DayNight.NoActionBar">
<item name="android:windowDrawsSystemBarBackgrounds">true</item>
<item name="android:windowLightStatusBar">false</item>
<item name="tabStyle">@style/Widget.App.TabLayout</item>
</style>
<style name="AppTheme.PopupOverlay" parent="ThemeOverlay.AppCompat.Dark">
</style>
<style name="Style.Shadow.Top" parent="android:Widget">
<item name="android:layout_width">match_parent</item>
<item name="android:layout_height">@dimen/shadow_height</item>
<item name="android:background">@drawable/bg_shadow_top_night</item>
</style>
<style name="Style.Shadow.Bottom" parent="android:Widget">
<item name="android:layout_width">match_parent</item>
<item name="android:layout_height">@dimen/shadow_height</item>
<item name="android:background">@drawable/bg_shadow_bottom_night</item>
</style>
</resources>
@@ -36,7 +36,6 @@
<item>Adaptar do sistema</item> <item>Adaptar do sistema</item>
<item>Tema Claro</item> <item>Tema Claro</item>
<item>Tema Escuro</item> <item>Tema Escuro</item>
<item>Tema E-Ink</item>
</string-array> </string-array>
<string-array name="NavBarColors"> <string-array name="NavBarColors">
-1
View File
@@ -23,7 +23,6 @@
<item>Làm theo hệ thống</item> <item>Làm theo hệ thống</item>
<item>Chủ đề màu sáng</item> <item>Chủ đề màu sáng</item>
<item>Chủ đề tối</item> <item>Chủ đề tối</item>
<item>E-Ink (màn hình mực).</item>
</string-array> </string-array>
<string-array name="NavBarColors"> <string-array name="NavBarColors">
@@ -17,7 +17,6 @@
<item>跟隨系統</item> <item>跟隨系統</item>
<item>亮色主題</item> <item>亮色主題</item>
<item>暗色主題</item> <item>暗色主題</item>
<item>E-Ink(墨水螢幕)</item>
</string-array> </string-array>
<string-array name="NavBarColors"> <string-array name="NavBarColors">
@@ -22,7 +22,6 @@
<item>跟隨系統</item> <item>跟隨系統</item>
<item>亮色主題</item> <item>亮色主題</item>
<item>暗色主題</item> <item>暗色主題</item>
<item>E-Ink(墨水屏)</item>
</string-array> </string-array>
<string-array name="NavBarColors"> <string-array name="NavBarColors">
-1
View File
@@ -22,7 +22,6 @@
<item>跟随系统</item> <item>跟随系统</item>
<item>亮色主题</item> <item>亮色主题</item>
<item>暗色主题</item> <item>暗色主题</item>
<item>E-Ink(墨水屏)</item>
</string-array> </string-array>
<string-array name="double_page_title"> <string-array name="double_page_title">
+1 -1
View File
@@ -478,7 +478,7 @@
<string name="scan_qr_code">扫描二维码</string> <string name="scan_qr_code">扫描二维码</string>
<string name="click_on_selected_show_menu">选中时点击可弹出菜单</string> <string name="click_on_selected_show_menu">选中时点击可弹出菜单</string>
<string name="theme">主题</string> <string name="theme">主题</string>
<string name="theme_mode">主题模式</string> <string name="theme_mode">深色模式</string>
<string name="theme_mode_desc">选择主题模式</string> <string name="theme_mode_desc">选择主题模式</string>
<string name="join_qq_group">加入 QQ 群</string> <string name="join_qq_group">加入 QQ 群</string>
<string name="bg_image_per">获取背景图片需存储权限</string> <string name="bg_image_per">获取背景图片需存储权限</string>
+6 -1
View File
@@ -23,7 +23,12 @@
<item>0</item> <item>0</item>
<item>1</item> <item>1</item>
<item>2</item> <item>2</item>
<item>3</item> </string-array>
<string-array name="themes_value">
<item>0</item>
<item>1</item>
<item>2</item>
</string-array> </string-array>
<string-array name="screen_direction_value"> <string-array name="screen_direction_value">
+7 -1
View File
@@ -51,9 +51,15 @@
<item>Follow system</item> <item>Follow system</item>
<item>Bright mode</item> <item>Bright mode</item>
<item>Dark mode</item> <item>Dark mode</item>
<item>E-Ink mode</item>
</string-array> </string-array>
<string-array name="themes_item">
<item>动态取色</item>
<item>草野</item>
<item>黑白</item>
</string-array>
<string-array name="NavBarColors"> <string-array name="NavBarColors">
<item>Auto</item> <item>Auto</item>
<item>Black</item> <item>Black</item>
+51 -94
View File
@@ -1,6 +1,7 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<resources> <resources>
<!-- GR Theme-->
<color name="md_theme_primary">#4C662B</color> <color name="md_theme_primary">#4C662B</color>
<color name="md_theme_onPrimary">#FFFFFF</color> <color name="md_theme_onPrimary">#FFFFFF</color>
<color name="md_theme_primaryContainer">#CDEDA3</color> <color name="md_theme_primaryContainer">#CDEDA3</color>
@@ -48,100 +49,56 @@
<color name="md_theme_surfaceContainer">#EEEFE3</color> <color name="md_theme_surfaceContainer">#EEEFE3</color>
<color name="md_theme_surfaceContainerHigh">#E8E9DE</color> <color name="md_theme_surfaceContainerHigh">#E8E9DE</color>
<color name="md_theme_surfaceContainerHighest">#E2E3D8</color> <color name="md_theme_surfaceContainerHighest">#E2E3D8</color>
<color name="md_theme_primary_mediumContrast">#253D05</color>
<color name="md_theme_onPrimary_mediumContrast">#FFFFFF</color> <!-- While Theme-->
<color name="md_theme_primaryContainer_mediumContrast">#5A7539</color> <color name="wh_theme_primary">#5C5C5C</color>
<color name="md_theme_onPrimaryContainer_mediumContrast">#FFFFFF</color> <color name="wh_theme_onPrimary">#FFFFFF</color>
<color name="md_theme_secondary_mediumContrast">#303924</color> <color name="wh_theme_primaryContainer">#747474</color>
<color name="md_theme_onSecondary_mediumContrast">#FFFFFF</color> <color name="wh_theme_onPrimaryContainer">#FEFCFC</color>
<color name="md_theme_secondaryContainer_mediumContrast">#667157</color> <color name="wh_theme_secondary">#5F5E5E</color>
<color name="md_theme_onSecondaryContainer_mediumContrast">#FFFFFF</color> <color name="wh_theme_onSecondary">#FFFFFF</color>
<color name="md_theme_tertiary_mediumContrast">#083D3A</color> <color name="wh_theme_secondaryContainer">#E2DFDE</color>
<color name="md_theme_onTertiary_mediumContrast">#FFFFFF</color> <color name="wh_theme_onSecondaryContainer">#636262</color>
<color name="md_theme_tertiaryContainer_mediumContrast">#477572</color> <color name="wh_theme_tertiary">#5E5B5D</color>
<color name="md_theme_onTertiaryContainer_mediumContrast">#FFFFFF</color> <color name="wh_theme_onTertiary">#FFFFFF</color>
<color name="md_theme_error_mediumContrast">#740006</color> <color name="wh_theme_tertiaryContainer">#777375</color>
<color name="md_theme_onError_mediumContrast">#FFFFFF</color> <color name="wh_theme_onTertiaryContainer">#FFFBFF</color>
<color name="md_theme_errorContainer_mediumContrast">#CF2C27</color> <color name="wh_theme_error">#BA1A1A</color>
<color name="md_theme_onErrorContainer_mediumContrast">#FFFFFF</color> <color name="wh_theme_onError">#FFFFFF</color>
<color name="md_theme_background_mediumContrast">#F9FAEF</color> <color name="wh_theme_errorContainer">#FFDAD6</color>
<color name="md_theme_onBackground_mediumContrast">#1A1C16</color> <color name="wh_theme_onErrorContainer">#93000A</color>
<color name="md_theme_surface_mediumContrast">#F9FAEF</color> <color name="wh_theme_background">#FCF8F8</color>
<color name="md_theme_onSurface_mediumContrast">#0F120C</color> <color name="wh_theme_onBackground">#1C1B1B</color>
<color name="md_theme_surfaceVariant_mediumContrast">#E1E4D5</color> <color name="wh_theme_surface">#FCF8F8</color>
<color name="md_theme_onSurfaceVariant_mediumContrast">#34382D</color> <color name="wh_theme_onSurface">#1C1B1B</color>
<color name="md_theme_outline_mediumContrast">#505449</color> <color name="wh_theme_surfaceVariant">#E0E3E3</color>
<color name="md_theme_outlineVariant_mediumContrast">#6B6F62</color> <color name="wh_theme_onSurfaceVariant">#444748</color>
<color name="md_theme_scrim_mediumContrast">#000000</color> <color name="wh_theme_outline">#747878</color>
<color name="md_theme_inverseSurface_mediumContrast">#2F312A</color> <color name="wh_theme_outlineVariant">#C4C7C7</color>
<color name="md_theme_inverseOnSurface_mediumContrast">#F1F2E6</color> <color name="wh_theme_scrim">#000000</color>
<color name="md_theme_inversePrimary_mediumContrast">#B1D18A</color> <color name="wh_theme_inverseSurface">#313030</color>
<color name="md_theme_primaryFixed_mediumContrast">#5A7539</color> <color name="wh_theme_inverseOnSurface">#F4F0EF</color>
<color name="md_theme_onPrimaryFixed_mediumContrast">#FFFFFF</color> <color name="wh_theme_inversePrimary">#C7C6C6</color>
<color name="md_theme_primaryFixedDim_mediumContrast">#425C23</color> <color name="wh_theme_primaryFixed">#E3E2E2</color>
<color name="md_theme_onPrimaryFixedVariant_mediumContrast">#FFFFFF</color> <color name="wh_theme_onPrimaryFixed">#1B1C1C</color>
<color name="md_theme_secondaryFixed_mediumContrast">#667157</color> <color name="wh_theme_primaryFixedDim">#C7C6C6</color>
<color name="md_theme_onSecondaryFixed_mediumContrast">#FFFFFF</color> <color name="wh_theme_onPrimaryFixedVariant">#464747</color>
<color name="md_theme_secondaryFixedDim_mediumContrast">#4E5840</color> <color name="wh_theme_secondaryFixed">#E5E2E1</color>
<color name="md_theme_onSecondaryFixedVariant_mediumContrast">#FFFFFF</color> <color name="wh_theme_onSecondaryFixed">#1B1C1C</color>
<color name="md_theme_tertiaryFixed_mediumContrast">#477572</color> <color name="wh_theme_secondaryFixedDim">#C8C6C5</color>
<color name="md_theme_onTertiaryFixed_mediumContrast">#FFFFFF</color> <color name="wh_theme_onSecondaryFixedVariant">#474746</color>
<color name="md_theme_tertiaryFixedDim_mediumContrast">#2E5C59</color> <color name="wh_theme_tertiaryFixed">#E7E1E3</color>
<color name="md_theme_onTertiaryFixedVariant_mediumContrast">#FFFFFF</color> <color name="wh_theme_onTertiaryFixed">#1D1B1D</color>
<color name="md_theme_surfaceDim_mediumContrast">#C6C7BD</color> <color name="wh_theme_tertiaryFixedDim">#CBC5C7</color>
<color name="md_theme_surfaceBright_mediumContrast">#F9FAEF</color> <color name="wh_theme_onTertiaryFixedVariant">#494648</color>
<color name="md_theme_surfaceContainerLowest_mediumContrast">#FFFFFF</color> <color name="wh_theme_surfaceDim">#DDD9D8</color>
<color name="md_theme_surfaceContainerLow_mediumContrast">#F3F4E9</color> <color name="wh_theme_surfaceBright">#FCF8F8</color>
<color name="md_theme_surfaceContainer_mediumContrast">#E8E9DE</color> <color name="wh_theme_surfaceContainerLowest">#FFFFFF</color>
<color name="md_theme_surfaceContainerHigh_mediumContrast">#DCDED3</color> <color name="wh_theme_surfaceContainerLow">#F7F3F2</color>
<color name="md_theme_surfaceContainerHighest_mediumContrast">#D1D3C8</color> <color name="wh_theme_surfaceContainer">#F1EDEC</color>
<color name="md_theme_primary_highContrast">#1C3200</color> <color name="wh_theme_surfaceContainerHigh">#EBE7E7</color>
<color name="md_theme_onPrimary_highContrast">#FFFFFF</color> <color name="wh_theme_surfaceContainerHighest">#E5E2E1</color>
<color name="md_theme_primaryContainer_highContrast">#375018</color>
<color name="md_theme_onPrimaryContainer_highContrast">#FFFFFF</color>
<color name="md_theme_secondary_highContrast">#262F1A</color>
<color name="md_theme_onSecondary_highContrast">#FFFFFF</color>
<color name="md_theme_secondaryContainer_highContrast">#434C35</color>
<color name="md_theme_onSecondaryContainer_highContrast">#FFFFFF</color>
<color name="md_theme_tertiary_highContrast">#003230</color>
<color name="md_theme_onTertiary_highContrast">#FFFFFF</color>
<color name="md_theme_tertiaryContainer_highContrast">#21504E</color>
<color name="md_theme_onTertiaryContainer_highContrast">#FFFFFF</color>
<color name="md_theme_error_highContrast">#600004</color>
<color name="md_theme_onError_highContrast">#FFFFFF</color>
<color name="md_theme_errorContainer_highContrast">#98000A</color>
<color name="md_theme_onErrorContainer_highContrast">#FFFFFF</color>
<color name="md_theme_background_highContrast">#F9FAEF</color>
<color name="md_theme_onBackground_highContrast">#1A1C16</color>
<color name="md_theme_surface_highContrast">#F9FAEF</color>
<color name="md_theme_onSurface_highContrast">#000000</color>
<color name="md_theme_surfaceVariant_highContrast">#E1E4D5</color>
<color name="md_theme_onSurfaceVariant_highContrast">#000000</color>
<color name="md_theme_outline_highContrast">#2A2D24</color>
<color name="md_theme_outlineVariant_highContrast">#474B40</color>
<color name="md_theme_scrim_highContrast">#000000</color>
<color name="md_theme_inverseSurface_highContrast">#2F312A</color>
<color name="md_theme_inverseOnSurface_highContrast">#FFFFFF</color>
<color name="md_theme_inversePrimary_highContrast">#B1D18A</color>
<color name="md_theme_primaryFixed_highContrast">#375018</color>
<color name="md_theme_onPrimaryFixed_highContrast">#FFFFFF</color>
<color name="md_theme_primaryFixedDim_highContrast">#213903</color>
<color name="md_theme_onPrimaryFixedVariant_highContrast">#FFFFFF</color>
<color name="md_theme_secondaryFixed_highContrast">#434C35</color>
<color name="md_theme_onSecondaryFixed_highContrast">#FFFFFF</color>
<color name="md_theme_secondaryFixedDim_highContrast">#2C3620</color>
<color name="md_theme_onSecondaryFixedVariant_highContrast">#FFFFFF</color>
<color name="md_theme_tertiaryFixed_highContrast">#21504E</color>
<color name="md_theme_onTertiaryFixed_highContrast">#FFFFFF</color>
<color name="md_theme_tertiaryFixedDim_highContrast">#033937</color>
<color name="md_theme_onTertiaryFixedVariant_highContrast">#FFFFFF</color>
<color name="md_theme_surfaceDim_highContrast">#B8BAAF</color>
<color name="md_theme_surfaceBright_highContrast">#F9FAEF</color>
<color name="md_theme_surfaceContainerLowest_highContrast">#FFFFFF</color>
<color name="md_theme_surfaceContainerLow_highContrast">#F1F2E6</color>
<color name="md_theme_surfaceContainer_highContrast">#E2E3D8</color>
<color name="md_theme_surfaceContainerHigh_highContrast">#D4D5CA</color>
<color name="md_theme_surfaceContainerHighest_highContrast">#C6C7BD</color>
<color name="disabled">@color/md_light_disabled</color> <color name="disabled">@color/md_light_disabled</color>
+1
View File
@@ -1219,4 +1219,5 @@
<string name="hide_manga_title">隐藏漫画列表标题</string> <string name="hide_manga_title">隐藏漫画列表标题</string>
<string name="refresh_explore">刷新发现</string> <string name="refresh_explore">刷新发现</string>
<string name="ungroup">未分组</string> <string name="ungroup">未分组</string>
<string name="dynamic_colors">动态取色</string>
</resources> </resources>
-200
View File
@@ -1,200 +0,0 @@
<resources xmlns:tools="http://schemas.android.com/tools">
//**************************************************************Theme******************************************************************************//
<!-- 亮色主题 -->
<style name="AppTheme.Light" parent="Base.AppTheme">
<item name="actionBarStyle">@style/AppTheme.AppBarOverlay.Light</item>
</style>
<!-- 暗色主题 -->
<style name="AppTheme.Dark" parent="Base.AppTheme">
<item name="actionBarStyle">@style/AppTheme.AppBarOverlay.Dark</item>
</style>
<!-- 透明主题 -->
<style name="AppTheme.Transparent" parent="Base.AppTheme">
<item name="android:windowIsTranslucent">true</item>
<item name="android:windowBackground">@android:color/transparent</item>
</style>
<!-- Welcome主题 -->
<style name="AppTheme.Welcome" parent="Base.AppTheme">
<item name="android:windowNoTitle">true</item>
</style>
<!-- Base application theme. -->
<style name="Base.AppTheme" parent="Theme.Material3.DayNight.NoActionBar">
<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="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="android:windowDrawsSystemBarBackgrounds">true</item>
<item name="android:windowLightStatusBar">true</item>
<item name="tabStyle">@style/Widget.App.TabLayout</item>
</style>
<style name="Widget.App.TabLayout" parent="Widget.Material3.TabLayout">
<item name="tabBackground">@android:color/transparent</item>
<item name="tabIndicator">@drawable/selected_chip_background</item>
<item name="tabIndicatorColor">?attr/colorSecondaryContainer</item>
<item name="tabIndicatorFullWidth">true</item>
<item name="tabIndicatorGravity">stretch</item>
<item name="tabMinWidth">0dp</item>
<item name="tabMode">scrollable</item>
<item name="tabGravity">start</item>
<item name="tabPaddingEnd">12dp</item>
<item name="tabPaddingStart">12dp</item>
<item name="tabRippleColor">@android:color/transparent</item>
<item name="tabSelectedTextColor">?attr/colorOnSecondaryContainer</item>
<item name="tabTextColor">?attr/colorOnSurfaceVariant</item>
<item name="tabTextAppearance">@style/TabTextAppearance</item>
</style>
<style name="TabTextAppearance" parent="TextAppearance.Design.Tab">
<item name="textAllCaps">false</item>
<item name="android:textAllCaps">false</item>
<item name="android:textSize">15sp</item>
<item name="android:textFontWeight" tools:targetApi="p">500</item>
</style>
<style name="PreferenceDialogTheme" parent="Theme.Material3.DayNight">
</style>
<style name="AppTheme.AppBarOverlay.Light" parent="ThemeOverlay.Material3.Light">
<item name="android:windowLightStatusBar">true</item>
</style>
<style name="AppTheme.AppBarOverlay.Dark" parent="ThemeOverlay.Material3.Dark">
<item name="android:windowLightStatusBar">false</item>
</style>
<style name="ChapterNameText">
<item name="android:textSize">16sp</item>
<item name="android:textStyle">bold</item>
<item name="android:paddingBottom">4dp</item>
<item name="android:maxLines">2</item>
</style>
//**********System Style******************//
<style name="Style.NavigationView" parent="android:Widget">
</style>
<style name="Style.Toolbar.NoPadding" parent="Base.Widget.AppCompat.Toolbar">
</style>
<style name="Style.MenuItemText" parent="TextAppearance.Material3.BodyLarge">
</style>
<!-- <style name="Style.PopupMenu" parent="Widget.Material3.PopupMenu.ListPopupWindow">-->
<!--&lt;!&ndash; <item name="android:popupBackground">@drawable/bg_popup_menu</item>&ndash;&gt;-->
<!-- <item name="android:radius">30dp</item>-->
<!-- </style>-->
<style name="Activity.Permission" parent="Theme.Material3.DayNight.NoActionBar">
<item name="android:windowBackground">@android:color/transparent</item>
<item name="android:windowDisablePreview">true</item>
<item name="android:windowIsTranslucent">true</item>
<item name="android:windowTranslucentStatus">true</item>
<item name="android:windowAnimationStyle">@null</item>
</style>
<style name="ToolbarTitle" parent="@style/TextAppearance.Material3.ActionBar.Title">
</style>
//*******************Widget Style**********************************//
<style name="Style.Shadow.Top" parent="android:Widget">
<item name="android:layout_width">match_parent</item>
<item name="android:layout_height">@dimen/shadow_height</item>
<item name="android:background">@drawable/bg_shadow_top</item>
</style>
<style name="Style.Shadow.Bottom" parent="android:Widget">
<item name="android:layout_width">match_parent</item>
<item name="android:layout_height">@dimen/shadow_height</item>
<item name="android:background">@drawable/bg_shadow_bottom</item>
</style>
<style name="Style.Line" parent="android:Widget">
<item name="android:layout_width">match_parent</item>
<item name="android:layout_height">0.5dp</item>
<item name="android:background">@color/divider</item>
</style>
<style name="Style.Text.Primary.Normal" parent="android:Widget">
<item name="android:layout_width">match_parent</item>
<item name="android:layout_height">wrap_content</item>
<item name="android:textSize">@dimen/font_size_normal</item>
<item name="android:textColor">#000</item>
<item name="android:includeFontPadding">false</item>
</style>
<style name="Style.Text.Primary.Normal.Wrap">
<item name="android:layout_width">wrap_content</item>
</style>
<style name="Style.Text.Second.Normal" parent="android:Widget">
<item name="android:layout_width">match_parent</item>
<item name="android:layout_height">wrap_content</item>
<item name="android:textSize">@dimen/font_size_normal</item>
<item name="android:textColor">#676767</item>
<item name="android:includeFontPadding">false</item>
</style>
<style name="Style.Text.Second.Normal.Wrap">
<item name="android:layout_width">wrap_content</item>
</style>
</resources>
+132
View File
@@ -0,0 +1,132 @@
<resources xmlns:tools="http://schemas.android.com/tools">
//**************************************************************Theme******************************************************************************//
<!-- 亮色主题 -->
<style name="AppTheme.Light" parent="Base.AppTheme">
<item name="android:windowLightStatusBar">true</item>
</style>
<!-- 暗色主题 -->
<style name="AppTheme.Dark" parent="Base.AppTheme">
<item name="android:windowLightStatusBar">false</item>
</style>
<!-- 透明主题 -->
<style name="AppTheme.Transparent" parent="Base.AppTheme">
<item name="android:windowIsTranslucent">true</item>
<item name="android:windowBackground">@android:color/transparent</item>
</style>
<!-- Welcome主题 -->
<style name="AppTheme.Welcome" parent="Base.AppTheme">
<item name="android:windowNoTitle">true</item>
</style>
<style name="Base.AppTheme" parent="Theme.Material3.DynamicColors.DayNight.NoActionBar">
<item name="android:windowDrawsSystemBarBackgrounds">true</item>
<item name="android:windowLightStatusBar">true</item>
<item name="tabStyle">@style/Widget.App.TabLayout</item>
<item name="popupMenuBackground">@drawable/popup_background</item>
<item name="alertDialogTheme">@style/AppTheme.AlertDialog</item>
</style>
<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="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>
</style>
<style name="Theme.Base.WH" parent="Base.AppTheme">
<item name="colorPrimary">@color/wh_theme_primary</item>
<item name="colorOnPrimary">@color/wh_theme_onPrimary</item>
<item name="colorPrimaryContainer">@color/wh_theme_primaryContainer</item>
<item name="colorOnPrimaryContainer">@color/wh_theme_onPrimaryContainer</item>
<item name="colorSecondary">@color/wh_theme_secondary</item>
<item name="colorOnSecondary">@color/wh_theme_onSecondary</item>
<item name="colorSecondaryContainer">@color/wh_theme_secondaryContainer</item>
<item name="colorOnSecondaryContainer">@color/wh_theme_onSecondaryContainer</item>
<item name="colorTertiary">@color/wh_theme_tertiary</item>
<item name="colorOnTertiary">@color/wh_theme_onTertiary</item>
<item name="colorTertiaryContainer">@color/wh_theme_tertiaryContainer</item>
<item name="colorOnTertiaryContainer">@color/wh_theme_onTertiaryContainer</item>
<item name="colorError">@color/wh_theme_error</item>
<item name="colorOnError">@color/wh_theme_onError</item>
<item name="colorErrorContainer">@color/wh_theme_errorContainer</item>
<item name="colorOnErrorContainer">@color/wh_theme_onErrorContainer</item>
<item name="android:colorBackground">@color/wh_theme_background</item>
<item name="colorOnBackground">@color/wh_theme_onBackground</item>
<item name="colorSurface">@color/wh_theme_surface</item>
<item name="colorOnSurface">@color/wh_theme_onSurface</item>
<item name="colorSurfaceVariant">@color/wh_theme_surfaceVariant</item>
<item name="colorOnSurfaceVariant">@color/wh_theme_onSurfaceVariant</item>
<item name="colorOutline">@color/wh_theme_outline</item>
<item name="colorOutlineVariant">@color/wh_theme_outlineVariant</item>
<item name="colorSurfaceInverse">@color/wh_theme_inverseSurface</item>
<item name="colorOnSurfaceInverse">@color/wh_theme_inverseOnSurface</item>
<item name="colorPrimaryInverse">@color/wh_theme_inversePrimary</item>
<item name="colorPrimaryFixed">@color/wh_theme_primaryFixed</item>
<item name="colorOnPrimaryFixed">@color/wh_theme_onPrimaryFixed</item>
<item name="colorPrimaryFixedDim">@color/wh_theme_primaryFixedDim</item>
<item name="colorOnPrimaryFixedVariant">@color/wh_theme_onPrimaryFixedVariant</item>
<item name="colorSecondaryFixed">@color/wh_theme_secondaryFixed</item>
<item name="colorOnSecondaryFixed">@color/wh_theme_onSecondaryFixed</item>
<item name="colorSecondaryFixedDim">@color/wh_theme_secondaryFixedDim</item>
<item name="colorOnSecondaryFixedVariant">@color/wh_theme_onSecondaryFixedVariant</item>
<item name="colorTertiaryFixed">@color/wh_theme_tertiaryFixed</item>
<item name="colorOnTertiaryFixed">@color/wh_theme_onTertiaryFixed</item>
<item name="colorTertiaryFixedDim">@color/wh_theme_tertiaryFixedDim</item>
<item name="colorOnTertiaryFixedVariant">@color/wh_theme_onTertiaryFixedVariant</item>
<item name="colorSurfaceDim">@color/wh_theme_surfaceDim</item>
<item name="colorSurfaceBright">@color/wh_theme_surfaceBright</item>
<item name="colorSurfaceContainerLowest">@color/wh_theme_surfaceContainerLowest</item>
<item name="colorSurfaceContainerLow">@color/wh_theme_surfaceContainerLow</item>
<item name="colorSurfaceContainer">@color/wh_theme_surfaceContainer</item>
<item name="colorSurfaceContainerHigh">@color/wh_theme_surfaceContainerHigh</item>
<item name="colorSurfaceContainerHighest">@color/wh_theme_surfaceContainerHighest</item>
</style>
</resources>
+11 -4
View File
@@ -2,14 +2,22 @@
<androidx.preference.PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" <androidx.preference.PreferenceScreen 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">
<io.legato.kazusa.lib.prefs.NameListPreference
<io.legato.kazusa.lib.prefs.ThemeModePreference
android:defaultValue="0" android:defaultValue="0"
android:entries="@array/theme_mode" android:entries="@array/theme_mode"
android:entryValues="@array/theme_mode_v" android:entryValues="@array/theme_mode_v"
android:key="themeMode" android:key="themeMode"
android:summary="@string/theme_mode_desc"
android:title="@string/theme_mode" android:title="@string/theme_mode"
app:iconSpaceReserved="false" /> android:summary="切换浅色/深色/跟随系统" />
<ListPreference
android:key="app_theme"
android:title="应用主题"
android:summary="喵喵喵"
android:entries="@array/themes_item"
android:entryValues="@array/themes_value"
android:defaultValue="0" />
<io.legato.kazusa.lib.prefs.IconListPreference <io.legato.kazusa.lib.prefs.IconListPreference
android:defaultValue="ic_launcher" android:defaultValue="ic_launcher"
@@ -26,7 +34,6 @@
android:title="@string/welcome_style" android:title="@string/welcome_style"
android:summary="@string/welcome_style_summary" /> 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"