HapeLee 1 год назад
Родитель
Сommit
bc01b81cac

+ 37 - 8
app/src/main/AndroidManifest.xml

@@ -31,12 +31,6 @@
         android:supportsRtl="true"
         android:supportsRtl="true"
         android:theme="@style/Base.AppTheme"
         android:theme="@style/Base.AppTheme"
         tools:ignore="AllowBackup,GoogleAppIndexingWarning,UnusedAttribute">
         tools:ignore="AllowBackup,GoogleAppIndexingWarning,UnusedAttribute">
-        <!-- 主入口 -->
-        <activity
-            android:name=".ui.welcome.WelcomeActivity"
-            android:exported="true">
-
-        </activity>
         <!-- 图标1 -->
         <!-- 图标1 -->
         <activity-alias
         <activity-alias
             android:name=".ui.welcome.Launcher1"
             android:name=".ui.welcome.Launcher1"
@@ -119,9 +113,9 @@
         <activity
         <activity
             android:name=".ui.main.MainActivity"
             android:name=".ui.main.MainActivity"
             android:alwaysRetainTaskState="true"
             android:alwaysRetainTaskState="true"
+            android:enableOnBackInvokedCallback="true"
             android:configChanges="locale|keyboardHidden|orientation|screenSize|smallestScreenSize|screenLayout|uiMode"
             android:configChanges="locale|keyboardHidden|orientation|screenSize|smallestScreenSize|screenLayout|uiMode"
-            android:exported="true"
-            android:launchMode="singleTask">
+            android:exported="true">
             <intent-filter>
             <intent-filter>
                 <action android:name="android.intent.action.MAIN" />
                 <action android:name="android.intent.action.MAIN" />
 
 
@@ -159,165 +153,200 @@
         <!-- 书籍详情页 -->
         <!-- 书籍详情页 -->
         <activity
         <activity
             android:name=".ui.book.info.BookInfoActivity"
             android:name=".ui.book.info.BookInfoActivity"
+            android:enableOnBackInvokedCallback="true"
             android:launchMode="singleTop" />
             android:launchMode="singleTop" />
         <!-- 书籍信息编辑 -->
         <!-- 书籍信息编辑 -->
         <activity
         <activity
             android:name=".ui.book.info.edit.BookInfoEditActivity"
             android:name=".ui.book.info.edit.BookInfoEditActivity"
+            android:enableOnBackInvokedCallback="true"
             android:launchMode="singleTask" />
             android:launchMode="singleTask" />
         <!-- 音频播放界面 -->
         <!-- 音频播放界面 -->
         <activity
         <activity
             android:name="io.legato.kazusa.ui.book.audio.AudioPlayActivity"
             android:name="io.legato.kazusa.ui.book.audio.AudioPlayActivity"
+            android:enableOnBackInvokedCallback="true"
             android:launchMode="singleTask" />
             android:launchMode="singleTask" />
         <!-- 授权界面 -->
         <!-- 授权界面 -->
         <activity
         <activity
             android:name="io.legato.kazusa.lib.permission.PermissionActivity"
             android:name="io.legato.kazusa.lib.permission.PermissionActivity"
+            android:enableOnBackInvokedCallback="true"
             android:theme="@style/Activity.Permission" />
             android:theme="@style/Activity.Permission" />
         <!-- 二维码扫描 -->
         <!-- 二维码扫描 -->
         <activity
         <activity
             android:name=".ui.qrcode.QrCodeActivity"
             android:name=".ui.qrcode.QrCodeActivity"
+            android:enableOnBackInvokedCallback="true"
             android:launchMode="singleTask" />
             android:launchMode="singleTask" />
         <!-- 规则订阅 -->
         <!-- 规则订阅 -->
         <activity
         <activity
             android:name=".ui.rss.subscription.RuleSubActivity"
             android:name=".ui.rss.subscription.RuleSubActivity"
+            android:enableOnBackInvokedCallback="true"
             android:launchMode="singleTask" />
             android:launchMode="singleTask" />
         <!-- 书源编辑 -->
         <!-- 书源编辑 -->
         <activity
         <activity
             android:name=".ui.book.source.edit.BookSourceEditActivity"
             android:name=".ui.book.source.edit.BookSourceEditActivity"
