HapeLee 1 rok temu
rodzic
commit
32e7e78c69

+ 2 - 1
app/src/main/java/io/legato/kazusa/base/BaseActivity.kt

@@ -136,7 +136,8 @@ abstract class BaseActivity<VB : ViewBinding>(
         when (getPrefString("app_theme", "0")) {
             "0" -> DynamicColors.applyToActivitiesIfAvailable(application)
             "1" -> setTheme(R.style.Theme_Base_GR)
-            "2" -> setTheme(R.style.Theme_Base_WH)
+            "2" -> setTheme(R.style.Theme_Base_Lemon)
+            "3" -> setTheme(R.style.Theme_Base_WH)
         }
     }
 

+ 3 - 2
app/src/main/java/io/legato/kazusa/lib/prefs/ThemeCardPreference.kt

@@ -91,8 +91,9 @@ class ThemeCardPreference(
     private val themeResIdMap = mapOf(
         "0" to R.style.Base_AppTheme,
         "1" to R.style.Theme_Base_GR,
-        "2" to R.style.Theme_Base_WH
-    )
+        "2" to R.style.Theme_Base_Lemon,
+        "3" to R.style.Theme_Base_WH,
+        )
 
     private fun getThemeColors(value: String): List<Int> {
         val themeResId = themeResIdMap[value] ?: return listOf(Color.GRAY, Color.GRAY, Color.GRAY, Color.GRAY)

+ 32 - 33
app/src/main/java/io/legato/kazusa/ui/widget/dialog/TextDialog.kt

@@ -7,6 +7,7 @@ import android.view.ViewGroup
 import android.view.textclassifier.TextClassifier
 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.DialogTextViewBinding
 import io.legato.kazusa.help.IntentData
@@ -25,7 +26,7 @@ import kotlinx.coroutines.launch
 import kotlinx.coroutines.withContext
 
 
-class TextDialog() : BaseDialogFragment(R.layout.dialog_text_view) {
+class TextDialog() : BaseBottomSheetDialogFragment(R.layout.dialog_text_view) {
 
     enum class Mode {
         MD, HTML, TEXT
@@ -44,8 +45,6 @@ class TextDialog() : BaseDialogFragment(R.layout.dialog_text_view) {
             putString("mode", mode.name)
             putLong("time", time)
         }
-        isCancelable = false
-        this.autoClose = autoClose
     }
 
     private val binding by viewBinding(DialogTextViewBinding::bind)
@@ -54,21 +53,21 @@ class TextDialog() : BaseDialogFragment(R.layout.dialog_text_view) {
 
     override fun onStart() {
         super.onStart()
-        setLayout(ViewGroup.LayoutParams.MATCH_PARENT, 0.9f)
+        //setLayout(ViewGroup.LayoutParams.MATCH_PARENT, 0.9f)
     }
 
     override fun onFragmentCreated(view: View, savedInstanceState: Bundle?) {
         //binding.toolBar.setBackgroundColor(primaryColor)
-        binding.toolBar.inflateMenu(R.menu.dialog_text)
-        binding.toolBar.menu.applyTint(requireContext())
-        binding.toolBar.setOnMenuItemClickListener {
-            when (it.itemId) {
-                R.id.menu_close -> dismissAllowingStateLoss()
-            }
-            true
-        }
+        //binding.toolBar.inflateMenu(R.menu.dialog_text)
+        //binding.toolBar.menu.applyTint(requireContext())
+//        binding.toolBar.setOnMenuItemClickListener {
+//            when (it.itemId) {
+//                R.id.menu_close -> dismissAllowingStateLoss()
+//            }
+//            true
+//        }
         arguments?.let {
-            binding.toolBar.title = it.getString("title")
+            //binding.toolBar.title = it.getString("title")
             val content = IntentData.get(it.getString("content")) ?: ""
             when (it.getString("mode")) {
                 Mode.MD.name -> viewLifecycleOwner.lifecycleScope.launch {
@@ -100,26 +99,26 @@ class TextDialog() : BaseDialogFragment(R.layout.dialog_text_view) {
             }
             time = it.getLong("time", 0L)
         }
-        if (time > 0) {
-            binding.badgeView.setBadgeCount((time / 1000).toInt())
-            lifecycleScope.launch {
-                while (time > 0) {
-                    delay(1000)
-                    time -= 1000
-                    binding.badgeView.setBadgeCount((time / 1000).toInt())
-                    if (time <= 0) {
-                        view.post {
-                            dialog?.setCancelable(true)
-                            if (autoClose) dialog?.cancel()
-                        }
-                    }
-                }
-            }
-        } else {
-            view.post {
-                dialog?.setCancelable(true)
-            }
-        }
+//        if (time > 0) {
+//            binding.badgeView.setBadgeCount((time / 1000).toInt())
+//            lifecycleScope.launch {
+//                while (time > 0) {
+//                    delay(1000)
+//                    time -= 1000
+//                    binding.badgeView.setBadgeCount((time / 1000).toInt())
+//                    if (time <= 0) {
+//                        view.post {
+//                            dialog?.setCancelable(true)
+//                            if (autoClose) dialog?.cancel()
+//                        }
+//                    }
+//                }
+//            }
+//        } else {
+//            view.post {
+//                dialog?.setCancelable(true)
+//            }
+//        }
     }
 
 }

+ 37 - 26
app/src/main/res/layout/dialog_text_view.xml

@@ -1,38 +1,49 @@
 <?xml version="1.0" encoding="utf-8"?>
-<androidx.constraintlayout.widget.ConstraintLayout 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"
     android:layout_width="match_parent"
-    android:layout_height="match_parent"
-    >
+    android:layout_height="wrap_content"
+    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:titleTextAppearance="@style/ToolbarTitle"
-        app:layout_constraintTop_toTopOf="parent" />
+        android:orientation="vertical"
+        android:gravity="center"
+        android:paddingVertical="8dp"
+        android:paddingHorizontal="16dp">
 
-    <io.legato.kazusa.ui.widget.text.ScrollTextView
-        android:id="@+id/text_view"
+        <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="帮助"
+            android:textSize="18sp"
+            android:textStyle="bold" />
+
+    </LinearLayout>
+
+
+    <androidx.core.widget.NestedScrollView
         android:layout_width="match_parent"
-        android:layout_height="0dp"
-        android:padding="12dp"
-        android:textColor="@color/secondaryText"
-        android:scrollbarStyle="outsideOverlay"
-        android:textIsSelectable="true"
-        app:layout_constraintTop_toBottomOf="@+id/tool_bar"
-        app:layout_constraintBottom_toBottomOf="parent"/>
-
-    <io.legato.kazusa.ui.widget.text.BadgeView
-        android:id="@+id/badge_view"
-        android:layout_width="wrap_content"
         android:layout_height="wrap_content"
-        android:layout_margin="3dp"
-        android:visibility="invisible"
-        app:layout_constraintRight_toRightOf="parent"
-        app:layout_constraintTop_toTopOf="parent" />
+        android:fillViewport="true">
+        <com.google.android.material.textview.MaterialTextView
+            android:id="@+id/text_view"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:padding="16dp"
+            android:scrollbarStyle="outsideOverlay"
+            android:textIsSelectable="true" />
+    </androidx.core.widget.NestedScrollView>
 
-</androidx.constraintlayout.widget.ConstraintLayout>
+</LinearLayout>
 
 

+ 49 - 0
app/src/main/res/values-night/colors.xml

@@ -48,6 +48,7 @@
     <color name="md_theme_surfaceContainerHigh">#282B24</color>
     <color name="md_theme_surfaceContainerHighest">#33362E</color>
 
+
     <color name="wh_theme_primary">#C7C6C6</color>
     <color name="wh_theme_onPrimary">#303031</color>
     <color name="wh_theme_primaryContainer">#919090</color>
@@ -96,6 +97,54 @@
     <color name="wh_theme_surfaceContainerHigh">#2A2A2A</color>
     <color name="wh_theme_surfaceContainerHighest">#353434</color>
 
+    <color name="lemon_theme_primary">#DBC66E</color>
+    <color name="lemon_theme_onPrimary">#3A3000</color>
+    <color name="lemon_theme_primaryContainer">#534600</color>
+    <color name="lemon_theme_onPrimaryContainer">#F8E287</color>
+    <color name="lemon_theme_secondary">#D1C6A1</color>
+    <color name="lemon_theme_onSecondary">#363016</color>
+    <color name="lemon_theme_secondaryContainer">#4E472A</color>
+    <color name="lemon_theme_onSecondaryContainer">#EEE2BC</color>
+    <color name="lemon_theme_tertiary">#A9D0B3</color>
+    <color name="lemon_theme_onTertiary">#143723</color>
+    <color name="lemon_theme_tertiaryContainer">#2C4E38</color>
+    <color name="lemon_theme_onTertiaryContainer">#C5ECCE</color>
+    <color name="lemon_theme_error">#FFB4AB</color>
+    <color name="lemon_theme_onError">#690005</color>
+    <color name="lemon_theme_errorContainer">#93000A</color>
+    <color name="lemon_theme_onErrorContainer">#FFDAD6</color>
+    <color name="lemon_theme_background">#15130B</color>
+    <color name="lemon_theme_onBackground">#E8E2D4</color>
+    <color name="lemon_theme_surface">#15130B</color>
+    <color name="lemon_theme_onSurface">#E8E2D4</color>
+    <color name="lemon_theme_surfaceVariant">#4B4739</color>
+    <color name="lemon_theme_onSurfaceVariant">#CDC6B4</color>
+    <color name="lemon_theme_outline">#969080</color>
+    <color name="lemon_theme_outlineVariant">#4B4739</color>
+    <color name="lemon_theme_scrim">#000000</color>
+    <color name="lemon_theme_inverseSurface">#E8E2D4</color>
+    <color name="lemon_theme_inverseOnSurface">#333027</color>
+    <color name="lemon_theme_inversePrimary">#6D5E0F</color>
+    <color name="lemon_theme_primaryFixed">#F8E287</color>
+    <color name="lemon_theme_onPrimaryFixed">#221B00</color>
+    <color name="lemon_theme_primaryFixedDim">#DBC66E</color>
+    <color name="lemon_theme_onPrimaryFixedVariant">#534600</color>
+    <color name="lemon_theme_secondaryFixed">#EEE2BC</color>
+    <color name="lemon_theme_onSecondaryFixed">#211B04</color>
+    <color name="lemon_theme_secondaryFixedDim">#D1C6A1</color>
+    <color name="lemon_theme_onSecondaryFixedVariant">#4E472A</color>
+    <color name="lemon_theme_tertiaryFixed">#C5ECCE</color>
+    <color name="lemon_theme_onTertiaryFixed">#00210F</color>
+    <color name="lemon_theme_tertiaryFixedDim">#A9D0B3</color>
+    <color name="lemon_theme_onTertiaryFixedVariant">#2C4E38</color>
+    <color name="lemon_theme_surfaceDim">#15130B</color>
+    <color name="lemon_theme_surfaceBright">#3C3930</color>
+    <color name="lemon_theme_surfaceContainerLowest">#100E07</color>
+    <color name="lemon_theme_surfaceContainerLow">#1E1B13</color>
+    <color name="lemon_theme_surfaceContainer">#222017</color>
+    <color name="lemon_theme_surfaceContainerHigh">#2D2A21</color>
+    <color name="lemon_theme_surfaceContainerHighest">#38352B</color>
+
     <color name="disabled">@color/md_dark_disabled</color>
 
     <color name="background_prefs">#10303030</color>

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

@@ -29,6 +29,7 @@
         <item>0</item>
         <item>1</item>
         <item>2</item>
+        <item>3</item>
     </string-array>
 
     <string-array name="screen_direction_value">

+ 1 - 0
app/src/main/res/values/arrays.xml

@@ -56,6 +56,7 @@
 	<string-array name="themes_item">
 		<item>动态取色</item>
 		<item>草野</item>
+		<item>柠檬</item>
 		<item>黑白</item>
 	</string-array>
 

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

@@ -99,6 +99,54 @@
     <color name="wh_theme_surfaceContainerHigh">#EBE7E7</color>
     <color name="wh_theme_surfaceContainerHighest">#E5E2E1</color>
 
+    <!--    Lemon Theme-->
+    <color name="lemon_theme_primary">#6D5E0F</color>
+    <color name="lemon_theme_onPrimary">#FFFFFF</color>
+    <color name="lemon_theme_primaryContainer">#F8E287</color>
+    <color name="lemon_theme_onPrimaryContainer">#534600</color>
+    <color name="lemon_theme_secondary">#665E40</color>
+    <color name="lemon_theme_onSecondary">#FFFFFF</color>
+    <color name="lemon_theme_secondaryContainer">#EEE2BC</color>
+    <color name="lemon_theme_onSecondaryContainer">#4E472A</color>
+    <color name="lemon_theme_tertiary">#43664E</color>
+    <color name="lemon_theme_onTertiary">#FFFFFF</color>
+    <color name="lemon_theme_tertiaryContainer">#C5ECCE</color>
+    <color name="lemon_theme_onTertiaryContainer">#2C4E38</color>
+    <color name="lemon_theme_error">#BA1A1A</color>
+    <color name="lemon_theme_onError">#FFFFFF</color>
+    <color name="lemon_theme_errorContainer">#FFDAD6</color>
+    <color name="lemon_theme_onErrorContainer">#93000A</color>
+    <color name="lemon_theme_background">#FFF9EE</color>
+    <color name="lemon_theme_onBackground">#1E1B13</color>
+    <color name="lemon_theme_surface">#FFF9EE</color>
+    <color name="lemon_theme_onSurface">#1E1B13</color>
+    <color name="lemon_theme_surfaceVariant">#EAE2D0</color>
+    <color name="lemon_theme_onSurfaceVariant">#4B4739</color>
+    <color name="lemon_theme_outline">#7C7767</color>
+    <color name="lemon_theme_outlineVariant">#CDC6B4</color>
+    <color name="lemon_theme_scrim">#000000</color>
+    <color name="lemon_theme_inverseSurface">#333027</color>
+    <color name="lemon_theme_inverseOnSurface">#F7F0E2</color>
+    <color name="lemon_theme_inversePrimary">#DBC66E</color>
+    <color name="lemon_theme_primaryFixed">#F8E287</color>
+    <color name="lemon_theme_onPrimaryFixed">#221B00</color>
+    <color name="lemon_theme_primaryFixedDim">#DBC66E</color>
+    <color name="lemon_theme_onPrimaryFixedVariant">#534600</color>
+    <color name="lemon_theme_secondaryFixed">#EEE2BC</color>
+    <color name="lemon_theme_onSecondaryFixed">#211B04</color>
+    <color name="lemon_theme_secondaryFixedDim">#D1C6A1</color>
+    <color name="lemon_theme_onSecondaryFixedVariant">#4E472A</color>
+    <color name="lemon_theme_tertiaryFixed">#C5ECCE</color>
+    <color name="lemon_theme_onTertiaryFixed">#00210F</color>
+    <color name="lemon_theme_tertiaryFixedDim">#A9D0B3</color>
+    <color name="lemon_theme_onTertiaryFixedVariant">#2C4E38</color>
+    <color name="lemon_theme_surfaceDim">#E0D9CC</color>
+    <color name="lemon_theme_surfaceBright">#FFF9EE</color>
+    <color name="lemon_theme_surfaceContainerLowest">#FFFFFF</color>
+    <color name="lemon_theme_surfaceContainerLow">#FAF3E5</color>
+    <color name="lemon_theme_surfaceContainer">#F4EDDF</color>
+    <color name="lemon_theme_surfaceContainerHigh">#EEE8DA</color>
+    <color name="lemon_theme_surfaceContainerHighest">#E8E2D4</color>
 
     <color name="disabled">@color/md_light_disabled</color>
 

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

@@ -129,4 +129,53 @@
         <item name="colorSurfaceContainerHighest">@color/wh_theme_surfaceContainerHighest</item>
     </style>
 
+    <style name="Theme.Base.Lemon" parent="Base.AppTheme">
+        <item name="colorPrimary">@color/lemon_theme_primary</item>
+        <item name="colorOnPrimary">@color/lemon_theme_onPrimary</item>
+        <item name="colorPrimaryContainer">@color/lemon_theme_primaryContainer</item>
+        <item name="colorOnPrimaryContainer">@color/lemon_theme_onPrimaryContainer</item>
+        <item name="colorSecondary">@color/lemon_theme_secondary</item>
+        <item name="colorOnSecondary">@color/lemon_theme_onSecondary</item>
+        <item name="colorSecondaryContainer">@color/lemon_theme_secondaryContainer</item>
+        <item name="colorOnSecondaryContainer">@color/lemon_theme_onSecondaryContainer</item>
+        <item name="colorTertiary">@color/lemon_theme_tertiary</item>
+        <item name="colorOnTertiary">@color/lemon_theme_onTertiary</item>
+        <item name="colorTertiaryContainer">@color/lemon_theme_tertiaryContainer</item>
+        <item name="colorOnTertiaryContainer">@color/lemon_theme_onTertiaryContainer</item>
+        <item name="colorError">@color/lemon_theme_error</item>
+        <item name="colorOnError">@color/lemon_theme_onError</item>
+        <item name="colorErrorContainer">@color/lemon_theme_errorContainer</item>
+        <item name="colorOnErrorContainer">@color/lemon_theme_onErrorContainer</item>
+        <item name="android:colorBackground">@color/lemon_theme_background</item>
+        <item name="colorOnBackground">@color/lemon_theme_onBackground</item>
+        <item name="colorSurface">@color/lemon_theme_surface</item>
+        <item name="colorOnSurface">@color/lemon_theme_onSurface</item>
+        <item name="colorSurfaceVariant">@color/lemon_theme_surfaceVariant</item>
+        <item name="colorOnSurfaceVariant">@color/lemon_theme_onSurfaceVariant</item>
+        <item name="colorOutline">@color/lemon_theme_outline</item>
+        <item name="colorOutlineVariant">@color/lemon_theme_outlineVariant</item>
+        <item name="colorSurfaceInverse">@color/lemon_theme_inverseSurface</item>
+        <item name="colorOnSurfaceInverse">@color/lemon_theme_inverseOnSurface</item>
+        <item name="colorPrimaryInverse">@color/lemon_theme_inversePrimary</item>
+        <item name="colorPrimaryFixed">@color/lemon_theme_primaryFixed</item>
+        <item name="colorOnPrimaryFixed">@color/lemon_theme_onPrimaryFixed</item>
+        <item name="colorPrimaryFixedDim">@color/lemon_theme_primaryFixedDim</item>
+        <item name="colorOnPrimaryFixedVariant">@color/lemon_theme_onPrimaryFixedVariant</item>
+        <item name="colorSecondaryFixed">@color/lemon_theme_secondaryFixed</item>
+        <item name="colorOnSecondaryFixed">@color/lemon_theme_onSecondaryFixed</item>
+        <item name="colorSecondaryFixedDim">@color/lemon_theme_secondaryFixedDim</item>
+        <item name="colorOnSecondaryFixedVariant">@color/lemon_theme_onSecondaryFixedVariant</item>
+        <item name="colorTertiaryFixed">@color/lemon_theme_tertiaryFixed</item>
+        <item name="colorOnTertiaryFixed">@color/lemon_theme_onTertiaryFixed</item>
+        <item name="colorTertiaryFixedDim">@color/lemon_theme_tertiaryFixedDim</item>
+        <item name="colorOnTertiaryFixedVariant">@color/lemon_theme_onTertiaryFixedVariant</item>
+        <item name="colorSurfaceDim">@color/lemon_theme_surfaceDim</item>
+        <item name="colorSurfaceBright">@color/lemon_theme_surfaceBright</item>
+        <item name="colorSurfaceContainerLowest">@color/lemon_theme_surfaceContainerLowest</item>
+        <item name="colorSurfaceContainerLow">@color/lemon_theme_surfaceContainerLow</item>
+        <item name="colorSurfaceContainer">@color/lemon_theme_surfaceContainer</item>
+        <item name="colorSurfaceContainerHigh">@color/lemon_theme_surfaceContainerHigh</item>
+        <item name="colorSurfaceContainerHighest">@color/lemon_theme_surfaceContainerHighest</item>
+    </style>
+
 </resources>