Sfoglia il codice sorgente

修复一些问题

HapeLee 1 anno fa
parent
commit
47274f13d4

+ 12 - 36
app/src/main/java/io/legato/kazusa/ui/book/manga/ReadMangaActivity.kt

@@ -520,30 +520,6 @@ class ReadMangaActivity : VMBaseActivity<ActivityMangaBinding, ReadMangaViewMode
                 }
             }
 
-            R.id.menu_manga_color_filter -> {
-                binding.mangaMenu.runMenuOut()
-                showDialogFragment(MangaColorFilterDialog())
-            }
-
-            R.id.menu_hide_manga_title -> {
-                item.isChecked = !item.isChecked
-                AppConfig.hideMangaTitle = item.isChecked
-                ReadManga.loadContent()
-            }
-
-
-
-            R.id.menu_disable_horizontal_animation -> {
-                item.isChecked = !item.isChecked
-                AppConfig.disableHorizontalAnimator = item.isChecked
-                if (item.isChecked) {
-                    mPagerSnapHelper.attachToRecyclerView(null)
-                } else {
-                    mPagerSnapHelper.attachToRecyclerView(binding.recyclerView)
-                }
-            }
-
-
         }
         return super.onCompatOptionsItemSelected(item)
     }
@@ -557,7 +533,6 @@ class ReadMangaActivity : VMBaseActivity<ActivityMangaBinding, ReadMangaViewMode
     override fun showFooterConfig() {
         showDialogFragment(MangaFooterSettingDialog().apply {
             initialAutoPageEnabled = enableAutoScrollPage
-            initialAutoPageSpeed = AppConfig.mangaAutoPageSpeed
             callback = this@ReadMangaActivity
         })
     }
@@ -569,7 +544,6 @@ class ReadMangaActivity : VMBaseActivity<ActivityMangaBinding, ReadMangaViewMode
 
     override fun showScrollModeDialog() {
         showDialogFragment(MangaScrollModeDialog().apply {
-            initialScrollMode = AppConfig.mangaScrollMode
             callback = this@ReadMangaActivity
         })
     }
@@ -617,6 +591,7 @@ class ReadMangaActivity : VMBaseActivity<ActivityMangaBinding, ReadMangaViewMode
 
     //自动翻页
     override fun onAutoPageToggle(enabled: Boolean) {
+        enableAutoScroll = enabled
         setAutoReadEnabled(enabled)
     }
 
@@ -631,6 +606,11 @@ class ReadMangaActivity : VMBaseActivity<ActivityMangaBinding, ReadMangaViewMode
 //        }
     }
 