+            android:enableOnBackInvokedCallback="true"
             android:configChanges="locale|keyboardHidden|orientation|screenSize|smallestScreenSize|screenLayout"
             android:configChanges="locale|keyboardHidden|orientation|screenSize|smallestScreenSize|screenLayout"
             android:launchMode="singleTask"
             android:launchMode="singleTask"
             android:windowSoftInputMode="adjustResize|stateHidden" />
             android:windowSoftInputMode="adjustResize|stateHidden" />
         <!-- 订阅源编辑 -->
         <!-- 订阅源编辑 -->
         <activity
         <activity
             android:name=".ui.rss.source.edit.RssSourceEditActivity"
             android:name=".ui.rss.source.edit.RssSourceEditActivity"
+            android:enableOnBackInvokedCallback="true"
             android:configChanges="locale|keyboardHidden|orientation|screenSize|smallestScreenSize|screenLayout"
             android:configChanges="locale|keyboardHidden|orientation|screenSize|smallestScreenSize|screenLayout"
             android:launchMode="singleTask"
             android:launchMode="singleTask"
             android:windowSoftInputMode="adjustResize|stateHidden" />
             android:windowSoftInputMode="adjustResize|stateHidden" />
         <!-- 替换规则编辑 -->
         <!-- 替换规则编辑 -->
         <activity
         <activity
             android:name=".ui.replace.edit.ReplaceEditActivity"
             android:name=".ui.replace.edit.ReplaceEditActivity"
+            android:enableOnBackInvokedCallback="true"
             android:configChanges="locale|keyboardHidden|orientation|screenSize|smallestScreenSize|screenLayout"
             android:configChanges="locale|keyboardHidden|orientation|screenSize|smallestScreenSize|screenLayout"
             android:launchMode="singleTask"
             android:launchMode="singleTask"
             android:windowSoftInputMode="adjustResize|stateHidden" />
             android:windowSoftInputMode="adjustResize|stateHidden" />
         <!-- 配置界面 -->
         <!-- 配置界面 -->
         <activity
         <activity
             android:name=".ui.config.ConfigActivity"
             android:name=".ui.config.ConfigActivity"
+            android:enableOnBackInvokedCallback="true"
             android:launchMode="standard" />
             android:launchMode="standard" />
         <!-- 搜索界面 -->
         <!-- 搜索界面 -->
         <activity
         <activity
             android:name=".ui.book.search.SearchActivity"
             android:name=".ui.book.search.SearchActivity"
+            android:enableOnBackInvokedCallback="true"
             android:launchMode="standard" />
             android:launchMode="standard" />
         <!-- 关于界面 -->
         <!-- 关于界面 -->
         <activity
         <activity
             android:name=".ui.about.AboutActivity"
             android:name=".ui.about.AboutActivity"
+            android:enableOnBackInvokedCallback="true"
             android:launchMode="singleTask"
             android:launchMode="singleTask"
             android:screenOrientation="behind" />
             android:screenOrientation="behind" />
         <!-- 书源管理 -->
         <!-- 书源管理 -->
         <activity
         <activity
             android:name=".ui.book.source.manage.BookSourceActivity"
             android:name=".ui.book.source.manage.BookSourceActivity"
+            android:enableOnBackInvokedCallback="true"
             android:launchMode="singleTop"
             android:launchMode="singleTop"
             android:screenOrientation="behind" />
             android:screenOrientation="behind" />
         <!-- 订阅源管理 -->
         <!-- 订阅源管理 -->
         <activity
         <activity
             android:name=".ui.rss.source.manage.RssSourceActivity"
             android:name=".ui.rss.source.manage.RssSourceActivity"
+            android:enableOnBackInvokedCallback="true"
             android:launchMode="singleTop"
             android:launchMode="singleTop"
             android:screenOrientation="behind" />
             android:screenOrientation="behind" />
         <!-- txt目录规则管理 -->
         <!-- txt目录规则管理 -->
         <activity
         <activity
             android:name=".ui.book.toc.rule.TxtTocRuleActivity"
             android:name=".ui.book.toc.rule.TxtTocRuleActivity"
