增加开启自动翻页 (#4717)

* 增加点击屏幕下部分右边下一页,左部分上一页

* 优化

* 增加开启自动翻页

* ...

* 修改命名

* ...

* ...
This commit is contained in:
lhjgege
2025-02-19 15:16:17 +08:00
committed by GitHub
parent 15fa2f473d
commit 904933d864
12 changed files with 120 additions and 10 deletions
@@ -96,6 +96,7 @@ object PreferKey {
const val imageRetainNum = "imageRetainNum" const val imageRetainNum = "imageRetainNum"
const val preDownloadNum = "preDownloadNum" const val preDownloadNum = "preDownloadNum"
const val mangaPreDownloadNum = "mangaPreDownloadNum" const val mangaPreDownloadNum = "mangaPreDownloadNum"
const val mangaAutoPageSpeed = "mangaAutoPageSpeed"
const val singlePageScrolling = "singlePageScrolling" const val singlePageScrolling = "singlePageScrolling"
const val disableClickScroller = "disableClickScroller" const val disableClickScroller = "disableClickScroller"
const val autoRefresh = "auto_refresh" const val autoRefresh = "auto_refresh"
@@ -636,5 +636,12 @@ object AppConfig : SharedPreferences.OnSharedPreferenceChangeListener {
set(value) { set(value) {
appCtx.putPrefBoolean(PreferKey.disableClickScroller, value) appCtx.putPrefBoolean(PreferKey.disableClickScroller, value)
} }
//漫画滚动速度
var mangaAutoPageSpeed
get() = appCtx.getPrefInt(PreferKey.mangaAutoPageSpeed, 3)
set(value) {
appCtx.putPrefInt(PreferKey.mangaAutoPageSpeed, value)
}
} }
@@ -4,6 +4,7 @@ import android.annotation.SuppressLint
import android.content.Intent import android.content.Intent
import android.os.Build import android.os.Build
import android.os.Bundle import android.os.Bundle
import android.os.Handler
import android.os.Looper import android.os.Looper
import android.view.KeyEvent import android.view.KeyEvent
import android.view.Menu import android.view.Menu
@@ -109,6 +110,22 @@ class ReadMangaActivity : VMBaseActivity<ActivityMangaBinding, MangaViewModel>()
} }
} }
} }
private var mDisableAutoScrollPage = false
private val mInitMangaAutoPageSpeed by lazy {
AppConfig.mangaAutoPageSpeed
}
private var mMangaAutoPageSpeed = mInitMangaAutoPageSpeed
private val autoScrollHandler = Handler(Looper.getMainLooper())
private val autoScrollRunnable = object : Runnable {
override fun run() {
scrollToNext()
autoScrollHandler.postDelayed(this, mMangaAutoPageSpeed.times(1000L)) // 每3秒滑动一次
}
}
private var mMenu: Menu? = null
private var mRecyclerViewPreloader: RecyclerViewPreloader<Any>? = null private var mRecyclerViewPreloader: RecyclerViewPreloader<Any>? = null
@@ -304,6 +321,7 @@ class ReadMangaActivity : VMBaseActivity<ActivityMangaBinding, MangaViewModel>()
ReadManga.syncProgress({ progress -> sureNewProgress(progress) }) ReadManga.syncProgress({ progress -> sureNewProgress(progress) })
} }
} }
startAutoPage()
} }
override fun onPause() { override fun onPause() {
@@ -320,6 +338,7 @@ class ReadMangaActivity : VMBaseActivity<ActivityMangaBinding, MangaViewModel>()
} }
} }
networkChangedListener.unRegister() networkChangedListener.unRegister()
stopAutoPage()
} }
override fun loadComplete() { override fun loadComplete() {
@@ -413,16 +432,15 @@ class ReadMangaActivity : VMBaseActivity<ActivityMangaBinding, MangaViewModel>()
} }
R.id.menu_pre_manga_number -> { R.id.menu_pre_manga_number -> {
NumberPickerDialog(this) showNumberPickerDialog(
.setTitle(getString(R.string.pre_download)) 0,
.setMaxValue(9999) getString(R.string.pre_download),
.setMinValue(0) AppConfig.mangaPreDownloadNum
.setValue(AppConfig.mangaPreDownloadNum) ) {
.show { AppConfig.mangaPreDownloadNum = it
AppConfig.mangaPreDownloadNum = it item.title = getString(R.string.pre_download_m, it)
item.title = getString(R.string.pre_download_m, it) addRecyclerViewPreloader(it)
addRecyclerViewPreloader(it) }
}
} }
R.id.menu_scroller_page -> { R.id.menu_scroller_page -> {
@@ -442,6 +460,29 @@ class ReadMangaActivity : VMBaseActivity<ActivityMangaBinding, MangaViewModel>()
AppConfig.disableClickScroller = item.isChecked AppConfig.disableClickScroller = item.isChecked
disabledClickScroller(item.isChecked) disabledClickScroller(item.isChecked)
} }
R.id.menu_enable_auto_page -> {
item.isChecked = !item.isChecked
val menuMangaAutoPageSpeed = mMenu?.findItem(R.id.menu_manga_auto_page_speed)
mDisableAutoScrollPage = item.isChecked
if (item.isChecked) {
startAutoPage()
menuMangaAutoPageSpeed?.isVisible = true
} else {
stopAutoPage()
menuMangaAutoPageSpeed?.isVisible = false
}
}
R.id.menu_manga_auto_page_speed -> {
showNumberPickerDialog(1,getString(R.string.setting_manga_auto_page_speed), 3) {
AppConfig.mangaAutoPageSpeed = it
mMangaAutoPageSpeed = it
item.title = getString(R.string.manga_auto_page_speed, it)
stopAutoPage()
startAutoPage()
}
}
} }
return super.onCompatOptionsItemSelected(item) return super.onCompatOptionsItemSelected(item)
} }
@@ -497,11 +538,14 @@ class ReadMangaActivity : VMBaseActivity<ActivityMangaBinding, MangaViewModel>()
@SuppressLint("StringFormatMatches") @SuppressLint("StringFormatMatches")
private fun upMenu(menu: Menu) { private fun upMenu(menu: Menu) {
this.mMenu = menu
menu.findItem(R.id.menu_pre_manga_number).title = menu.findItem(R.id.menu_pre_manga_number).title =
getString(R.string.pre_download_m, mPreDownloadNum) getString(R.string.pre_download_m, mPreDownloadNum)
menu.findItem(R.id.menu_scroller_page).isChecked = mSinglePageScroller menu.findItem(R.id.menu_scroller_page).isChecked = mSinglePageScroller
menu.findItem(R.id.menu_disable_manga_scaling).isChecked = mDisableMangaScaling menu.findItem(R.id.menu_disable_manga_scaling).isChecked = mDisableMangaScaling
menu.findItem(R.id.menu_disable_click_scroller).isChecked = mDisableClickScroller menu.findItem(R.id.menu_disable_click_scroller).isChecked = mDisableClickScroller
menu.findItem(R.id.menu_manga_auto_page_speed).title =
getString(R.string.manga_auto_page_speed, mMangaAutoPageSpeed)
} }
private fun disableMangaScaling(disable: Boolean) { private fun disableMangaScaling(disable: Boolean) {
@@ -556,4 +600,25 @@ class ReadMangaActivity : VMBaseActivity<ActivityMangaBinding, MangaViewModel>()
mSmoothScroller.targetPosition = position mSmoothScroller.targetPosition = position
mLayoutManager.startSmoothScroll(mSmoothScroller) mLayoutManager.startSmoothScroll(mSmoothScroller)
} }
private fun startAutoPage() {
if (mDisableAutoScrollPage) {
autoScrollHandler.postDelayed(autoScrollRunnable, mMangaAutoPageSpeed.times(1000L))
}
}
private fun stopAutoPage() {
autoScrollHandler.removeCallbacks(autoScrollRunnable)
}
private fun showNumberPickerDialog(min:Int,title: String, initValue: Int, callback: (Int) -> Unit) {
NumberPickerDialog(this)
.setTitle(title)
.setMaxValue(9999)
.setMinValue(min)
.setValue(initValue)
.show {
callback.invoke(it)
}
}
} }
+13
View File
@@ -44,4 +44,17 @@
android:checked="false" android:checked="false"
android:title="@string/disable_manga_click_scroller" android:title="@string/disable_manga_click_scroller"
app:showAsAction="never" /> app:showAsAction="never" />
<item
android:id="@+id/menu_enable_auto_page"
android:checkable="true"
android:checked="false"
android:title="@string/enable_auto_page_scroller"
app:showAsAction="never" />
<item
android:id="@+id/menu_manga_auto_page_speed"
android:visible="false"
android:title="@string/manga_auto_page_speed"
app:showAsAction="never" />
</menu> </menu>
@@ -1185,6 +1185,9 @@
<string name="show_mange_ui">漫画浏览</string> <string name="show_mange_ui">漫画浏览</string>
<string name="disable_manga_scaling">禁用漫画缩放</string> <string name="disable_manga_scaling">禁用漫画缩放</string>
<string name="disable_manga_click_scroller">禁用点击翻页</string> <string name="disable_manga_click_scroller">禁用点击翻页</string>
<string name="enable_auto_page_scroller">开启自动翻页</string>
<string name="manga_auto_page_speed">翻页速度 %s 秒</string>
<string name="setting_manga_auto_page_speed">设置自动翻页速度</string>
<string name="book_reader_info_bar">页数. %1$d/%2$d 章节. %3$d/%4$d -> %5$s%%</string> <string name="book_reader_info_bar">页数. %1$d/%2$d 章节. %3$d/%4$d -> %5$s%%</string>
<string name="menu_download_after">Descargar el siguiente capítulo</string> <string name="menu_download_after">Descargar el siguiente capítulo</string>
<string name="menu_download_all">Descargar todos los capítulos</string> <string name="menu_download_all">Descargar todos los capítulos</string>
@@ -1188,6 +1188,9 @@
<string name="show_mange_ui">漫画浏览</string> <string name="show_mange_ui">漫画浏览</string>
<string name="disable_manga_scaling">禁用漫画缩放</string> <string name="disable_manga_scaling">禁用漫画缩放</string>
<string name="disable_manga_click_scroller">禁用点击翻页</string> <string name="disable_manga_click_scroller">禁用点击翻页</string>
<string name="enable_auto_page_scroller">开启自动翻页</string>
<string name="manga_auto_page_speed">翻页速度 %s 秒</string>
<string name="setting_manga_auto_page_speed">设置自动翻页速度</string>
<string name="book_reader_info_bar">页数. %1$d/%2$d 章节. %3$d/%4$d -> %5$s%%</string> <string name="book_reader_info_bar">页数. %1$d/%2$d 章节. %3$d/%4$d -> %5$s%%</string>
<string name="menu_download_after">下载之后章节</string> <string name="menu_download_after">下载之后章节</string>
<string name="menu_download_all">下载全部章节</string> <string name="menu_download_all">下载全部章节</string>
@@ -1188,6 +1188,9 @@
<string name="show_mange_ui">漫画浏览</string> <string name="show_mange_ui">漫画浏览</string>
<string name="disable_manga_scaling">禁用漫画缩放</string> <string name="disable_manga_scaling">禁用漫画缩放</string>
<string name="disable_manga_click_scroller">禁用点击翻页</string> <string name="disable_manga_click_scroller">禁用点击翻页</string>
<string name="enable_auto_page_scroller">开启自动翻页</string>
<string name="manga_auto_page_speed">翻页速度 %s 秒</string>
<string name="setting_manga_auto_page_speed">设置自动翻页速度</string>
<string name="book_reader_info_bar">页数. %1$d/%2$d 章节. %3$d/%4$d -> %5$s%%</string> <string name="book_reader_info_bar">页数. %1$d/%2$d 章节. %3$d/%4$d -> %5$s%%</string>
<string name="menu_download_after">Faça o download do próximo capítulo</string> <string name="menu_download_after">Faça o download do próximo capítulo</string>
<string name="menu_download_all">Download de todos os capítulos</string> <string name="menu_download_all">Download de todos os capítulos</string>
+3
View File
@@ -1184,6 +1184,9 @@ Còn </string>
<string name="show_mange_ui">漫画浏览</string> <string name="show_mange_ui">漫画浏览</string>
<string name="disable_manga_scaling">禁用漫画缩放</string> <string name="disable_manga_scaling">禁用漫画缩放</string>
<string name="disable_manga_click_scroller">禁用点击翻页</string> <string name="disable_manga_click_scroller">禁用点击翻页</string>
<string name="enable_auto_page_scroller">开启自动翻页</string>
<string name="manga_auto_page_speed">翻页速度 %s 秒</string>
<string name="setting_manga_auto_page_speed">设置自动翻页速度</string>
<string name="book_reader_info_bar">页数. %1$d/%2$d 章节. %3$d/%4$d -> %5$s%%</string> <string name="book_reader_info_bar">页数. %1$d/%2$d 章节. %3$d/%4$d -> %5$s%%</string>
<string name="menu_download_after">Tải xuống chương tiếp theo</string> <string name="menu_download_after">Tải xuống chương tiếp theo</string>
<string name="menu_download_all">Tải xuống tất cả các chương</string> <string name="menu_download_all">Tải xuống tất cả các chương</string>
@@ -1185,6 +1185,9 @@
<string name="show_mange_ui">漫画浏览</string> <string name="show_mange_ui">漫画浏览</string>
<string name="disable_manga_scaling">禁用漫画缩放</string> <string name="disable_manga_scaling">禁用漫画缩放</string>
<string name="disable_manga_click_scroller">禁用点击翻页</string> <string name="disable_manga_click_scroller">禁用点击翻页</string>
<string name="enable_auto_page_scroller">开启自动翻页</string>
<string name="manga_auto_page_speed">翻页速度 %s 秒</string>
<string name="setting_manga_auto_page_speed">设置自动翻页速度</string>
<string name="book_reader_info_bar">页数. %1$d/%2$d 章节. %3$d/%4$d -> %5$s%%</string> <string name="book_reader_info_bar">页数. %1$d/%2$d 章节. %3$d/%4$d -> %5$s%%</string>
<string name="menu_download_after">下載之後章節</string> <string name="menu_download_after">下載之後章節</string>
<string name="menu_download_all">下載全部章節</string> <string name="menu_download_all">下載全部章節</string>
@@ -1187,6 +1187,9 @@
<string name="show_mange_ui">漫画浏览</string> <string name="show_mange_ui">漫画浏览</string>
<string name="disable_manga_scaling">禁用漫画缩放</string> <string name="disable_manga_scaling">禁用漫画缩放</string>
<string name="disable_manga_click_scroller">禁用点击翻页</string> <string name="disable_manga_click_scroller">禁用点击翻页</string>
<string name="enable_auto_page_scroller">开启自动翻页</string>
<string name="manga_auto_page_speed">翻页速度 %s 秒</string>
<string name="setting_manga_auto_page_speed">设置自动翻页速度</string>
<string name="book_reader_info_bar">页数. %1$d/%2$d 章节. %3$d/%4$d -> %5$s%%</string> <string name="book_reader_info_bar">页数. %1$d/%2$d 章节. %3$d/%4$d -> %5$s%%</string>
<string name="menu_download_after">下載之後章節</string> <string name="menu_download_after">下載之後章節</string>
<string name="menu_download_all">下載全部章節</string> <string name="menu_download_all">下載全部章節</string>
+3
View File
@@ -1187,6 +1187,9 @@
<string name="show_mange_ui">漫画浏览</string> <string name="show_mange_ui">漫画浏览</string>
<string name="disable_manga_scaling">禁用漫画缩放</string> <string name="disable_manga_scaling">禁用漫画缩放</string>
<string name="disable_manga_click_scroller">禁用点击翻页</string> <string name="disable_manga_click_scroller">禁用点击翻页</string>
<string name="enable_auto_page_scroller">开启自动翻页</string>
<string name="manga_auto_page_speed">翻页速度 %s 秒</string>
<string name="setting_manga_auto_page_speed">设置自动翻页速度</string>
<string name="book_reader_info_bar">页数. %1$d/%2$d 章节. %3$d/%4$d -> %5$s%%</string> <string name="book_reader_info_bar">页数. %1$d/%2$d 章节. %3$d/%4$d -> %5$s%%</string>
<string name="menu_download_after">下载之后章节</string> <string name="menu_download_after">下载之后章节</string>
<string name="menu_download_all">下载全部章节</string> <string name="menu_download_all">下载全部章节</string>
+3
View File
@@ -1188,6 +1188,9 @@
<string name="show_mange_ui">漫画浏览</string> <string name="show_mange_ui">漫画浏览</string>
<string name="disable_manga_scaling">禁用漫画缩放</string> <string name="disable_manga_scaling">禁用漫画缩放</string>
<string name="disable_manga_click_scroller">禁用点击翻页</string> <string name="disable_manga_click_scroller">禁用点击翻页</string>
<string name="enable_auto_page_scroller">开启自动翻页</string>
<string name="manga_auto_page_speed">翻页速度 %s 秒</string>
<string name="setting_manga_auto_page_speed">设置自动翻页速度</string>
<string name="book_reader_info_bar">页数. %1$d/%2$d 章节. %3$d/%4$d -> %5$s%%</string> <string name="book_reader_info_bar">页数. %1$d/%2$d 章节. %3$d/%4$d -> %5$s%%</string>
<string name="menu_download_after">Download the chapter after</string> <string name="menu_download_after">Download the chapter after</string>
<string name="menu_download_all">Download all chapter</string> <string name="menu_download_all">Download all chapter</string>