修复一些问题
This commit is contained in:
@@ -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
@@ -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(" ")
|
||||
}
|
||||
|
||||
|
||||
@@ -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)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -7,3 +7,5 @@ data class ReaderLoading(
|
||||
val isVolume: Boolean = false
|
||||
) : BaseMangaPage
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -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()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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>
|
||||
|
||||
|
||||
@@ -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>
|
||||
|
||||
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
Reference in New Issue
Block a user