+            android:enableOnBackInvokedCallback="true"
             android:launchMode="singleTop"
             android:launchMode="singleTop"
             android:screenOrientation="behind" />
             android:screenOrientation="behind" />
         <!-- 替换规则界面 -->
         <!-- 替换规则界面 -->
         <activity
         <activity
             android:name=".ui.replace.ReplaceRuleActivity"
             android:name=".ui.replace.ReplaceRuleActivity"
+            android:enableOnBackInvokedCallback="true"
             android:launchMode="singleTop"
             android:launchMode="singleTop"
             android:screenOrientation="behind" />
             android:screenOrientation="behind" />
         <!-- 书籍管理 -->
         <!-- 书籍管理 -->
         <activity
         <activity
             android:name=".ui.book.manage.BookshelfManageActivity"
             android:name=".ui.book.manage.BookshelfManageActivity"
+            android:enableOnBackInvokedCallback="true"
             android:launchMode="singleTop"
             android:launchMode="singleTop"
             android:screenOrientation="behind" />
             android:screenOrientation="behind" />
         <!-- 书源调试 -->
         <!-- 书源调试 -->
         <activity
         <activity
             android:name=".ui.book.source.debug.BookSourceDebugActivity"
             android:name=".ui.book.source.debug.BookSourceDebugActivity"
+            android:enableOnBackInvokedCallback="true"
             android:launchMode="singleTop"
             android:launchMode="singleTop"
             android:screenOrientation="behind" />
             android:screenOrientation="behind" />
         <!-- 目录 -->
         <!-- 目录 -->
         <activity
         <activity
             android:name=".ui.book.toc.TocActivity"
             android:name=".ui.book.toc.TocActivity"
+            android:enableOnBackInvokedCallback="true"
             android:launchMode="singleTop"
             android:launchMode="singleTop"
             android:screenOrientation="behind" />
             android:screenOrientation="behind" />
         <!-- 正文搜索 -->
         <!-- 正文搜索 -->
         <activity
         <activity
             android:name=".ui.book.searchContent.SearchContentActivity"
             android:name=".ui.book.searchContent.SearchContentActivity"
+            android:enableOnBackInvokedCallback="true"
             android:launchMode="singleTop"
             android:launchMode="singleTop"
             android:screenOrientation="behind" />
             android:screenOrientation="behind" />
         <!-- RSS条目 -->
         <!-- RSS条目 -->
         <activity
         <activity
             android:name=".ui.rss.article.RssSortActivity"
             android:name=".ui.rss.article.RssSortActivity"
+            android:enableOnBackInvokedCallback="true"
             android:launchMode="singleTop" />
             android:launchMode="singleTop" />
         <!-- RSS阅读 -->
         <!-- RSS阅读 -->
         <activity
         <activity
             android:name=".ui.rss.read.ReadRssActivity"
             android:name=".ui.rss.read.ReadRssActivity"
+            android:enableOnBackInvokedCallback="true"
             android:configChanges="orientation|screenSize"
             android:configChanges="orientation|screenSize"
             android:hardwareAccelerated="true"
             android:hardwareAccelerated="true"
             android:launchMode="singleTop" />
             android:launchMode="singleTop" />
         <!-- 导入书籍 -->
         <!-- 导入书籍 -->
         <activity
         <activity
             android:name=".ui.book.import.local.ImportBookActivity"
             android:name=".ui.book.import.local.ImportBookActivity"
+            android:enableOnBackInvokedCallback="true"
             android:launchMode="singleTop" />
             android:launchMode="singleTop" />
         <!-- 添加远程 -->
         <!-- 添加远程 -->
         <activity
         <activity
             android:name=".ui.book.import.remote.RemoteBookActivity"
             android:name=".ui.book.import.remote.RemoteBookActivity"
+            android:enableOnBackInvokedCallback="true"
             android:launchMode="singleTop" />
             android:launchMode="singleTop" />
         <!-- 发现界面 -->
         <!-- 发现界面 -->
         <activity
         <activity
             android:name=".ui.book.explore.ExploreShowActivity"
             android:name=".ui.book.explore.ExploreShowActivity"
