From 439fd5b5bf543da1b30a31bfa80737bf0891364b Mon Sep 17 00:00:00 2001 From: kunfei Date: Mon, 21 Feb 2022 17:34:31 +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 --- .../app/ui/book/audio/AudioPlayActivity.kt | 6 +-- ...eAdapter.kt => ChangeBookSourceAdapter.kt} | 4 +- ...rceDialog.kt => ChangeBookSourceDialog.kt} | 8 +-- ...wModel.kt => ChangeBookSourceViewModel.kt} | 2 +- .../app/ui/book/changesource/DiffCallBack.kt | 50 ------------------- .../app/ui/book/info/BookInfoActivity.kt | 6 +-- .../app/ui/book/read/ReadBookActivity.kt | 8 +-- 7 files changed, 17 insertions(+), 67 deletions(-) rename app/src/main/java/io/legado/app/ui/book/changesource/{ChangeSourceAdapter.kt => ChangeBookSourceAdapter.kt} (98%) rename app/src/main/java/io/legado/app/ui/book/changesource/{ChangeSourceDialog.kt => ChangeBookSourceDialog.kt} (97%) rename app/src/main/java/io/legado/app/ui/book/changesource/{ChangeSourceViewModel.kt => ChangeBookSourceViewModel.kt} (99%) delete mode 100644 app/src/main/java/io/legado/app/ui/book/changesource/DiffCallBack.kt diff --git a/app/src/main/java/io/legado/app/ui/book/audio/AudioPlayActivity.kt b/app/src/main/java/io/legado/app/ui/book/audio/AudioPlayActivity.kt index 4b2303df0..17a3f4cef 100644 --- a/app/src/main/java/io/legado/app/ui/book/audio/AudioPlayActivity.kt +++ b/app/src/main/java/io/legado/app/ui/book/audio/AudioPlayActivity.kt @@ -25,7 +25,7 @@ import io.legado.app.model.AudioPlay import io.legado.app.model.BookCover import io.legado.app.service.AudioPlayService import io.legado.app.ui.about.AppLogDialog -import io.legado.app.ui.book.changesource.ChangeSourceDialog +import io.legado.app.ui.book.changesource.ChangeBookSourceDialog import io.legado.app.ui.book.source.edit.BookSourceEditActivity import io.legado.app.ui.book.toc.TocActivityResult import io.legado.app.ui.login.SourceLoginActivity @@ -40,7 +40,7 @@ import java.util.* */ class AudioPlayActivity : VMBaseActivity(toolBarTheme = Theme.Dark), - ChangeSourceDialog.CallBack { + ChangeBookSourceDialog.CallBack { override val binding by viewBinding(ActivityAudioPlayBinding::inflate) override val viewModel by viewModels() @@ -93,7 +93,7 @@ class AudioPlayActivity : override fun onCompatOptionsItemSelected(item: MenuItem): Boolean { when (item.itemId) { R.id.menu_change_source -> AudioPlay.book?.let { - showDialogFragment(ChangeSourceDialog(it.name, it.author)) + showDialogFragment(ChangeBookSourceDialog(it.name, it.author)) } R.id.menu_login -> AudioPlay.bookSource?.let { startActivity { diff --git a/app/src/main/java/io/legado/app/ui/book/changesource/ChangeSourceAdapter.kt b/app/src/main/java/io/legado/app/ui/book/changesource/ChangeBookSourceAdapter.kt similarity index 98% rename from app/src/main/java/io/legado/app/ui/book/changesource/ChangeSourceAdapter.kt rename to app/src/main/java/io/legado/app/ui/book/changesource/ChangeBookSourceAdapter.kt index 0da75c27f..5a653b53d 100644 --- a/app/src/main/java/io/legado/app/ui/book/changesource/ChangeSourceAdapter.kt +++ b/app/src/main/java/io/legado/app/ui/book/changesource/ChangeBookSourceAdapter.kt @@ -16,9 +16,9 @@ import io.legado.app.utils.visible import splitties.views.onLongClick -class ChangeSourceAdapter( +class ChangeBookSourceAdapter( context: Context, - val viewModel: ChangeSourceViewModel, + val viewModel: ChangeBookSourceViewModel, val callBack: CallBack ) : DiffRecyclerAdapter(context) { diff --git a/app/src/main/java/io/legado/app/ui/book/changesource/ChangeSourceDialog.kt b/app/src/main/java/io/legado/app/ui/book/changesource/ChangeBookSourceDialog.kt similarity index 97% rename from app/src/main/java/io/legado/app/ui/book/changesource/ChangeSourceDialog.kt rename to app/src/main/java/io/legado/app/ui/book/changesource/ChangeBookSourceDialog.kt index 0225344cd..8ce0638d2 100644 --- a/app/src/main/java/io/legado/app/ui/book/changesource/ChangeSourceDialog.kt +++ b/app/src/main/java/io/legado/app/ui/book/changesource/ChangeBookSourceDialog.kt @@ -31,9 +31,9 @@ import kotlinx.coroutines.delay import kotlinx.coroutines.launch -class ChangeSourceDialog() : BaseDialogFragment(R.layout.dialog_change_source), +class ChangeBookSourceDialog() : BaseDialogFragment(R.layout.dialog_change_source), Toolbar.OnMenuItemClickListener, - ChangeSourceAdapter.CallBack { + ChangeBookSourceAdapter.CallBack { constructor(name: String, author: String) : this() { arguments = Bundle().apply { @@ -45,8 +45,8 @@ class ChangeSourceDialog() : BaseDialogFragment(R.layout.dialog_change_source), private val binding by viewBinding(DialogChangeSourceBinding::bind) private val groups = linkedSetOf() private val callBack: CallBack? get() = activity as? CallBack - private val viewModel: ChangeSourceViewModel by viewModels() - private val adapter by lazy { ChangeSourceAdapter(requireContext(), viewModel, this) } + private val viewModel: ChangeBookSourceViewModel by viewModels() + private val adapter by lazy { ChangeBookSourceAdapter(requireContext(), viewModel, this) } private val editSourceResult = registerForActivityResult(StartActivityContract(BookSourceEditActivity::class.java)) { viewModel.startSearch() diff --git a/app/src/main/java/io/legado/app/ui/book/changesource/ChangeSourceViewModel.kt b/app/src/main/java/io/legado/app/ui/book/changesource/ChangeBookSourceViewModel.kt similarity index 99% rename from app/src/main/java/io/legado/app/ui/book/changesource/ChangeSourceViewModel.kt rename to app/src/main/java/io/legado/app/ui/book/changesource/ChangeBookSourceViewModel.kt index 2d8a0f0b6..efe86092e 100644 --- a/app/src/main/java/io/legado/app/ui/book/changesource/ChangeSourceViewModel.kt +++ b/app/src/main/java/io/legado/app/ui/book/changesource/ChangeBookSourceViewModel.kt @@ -32,7 +32,7 @@ import java.util.concurrent.Executors import kotlin.math.min @Suppress("MemberVisibilityCanBePrivate") -class ChangeSourceViewModel(application: Application) : BaseViewModel(application) { +class ChangeBookSourceViewModel(application: Application) : BaseViewModel(application) { private val threadCount = AppConfig.threadCount private var searchPool: ExecutorCoroutineDispatcher? = null val searchStateData = MutableLiveData() diff --git a/app/src/main/java/io/legado/app/ui/book/changesource/DiffCallBack.kt b/app/src/main/java/io/legado/app/ui/book/changesource/DiffCallBack.kt deleted file mode 100644 index 142ab24c2..000000000 --- a/app/src/main/java/io/legado/app/ui/book/changesource/DiffCallBack.kt +++ /dev/null @@ -1,50 +0,0 @@ -package io.legado.app.ui.book.changesource - -import android.os.Bundle -import androidx.recyclerview.widget.DiffUtil -import io.legado.app.data.entities.SearchBook - -class DiffCallBack(private val oldItems: List, private val newItems: List) : - DiffUtil.Callback() { - - override fun getOldListSize(): Int { - return oldItems.size - } - - override fun getNewListSize(): Int { - return newItems.size - } - - override fun areItemsTheSame(oldItemPosition: Int, newItemPosition: Int): Boolean { - val oldItem = oldItems[oldItemPosition] - val newItem = newItems[newItemPosition] - return oldItem.bookUrl == newItem.bookUrl - } - - override fun areContentsTheSame(oldItemPosition: Int, newItemPosition: Int): Boolean { - val oldItem = oldItems[oldItemPosition] - val newItem = newItems[newItemPosition] - return when { - oldItem.originName != newItem.originName -> false - oldItem.latestChapterTitle != newItem.latestChapterTitle -> false - else -> true - } - } - - override fun getChangePayload(oldItemPosition: Int, newItemPosition: Int): Any? { - val oldItem = oldItems[oldItemPosition] - val newItem = newItems[newItemPosition] - val payload = Bundle() - if (oldItem.originName != newItem.originName) { - payload.putString("name", newItem.originName) - } - if (oldItem.latestChapterTitle != newItem.latestChapterTitle) { - payload.putString("latest", newItem.latestChapterTitle) - } - if (payload.isEmpty) { - return null - } - return payload - } - -} \ No newline at end of file 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 23e5d0a6a..ba573bed6 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 @@ -31,7 +31,7 @@ import io.legado.app.model.BookCover import io.legado.app.ui.about.AppLogDialog import io.legado.app.ui.book.audio.AudioPlayActivity import io.legado.app.ui.book.changecover.ChangeCoverDialog -import io.legado.app.ui.book.changesource.ChangeSourceDialog +import io.legado.app.ui.book.changesource.ChangeBookSourceDialog import io.legado.app.ui.book.group.GroupSelectDialog import io.legado.app.ui.book.info.edit.BookInfoEditActivity import io.legado.app.ui.book.read.ReadBookActivity @@ -49,7 +49,7 @@ import kotlinx.coroutines.withContext class BookInfoActivity : VMBaseActivity(toolBarTheme = Theme.Dark), GroupSelectDialog.CallBack, - ChangeSourceDialog.CallBack, + ChangeBookSourceDialog.CallBack, ChangeCoverDialog.CallBack { private val tocActivityResult = registerForActivityResult(TocActivityResult()) { @@ -301,7 +301,7 @@ class BookInfoActivity : } tvChangeSource.setOnClickListener { viewModel.bookData.value?.let { - showDialogFragment(ChangeSourceDialog(it.name, it.author)) + showDialogFragment(ChangeBookSourceDialog(it.name, it.author)) } } tvTocView.setOnClickListener { 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 4a5bf7ce7..23ae8e464 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 @@ -37,7 +37,7 @@ import io.legado.app.model.ReadBook import io.legado.app.receiver.TimeBatteryReceiver import io.legado.app.service.BaseReadAloudService import io.legado.app.ui.about.AppLogDialog -import io.legado.app.ui.book.changesource.ChangeSourceDialog +import io.legado.app.ui.book.changesource.ChangeBookSourceDialog import io.legado.app.ui.book.read.config.* import io.legado.app.ui.book.read.config.BgTextConfigDialog.Companion.BG_COLOR import io.legado.app.ui.book.read.config.BgTextConfigDialog.Companion.TEXT_COLOR @@ -69,7 +69,7 @@ class ReadBookActivity : BaseReadBookActivity(), ReadMenu.CallBack, SearchMenu.CallBack, ReadAloudDialog.CallBack, - ChangeSourceDialog.CallBack, + ChangeBookSourceDialog.CallBack, ReadBook.CallBack, AutoReadDialog.CallBack, TocRegexDialog.CallBack, @@ -239,13 +239,13 @@ class ReadBookActivity : BaseReadBookActivity(), R.id.menu_book_change_source -> { binding.readMenu.runMenuOut() ReadBook.book?.let { - showDialogFragment(ChangeSourceDialog(it.name, it.author)) + showDialogFragment(ChangeBookSourceDialog(it.name, it.author)) } } R.id.menu_chapter_change_source -> { binding.readMenu.runMenuOut() ReadBook.book?.let { - showDialogFragment(ChangeSourceDialog(it.name, it.author)) + showDialogFragment(ChangeBookSourceDialog(it.name, it.author)) } } R.id.menu_refresh_dur -> {