This commit is contained in:
Horis
2025-03-02 18:52:13 +08:00
parent 3ea8eb67d2
commit 5bcac0ffca
16 changed files with 90 additions and 87 deletions

View File

@@ -98,9 +98,9 @@ object PreferKey {
const val mangaPreDownloadNum = "mangaPreDownloadNum"
const val mangaAutoPageSpeed = "mangaAutoPageSpeed"
const val mangaFooterConfig = "mangaFooterConfig"
const val singlePageScrolling = "singlePageScrolling"
const val disableClickScroller = "disableClickScroller"
const val enableMangaHorizontalScroller="enableMangaHorizontalScroller"
const val singlePageScroll = "singlePageScroll"
const val disableClickScroll = "disableClickScroll"
const val enableMangaHorizontalScroll = "enableMangaHorizontalScroll"
const val autoRefresh = "auto_refresh"
const val defaultToRead = "defaultToRead"
const val exportCharset = "exportCharset"
@@ -160,7 +160,7 @@ object PreferKey {
const val pauseReadAloudWhilePhoneCalls = "pauseReadAloudWhilePhoneCalls"
const val readAloudByMediaButton = "readAloudByMediaButton"
const val showMangaUi = "showMangaUi"
const val disableMangaScaling = "disableMangaScaling"
const val disableMangaScale = "disableMangaScale"
const val cPrimary = "colorPrimary"
const val cAccent = "colorAccent"

View File

@@ -610,10 +610,10 @@ object AppConfig : SharedPreferences.OnSharedPreferenceChangeListener {
get() = appCtx.getPrefBoolean(PreferKey.showMangaUi, true)
//禁用漫画缩放
var disableMangaScaling: Boolean
get() = appCtx.getPrefBoolean(PreferKey.disableMangaScaling, true)
var disableMangaScale: Boolean
get() = appCtx.getPrefBoolean(PreferKey.disableMangaScale, true)
set(value) {
appCtx.putPrefBoolean(PreferKey.disableMangaScaling, value)
appCtx.putPrefBoolean(PreferKey.disableMangaScale, value)
}
//漫画预加载数量
@@ -624,17 +624,17 @@ object AppConfig : SharedPreferences.OnSharedPreferenceChangeListener {
}
//单页滚动
var singlePageScrolling
get() = appCtx.getPrefBoolean(PreferKey.singlePageScrolling, false)
var singlePageScroll
get() = appCtx.getPrefBoolean(PreferKey.singlePageScroll, false)
set(value) {
appCtx.putPrefBoolean(PreferKey.singlePageScrolling, value)
appCtx.putPrefBoolean(PreferKey.singlePageScroll, value)
}
//点击翻页
var disableClickScroller
get() = appCtx.getPrefBoolean(PreferKey.disableClickScroller, false)
var disableClickScroll
get() = appCtx.getPrefBoolean(PreferKey.disableClickScroll, false)
set(value) {
appCtx.putPrefBoolean(PreferKey.disableClickScroller, value)
appCtx.putPrefBoolean(PreferKey.disableClickScroll, value)
}
//漫画滚动速度
@@ -652,10 +652,10 @@ object AppConfig : SharedPreferences.OnSharedPreferenceChangeListener {
}
//漫画水平滚动
var enableMangaHorizontalScroller
get() = appCtx.getPrefBoolean(PreferKey.enableMangaHorizontalScroller, false)
var enableMangaHorizontalScroll
get() = appCtx.getPrefBoolean(PreferKey.enableMangaHorizontalScroll, false)
set(value) {
appCtx.putPrefBoolean(PreferKey.enableMangaHorizontalScroller, value)
appCtx.putPrefBoolean(PreferKey.enableMangaHorizontalScroll, value)
}
}

View File

@@ -75,7 +75,7 @@ class ReadMangaActivity : VMBaseActivity<ActivityMangaBinding, MangaViewModel>()
private val mLayoutManager by lazy {
LinearLayoutManager(
this@ReadMangaActivity,
if (AppConfig.enableMangaHorizontalScroller) LinearLayoutManager.HORIZONTAL else LinearLayoutManager.VERTICAL,
if (AppConfig.enableMangaHorizontalScroll) LinearLayoutManager.HORIZONTAL else LinearLayoutManager.VERTICAL,
false
)
}
@@ -191,7 +191,7 @@ class ReadMangaActivity : VMBaseActivity<ActivityMangaBinding, MangaViewModel>()
}
private fun initRecyclerView() {
mAdapter.isHorizontal = AppConfig.enableMangaHorizontalScroller
mAdapter.isHorizontal = AppConfig.enableMangaHorizontalScroll
binding.mRecyclerMange.run {
adapter = mAdapter
itemAnimator = null
@@ -201,11 +201,11 @@ class ReadMangaActivity : VMBaseActivity<ActivityMangaBinding, MangaViewModel>()
mLayoutManager.isItemPrefetchEnabled = true
setItemViewCacheSize(AppConfig.preDownloadNum)
singlePagerScroller(
AppConfig.singlePageScrolling,
AppConfig.enableMangaHorizontalScroller
AppConfig.singlePageScroll,
AppConfig.enableMangaHorizontalScroll
)
disabledClickScroller(AppConfig.disableClickScroller)
disableMangaScaling(AppConfig.disableMangaScaling)
disabledClickScroller(AppConfig.disableClickScroll)
disableMangaScaling(AppConfig.disableMangaScale)
setPreScrollListener { _, dx, dy, position ->
if ((dy > 0 || dx > 0) && position + 2 > mAdapter.getCurrentList().size - 3) {
if (mAdapter.getCurrentList().last() is ReaderLoading) {
@@ -487,19 +487,19 @@ class ReadMangaActivity : VMBaseActivity<ActivityMangaBinding, MangaViewModel>()
R.id.menu_scroller_page -> {
item.isChecked = !item.isChecked
AppConfig.singlePageScrolling = item.isChecked
singlePagerScroller(item.isChecked, AppConfig.enableMangaHorizontalScroller)
AppConfig.singlePageScroll = item.isChecked
singlePagerScroller(item.isChecked, AppConfig.enableMangaHorizontalScroll)
}
R.id.menu_disable_manga_scaling -> {
R.id.menu_disable_manga_scale -> {
item.isChecked = !item.isChecked
AppConfig.disableMangaScaling = item.isChecked
AppConfig.disableMangaScale = item.isChecked
disableMangaScaling(item.isChecked)
}
R.id.menu_disable_click_scroller -> {
item.isChecked = !item.isChecked
AppConfig.disableClickScroller = item.isChecked
AppConfig.disableClickScroll = item.isChecked
disabledClickScroller(item.isChecked)
}
@@ -532,10 +532,10 @@ class ReadMangaActivity : VMBaseActivity<ActivityMangaBinding, MangaViewModel>()
R.id.menu_enable_horizontal_scroller -> {
item.isChecked = !item.isChecked
AppConfig.enableMangaHorizontalScroller = item.isChecked
AppConfig.enableMangaHorizontalScroll = item.isChecked
mLayoutManager.orientation =
if (item.isChecked) LinearLayoutManager.HORIZONTAL else LinearLayoutManager.VERTICAL
singlePagerScroller(AppConfig.singlePageScrolling, item.isChecked)
singlePagerScroller(AppConfig.singlePageScroll, item.isChecked)
mAdapter.isHorizontal = item.isChecked
mAdapter.notifyItemRangeChanged(
ReadManga.durChapterPos.minus(2),
@@ -615,17 +615,17 @@ class ReadMangaActivity : VMBaseActivity<ActivityMangaBinding, MangaViewModel>()
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_scroller_page).isChecked = AppConfig.singlePageScrolling
menu.findItem(R.id.menu_disable_manga_scaling).isChecked = AppConfig.disableMangaScaling
menu.findItem(R.id.menu_disable_click_scroller).isChecked = AppConfig.disableClickScroller
menu.findItem(R.id.menu_scroller_page).isChecked = AppConfig.singlePageScroll
menu.findItem(R.id.menu_disable_manga_scale).isChecked = AppConfig.disableMangaScale
menu.findItem(R.id.menu_disable_click_scroller).isChecked = AppConfig.disableClickScroll
menu.findItem(R.id.menu_manga_auto_page_speed).title =
getString(R.string.manga_auto_page_speed, mMangaAutoPageSpeed)
menu.findItem(R.id.menu_enable_horizontal_scroller).isChecked =
AppConfig.enableMangaHorizontalScroller
AppConfig.enableMangaHorizontalScroll
}
private fun disableMangaScaling(disable: Boolean) {
binding.webtoonFrame.disableMangaScaling = disable
binding.webtoonFrame.disableMangaScale = disable
binding.mRecyclerMange.disableMangaScaling = disable
if (disable) {
binding.mRecyclerMange.resetZoom()

View File

@@ -28,13 +28,13 @@ class WebtoonFrame : FrameLayout {
scaleDetector.isQuickScaleEnabled = value
}
var disableMangaScaling = false
var disableMangaScale = false
private val recycler: WebtoonRecyclerView?
get() = getChildAt(0) as? WebtoonRecyclerView
override fun dispatchTouchEvent(ev: MotionEvent): Boolean {
if (!disableMangaScaling) {
if (!disableMangaScale) {
scaleDetector.onTouchEvent(ev)
flingDetector.onTouchEvent(ev)
val recyclerRect = Rect()

View File

@@ -65,8 +65,8 @@ class WebtoonRecyclerView @JvmOverloads constructor(
super.onMeasure(widthSpec, heightSpec)
}
override fun dispatchTouchEvent(ev: MotionEvent?): Boolean {
detector.onTouchEvent(ev!!)
override fun dispatchTouchEvent(ev: MotionEvent): Boolean {
detector.onTouchEvent(ev)
return super.dispatchTouchEvent(ev)
}

View File

@@ -38,10 +38,8 @@ import io.legado.app.utils.shouldHideSoftInput
import io.legado.app.utils.showSoftInput
import io.legado.app.utils.viewbindingdelegate.viewBinding
import io.legado.app.utils.visible
import kotlinx.coroutines.Deferred
import kotlinx.coroutines.Dispatchers.IO
import kotlinx.coroutines.Job
import kotlinx.coroutines.async
import kotlinx.coroutines.ensureActive
import kotlinx.coroutines.launch
import kotlinx.coroutines.withContext
@@ -60,7 +58,7 @@ class SearchContentActivity :
}
private var durChapterIndex = 0
private var searchJob: Job? = null
private var initJob: Deferred<*>? = null
private var initJob: Job? = null
override fun onActivityCreated(savedInstanceState: Bundle?) {
val bbg = bottomBackground
@@ -183,7 +181,7 @@ class SearchContentActivity :
}
private fun initCacheFileNames(book: Book) {
initJob = lifecycleScope.async {
initJob = lifecycleScope.launch {
withContext(IO) {
viewModel.cacheChapterNames.addAll(BookHelp.getChapterFiles(book))
}
@@ -214,7 +212,7 @@ class SearchContentActivity :
binding.refreshProgressBar.isAutoLoading = true
binding.fbStop.visible()
searchJob = lifecycleScope.launch(IO) {
initJob?.await()
initJob?.join()
kotlin.runCatching {
appDb.bookChapterDao.getChapterList(viewModel.bookUrl).forEach { bookChapter ->
ensureActive()

View File

@@ -1,15 +1,21 @@
<?xml version="1.0" encoding="utf-8"?>
<io.legado.app.ui.book.manga.rv.WebtoonFrame xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/webtoonFrame"
<FrameLayout 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="match_parent"
android:layout_height="match_parent">
<io.legado.app.ui.book.manga.rv.WebtoonRecyclerView
android:id="@+id/mRecyclerMange"
<io.legado.app.ui.book.manga.rv.WebtoonFrame
android:id="@+id/webtoonFrame"
android:layout_width="match_parent"
android:layout_height="match_parent" />
android:layout_height="match_parent">
<io.legado.app.ui.book.manga.rv.WebtoonRecyclerView
android:id="@+id/mRecyclerMange"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</io.legado.app.ui.book.manga.rv.WebtoonFrame>
<io.legado.app.ui.widget.ReaderInfoBarView
android:id="@+id/infobar"
@@ -29,7 +35,6 @@
android:visibility="gone"
tools:visibility="visible" />
<FrameLayout
android:id="@+id/fl_loading"
android:layout_width="match_parent"
@@ -89,4 +94,4 @@
</FrameLayout>
</io.legado.app.ui.book.manga.rv.WebtoonFrame>
</FrameLayout>

View File

@@ -32,24 +32,24 @@
app:showAsAction="never" />
<item
android:id="@+id/menu_disable_manga_scaling"
android:id="@+id/menu_disable_manga_scale"
android:checkable="true"
android:checked="false"
android:title="@string/disable_manga_scaling"
android:title="@string/disable_manga_scale"
app:showAsAction="never" />
<item
android:id="@+id/menu_disable_click_scroller"
android:checkable="true"
android:checked="false"
android:title="@string/disable_manga_click_scroller"
android:title="@string/disable_manga_click_scroll"
app:showAsAction="never" />
<item
android:id="@+id/menu_enable_auto_page"
android:checkable="true"
android:checked="false"
android:title="@string/enable_auto_page_scroller"
android:title="@string/enable_auto_page_scroll"
app:showAsAction="never" />
<item
@@ -62,7 +62,7 @@
android:id="@+id/menu_enable_horizontal_scroller"
android:checkable="true"
android:checked="false"
android:title="@string/enable_manga_horizontal_scroller"
android:title="@string/enable_manga_horizontal_scroll"
app:showAsAction="never" />
<item

View File

@@ -1183,9 +1183,9 @@
<string name="show_same_source">显示重复书源</string>
<string name="theme_config">主题配置</string>
<string name="show_manga_ui">漫画浏览</string>
<string name="disable_manga_scaling">禁用漫画缩放</string>
<string name="disable_manga_click_scroller">禁用点击翻页</string>
<string name="enable_auto_page_scroller">开启自动翻页</string>
<string name="disable_manga_scale">禁用漫画缩放</string>
<string name="disable_manga_click_scroll">禁用点击翻页</string>
<string name="enable_auto_page_scroll">开启自动翻页</string>
<string name="manga_auto_page_speed">翻页速度 %s 秒</string>
<string name="manga_footer_config">页脚配置</string>
<string name="setting_manga_auto_page_speed">设置自动翻页速度</string>
@@ -1205,5 +1205,5 @@
<string name="manga_header_footer">页脚</string>
<string name="manga_radio_left">靠左</string>
<string name="manga_radio_center">居中</string>
<string name="enable_manga_horizontal_scroller">水平滚动</string>
<string name="enable_manga_horizontal_scroll">水平滚动</string>
</resources>

View File

@@ -1186,9 +1186,9 @@
<string name="show_same_source">显示重复书源</string>
<string name="theme_config">主题配置</string>
<string name="show_manga_ui">漫画浏览</string>
<string name="disable_manga_scaling">禁用漫画缩放</string>
<string name="disable_manga_click_scroller">禁用点击翻页</string>
<string name="enable_auto_page_scroller">开启自动翻页</string>
<string name="disable_manga_scale">禁用漫画缩放</string>
<string name="disable_manga_click_scroll">禁用点击翻页</string>
<string name="enable_auto_page_scroll">开启自动翻页</string>
<string name="manga_auto_page_speed">翻页速度 %s 秒</string>
<string name="manga_footer_config">页脚配置</string>
<string name="setting_manga_auto_page_speed">设置自动翻页速度</string>
@@ -1208,5 +1208,5 @@
<string name="manga_header_footer">页脚</string>
<string name="manga_radio_left">靠左</string>
<string name="manga_radio_center">居中</string>
<string name="enable_manga_horizontal_scroller">水平滚动</string>
<string name="enable_manga_horizontal_scroll">水平滚动</string>
</resources>

View File

@@ -1186,9 +1186,9 @@
<string name="show_same_source">显示重复书源</string>
<string name="theme_config">主题配置</string>
<string name="show_manga_ui">漫画浏览</string>
<string name="disable_manga_scaling">禁用漫画缩放</string>
<string name="disable_manga_click_scroller">禁用点击翻页</string>
<string name="enable_auto_page_scroller">开启自动翻页</string>
<string name="disable_manga_scale">禁用漫画缩放</string>
<string name="disable_manga_click_scroll">禁用点击翻页</string>
<string name="enable_auto_page_scroll">开启自动翻页</string>
<string name="manga_auto_page_speed">翻页速度 %s 秒</string>
<string name="manga_footer_config">页脚配置</string>
<string name="setting_manga_auto_page_speed">设置自动翻页速度</string>
@@ -1208,5 +1208,5 @@
<string name="manga_header_footer">页脚</string>
<string name="manga_radio_left">靠左</string>
<string name="manga_radio_center">居中</string>
<string name="enable_manga_horizontal_scroller">水平滚动</string>
<string name="enable_manga_horizontal_scroll">水平滚动</string>
</resources>

View File

@@ -1182,9 +1182,9 @@ Còn </string>
<string name="show_same_source">显示重复书源</string>
<string name="theme_config">主题配置</string>
<string name="show_manga_ui">漫画浏览</string>
<string name="disable_manga_scaling">禁用漫画缩放</string>
<string name="disable_manga_click_scroller">禁用点击翻页</string>
<string name="enable_auto_page_scroller">开启自动翻页</string>
<string name="disable_manga_scale">禁用漫画缩放</string>
<string name="disable_manga_click_scroll">禁用点击翻页</string>
<string name="enable_auto_page_scroll">开启自动翻页</string>
<string name="manga_auto_page_speed">翻页速度 %s 秒</string>
<string name="manga_footer_config">页脚配置</string>
<string name="setting_manga_auto_page_speed">设置自动翻页速度</string>
@@ -1204,5 +1204,5 @@ Còn </string>
<string name="manga_header_footer">页脚</string>
<string name="manga_radio_left">靠左</string>
<string name="manga_radio_center">居中</string>
<string name="enable_manga_horizontal_scroller">水平滚动</string>
<string name="enable_manga_horizontal_scroll">水平滚动</string>
</resources>

View File

@@ -1183,9 +1183,9 @@
<string name="show_same_source">显示重复书源</string>
<string name="theme_config">主题配置</string>
<string name="show_manga_ui">漫画浏览</string>
<string name="disable_manga_scaling">禁用漫画缩放</string>
<string name="disable_manga_click_scroller">禁用点击翻页</string>
<string name="enable_auto_page_scroller">开启自动翻页</string>
<string name="disable_manga_scale">禁用漫画缩放</string>
<string name="disable_manga_click_scroll">禁用点击翻页</string>
<string name="enable_auto_page_scroll">开启自动翻页</string>
<string name="manga_auto_page_speed">翻页速度 %s 秒</string>
<string name="manga_footer_config">页脚配置</string>
<string name="setting_manga_auto_page_speed">设置自动翻页速度</string>
@@ -1205,5 +1205,5 @@
<string name="manga_header_footer">页脚</string>
<string name="manga_radio_left">靠左</string>
<string name="manga_radio_center">居中</string>
<string name="enable_manga_horizontal_scroller">水平滚动</string>
<string name="enable_manga_horizontal_scroll">水平滚动</string>
</resources>

View File

@@ -1185,9 +1185,9 @@
<string name="show_same_source">显示重复书源</string>
<string name="theme_config">主题配置</string>
<string name="show_manga_ui">漫画浏览</string>
<string name="disable_manga_scaling">禁用漫画缩放</string>
<string name="disable_manga_click_scroller">禁用点击翻页</string>
<string name="enable_auto_page_scroller">开启自动翻页</string>
<string name="disable_manga_scale">禁用漫画缩放</string>
<string name="disable_manga_click_scroll">禁用点击翻页</string>
<string name="enable_auto_page_scroll">开启自动翻页</string>
<string name="manga_auto_page_speed">翻页速度 %s 秒</string>
<string name="manga_footer_config">页脚配置</string>
<string name="setting_manga_auto_page_speed">设置自动翻页速度</string>
@@ -1207,5 +1207,5 @@
<string name="manga_header_footer">页脚</string>
<string name="manga_radio_left">靠左</string>
<string name="manga_radio_center">居中</string>
<string name="enable_manga_horizontal_scroller">水平滚动</string>
<string name="enable_manga_horizontal_scroll">水平滚动</string>
</resources>

View File

@@ -1185,9 +1185,9 @@
<string name="show_same_source">显示重复书源</string>
<string name="theme_config">主题配置</string>
<string name="show_manga_ui">漫画浏览</string>
<string name="disable_manga_scaling">禁用漫画缩放</string>
<string name="disable_manga_click_scroller">禁用点击翻页</string>
<string name="enable_auto_page_scroller">开启自动翻页</string>
<string name="disable_manga_scale">禁用漫画缩放</string>
<string name="disable_manga_click_scroll">禁用点击翻页</string>
<string name="enable_auto_page_scroll">开启自动翻页</string>
<string name="manga_auto_page_speed">翻页速度 %s 秒</string>
<string name="manga_footer_config">页脚配置</string>
<string name="setting_manga_auto_page_speed">设置自动翻页速度</string>
@@ -1207,5 +1207,5 @@
<string name="manga_header_footer">页脚</string>
<string name="manga_radio_left">靠左</string>
<string name="manga_radio_center">居中</string>
<string name="enable_manga_horizontal_scroller">水平滚动</string>
<string name="enable_manga_horizontal_scroll">水平滚动</string>
</resources>

View File

@@ -1186,9 +1186,9 @@
<string name="show_same_source">显示重复书源</string>
<string name="theme_config">主题配置</string>
<string name="show_manga_ui">漫画浏览</string>
<string name="disable_manga_scaling">禁用漫画缩放</string>
<string name="disable_manga_click_scroller">禁用点击翻页</string>
<string name="enable_auto_page_scroller">开启自动翻页</string>
<string name="disable_manga_scale">禁用漫画缩放</string>
<string name="disable_manga_click_scroll">禁用点击翻页</string>
<string name="enable_auto_page_scroll">开启自动翻页</string>
<string name="manga_auto_page_speed">翻页速度 %s 秒</string>
<string name="manga_footer_config">页脚配置</string>
<string name="setting_manga_auto_page_speed">设置自动翻页速度</string>
@@ -1208,5 +1208,5 @@
<string name="manga_header_footer">页脚</string>
<string name="manga_radio_left">靠左</string>
<string name="manga_radio_center">居中</string>
<string name="enable_manga_horizontal_scroller">水平滚动</string>
<string name="enable_manga_horizontal_scroll">水平滚动</string>
</resources>