重写主题系统

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
android:name=".ui.welcome.WelcomeActivity"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<!-- 图标1 -->
<activity
<activity-alias
android:name=".ui.welcome.Launcher1"
android:enabled="false"
android:exported="true"
android:icon="@mipmap/launcher1">
android:icon="@mipmap/launcher1"
android:targetActivity=".ui.main.MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</activity-alias>
<!-- 图标2 -->
<activity
<activity-alias
android:name=".ui.welcome.Launcher2"
android:enabled="false"
android:exported="true"
android:icon="@mipmap/launcher2">
android:icon="@mipmap/launcher2"
android:targetActivity=".ui.main.MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</activity-alias>
<!-- 图标3 -->
<activity
<activity-alias
android:name=".ui.welcome.Launcher3"
android:enabled="false"
android:exported="true"
android:icon="@mipmap/launcher3">
android:icon="@mipmap/launcher3"
android:targetActivity=".ui.main.MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</activity-alias>
<!-- 图标4 -->
<activity
<activity-alias
android:name=".ui.welcome.Launcher4"
android:enabled="false"
android:exported="true"
android:icon="@mipmap/launcher4">
android:icon="@mipmap/launcher4"
android:targetActivity=".ui.main.MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</activity-alias>
<!-- 图标5 -->
<activity
<activity-alias
android:name=".ui.welcome.Launcher5"
android:enabled="false"
android:exported="true"
android:icon="@mipmap/launcher5">
android:icon="@mipmap/launcher5"
android:targetActivity=".ui.main.MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</activity-alias>
<!-- 图标6 -->
<activity
<activity-alias
android:name=".ui.welcome.Launcher6"
android:enabled="false"
android:exported="true"
android:icon="@mipmap/launcher6">
android:icon="@mipmap/launcher6"
android:targetActivity=".ui.main.MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</activity-alias>
<!-- 主界面 -->
<activity
android:name=".ui.main.MainActivity"
android:alwaysRetainTaskState="true"
android:configChanges="locale|keyboardHidden|orientation|screenSize|smallestScreenSize|screenLayout|uiMode"
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
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.NotificationManager
import android.content.Context
import android.content.SharedPreferences
import android.content.pm.ActivityInfo
import android.content.pm.ApplicationInfo
import android.content.res.Configuration
@@ -68,7 +69,6 @@ class App : Application() {
override fun onCreate() {
super.onCreate()
DynamicColors.applyToActivitiesIfAvailable(this)
CrashHandler(this)
if (isDebuggable) {
ThreadUtils.setThreadAssertsDisabledForTesting(true)
@@ -17,9 +17,11 @@ import androidx.annotation.RequiresApi
import androidx.appcompat.app.AppCompatActivity
import androidx.viewbinding.ViewBinding
import com.google.android.material.appbar.AppBarLayout
import com.google.android.material.color.DynamicColors
import io.legato.kazusa.R
import io.legato.kazusa.constant.AppConst
import io.legato.kazusa.constant.AppLog
import io.legato.kazusa.constant.PreferKey
import io.legato.kazusa.constant.Theme
import io.legato.kazusa.help.config.ThemeConfig
//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.applyTint
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.toastOnUi
import io.legato.kazusa.utils.windowSize
@@ -70,8 +74,9 @@ abstract class BaseActivity<VB : ViewBinding>(
@SuppressLint("ObsoleteSdkInt")
override fun onCreate(savedInstanceState: Bundle?) {
initTheme()
window.decorView.disableAutoFill()
//initTheme()
super.onCreate(savedInstanceState)
//setupSystemBar()
setContentView(binding.root)
@@ -128,26 +133,10 @@ abstract class BaseActivity<VB : ViewBinding>(
open fun onCompatOptionsItemSelected(item: MenuItem) = super.onOptionsItemSelected(item)
open fun initTheme() {
when (theme) {
Theme.Transparent -> setTheme(R.style.AppTheme_Transparent)
Theme.Dark -> {
setTheme(R.style.AppTheme_Dark)
//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)
}
when (getPrefString("app_theme", "0")) {
"0" -> DynamicColors.applyToActivitiesIfAvailable(application)
"1" -> setTheme(R.style.Theme_Base_GR)
"2" -> setTheme(R.style.Theme_Base_WH)
}
}
@@ -179,4 +179,7 @@ object PreferKey {
const val showReadTitleAddition = "showReadTitleAddition"
const val readBarStyleFollowPage = "readBarStyleFollowPage"
const val contentSelectSpeakMod = "contentReadAloudMod"
const val dynamicColors = "dynamicColors"
const val themePref = "themePref"
}
@@ -1,5 +1,5 @@
package io.legato.kazusa.constant
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) {
"1" -> false
"2" -> true
"3" -> false
else -> sysConfiguration.isNightMode
}
set(value) {
@@ -42,7 +42,6 @@ object ThemeConfig {
}
fun getTheme() = when {
AppConfig.isEInkMode -> Theme.EInk
AppConfig.isNightTheme -> Theme.Dark
else -> Theme.Light
}
@@ -216,58 +215,7 @@ object ThemeConfig {
* 更新主题
*/
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
@@ -6,20 +6,22 @@ import android.widget.TextView
import androidx.preference.ListPreference
import androidx.preference.PreferenceViewHolder
import io.legato.kazusa.R
import androidx.core.content.withStyledAttributes
//import io.legado.app.lib.theme.bottomBackground
//import io.legado.app.lib.theme.getPrimaryTextColor
class NameListPreference(context: Context, attrs: AttributeSet) : ListPreference(context, attrs) {
private val isBottomBackground: Boolean
private var isBottomBackground: Boolean = false
init {
layoutResource = R.layout.view_preference
widgetLayoutResource = R.layout.item_fillet_text
val typedArray = context.obtainStyledAttributes(attrs, R.styleable.Preference)
isBottomBackground = typedArray.getBoolean(R.styleable.Preference_isBottomBackground, false)
typedArray.recycle()
context.withStyledAttributes(attrs, R.styleable.Preference) {
isBottomBackground = getBoolean(R.styleable.Preference_isBottomBackground, false)
}
}
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)
onBindView(holder)
onLongClick?.let { listener ->
@@ -6,32 +6,32 @@ import androidx.appcompat.widget.SwitchCompat
import androidx.preference.PreferenceViewHolder
import androidx.preference.SwitchPreferenceCompat
import io.legato.kazusa.R
import androidx.core.content.withStyledAttributes
//import io.legado.app.lib.theme.accentColor
class SwitchPreference(context: Context, attrs: AttributeSet) :
SwitchPreferenceCompat(context, attrs) {
private val isBottomBackground: Boolean
private var isBottomBackground: Boolean = false
private var onLongClick: ((preference: SwitchPreference) -> Boolean)? = null
init {
layoutResource = R.layout.view_preference
widgetLayoutResource = R.layout.preference_widget_material_switch
val typedArray = context.obtainStyledAttributes(attrs, R.styleable.Preference)
isBottomBackground = typedArray.getBoolean(R.styleable.Preference_isBottomBackground, false)
typedArray.recycle()
context.withStyledAttributes(attrs, R.styleable.Preference) {
isBottomBackground = getBoolean(R.styleable.Preference_isBottomBackground, false)
}
}
override fun onBindViewHolder(holder: PreferenceViewHolder) {
val v = Preference.bindView<SwitchCompat>(
Preference.bindView<SwitchCompat>(
context, holder, icon, title, summary,
widgetLayoutResource,
androidx.preference.R.id.switchWidget,
isBottomBackground = isBottomBackground
)
if (v is SwitchCompat && !v.isInEditMode) {
//v.applyTint(context.accentColor)
}
super.onBindViewHolder(holder)
onLongClick?.let { listener ->
holder.itemView.setOnLongClickListener {
@@ -52,6 +52,7 @@ class AllBookmarkActivity : VMBaseActivity<ActivityAllBookmarkBinding, AllBookma
}
private fun initView() {
setSupportActionBar(binding.topBar)
binding.recyclerView.addItemDecoration(BookmarkDecoration(this,adapter))
binding.recyclerView.adapter = adapter
binding.recyclerView.applyNavigationBarPadding()
@@ -28,7 +28,7 @@ class ConfigActivity : VMBaseActivity<ActivityConfigBinding, ConfigViewModel>()
override fun setTitle(resId: Int) {
super.setTitle(resId)
binding.titleBar.setTitle(resId)
binding.topBar.setTitle(resId)
}
inline fun <reified T : Fragment> replaceFragment(configTag: String) {
@@ -6,6 +6,7 @@ import android.view.View
import android.view.ViewGroup
import androidx.lifecycle.lifecycleScope
import io.legato.kazusa.R
import io.legato.kazusa.base.BaseBottomSheetDialogFragment
import io.legato.kazusa.base.BaseDialogFragment
import io.legato.kazusa.databinding.DialogCoverRuleConfigBinding
//import io.legado.app.lib.theme.primaryColor
@@ -19,13 +20,13 @@ import kotlinx.coroutines.launch
import kotlinx.coroutines.withContext
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)
override fun onStart() {
super.onStart()
setLayout(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT)
}
override fun onFragmentCreated(view: View, savedInstanceState: Bundle?) {
@@ -7,6 +7,7 @@ import android.os.Build
import android.os.Bundle
import android.view.View
import android.widget.SeekBar
import androidx.preference.ListPreference
import androidx.preference.Preference
import androidx.preference.PreferenceFragmentCompat
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.prefs.ColorPreference
import io.legato.kazusa.lib.prefs.NameListPreference
import io.legato.kazusa.lib.prefs.ThemeModePreference
//import io.legado.app.lib.theme.primaryColor
import io.legato.kazusa.ui.widget.number.NumberPickerDialog
import io.legato.kazusa.ui.widget.seekbar.SeekBarChangeListener
@@ -71,6 +73,7 @@ class ThemeConfigFragment : PreferenceFragmentCompat(),
if (Build.VERSION.SDK_INT < 26) {
preferenceScreen.removePreferenceRecursively(PreferKey.launcherIcon)
}
upPreferenceSummary(PreferKey.themePref)
upPreferenceSummary(PreferKey.bgImage, getPrefString(PreferKey.bgImage))
upPreferenceSummary(PreferKey.bgImageN, getPrefString(PreferKey.bgImageN))
//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 { _, _ ->
ThemeConfig.applyDayNight(requireContext())
true
}
}
findPreference<ListPreference>(PreferKey.themePref)?.let {
it.setOnPreferenceChangeListener { _, _ ->
val intent = requireActivity().intent
requireActivity().finish()
startActivity(intent)
true
}
}
}
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
@@ -126,6 +137,11 @@ class ThemeConfigFragment : PreferenceFragmentCompat(),
PreferKey.launcherIcon -> LauncherIconHelp.changeIcon(getPrefString(key))
//PreferKey.transparentStatusBar -> recreateActivities()
//PreferKey.immNavigationBar -> recreateActivities()
PreferKey.themePref -> {
val intent = requireActivity().intent
requireActivity().finish()
startActivity(intent)
}
PreferKey.cPrimary,
PreferKey.cAccent,
PreferKey.cBackground,
@@ -139,9 +155,11 @@ class ThemeConfigFragment : PreferenceFragmentCompat(),
PreferKey.cNBBackground -> {
upTheme(true)
}
PreferKey.themeMode -> {
ThemeConfig.applyDayNight(requireContext())
}
PreferKey.bgImage,
PreferKey.bgImageN -> {
upPreferenceSummary(key, getPrefString(key))
@@ -27,7 +27,7 @@ open class WelcomeActivity : BaseActivity<ActivityWelcomeBinding>() {
if (intent.flags and Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT != 0) {
finish()
} else {
binding.root.postDelayed(600) { startMainActivity() }
binding.root.postDelayed(100) { startMainActivity() }
}
}
@@ -1,23 +1,42 @@
<?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"
android:layout_width="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:layout_width="match_parent"
android:layout_height="wrap_content"
app:layout_constraintTop_toTopOf="parent"
app:title="@string/all_bookmark" />
android:background="@color/transparent"
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
android:id="@+id/recycler_view"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_height="match_parent"
android:clipToPadding="false"
app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintTop_toBottomOf="@+id/title_bar" />
app:layout_behavior="@string/appbar_scrolling_view_behavior" />
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.coordinatorlayout.widget.CoordinatorLayout>
@@ -17,7 +17,7 @@
android:id="@+id/app_bar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/transparent"
android:background="@android:color/transparent"
android:fitsSystemWindows="true">
<com.google.android.material.appbar.CollapsingToolbarLayout
+37 -9
View File
@@ -1,21 +1,49 @@
<?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"
android:orientation="vertical"
android:layout_width="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:layout_width="match_parent"
android:layout_height="wrap_content"
app:layout_constraintTop_toTopOf="parent"
app:title="设置" />
android:fitsSystemWindows="true"
app:liftOnScroll="false"
android:stateListAnimator="@null">
<LinearLayout
android:id="@+id/configFrameLayout"
<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"
android:orientation="vertical" />
app:layout_behavior="@string/appbar_scrolling_view_behavior"
android:fillViewport="true">
</LinearLayout>
<LinearLayout
android:id="@+id/configFrameLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical" />
</androidx.core.widget.NestedScrollView>
</androidx.coordinatorlayout.widget.CoordinatorLayout>
@@ -16,14 +16,15 @@
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingVertical="8dp"
android:paddingHorizontal="16dp">
<TextView
android:id="@+id/tv_book_name"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:padding="6dp"
android:singleLine="true"
android:layout_marginBottom="4dp"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toLeftOf="@+id/tv_remove"
app:layout_constraintTop_toTopOf="parent"
@@ -34,7 +35,7 @@
android:id="@+id/tv_reading_time"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:padding="6dp"
style="@style/ChapterNameText"
android:singleLine="true"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toLeftOf="@+id/tv_remove"
@@ -46,9 +47,8 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
style="@style/Widget.Material3.Button.IconButton.Filled.Tonal"
android:padding="6dp"
app:icon="@drawable/ic_clear_all"
android:text="@string/clear"
android:text="清除所有"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent" />
@@ -59,7 +59,6 @@
android:id="@+id/recycler_view"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingHorizontal="16dp"
android:clipToPadding="false"
app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager" />
@@ -32,7 +32,7 @@
android:layout_height="wrap_content"
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:layout_width="match_parent"
android:layout_height="wrap_content"
@@ -45,7 +45,7 @@
android:layout_height="wrap_content"
android:hint="@string/group">
<io.legato.kazusa.lib.theme.view.ThemeEditText
<com.google.android.material.textfield.TextInputEditText
android:id="@+id/et_group"
android:layout_width="match_parent"
android:layout_height="wrap_content"
@@ -58,7 +58,7 @@
android:layout_height="wrap_content"
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:layout_width="match_parent"
android:layout_height="wrap_content"
@@ -94,7 +94,7 @@
android:layout_height="wrap_content"
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:layout_width="match_parent"
android:layout_height="wrap_content"
@@ -130,7 +130,7 @@
android:layout_height="wrap_content"
android:hint="@string/replace_scope">
<io.legato.kazusa.lib.theme.view.ThemeEditText
<com.google.android.material.textfield.TextInputEditText
android:id="@+id/et_scope"
android:layout_width="match_parent"
android:layout_height="wrap_content"
@@ -143,7 +143,7 @@
android:layout_height="wrap_content"
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:layout_width="match_parent"
android:layout_height="wrap_content"
@@ -156,7 +156,7 @@
android:layout_height="wrap_content"
android:hint="@string/timeout_millisecond">
<io.legato.kazusa.lib.theme.view.ThemeEditText
<com.google.android.material.textfield.TextInputEditText
android:id="@+id/et_timeout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
@@ -4,24 +4,41 @@
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
android:orientation="vertical"
android:paddingHorizontal="16dp"
android:paddingVertical="8dp">
<androidx.appcompat.widget.Toolbar
android:id="@+id/tool_bar"
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:theme="?attr/actionBarStyle"
app:title="@string/check_source_config"
app:titleTextAppearance="@style/ToolbarTitle" />
android:orientation="vertical"
android:gravity="center"
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_height="wrap_content"
android:paddingLeft="12dp"
android:paddingRight="12dp"
android:paddingTop="3dp">
android:paddingTop="8dp">
<io.legato.kazusa.lib.theme.view.ThemeEditText
<com.google.android.material.textfield.TextInputEditText
android:id="@+id/check_source_timeout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
@@ -29,43 +46,42 @@
android:digits="1234567890"
tools:ignore="SpeakableTextPresentCheck,TouchTargetSizeCheck" />
</io.legato.kazusa.ui.widget.text.TextInputLayout>
</com.google.android.material.textfield.TextInputLayout>
<io.legato.kazusa.ui.widget.text.AccentTextView
android:paddingLeft="12dp"
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingVertical="8dp"
android:text="@string/check_source_item" />
<com.google.android.flexbox.FlexboxLayout
android:layout_width="match_parent"
android:paddingLeft="12dp"
android:paddingRight="12dp"
android:layout_height="wrap_content"
app:flexWrap="wrap"
app:justifyContent="space_between">
<io.legato.kazusa.lib.theme.view.ThemeCheckBox
<com.google.android.material.checkbox.MaterialCheckBox
android:id="@+id/check_search"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/search" />
<io.legato.kazusa.lib.theme.view.ThemeCheckBox
<com.google.android.material.checkbox.MaterialCheckBox
android:id="@+id/check_discovery"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/discovery" />
<io.legato.kazusa.lib.theme.view.ThemeCheckBox
<com.google.android.material.checkbox.MaterialCheckBox
android:id="@+id/check_info"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
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:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/chapter_list" />
<io.legato.kazusa.lib.theme.view.ThemeCheckBox
<com.google.android.material.checkbox.MaterialCheckBox
android:id="@+id/check_content"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
@@ -76,23 +92,22 @@
<com.google.android.flexbox.FlexboxLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingLeft="12dp"
android:paddingRight="12dp"
app:justifyContent="flex_end">
<io.legato.kazusa.ui.widget.text.AccentTextView
<com.google.android.material.button.MaterialButton
android:id="@+id/tv_cancel"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="12dp"
style="@style/Widget.Material3.Button.TonalButton"
android:layout_marginEnd="8dp"
android:text="@string/cancel"
tools:ignore="RtlHardcoded" />
<io.legato.kazusa.ui.widget.text.AccentTextView
<com.google.android.material.button.MaterialButton
android:id="@+id/tv_ok"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="12dp"
style="@style/Widget.Material3.Button.TonalButton"
android:text="@string/ok"
tools:ignore="RtlHardcoded" />
@@ -6,13 +6,30 @@
xmlns:tools="http://schemas.android.com/tools"
android:orientation="vertical">
<androidx.appcompat.widget.Toolbar
android:id="@+id/tool_bar"
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:theme="?attr/actionBarStyle"
app:title="@string/cover_config"
app:titleTextAppearance="@style/ToolbarTitle" />
android:orientation="vertical"
android:gravity="center"
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
android:layout_width="match_parent"
@@ -25,39 +42,39 @@
android:orientation="vertical"
android:padding="16dp">
<io.legato.kazusa.lib.theme.view.ThemeCheckBox
<com.google.android.material.checkbox.MaterialCheckBox
android:id="@+id/cb_enable"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/enable" />
<io.legato.kazusa.ui.widget.text.TextInputLayout
<com.google.android.material.textfield.TextInputLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingTop="3dp">
<io.legato.kazusa.lib.theme.view.ThemeEditText
<com.google.android.material.textfield.TextInputEditText
android:id="@+id/edit_search_url"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@string/r_search_url"
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_height="wrap_content"
android:paddingTop="3dp">
<io.legato.kazusa.lib.theme.view.ThemeEditText
<com.google.android.material.textfield.TextInputEditText
android:id="@+id/edit_cover_url_rule"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@string/rule_cover_url"
tools:ignore="SpeakableTextPresentCheck,TouchTargetSizeCheck" />
</io.legato.kazusa.ui.widget.text.TextInputLayout>
</com.google.android.material.textfield.TextInputLayout>
</LinearLayout>
@@ -71,11 +88,11 @@
app:flexWrap="wrap"
app:justifyContent="space_between">
<io.legato.kazusa.ui.widget.text.AccentTextView
<com.google.android.material.button.MaterialButton
android:id="@+id/tv_footer_left"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="12dp"
style="@style/Widget.Material3.Button.TonalButton"
android:text="@string/btn_default_s"
tools:ignore="RtlHardcoded" />
@@ -84,20 +101,20 @@
android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView
<com.google.android.material.button.MaterialButton
android:id="@+id/tv_cancel"
android:layout_width="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:textColor="@color/secondaryText"
tools:ignore="RtlHardcoded" />
<io.legato.kazusa.ui.widget.text.AccentTextView
<com.google.android.material.button.MaterialButton
android:id="@+id/tv_ok"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="12dp"
style="@style/Widget.Material3.Button.TonalButton"
android:text="@string/ok"
tools:ignore="RtlHardcoded" />
@@ -24,49 +24,49 @@
android:orientation="vertical"
android:padding="16dp">
<io.legato.kazusa.ui.widget.text.TextInputLayout
<com.google.android.material.textfield.TextInputLayout
android:layout_width="match_parent"
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:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@string/upload_url"
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_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:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@string/download_url_rule"
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_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:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@string/summary"
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:layout_width="match_parent"
android:layout_height="wrap_content"
@@ -80,16 +80,15 @@
<com.google.android.flexbox.FlexboxLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingLeft="12dp"
android:paddingRight="12dp"
android:paddingHorizontal="16dp"
app:flexWrap="wrap"
app:justifyContent="space_between">
<io.legato.kazusa.ui.widget.text.AccentTextView
<com.google.android.material.button.MaterialButton
android:id="@+id/tv_footer_left"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="12dp"
style="@style/Widget.Material3.Button.TonalButton"
android:text="@string/test"
tools:ignore="RtlHardcoded" />
@@ -98,19 +97,20 @@
android:layout_height="wrap_content"
android:orientation="horizontal">
<io.legato.kazusa.ui.widget.text.AccentTextView
<com.google.android.material.button.MaterialButton
android:id="@+id/tv_cancel"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="12dp"
style="@style/Widget.Material3.Button.TonalButton"
android:layout_marginEnd="8dp"
android:text="@string/cancel"
tools:ignore="RtlHardcoded" />
<io.legato.kazusa.ui.widget.text.AccentTextView
<com.google.android.material.button.MaterialButton
android:id="@+id/tv_ok"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="12dp"
style="@style/Widget.Material3.Button.TonalButton"
android:text="@string/ok"
tools:ignore="RtlHardcoded" />
-1
View File
@@ -24,7 +24,6 @@
app:title="@string/login"
app:displayHomeAsUp="false"
app:fitStatusBar="false"
app:popupTheme="@style/AppTheme.PopupOverlay"
app:titleTextAppearance="@style/ToolbarTitle" />
<androidx.core.widget.NestedScrollView
@@ -11,7 +11,6 @@
android:layout_height="wrap_content"
android:elevation="5dp"
android:theme="?attr/actionBarStyle"
app:popupTheme="@style/AppTheme.PopupOverlay"
app:title="跳转确认"
app:titleTextAppearance="@style/ToolbarTitle" />
@@ -20,7 +20,6 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:theme="?attr/actionBarStyle"
app:popupTheme="@style/AppTheme.PopupOverlay"
app:title="@string/favorite"
app:titleTextAppearance="@style/ToolbarTitle" />
@@ -14,7 +14,6 @@
app:displayHomeAsUp="false"
app:fitStatusBar="false"
app:layout_constraintTop_toTopOf="parent"
app:popupTheme="@style/AppTheme.PopupOverlay"
app:title="@string/search_scope"
app:titleTextAppearance="@style/ToolbarTitle" />
@@ -14,7 +14,6 @@
app:attachToActivity="false"
app:contentLayout="@layout/view_search"
app:fitStatusBar="false"
app:popupTheme="@style/AppTheme.PopupOverlay"
app:titleTextAppearance="@style/ToolbarTitle"
tools:ignore="RtlHardcoded,RtlSymmetry" />
@@ -10,7 +10,6 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:theme="?attr/actionBarStyle"
app:popupTheme="@style/AppTheme.PopupOverlay"
app:titleTextAppearance="@style/ToolbarTitle"
app:layout_constraintTop_toTopOf="parent" />
+1 -2
View File
@@ -11,8 +11,7 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:theme="?attr/actionBarStyle"
app:titleTextAppearance="@style/ToolbarTitle"
app:popupTheme="@style/AppTheme.PopupOverlay" />
app:titleTextAppearance="@style/ToolbarTitle" />
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/recycler_view"
@@ -2,7 +2,7 @@
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="wrap_content"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="16dp">
@@ -20,7 +20,6 @@
android:theme="?attr/actionBarStyle"
app:displayHomeAsUp="false"
app:fitStatusBar="false"
app:popupTheme="@style/AppTheme.PopupOverlay"
app:title="@string/txt_toc_rule"
app:titleTextAppearance="@style/ToolbarTitle" />
@@ -10,7 +10,6 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:theme="?attr/actionBarStyle"
app:popupTheme="@style/AppTheme.PopupOverlay"
app:titleTextAppearance="@style/ToolbarTitle" />
<io.legato.kazusa.ui.widget.text.ScrollTextView
@@ -23,7 +23,6 @@
app:displayHomeAsUp="false"
app:fitStatusBar="false"
app:title="Set variable"
app:popupTheme="@style/AppTheme.PopupOverlay"
app:titleTextAppearance="@style/ToolbarTitle" />
<io.legato.kazusa.ui.widget.text.AccentTextView
@@ -12,7 +12,6 @@
android:layout_height="wrap_content"
android:elevation="5dp"
android:theme="?attr/actionBarStyle"
app:popupTheme="@style/AppTheme.PopupOverlay"
app:title="@string/input_verification_code"
app:titleTextAppearance="@style/ToolbarTitle" />
@@ -25,7 +25,6 @@
app:title="@string/server_config"
app:displayHomeAsUp="false"
app:fitStatusBar="false"
app:popupTheme="@style/AppTheme.PopupOverlay"
app:titleTextAppearance="@style/ToolbarTitle" />
<io.legato.kazusa.ui.widget.text.TextInputLayout
@@ -11,19 +11,19 @@
android:paddingEnd="16dp"
android:background="?attr/selectableItemBackground">
<io.legato.kazusa.lib.theme.view.ThemeCheckBox
<com.google.android.material.checkbox.MaterialCheckBox
android:id="@+id/cb_name"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:scrollbars="none"
android:singleLine="true"
android:maxLines="2"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toLeftOf="@+id/swt_enabled"
app:layout_constraintTop_toTopOf="parent"
tools:ignore="RtlSymmetry" />
<io.legato.kazusa.lib.theme.view.ThemeSwitch
<com.google.android.material.materialswitch.MaterialSwitch
android:id="@+id/swt_enabled"
android:name="@string/enable"
android:layout_width="wrap_content"
+3 -2
View File
@@ -12,11 +12,12 @@
<androidx.appcompat.widget.AppCompatTextView
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:paddingBottom="16dp" />
<androidx.appcompat.widget.AppCompatButton
<com.google.android.material.button.MaterialButton
android:id="@+id/btn_error_retry"
android:layout_width="match_parent"
android:layout_height="wrap_content"
+3 -3
View File
@@ -8,12 +8,12 @@
<androidx.core.widget.ContentLoadingProgressBar
android:id="@+id/loading_progress"
android:layout_width="48dp"
android:layout_height="48dp"
style="@style/Widget.AppCompat.ProgressBar" />
android:layout_height="48dp" />
<androidx.appcompat.widget.AppCompatTextView
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:text="@string/dynamic_loading" />
</LinearLayout>
+1 -1
View File
@@ -35,7 +35,7 @@
<TextView
android:id="@+id/preference_title"
android:singleLine="true"
android:textSize="16sp"
android:textSize="18sp"
android:text="@string/title"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
@@ -4,6 +4,4 @@
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:theme="@style/AppTheme.AppBarOverlay.Dark"
app:titleTextAppearance="@style/ToolbarTitle"
app:popupTheme="@style/AppTheme.PopupOverlay" />
app:titleTextAppearance="@style/ToolbarTitle" />
@@ -36,7 +36,6 @@
<item>Adaptar do sistema</item>
<item>Tema Claro</item>
<item>Tema Oscuro</item>
<item>Tema E-Ink</item>
</string-array>
<string-array name="NavBarColors">
+48 -94
View File
@@ -47,100 +47,54 @@
<color name="md_theme_surfaceContainer">#1E201A</color>
<color name="md_theme_surfaceContainerHigh">#282B24</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="md_theme_primaryContainer_mediumContrast">#7D9A59</color>
<color name="md_theme_onPrimaryContainer_mediumContrast">#000000</color>
<color name="md_theme_secondary_mediumContrast">#D5E1C2</color>
<color name="md_theme_onSecondary_mediumContrast">#1F2814</color>
<color name="md_theme_secondaryContainer_mediumContrast">#8A9579</color>
<color name="md_theme_onSecondaryContainer_mediumContrast">#000000</color>
<color name="md_theme_tertiary_mediumContrast">#B5E6E1</color>
<color name="md_theme_onTertiary_mediumContrast">#002B29</color>
<color name="md_theme_tertiaryContainer_mediumContrast">#6B9995</color>
<color name="md_theme_onTertiaryContainer_mediumContrast">#000000</color>
<color name="md_theme_error_mediumContrast">#FFD2CC</color>
<color name="md_theme_onError_mediumContrast">#540003</color>
<color name="md_theme_errorContainer_mediumContrast">#FF5449</color>
<color name="md_theme_onErrorContainer_mediumContrast">#000000</color>
<color name="md_theme_background_mediumContrast">#12140E</color>
<color name="md_theme_onBackground_mediumContrast">#E2E3D8</color>
<color name="md_theme_surface_mediumContrast">#12140E</color>
<color name="md_theme_onSurface_mediumContrast">#FFFFFF</color>
<color name="md_theme_surfaceVariant_mediumContrast">#44483D</color>
<color name="md_theme_onSurfaceVariant_mediumContrast">#DBDECF</color>
<color name="md_theme_outline_mediumContrast">#B0B3A6</color>
<color name="md_theme_outlineVariant_mediumContrast">#8E9285</color>
<color name="md_theme_scrim_mediumContrast">#000000</color>
<color name="md_theme_inverseSurface_mediumContrast">#E2E3D8</color>
<color name="md_theme_inverseOnSurface_mediumContrast">#282B24</color>
<color name="md_theme_inversePrimary_mediumContrast">#364F17</color>
<color name="md_theme_primaryFixed_mediumContrast">#CDEDA3</color>
<color name="md_theme_onPrimaryFixed_mediumContrast">#081400</color>
<color name="md_theme_primaryFixedDim_mediumContrast">#B1D18A</color>
<color name="md_theme_onPrimaryFixedVariant_mediumContrast">#253D05</color>
<color name="md_theme_secondaryFixed_mediumContrast">#DCE7C8</color>
<color name="md_theme_onSecondaryFixed_mediumContrast">#0B1403</color>
<color name="md_theme_secondaryFixedDim_mediumContrast">#BFCBAD</color>
<color name="md_theme_onSecondaryFixedVariant_mediumContrast">#303924</color>
<color name="md_theme_tertiaryFixed_mediumContrast">#BCECE7</color>
<color name="md_theme_onTertiaryFixed_mediumContrast">#001413</color>
<color name="md_theme_tertiaryFixedDim_mediumContrast">#A0D0CB</color>
<color name="md_theme_onTertiaryFixedVariant_mediumContrast">#083D3A</color>
<color name="md_theme_surfaceDim_mediumContrast">#12140E</color>
<color name="md_theme_surfaceBright_mediumContrast">#43453D</color>
<color name="md_theme_surfaceContainerLowest_mediumContrast">#060804</color>
<color name="md_theme_surfaceContainerLow_mediumContrast">#1C1E18</color>
<color name="md_theme_surfaceContainer_mediumContrast">#262922</color>
<color name="md_theme_surfaceContainerHigh_mediumContrast">#31342C</color>
<color name="md_theme_surfaceContainerHighest_mediumContrast">#3C3F37</color>
<color name="md_theme_primary_highContrast">#DAFBB0</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="wh_theme_primary">#C7C6C6</color>
<color name="wh_theme_onPrimary">#303031</color>
<color name="wh_theme_primaryContainer">#919090</color>
<color name="wh_theme_onPrimaryContainer">#050606</color>
<color name="wh_theme_secondary">#C8C6C5</color>
<color name="wh_theme_onSecondary">#303030</color>
<color name="wh_theme_secondaryContainer">#474746</color>
<color name="wh_theme_onSecondaryContainer">#B7B5B4</color>
<color name="wh_theme_tertiary">#CBC5C7</color>
<color name="wh_theme_onTertiary">#323031</color>
<color name="wh_theme_tertiaryContainer">#948F91</color>
<color name="wh_theme_onTertiaryContainer">#060506</color>
<color name="wh_theme_error">#FFB4AB</color>
<color name="wh_theme_onError">#690005</color>
<color name="wh_theme_errorContainer">#93000A</color>
<color name="wh_theme_onErrorContainer">#FFDAD6</color>
<color name="wh_theme_background">#141313</color>
<color name="wh_theme_onBackground">#E5E2E1</color>
<color name="wh_theme_surface">#141313</color>
<color name="wh_theme_onSurface">#E5E2E1</color>
<color name="wh_theme_surfaceVariant">#444748</color>
<color name="wh_theme_onSurfaceVariant">#C4C7C7</color>
<color name="wh_theme_outline">#8E9192</color>
<color name="wh_theme_outlineVariant">#444748</color>
<color name="wh_theme_scrim">#000000</color>
<color name="wh_theme_inverseSurface">#E5E2E1</color>
<color name="wh_theme_inverseOnSurface">#313030</color>
<color name="wh_theme_inversePrimary">#5E5E5E</color>
<color name="wh_theme_primaryFixed">#E3E2E2</color>
<color name="wh_theme_onPrimaryFixed">#1B1C1C</color>
<color name="wh_theme_primaryFixedDim">#C7C6C6</color>
<color name="wh_theme_onPrimaryFixedVariant">#464747</color>
<color name="wh_theme_secondaryFixed">#E5E2E1</color>
<color name="wh_theme_onSecondaryFixed">#1B1C1C</color>
<color name="wh_theme_secondaryFixedDim">#C8C6C5</color>
<color name="wh_theme_onSecondaryFixedVariant">#474746</color>
<color name="wh_theme_tertiaryFixed">#E7E1E3</color>
<color name="wh_theme_onTertiaryFixed">#1D1B1D</color>
<color name="wh_theme_tertiaryFixedDim">#CBC5C7</color>
<color name="wh_theme_onTertiaryFixedVariant">#494648</color>
<color name="wh_theme_surfaceDim">#141313</color>
<color name="wh_theme_surfaceBright">#3A3939</color>
<color name="wh_theme_surfaceContainerLowest">#0E0E0E</color>
<color name="wh_theme_surfaceContainerLow">#1C1B1B</color>
<color name="wh_theme_surfaceContainer">#201F1F</color>
<color name="wh_theme_surfaceContainerHigh">#2A2A2A</color>
<color name="wh_theme_surfaceContainerHighest">#353434</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>Tema Claro</item>
<item>Tema Escuro</item>
<item>Tema E-Ink</item>
</string-array>
<string-array name="NavBarColors">
-1
View File
@@ -23,7 +23,6 @@
<item>Làm theo hệ thống</item>
<item>Chủ đề màu sáng</item>
<item>Chủ đề tối</item>
<item>E-Ink (màn hình mực).</item>
</string-array>
<string-array name="NavBarColors">
@@ -17,7 +17,6 @@
<item>跟隨系統</item>
<item>亮色主題</item>
<item>暗色主題</item>
<item>E-Ink(墨水螢幕)</item>
</string-array>
<string-array name="NavBarColors">
@@ -22,7 +22,6 @@
<item>跟隨系統</item>
<item>亮色主題</item>
<item>暗色主題</item>
<item>E-Ink(墨水屏)</item>
</string-array>
<string-array name="NavBarColors">
-1
View File
@@ -22,7 +22,6 @@
<item>跟随系统</item>
<item>亮色主题</item>
<item>暗色主题</item>
<item>E-Ink(墨水屏)</item>
</string-array>
<string-array name="double_page_title">
+1 -1
View File
@@ -478,7 +478,7 @@
<string name="scan_qr_code">扫描二维码</string>
<string name="click_on_selected_show_menu">选中时点击可弹出菜单</string>
<string name="theme">主题</string>
<string name="theme_mode">主题模式</string>
<string name="theme_mode">深色模式</string>
<string name="theme_mode_desc">选择主题模式</string>
<string name="join_qq_group">加入 QQ 群</string>
<string name="bg_image_per">获取背景图片需存储权限</string>
+6 -1
View File
@@ -23,7 +23,12 @@
<item>0</item>
<item>1</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 name="screen_direction_value">
+7 -1
View File
@@ -51,9 +51,15 @@
<item>Follow system</item>
<item>Bright mode</item>
<item>Dark mode</item>
<item>E-Ink mode</item>
</string-array>
<string-array name="themes_item">
<item>动态取色</item>
<item>草野</item>
<item>黑白</item>
</string-array>
<string-array name="NavBarColors">
<item>Auto</item>
<item>Black</item>
+51 -94
View File
@@ -1,6 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<!-- GR Theme-->
<color name="md_theme_primary">#4C662B</color>
<color name="md_theme_onPrimary">#FFFFFF</color>
<color name="md_theme_primaryContainer">#CDEDA3</color>
@@ -48,100 +49,56 @@
<color name="md_theme_surfaceContainer">#EEEFE3</color>
<color name="md_theme_surfaceContainerHigh">#E8E9DE</color>
<color name="md_theme_surfaceContainerHighest">#E2E3D8</color>
<color name="md_theme_primary_mediumContrast">#253D05</color>
<color name="md_theme_onPrimary_mediumContrast">#FFFFFF</color>
<color name="md_theme_primaryContainer_mediumContrast">#5A7539</color>
<color name="md_theme_onPrimaryContainer_mediumContrast">#FFFFFF</color>
<color name="md_theme_secondary_mediumContrast">#303924</color>
<color name="md_theme_onSecondary_mediumContrast">#FFFFFF</color>
<color name="md_theme_secondaryContainer_mediumContrast">#667157</color>
<color name="md_theme_onSecondaryContainer_mediumContrast">#FFFFFF</color>
<color name="md_theme_tertiary_mediumContrast">#083D3A</color>
<color name="md_theme_onTertiary_mediumContrast">#FFFFFF</color>
<color name="md_theme_tertiaryContainer_mediumContrast">#477572</color>
<color name="md_theme_onTertiaryContainer_mediumContrast">#FFFFFF</color>
<color name="md_theme_error_mediumContrast">#740006</color>
<color name="md_theme_onError_mediumContrast">#FFFFFF</color>
<color name="md_theme_errorContainer_mediumContrast">#CF2C27</color>
<color name="md_theme_onErrorContainer_mediumContrast">#FFFFFF</color>
<color name="md_theme_background_mediumContrast">#F9FAEF</color>
<color name="md_theme_onBackground_mediumContrast">#1A1C16</color>
<color name="md_theme_surface_mediumContrast">#F9FAEF</color>
<color name="md_theme_onSurface_mediumContrast">#0F120C</color>
<color name="md_theme_surfaceVariant_mediumContrast">#E1E4D5</color>
<color name="md_theme_onSurfaceVariant_mediumContrast">#34382D</color>
<color name="md_theme_outline_mediumContrast">#505449</color>
<color name="md_theme_outlineVariant_mediumContrast">#6B6F62</color>
<color name="md_theme_scrim_mediumContrast">#000000</color>
<color name="md_theme_inverseSurface_mediumContrast">#2F312A</color>
<color name="md_theme_inverseOnSurface_mediumContrast">#F1F2E6</color>
<color name="md_theme_inversePrimary_mediumContrast">#B1D18A</color>
<color name="md_theme_primaryFixed_mediumContrast">#5A7539</color>
<color name="md_theme_onPrimaryFixed_mediumContrast">#FFFFFF</color>
<color name="md_theme_primaryFixedDim_mediumContrast">#425C23</color>
<color name="md_theme_onPrimaryFixedVariant_mediumContrast">#FFFFFF</color>
<color name="md_theme_secondaryFixed_mediumContrast">#667157</color>
<color name="md_theme_onSecondaryFixed_mediumContrast">#FFFFFF</color>
<color name="md_theme_secondaryFixedDim_mediumContrast">#4E5840</color>
<color name="md_theme_onSecondaryFixedVariant_mediumContrast">#FFFFFF</color>
<color name="md_theme_tertiaryFixed_mediumContrast">#477572</color>
<color name="md_theme_onTertiaryFixed_mediumContrast">#FFFFFF</color>
<color name="md_theme_tertiaryFixedDim_mediumContrast">#2E5C59</color>
<color name="md_theme_onTertiaryFixedVariant_mediumContrast">#FFFFFF</color>
<color name="md_theme_surfaceDim_mediumContrast">#C6C7BD</color>
<color name="md_theme_surfaceBright_mediumContrast">#F9FAEF</color>
<color name="md_theme_surfaceContainerLowest_mediumContrast">#FFFFFF</color>
<color name="md_theme_surfaceContainerLow_mediumContrast">#F3F4E9</color>
<color name="md_theme_surfaceContainer_mediumContrast">#E8E9DE</color>
<color name="md_theme_surfaceContainerHigh_mediumContrast">#DCDED3</color>
<color name="md_theme_surfaceContainerHighest_mediumContrast">#D1D3C8</color>
<color name="md_theme_primary_highContrast">#1C3200</color>
<color name="md_theme_onPrimary_highContrast">#FFFFFF</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>
<!-- While Theme-->
<color name="wh_theme_primary">#5C5C5C</color>
<color name="wh_theme_onPrimary">#FFFFFF</color>
<color name="wh_theme_primaryContainer">#747474</color>
<color name="wh_theme_onPrimaryContainer">#FEFCFC</color>
<color name="wh_theme_secondary">#5F5E5E</color>
<color name="wh_theme_onSecondary">#FFFFFF</color>
<color name="wh_theme_secondaryContainer">#E2DFDE</color>
<color name="wh_theme_onSecondaryContainer">#636262</color>
<color name="wh_theme_tertiary">#5E5B5D</color>
<color name="wh_theme_onTertiary">#FFFFFF</color>
<color name="wh_theme_tertiaryContainer">#777375</color>
<color name="wh_theme_onTertiaryContainer">#FFFBFF</color>
<color name="wh_theme_error">#BA1A1A</color>
<color name="wh_theme_onError">#FFFFFF</color>
<color name="wh_theme_errorContainer">#FFDAD6</color>
<color name="wh_theme_onErrorContainer">#93000A</color>
<color name="wh_theme_background">#FCF8F8</color>
<color name="wh_theme_onBackground">#1C1B1B</color>
<color name="wh_theme_surface">#FCF8F8</color>
<color name="wh_theme_onSurface">#1C1B1B</color>
<color name="wh_theme_surfaceVariant">#E0E3E3</color>
<color name="wh_theme_onSurfaceVariant">#444748</color>
<color name="wh_theme_outline">#747878</color>
<color name="wh_theme_outlineVariant">#C4C7C7</color>
<color name="wh_theme_scrim">#000000</color>
<color name="wh_theme_inverseSurface">#313030</color>
<color name="wh_theme_inverseOnSurface">#F4F0EF</color>
<color name="wh_theme_inversePrimary">#C7C6C6</color>
<color name="wh_theme_primaryFixed">#E3E2E2</color>
<color name="wh_theme_onPrimaryFixed">#1B1C1C</color>
<color name="wh_theme_primaryFixedDim">#C7C6C6</color>
<color name="wh_theme_onPrimaryFixedVariant">#464747</color>
<color name="wh_theme_secondaryFixed">#E5E2E1</color>
<color name="wh_theme_onSecondaryFixed">#1B1C1C</color>
<color name="wh_theme_secondaryFixedDim">#C8C6C5</color>
<color name="wh_theme_onSecondaryFixedVariant">#474746</color>
<color name="wh_theme_tertiaryFixed">#E7E1E3</color>
<color name="wh_theme_onTertiaryFixed">#1D1B1D</color>
<color name="wh_theme_tertiaryFixedDim">#CBC5C7</color>
<color name="wh_theme_onTertiaryFixedVariant">#494648</color>
<color name="wh_theme_surfaceDim">#DDD9D8</color>
<color name="wh_theme_surfaceBright">#FCF8F8</color>
<color name="wh_theme_surfaceContainerLowest">#FFFFFF</color>
<color name="wh_theme_surfaceContainerLow">#F7F3F2</color>
<color name="wh_theme_surfaceContainer">#F1EDEC</color>
<color name="wh_theme_surfaceContainerHigh">#EBE7E7</color>
<color name="wh_theme_surfaceContainerHighest">#E5E2E1</color>
<color name="disabled">@color/md_light_disabled</color>
+1
View File
@@ -1219,4 +1219,5 @@
<string name="hide_manga_title">隐藏漫画列表标题</string>
<string name="refresh_explore">刷新发现</string>
<string name="ungroup">未分组</string>
<string name="dynamic_colors">动态取色</string>
</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"
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:entries="@array/theme_mode"
android:entryValues="@array/theme_mode_v"
android:key="themeMode"
android:summary="@string/theme_mode_desc"
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
android:defaultValue="ic_launcher"
@@ -26,7 +34,6 @@
android:title="@string/welcome_style"
android:summary="@string/welcome_style_summary" />
<io.legato.kazusa.lib.prefs.Preference
android:key="fontScale"
android:summary="@string/font_scale_summary"