+    override fun onHideMangaTitleChanged(hide: Boolean) {
+        AppConfig.hideMangaTitle = hide
+        ReadManga.loadContent()
+    }
+
     override fun openBookInfoActivity() {
         ReadManga.book?.let {
             bookInfoActivity.launch {
@@ -693,6 +673,10 @@ class ReadMangaActivity : VMBaseActivity<ActivityMangaBinding, ReadMangaViewMode
         return super.dispatchKeyEvent(event)
     }
 
+    /**
+     * 调整漫画类型
+     * @param mode 漫画类型
+     */
     @SuppressLint("NotifyDataSetChanged")
     private fun setScrollMode(mode: Int) {
         scrollMode = mode
@@ -729,12 +713,12 @@ class ReadMangaActivity : VMBaseActivity<ActivityMangaBinding, ReadMangaViewMode
             mPagerSnapHelper.attachToRecyclerView(null)
         }
 
-        mAdapter.notifyDataSetChanged()
+        mAdapter.notifyItemRangeChanged(0, mAdapter.itemCount)
     }
 
     /**
      * 调整条漫侧边留白设置
-     * @param paddingDp 侧边留白距离,单位dp,默认16dp
+     * @param paddingDp 侧边留白距离,单位dp
      */
     private fun updateWebtoonSidePadding(paddingDp: Int) {
         if (scrollMode != MangaScrollMode.WEBTOON && scrollMode != MangaScrollMode.WEBTOON_WITH_GAP) {
@@ -772,14 +756,6 @@ class ReadMangaActivity : VMBaseActivity<ActivityMangaBinding, ReadMangaViewMode
         this.mMenu = menu
         menu.findItem(R.id.menu_pre_manga_number).title =
             getString(R.string.pre_download_m, AppConfig.mangaPreDownloadNum)
-        menu.findItem(R.id.menu_hide_manga_title).isChecked = AppConfig.hideMangaTitle
-
-        menu.findItem(R.id.menu_disable_horizontal_animation).run {
-            isVisible =
-                AppConfig.enableMangaHorizontalScroll
-            isChecked = AppConfig.disableHorizontalAnimator
-        }
-
     }
 
     private fun setDisableMangaScale(disable: Boolean) {

+ 16 - 3
app/src/main/java/io/legato/kazusa/ui/book/manga/config/MangaFooterSettingDialog.kt

@@ -2,8 +2,8 @@ package io.legato.kazusa.ui.book.manga.config
 
 import android.content.DialogInterface
 import android.os.Bundle
+import android.view.Gravity
 import android.view.View
-import androidx.transition.TransitionManager
 import io.legato.kazusa.R
 import io.legato.kazusa.base.BaseBottomSheetDialogFragment
 import io.legato.kazusa.constant.EventBus
@@ -24,7 +24,6 @@ class MangaFooterSettingDialog :
     var callback: Callback? = null
 
     var initialAutoPageEnabled: Boolean = false
-    var initialAutoPageSpeed: Int = 3
 
     private val binding by viewBinding(DialogMangaFooterSettingBinding::bind)
 
@@ -126,6 +125,7 @@ class MangaFooterSettingDialog :
                     config.hideFooter = true
                 }
             }
+            updateChapterText()
             postEvent(EventBus.UP_MANGA_CONFIG, config)
         }
 
@@ -143,6 +143,20 @@ class MangaFooterSettingDialog :
     }
 
     private fun updateChapterText() {
+
+        if (config.hideFooter) {
+            binding.tvChapter.visibility = View.INVISIBLE
+            return
+        } else {
+            binding.tvChapter.visibility = View.VISIBLE
+        }
+
+        binding.tvChapter.gravity = when (config.footerOrientation) {
+            ReaderInfoBarView.ALIGN_LEFT -> Gravity.START or Gravity.CENTER_VERTICAL
+            ReaderInfoBarView.ALIGN_CENTER -> Gravity.CENTER
+            else -> Gravity.START
+        }
+
         val label = if (!config.hideChapterLabel) "章节" else ""
         val chapter = if (!config.hideChapter) "1/45 " else ""
         val name = if (!config.hideChapterName) "第三话 " else ""
@@ -162,7 +176,6 @@ class MangaFooterSettingDialog :
             progressLabel,
             progress
         ).filter { it.isNotEmpty() }
-        TransitionManager.beginDelayedTransition(binding.rootView)
         binding.tvChapter.text = parts.joinToString(" ")
     }
 

+ 11 - 13
app/src/main/java/io/legato/kazusa/ui/book/manga/config/MangaScrollModeDialog.kt

@@ -2,7 +2,6 @@ package io.legato.kazusa.ui.book.manga.config
 
 import android.os.Bundle
 import android.view.View
-import androidx.transition.TransitionManager
 import com.google.android.material.chip.Chip
 import io.legato.kazusa.R
 import io.legato.kazusa.base.BaseBottomSheetDialogFragment
