diff --git a/app/src/main/java/io/legado/app/model/analyzeRule/QueryTTF.java b/app/src/main/java/io/legado/app/model/analyzeRule/QueryTTF.java index 72b614f97..9cac2d230 100644 --- a/app/src/main/java/io/legado/app/model/analyzeRule/QueryTTF.java +++ b/app/src/main/java/io/legado/app/model/analyzeRule/QueryTTF.java @@ -11,6 +11,7 @@ import java.util.LinkedList; import java.util.List; import java.util.Map; +@SuppressWarnings({"FieldCanBeLocal", "rawtypes", "StatementWithEmptyBody", "unused"}) public class QueryTTF { private static class Header { public int majorVersion; @@ -84,7 +85,7 @@ public class QueryTTF { public int maxComponentDepth; } - private class CmapLayout { + private static class CmapLayout { public int version; public int numTables; public List records = new LinkedList<>(); diff --git a/app/src/main/java/io/legado/app/ui/book/read/ReadBookActivity.kt b/app/src/main/java/io/legado/app/ui/book/read/ReadBookActivity.kt index 01ce09690..cdd58cb13 100644 --- a/app/src/main/java/io/legado/app/ui/book/read/ReadBookActivity.kt +++ b/app/src/main/java/io/legado/app/ui/book/read/ReadBookActivity.kt @@ -9,6 +9,7 @@ import android.os.Handler import android.os.Looper import android.view.* import android.view.ViewGroup.LayoutParams.WRAP_CONTENT +import androidx.activity.result.contract.ActivityResultContracts import androidx.core.view.get import androidx.core.view.isVisible import androidx.core.view.size @@ -69,10 +70,35 @@ class ReadBookActivity : ReadBookBaseActivity(), TocRegexDialog.CallBack, ColorPickerDialogListener { - private val requestCodeChapterList = 568 - private val requestCodeReplace = 312 - private val requestCodeSearchResult = 123 - private val requestCodeEditSource = 111 + private val tocActivity = + registerForActivityResult(ActivityResultContracts.StartActivityForResult()) { + it.data?.let { data -> + data.getIntExtra("index", ReadBook.durChapterIndex).let { index -> + if (index != ReadBook.durChapterIndex) { + val chapterPos = data.getIntExtra("chapterPos", 0) + viewModel.openChapter(index, chapterPos) + } + } + } + } + private val sourceEditActivity = + registerForActivityResult(ActivityResultContracts.StartActivityForResult()) { + upView() + } + private val replaceActivity = + registerForActivityResult(ActivityResultContracts.StartActivityForResult()) { + viewModel.replaceRuleChanged() + } + private val searchContentActivity = + registerForActivityResult(ActivityResultContracts.StartActivityForResult()) { + it.data?.let { data -> + data.getIntExtra("index", ReadBook.durChapterIndex).let { index -> + viewModel.searchContentQuery = data.getStringExtra("query") ?: "" + val indexWithinChapter = data.getIntExtra("indexWithinChapter", 0) + skipToSearch(index, indexWithinChapter) + } + } + } private var menu: Menu? = null private val textActionMenu: TextActionMenu by lazy { TextActionMenu(this, this) @@ -490,11 +516,12 @@ class ReadBookActivity : ReadBookBaseActivity(), ReadBook.bookSource?.bookSourceUrl?.let { scopes.add(it) } - ReplaceEditActivity.startForResult( - this, - requestCodeReplace, - pattern = selectedText, - scope = scopes.joinToString(";") + replaceActivity.launch( + ReplaceEditActivity.startIntent( + this, + pattern = selectedText, + scope = scopes.joinToString(";") + ) ) return true } @@ -682,11 +709,9 @@ class ReadBookActivity : ReadBookBaseActivity(), override fun openSourceEditActivity() { ReadBook.webBook?.let { - startActivityForResult( - requestCodeEditSource - ) { + sourceEditActivity.launch(Intent(this, BookSourceEditActivity::class.java).apply { putExtra("data", it.bookSource.bookSourceUrl) - } + }) } } @@ -694,7 +719,7 @@ class ReadBookActivity : ReadBookBaseActivity(), * 替换 */ override fun openReplaceRule() { - startActivityForResult(requestCodeReplace) + replaceActivity.launch(Intent(this, ReplaceRuleActivity::class.java)) } /** @@ -702,11 +727,9 @@ class ReadBookActivity : ReadBookBaseActivity(), */ override fun openChapterList() { ReadBook.book?.let { - startActivityForResult( - requestCodeChapterList - ) { + tocActivity.launch(Intent(this, ChapterListActivity::class.java).apply { putExtra("bookUrl", it.bookUrl) - } + }) } } @@ -715,12 +738,10 @@ class ReadBookActivity : ReadBookBaseActivity(), */ override fun openSearchActivity(searchWord: String?) { ReadBook.book?.let { - startActivityForResult( - requestCodeSearchResult - ) { + searchContentActivity.launch(Intent(this, SearchContentActivity::class.java).apply { putExtra("bookUrl", it.bookUrl) putExtra("searchWord", searchWord ?: viewModel.searchContentQuery) - } + }) } } @@ -812,31 +833,6 @@ class ReadBookActivity : ReadBookBaseActivity(), }.show() } - override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) { - super.onActivityResult(requestCode, resultCode, data) - if (resultCode == Activity.RESULT_OK) { - when (requestCode) { - requestCodeEditSource -> viewModel.upBookSource { - upView() - } - requestCodeChapterList -> - data?.getIntExtra("index", ReadBook.durChapterIndex)?.let { index -> - if (index != ReadBook.durChapterIndex) { - val chapterPos = data.getIntExtra("chapterPos", 0) - viewModel.openChapter(index, chapterPos) - } - } - requestCodeSearchResult -> - data?.getIntExtra("index", ReadBook.durChapterIndex)?.let { index -> - viewModel.searchContentQuery = data.getStringExtra("query") ?: "" - val indexWithinChapter = data.getIntExtra("indexWithinChapter", 0) - skipToSearch(index, indexWithinChapter) - } - requestCodeReplace -> viewModel.replaceRuleChanged() - } - } - } - private fun skipToSearch(index: Int, indexWithinChapter: Int) { viewModel.openChapter(index) { val pages = ReadBook.curTextChapter?.pages ?: return@openChapter diff --git a/app/src/main/java/io/legado/app/ui/replace/ReplaceRuleActivity.kt b/app/src/main/java/io/legado/app/ui/replace/ReplaceRuleActivity.kt index 9ffcb7126..13469d229 100644 --- a/app/src/main/java/io/legado/app/ui/replace/ReplaceRuleActivity.kt +++ b/app/src/main/java/io/legado/app/ui/replace/ReplaceRuleActivity.kt @@ -7,6 +7,7 @@ import android.os.Bundle import android.view.Menu import android.view.MenuItem import android.view.SubMenu +import androidx.activity.result.contract.ActivityResultContracts import androidx.activity.viewModels import androidx.appcompat.widget.PopupMenu import androidx.appcompat.widget.SearchView @@ -54,7 +55,10 @@ class ReplaceRuleActivity : VMBaseActivity() @@ -180,7 +184,7 @@ class ReplaceRuleActivity : VMBaseActivity - ReplaceEditActivity.startForResult(this, requestCodeEdit) + editActivity.launch(ReplaceEditActivity.startIntent(this)) R.id.menu_group_manage -> GroupManageDialog().show(supportFragmentManager, "groupManage") @@ -263,7 +267,6 @@ class ReplaceRuleActivity : VMBaseActivity setResult(RESULT_OK) importRequestCode -> { data?.data?.let { uri -> kotlin.runCatching { @@ -325,7 +328,7 @@ class ReplaceRuleActivity : VMBaseActivity