From aeef8978a85cd7a484937339942fded48a54d276 Mon Sep 17 00:00:00 2001 From: Jason Yao Date: Mon, 10 Apr 2023 21:37:49 -0400 Subject: [PATCH 1/2] =?UTF-8?q?=E4=BC=98=E5=8C=96=E6=90=9C=E7=B4=A2?= =?UTF-8?q?=E5=8E=86=E5=8F=B2=E6=98=BE=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/io/legado/app/ui/book/search/SearchActivity.kt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/io/legado/app/ui/book/search/SearchActivity.kt b/app/src/main/java/io/legado/app/ui/book/search/SearchActivity.kt index 19b60b0a6..af9fca043 100644 --- a/app/src/main/java/io/legado/app/ui/book/search/SearchActivity.kt +++ b/app/src/main/java/io/legado/app/ui/book/search/SearchActivity.kt @@ -202,10 +202,10 @@ class SearchActivity : VMBaseActivity - if (!hasFocus && searchView.query.toString().trim().isEmpty()) { - finish() + if (binding.refreshProgressBar.isAutoLoading || (!hasFocus && adapter.isNotEmpty() && searchView.query.isNotBlank())){ + visibleInputHelp(false) } else { - visibleInputHelp(hasFocus) + visibleInputHelp(true) } } visibleInputHelp(true) From 436f9fe1af99008487c065c1366fef251678ad2a Mon Sep 17 00:00:00 2001 From: Jason Yao Date: Tue, 11 Apr 2023 20:57:44 -0400 Subject: [PATCH 2/2] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E4=BB=8E=E4=B9=A6?= =?UTF-8?q?=E7=B1=8D=E8=AF=A6=E6=83=85=E7=9B=AE=E5=BD=95=E9=A1=B5=E8=BF=9B?= =?UTF-8?q?=E5=85=A5=E6=8C=87=E5=AE=9A=E7=AB=A0=E8=8A=82=E6=97=B6=E8=87=AA?= =?UTF-8?q?=E5=8A=A8=E8=B7=B3=E8=BD=AC=E5=88=B0=E5=90=8C=E6=AD=A5=E7=AB=A0?= =?UTF-8?q?=E8=8A=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/src/main/java/io/legado/app/model/ReadBook.kt | 1 + .../java/io/legado/app/ui/book/info/BookInfoActivity.kt | 3 +++ .../java/io/legado/app/ui/book/read/ReadBookViewModel.kt | 6 +++++- .../io/legado/app/ui/book/toc/ChapterListFragment.kt | 5 ++++- .../java/io/legado/app/ui/book/toc/TocActivityResult.kt | 9 +++++---- 5 files changed, 18 insertions(+), 6 deletions(-) diff --git a/app/src/main/java/io/legado/app/model/ReadBook.kt b/app/src/main/java/io/legado/app/model/ReadBook.kt index 763d34541..bdf55e39a 100644 --- a/app/src/main/java/io/legado/app/model/ReadBook.kt +++ b/app/src/main/java/io/legado/app/model/ReadBook.kt @@ -35,6 +35,7 @@ object ReadBook : CoroutineScope by MainScope() { var durChapterIndex = 0 var durChapterPos = 0 var isLocalBook = true + var chapterChanged = false var prevTextChapter: TextChapter? = null var curTextChapter: TextChapter? = null var nextTextChapter: TextChapter? = null diff --git a/app/src/main/java/io/legado/app/ui/book/info/BookInfoActivity.kt b/app/src/main/java/io/legado/app/ui/book/info/BookInfoActivity.kt index 5927b0327..254ff88c8 100644 --- a/app/src/main/java/io/legado/app/ui/book/info/BookInfoActivity.kt +++ b/app/src/main/java/io/legado/app/ui/book/info/BookInfoActivity.kt @@ -66,6 +66,7 @@ class BookInfoActivity : withContext(IO) { book.durChapterIndex = it.first book.durChapterPos = it.second + chapterChanged = it.third appDb.bookDao.update(book) } viewModel.chapterListData.value?.let { chapterList -> @@ -103,6 +104,7 @@ class BookInfoActivity : } } private var tocChanged = false + private var chapterChanged = false private val waitDialog by lazy { WaitDialog(this) } private var editMenuItem: MenuItem? = null @@ -620,6 +622,7 @@ class BookInfoActivity : .putExtra("bookUrl", book.bookUrl) .putExtra("inBookshelf", viewModel.inBookshelf) .putExtra("tocChanged", tocChanged) + .putExtra("chapterChanged", chapterChanged) ) } tocChanged = false diff --git a/app/src/main/java/io/legado/app/ui/book/read/ReadBookViewModel.kt b/app/src/main/java/io/legado/app/ui/book/read/ReadBookViewModel.kt index 540d035d9..8f951719b 100644 --- a/app/src/main/java/io/legado/app/ui/book/read/ReadBookViewModel.kt +++ b/app/src/main/java/io/legado/app/ui/book/read/ReadBookViewModel.kt @@ -60,6 +60,7 @@ class ReadBookViewModel(application: Application) : BaseViewModel(application) { execute { ReadBook.inBookshelf = intent.getBooleanExtra("inBookshelf", true) ReadBook.tocChanged = intent.getBooleanExtra("tocChanged", false) + ReadBook.chapterChanged = intent.getBooleanExtra("chapterChanged", false) val bookUrl = intent.getStringExtra("bookUrl") val book = when { bookUrl.isNullOrEmpty() -> appDb.bookDao.lastReadBook @@ -104,7 +105,10 @@ class ReadBookViewModel(application: Application) : BaseViewModel(application) { } ReadBook.loadContent(resetPageOffset = false) } - if (!isSameBook || !BaseReadAloudService.isRun) { + if (ReadBook.chapterChanged) { + // 有章节跳转不同步阅读进度 + ReadBook.chapterChanged = false + } else if (!isSameBook || !BaseReadAloudService.isRun) { syncBookProgress(book) } if (!book.isLocal && ReadBook.bookSource == null) { diff --git a/app/src/main/java/io/legado/app/ui/book/toc/ChapterListFragment.kt b/app/src/main/java/io/legado/app/ui/book/toc/ChapterListFragment.kt index 53ef33135..d3f735664 100644 --- a/app/src/main/java/io/legado/app/ui/book/toc/ChapterListFragment.kt +++ b/app/src/main/java/io/legado/app/ui/book/toc/ChapterListFragment.kt @@ -162,7 +162,10 @@ class ChapterListFragment : VMBaseFragment(R.layout.fragment_chapt override fun openChapter(bookChapter: BookChapter) { activity?.run { - setResult(RESULT_OK, Intent().putExtra("index", bookChapter.index)) + setResult(RESULT_OK, Intent() + .putExtra("index", bookChapter.index) + .putExtra("chapterChanged", bookChapter.index != durChapterIndex) + ) finish() } } diff --git a/app/src/main/java/io/legado/app/ui/book/toc/TocActivityResult.kt b/app/src/main/java/io/legado/app/ui/book/toc/TocActivityResult.kt index 4cdd2ad4c..8cd5d47b0 100644 --- a/app/src/main/java/io/legado/app/ui/book/toc/TocActivityResult.kt +++ b/app/src/main/java/io/legado/app/ui/book/toc/TocActivityResult.kt @@ -5,19 +5,20 @@ import android.content.Context import android.content.Intent import androidx.activity.result.contract.ActivityResultContract -class TocActivityResult : ActivityResultContract?>() { +class TocActivityResult : ActivityResultContract?>() { override fun createIntent(context: Context, input: String): Intent { return Intent(context, TocActivity::class.java) .putExtra("bookUrl", input) } - override fun parseResult(resultCode: Int, intent: Intent?): Pair? { + override fun parseResult(resultCode: Int, intent: Intent?): Triple? { if (resultCode == RESULT_OK) { intent?.let { - return Pair( + return Triple( it.getIntExtra("index", 0), - it.getIntExtra("chapterPos", 0) + it.getIntExtra("chapterPos", 0), + it.getBooleanExtra("chapterChanged", false) ) } }