+            android:enableOnBackInvokedCallback="true"
             android:launchMode="singleTop" />
             android:launchMode="singleTop" />
         <!-- 订阅源调试 -->
         <!-- 订阅源调试 -->
         <activity
         <activity
             android:name=".ui.rss.source.debug.RssSourceDebugActivity"
             android:name=".ui.rss.source.debug.RssSourceDebugActivity"
+            android:enableOnBackInvokedCallback="true"
             android:launchMode="singleTop" />
             android:launchMode="singleTop" />
         <!-- Rss收藏 -->
         <!-- Rss收藏 -->
         <activity
         <activity
             android:name=".ui.rss.favorites.RssFavoritesActivity"
             android:name=".ui.rss.favorites.RssFavoritesActivity"
+            android:enableOnBackInvokedCallback="true"
             android:launchMode="singleTop" />
             android:launchMode="singleTop" />
         <!-- 书签 -->
         <!-- 书签 -->
         <activity
         <activity
             android:name=".ui.book.bookmark.AllBookmarkActivity"
             android:name=".ui.book.bookmark.AllBookmarkActivity"
+            android:enableOnBackInvokedCallback="true"
             android:launchMode="singleTop" />
             android:launchMode="singleTop" />
         <!-- 缓存界面 -->
         <!-- 缓存界面 -->
         <activity
         <activity
             android:name=".ui.book.cache.CacheActivity"
             android:name=".ui.book.cache.CacheActivity"
+            android:enableOnBackInvokedCallback="true"
             android:launchMode="singleTop" />
             android:launchMode="singleTop" />
         <!-- WebView界面 -->
         <!-- WebView界面 -->
         <activity
         <activity
             android:name=".ui.browser.WebViewActivity"
             android:name=".ui.browser.WebViewActivity"
+            android:enableOnBackInvokedCallback="true"
             android:configChanges="locale|keyboardHidden|orientation|screenSize|smallestScreenSize|screenLayout"
             android:configChanges="locale|keyboardHidden|orientation|screenSize|smallestScreenSize|screenLayout"
             android:launchMode="standard" />
             android:launchMode="standard" />
         <!-- 书源登录 -->
         <!-- 书源登录 -->
         <activity
         <activity
             android:name="io.legato.kazusa.ui.login.SourceLoginActivity"
             android:name="io.legato.kazusa.ui.login.SourceLoginActivity"
+            android:enableOnBackInvokedCallback="true"
             android:configChanges="orientation|screenSize"
             android:configChanges="orientation|screenSize"
             android:hardwareAccelerated="true"
             android:hardwareAccelerated="true"
             android:theme="@style/AppTheme.Transparent" />
             android:theme="@style/AppTheme.Transparent" />
         <!-- 阅读记录 -->
         <!-- 阅读记录 -->
         <activity
         <activity
             android:name=".ui.about.ReadRecordActivity"
             android:name=".ui.about.ReadRecordActivity"
+            android:enableOnBackInvokedCallback="true"
             android:configChanges="orientation|screenSize"
             android:configChanges="orientation|screenSize"
             android:hardwareAccelerated="true" />
             android:hardwareAccelerated="true" />
         <!-- 字典管理 -->
         <!-- 字典管理 -->
         <activity
         <activity
             android:name=".ui.dict.rule.DictRuleActivity"
             android:name=".ui.dict.rule.DictRuleActivity"
+            android:enableOnBackInvokedCallback="true"
             android:configChanges="orientation|screenSize"
             android:configChanges="orientation|screenSize"
             android:hardwareAccelerated="true" />
             android:hardwareAccelerated="true" />
         <!-- 文件管理 -->
         <!-- 文件管理 -->
         <activity
         <activity
             android:name=".ui.file.FileManageActivity"
             android:name=".ui.file.FileManageActivity"
+            android:enableOnBackInvokedCallback="true"
             android:configChanges="orientation|screenSize"
             android:configChanges="orientation|screenSize"
             android:hardwareAccelerated="true" />
             android:hardwareAccelerated="true" />
         <!-- 选择文件 -->
         <!-- 选择文件 -->
         <activity
         <activity
             android:name=".ui.file.HandleFileActivity"
             android:name=".ui.file.HandleFileActivity"