@@ -14,9 +13,6 @@ class MangaScrollModeDialog : BaseBottomSheetDialogFragment(R.layout.dialog_mang
 
     private val binding by viewBinding(DialogMangaScrollModeBinding::bind)
 
-    var initialScrollMode: Int = AppConfig.mangaScrollMode
-    var initialAutoPageSpeed: Int = AppConfig.mangaAutoPageSpeed
-    var initialSidePadding: Int = AppConfig.webtoonSidePaddingDp
     var initialAutoPageEnabled: Boolean = false
     var callback: Callback? = null
 
@@ -31,10 +27,9 @@ class MangaScrollModeDialog : BaseBottomSheetDialogFragment(R.layout.dialog_mang
             binding.chipGroupScrollMode.addView(Chip(requireContext()).apply {
                 text = MangaScrollMode.labelOf(mode)
                 isCheckable = true
-                isChecked = (mode == initialScrollMode)
+                isChecked = (mode == AppConfig.mangaScrollMode)
 
                 setOnClickListener {
-                    AppConfig.mangaScrollMode = mode
                     callback?.onScrollModeChanged(mode)
                     binding.chipAutoPage.isChecked = false
                 }
@@ -52,7 +47,6 @@ class MangaScrollModeDialog : BaseBottomSheetDialogFragment(R.layout.dialog_mang
         binding.checkboxDisableClickScroll.apply {
             isChecked = AppConfig.disableClickScroll
             setOnCheckedChangeListener { _, isChecked ->
-                AppConfig.disableClickScroll = isChecked
                 callback?.onClickScrollDisabledChanged(isChecked)
             }
         }
@@ -60,17 +54,22 @@ class MangaScrollModeDialog : BaseBottomSheetDialogFragment(R.layout.dialog_mang
         binding.checkboxDisableMangaScale.apply {
             isChecked = AppConfig.disableMangaScale
             setOnCheckedChangeListener { _, isChecked ->
-                AppConfig.disableMangaScale = isChecked
                 callback?.onMangaScaleDisabledChanged(isChecked)
             }
         }
 
+        binding.checkboxHideMangaTitle.apply {
+            isChecked = AppConfig.hideMangaTitle
+            setOnCheckedChangeListener { _, isChecked ->
+                callback?.onHideMangaTitleChanged(isChecked)
+            }
+        }
+
         binding.scvPadding.apply {
             valueFormat = { "$it %" }
-            progress = initialSidePadding
+            progress = AppConfig.webtoonSidePaddingDp
             onChanged = { newValue ->
                 callback?.upSidePadding(newValue)
-                initialSidePadding = newValue
             }
         }
 
@@ -78,15 +77,13 @@ class MangaScrollModeDialog : BaseBottomSheetDialogFragment(R.layout.dialog_mang
     }
 
     private fun initAutoPageSpeed(boolean: Boolean) {
-        TransitionManager.beginDelayedTransition(binding.rootView)
         binding.scvAutoPageSpeed.run {
             isEnabled = boolean
             valueFormat = { "$it 秒" }
-            progress = initialAutoPageSpeed
+            progress = AppConfig.mangaAutoPageSpeed
 
             onChanged = { newValue ->
                 callback?.onAutoPageSpeedChanged(newValue)
-                initialAutoPageSpeed = newValue
             }
         }
     }
@@ -98,6 +95,7 @@ class MangaScrollModeDialog : BaseBottomSheetDialogFragment(R.layout.dialog_mang
         fun onClickScrollDisabledChanged(disabled: Boolean)
         fun onMangaScaleDisabledChanged(disabled: Boolean)
         fun upSidePadding(padding: Int)
+        fun onHideMangaTitleChanged(hide: Boolean)
     }
 
 }

+ 2 - 0
app/src/main/java/io/legato/kazusa/ui/book/manga/entities/ReaderLoading.kt

@@ -7,3 +7,5 @@ data class ReaderLoading(
     val isVolume: Boolean = false
 ) : BaseMangaPage
 
+
+

+ 8 - 0
app/src/main/java/io/legato/kazusa/ui/book/manga/recyclerview/MangaAdapter.kt

@@ -30,6 +30,7 @@ import io.legato.kazusa.ui.book.manga.entities.EpaperTransformation
 import io.legato.kazusa.ui.book.manga.entities.GrayscaleTransformation
 import io.legato.kazusa.ui.book.manga.entities.MangaPage
 import io.legato.kazusa.ui.book.manga.entities.ReaderLoading
+import io.legato.kazusa.utils.dpToPx
 
 
 class MangaAdapter(private val context: Context) :
@@ -141,6 +142,13 @@ class MangaAdapter(private val context: Context) :
                 binding.text.text = message
                 binding.textChapter.text = ""
             }
+            itemView.updateLayoutParams {
+                height = if (isHorizontal) {
+                    MATCH_PARENT
+                } else {
+                    96.dpToPx()
+                }
+            }
         }
     }
 

+ 2 - 2
app/src/main/java/io/legato/kazusa/ui/book/manga/recyclerview/MangaVH.kt

@@ -36,7 +36,7 @@ open class MangaVH<VB : ViewBinding>(val binding: VB, private val context: Conte
     protected lateinit var mFlProgress: FrameLayout
     protected var mRetry: Button? = null
 
-    private val minHeight = context.resources.displayMetrics.heightPixels * 2 / 3
+    //private val minHeight = context.resources.displayMetrics.heightPixels * 2 / 3
 
     fun initComponent(
         loading: ProgressBar,
@@ -111,7 +111,7 @@ open class MangaVH<VB : ViewBinding>(val binding: VB, private val context: Conte
                             mImage.updateLayoutParams<FrameLayout.LayoutParams> {
                                 height = ViewGroup.LayoutParams.WRAP_CONTENT
                             }
-                            itemView.minimumHeight = minHeight
+                            itemView.minimumHeight = 0
                         } else {
                             mImage.updateLayoutParams<FrameLayout.LayoutParams> {
                                 height = ViewGroup.LayoutParams.MATCH_PARENT

+ 15 - 5
app/src/main/res/layout/activity_manga.xml

@@ -44,7 +44,8 @@
         <LinearLayout
             android:id="@+id/ll_loading"
             android:layout_width="match_parent"
-            android:layout_height="wrap_content"
+            android:layout_height="match_parent"
+            android:background="?attr/colorSurface"
             android:layout_gravity="center"
             android:gravity="center"
             android:orientation="vertical">
@@ -61,7 +62,6 @@
                 android:layout_width="wrap_content"
                 android:layout_height="wrap_content"
                 android:layout_marginTop="8dp"
-                android:textColor="?attr/colorSurface"
                 android:text="@string/loading" />
         </LinearLayout>
 
@@ -73,19 +73,29 @@
             android:orientation="vertical"
             android:visibility="gone">
 
+            <TextView
+                android:id="@+id/tv_msg2"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:text="Σ(#`O′)"
+                android:textColor="@color/white"
+                android:textSize="24sp" />
+
             <TextView
                 android:id="@+id/tv_msg"
                 android:layout_width="wrap_content"
-                android:layout_height="wrap_content" />
+                android:layout_height="wrap_content"
+                android:textColor="@color/white" />
 
             <com.google.android.material.button.MaterialButton
                 android:id="@+id/tv_retry"
                 android:layout_width="wrap_content"
                 android:layout_height="wrap_content"
-                style="@style/Widget.Material3.Button.TonalButton"
+                style="@style/Widget.Material3.Button.IconButton.Filled.Tonal"
+                app:icon="@drawable/ic_refresh"
                 android:layout_margin="16dp"
+                app:iconPadding="4dp"
                 android:text="重新加载"
-                android:textSize="18sp"
                 tools:visibility="visible" />
         </LinearLayout>
 

+ 6 - 0
app/src/main/res/layout/dialog_manga_scroll_mode.xml

@@ -131,6 +131,12 @@
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
             android:text="@string/disable_manga_scale" />
+
+        <com.google.android.material.checkbox.MaterialCheckBox
+            android:id="@+id/checkboxHideMangaTitle"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:text="@string/hide_manga_title" />
     </LinearLayout>
 
 

+ 30 - 30
app/src/main/res/layout/item_book_manga_edge.xml

@@ -1,38 +1,38 @@
 <?xml version="1.0" encoding="utf-8"?>
-<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
     android:layout_width="match_parent"
-    android:layout_height="wrap_content"
+    android:layout_height="match_parent"
+    android:gravity="center_vertical"
+    android:orientation="vertical"
+    android:padding="24dp"
     android:background="@color/book_ant_10">
 
-    <LinearLayout
-        android:id="@+id/ll_text"
-        android:layout_width="wrap_content"
+    <TextView
+        android:id="@+id/text"
+        android:layout_width="match_parent"
         android:layout_height="wrap_content"
-        android:layout_gravity="center_vertical"
-        android:orientation="vertical"
-        android:padding="32dp">
+        android:autoSizeMaxTextSize="12sp"
+        android:autoSizeMinTextSize="8sp"
+        android:autoSizePresetSizes="12sp"
+        android:autoSizeStepGranularity="2dp"
+        android:autoSizeTextType="uniform"
+        android:text="已读完"
+        android:textColor="@color/white"
+        android:textStyle="bold" />
 
-        <TextView
-            android:id="@+id/text"
-            android:layout_width="match_parent"
-            android:layout_height="match_parent"
-            android:layout_gravity="start"
-            android:autoSizeTextType="uniform"
-            android:text="已读完"
-            android:textColor="?attr/colorSurface"
-            android:textStyle="bold" />
-
-        <TextView
-            android:id="@+id/textChapter"
-            android:layout_width="match_parent"
-            android:layout_height="match_parent"
-            android:autoSizeTextType="uniform"
-            android:text="下一章123"
-            android:textColor="?attr/colorSurface"
-            android:textSize="22sp"
-            android:textStyle="bold" />
-
-    </LinearLayout>
+    <TextView
+        android:id="@+id/textChapter"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:autoSizeMaxTextSize="22sp"
+        android:autoSizeMinTextSize="12sp"
+        android:autoSizePresetSizes="22sp"
+        android:autoSizeStepGranularity="2dp"
+        android:autoSizeTextType="uniform"
+        android:text="下一章123"
+        android:textColor="@color/white"
+        android:textSize="22sp"
+        android:textStyle="bold" />
 
 
-</FrameLayout>
+</LinearLayout>

+ 0 - 20
app/src/main/res/menu/book_manga.xml

@@ -25,24 +25,4 @@
         app:showAsAction="never" />
 
 
-    <item
-        android:id="@+id/menu_disable_horizontal_animation"
-        android:checkable="true"
-        android:checked="false"
-        android:title="@string/disable_horizontal_animation"
-        android:visible="false"
-        app:showAsAction="never" />
-
-    <item
-        android:id="@+id/menu_manga_color_filter"
-        android:title="@string/manga_color_filter"
-        app:showAsAction="never" />
-
-    <item
-        android:id="@+id/menu_hide_manga_title"
-        android:checkable="true"
-        android:checked="false"
-        android:title="@string/hide_manga_title"
-        app:showAsAction="never" />
-
 </menu>

+ 1 - 1
app/src/main/res/values-zh/strings.xml

@@ -1215,7 +1215,7 @@
     <string name="manga_radio_center">居中</string>
     <string name="enable_manga_horizontal_scroll">水平滚动</string>
     <string name="manga_color_filter">滤镜</string>
-    <string name="hide_manga_title">隐藏漫画列表标题</string>
+    <string name="hide_manga_title">隐藏章节过渡界面</string>
     <string name="refresh_explore">刷新发现</string>
     <string name="ungroup">未分组</string>
     <string name="dynamic_colors">动态取色</string>

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

@@ -165,7 +165,6 @@
 
 
 	<string-array name="default_app_variant">
-		<item>@string/default_version</item>
 		<item>@string/official_version</item>
 		<item>@string/beta_release_version</item>
 		<item>@string/beta_releaseA_version</item>
@@ -179,7 +178,6 @@
 	</string-array>
 
 	<string-array name="default_app_variant_value">
-		<item>default_version</item>
 		<item>official_version</item>
 		<item>beta_release_version</item>
 		<item>beta_releaseA_version</item>