From dc6a0e7e33333b146d1f56a1f9dad50fdece361b Mon Sep 17 00:00:00 2001 From: Horis <821938089@qq.com> Date: Sat, 11 Nov 2023 12:53:10 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../io/legado/app/ui/book/info/BookInfoActivity.kt | 13 ++++++++++++- .../io/legado/app/ui/book/info/BookInfoViewModel.kt | 5 +++++ 2 files changed, 17 insertions(+), 1 deletion(-) 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 0bbef7fd9..ec329991e 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 @@ -104,6 +104,17 @@ class BookInfoActivity : viewModel.upEditBook() } } + private val editSourceResult = registerForActivityResult( + StartActivityContract(BookSourceEditActivity::class.java) + ) { + if (it.resultCode == RESULT_CANCELED) { + return@registerForActivityResult + } + book?.let { book -> + viewModel.bookSource = appDb.bookSourceDao.getBookSource(book.origin) + viewModel.refreshBook(book) + } + } private var tocChanged = false private var chapterChanged = false private val waitDialog by lazy { WaitDialog(this) } @@ -396,7 +407,7 @@ class BookInfoActivity : tvOrigin.setOnClickListener { viewModel.getBook()?.let { book -> if (book.isLocal) return@let - startActivity { + editSourceResult.launch { putExtra("sourceUrl", book.origin) } } diff --git a/app/src/main/java/io/legado/app/ui/book/info/BookInfoViewModel.kt b/app/src/main/java/io/legado/app/ui/book/info/BookInfoViewModel.kt index c7dbc39be..299358696 100644 --- a/app/src/main/java/io/legado/app/ui/book/info/BookInfoViewModel.kt +++ b/app/src/main/java/io/legado/app/ui/book/info/BookInfoViewModel.kt @@ -126,6 +126,11 @@ class BookInfoViewModel(application: Application) : BaseViewModel(application) { book.lastCheckTime = remoteBook.lastModify } } + } else { + val bs = bookSource ?: return@execute + if (book.originName != bs.bookSourceName) { + book.originName = bs.bookSourceName + } } }.onError { when (it) {