+            android:enableOnBackInvokedCallback="true"
             android:configChanges="orientation|screenSize"
             android:configChanges="orientation|screenSize"
             android:hardwareAccelerated="true"
             android:hardwareAccelerated="true"
             android:theme="@style/AppTheme.Transparent" />
             android:theme="@style/AppTheme.Transparent" />

+ 1 - 1
app/src/main/java/io/legato/kazusa/ui/book/read/MangaMenu.kt

@@ -230,7 +230,7 @@ class MangaMenu @JvmOverloads constructor(
         binding.seekReadPage.apply {
         binding.seekReadPage.apply {
             valueFrom = 1f
             valueFrom = 1f
             valueTo = (count).toFloat()
             valueTo = (count).toFloat()
-            this.value = value.toFloat()
+            this.value = value.toFloat().coerceIn(1f,valueFrom)
             stepSize = 1f
             stepSize = 1f
         }
         }
     }
     }

+ 9 - 2
app/src/main/java/io/legato/kazusa/ui/book/read/ReadMenu.kt

@@ -4,6 +4,7 @@ import android.annotation.SuppressLint
 import android.content.Context
 import android.content.Context
 import android.graphics.drawable.GradientDrawable
 import android.graphics.drawable.GradientDrawable
 import android.util.AttributeSet
 import android.util.AttributeSet
+import android.util.Log
 import android.view.LayoutInflater
 import android.view.LayoutInflater
 import android.view.WindowManager.LayoutParams.BRIGHTNESS_OVERRIDE_NONE
 import android.view.WindowManager.LayoutParams.BRIGHTNESS_OVERRIDE_NONE
 import android.view.animation.Animation
 import android.view.animation.Animation
@@ -520,10 +521,12 @@ class ReadMenu @JvmOverloads constructor(
 
 
     fun upSeekBar() {
     fun upSeekBar() {
         binding.seekReadPage.apply {
         binding.seekReadPage.apply {
+            Log.d("SliderDebug", "durPageIndex: ${ReadBook.durPageIndex}, pageSize: ${ReadBook.curTextChapter?.pageSize}")
+            Log.d("SliderDebug", "durChapterIndex: ${ReadBook.durChapterIndex}, simulatedChapterSize: ${ReadBook.simulatedChapterSize}")
             when (AppConfig.progressBarBehavior) {
             when (AppConfig.progressBarBehavior) {
                 "page" -> {
                 "page" -> {
                     ReadBook.curTextChapter?.let { chapter ->
                     ReadBook.curTextChapter?.let { chapter ->
-                        if (chapter.pageSize > 0) {
+                        if (chapter.pageSize > 0 && ReadBook.durPageIndex > 0) {
                             valueFrom = 1f
                             valueFrom = 1f
                             valueTo = chapter.pageSize.toFloat().coerceAtLeast(2f)
                             valueTo = chapter.pageSize.toFloat().coerceAtLeast(2f)
                             value = (ReadBook.durPageIndex).coerceIn(1, chapter.pageSize).toFloat()
                             value = (ReadBook.durPageIndex).coerceIn(1, chapter.pageSize).toFloat()
@@ -533,6 +536,10 @@ class ReadMenu @JvmOverloads constructor(
                             valueTo = 2f
                             valueTo = 2f
                             value = 1f
                             value = 1f
                         }
                         }
+                    }?: run {
+                        valueFrom = 1f
+                        valueTo = 2f
+                        value = 1f
                     }
                     }
                 }
                 }
 
 
@@ -572,7 +579,7 @@ class ReadMenu @JvmOverloads constructor(
 //    }
 //    }
 
 
     fun setSeekPage(seek: Int) {
     fun setSeekPage(seek: Int) {
-        binding.seekReadPage.value = seek.toFloat() + 1
+        binding.seekReadPage.value = 1f
     }
     }
 
 
     fun setAutoPage(autoPage: Boolean) = binding.run {
     fun setAutoPage(autoPage: Boolean) = binding.run {