This commit is contained in:
kunfei
2023-03-11 23:04:24 +08:00
parent f3fa073691
commit b543cbd11f
3 changed files with 22 additions and 12 deletions
@@ -1,17 +1,22 @@
package io.legado.app.ui.book.import package io.legado.app.ui.book.import
import androidx.lifecycle.ViewModel
import androidx.viewbinding.ViewBinding
import androidx.appcompat.widget.SearchView import androidx.appcompat.widget.SearchView
import androidx.lifecycle.ViewModel
import io.legado.app.R import io.legado.app.R
import io.legado.app.base.VMBaseActivity import io.legado.app.base.VMBaseActivity
import io.legado.app.databinding.ActivityImportBookBinding
import io.legado.app.help.config.AppConfig import io.legado.app.help.config.AppConfig
import io.legado.app.lib.dialogs.alert import io.legado.app.lib.dialogs.alert
import io.legado.app.lib.theme.primaryTextColor
import io.legado.app.ui.document.HandleFileContract import io.legado.app.ui.document.HandleFileContract
import io.legado.app.utils.applyTint
import io.legado.app.utils.viewbindingdelegate.viewBinding
import kotlin.coroutines.resume import kotlin.coroutines.resume
import kotlin.coroutines.suspendCoroutine import kotlin.coroutines.suspendCoroutine
abstract class BaseImportBookActivity<VB : ViewBinding, VM : ViewModel> : VMBaseActivity<VB, VM>() { abstract class BaseImportBookActivity<VM : ViewModel> : VMBaseActivity<ActivityImportBookBinding, VM>() {
override val binding by viewBinding(ActivityImportBookBinding::inflate)
private var localBookTreeSelectListener: ((Boolean) -> Unit)? = null private var localBookTreeSelectListener: ((Boolean) -> Unit)? = null
private val searchView: SearchView by lazy { private val searchView: SearchView by lazy {
@@ -55,6 +60,8 @@ abstract class BaseImportBookActivity<VB : ViewBinding, VM : ViewModel> : VMBase
} }
} }
abstract fun onSearchTextChange(newText: String?)
private fun initSearchView() { private fun initSearchView() {
searchView.applyTint(primaryTextColor) searchView.applyTint(primaryTextColor)
searchView.onActionViewExpanded() searchView.onActionViewExpanded()
@@ -67,7 +74,7 @@ abstract class BaseImportBookActivity<VB : ViewBinding, VM : ViewModel> : VMBase
} }
override fun onQueryTextChange(newText: String?): Boolean { override fun onQueryTextChange(newText: String?): Boolean {
viewModel.updateCallBackFlow(newText) onSearchTextChange(newText)
return false return false
} }
}) })
@@ -13,7 +13,6 @@ import io.legado.app.R
import io.legado.app.constant.AppConst import io.legado.app.constant.AppConst
import io.legado.app.constant.PreferKey import io.legado.app.constant.PreferKey
import io.legado.app.data.appDb import io.legado.app.data.appDb
import io.legado.app.databinding.ActivityImportBookBinding
import io.legado.app.databinding.DialogEditTextBinding import io.legado.app.databinding.DialogEditTextBinding
import io.legado.app.help.config.AppConfig import io.legado.app.help.config.AppConfig
import io.legado.app.lib.dialogs.alert import io.legado.app.lib.dialogs.alert
@@ -24,7 +23,6 @@ import io.legado.app.ui.book.import.BaseImportBookActivity
import io.legado.app.ui.document.HandleFileContract import io.legado.app.ui.document.HandleFileContract
import io.legado.app.ui.widget.SelectActionBar import io.legado.app.ui.widget.SelectActionBar
import io.legado.app.utils.* import io.legado.app.utils.*
import io.legado.app.utils.viewbindingdelegate.viewBinding
import kotlinx.coroutines.Dispatchers.IO import kotlinx.coroutines.Dispatchers.IO
import kotlinx.coroutines.Job import kotlinx.coroutines.Job
import kotlinx.coroutines.flow.conflate import kotlinx.coroutines.flow.conflate
@@ -34,12 +32,11 @@ import java.io.File
/** /**
* 导入本地书籍界面 * 导入本地书籍界面
*/ */
class ImportBookActivity : BaseImportBookActivity<ActivityImportBookBinding, ImportBookViewModel>(), class ImportBookActivity : BaseImportBookActivity<ImportBookViewModel>(),
PopupMenu.OnMenuItemClickListener, PopupMenu.OnMenuItemClickListener,
ImportBookAdapter.CallBack, ImportBookAdapter.CallBack,
SelectActionBar.CallBack { SelectActionBar.CallBack {
override val binding by viewBinding(ActivityImportBookBinding::inflate)
override val viewModel by viewModels<ImportBookViewModel>() override val viewModel by viewModels<ImportBookViewModel>()
private val adapter by lazy { ImportBookAdapter(this, this) } private val adapter by lazy { ImportBookAdapter(this, this) }
private var scanDocJob: Job? = null private var scanDocJob: Job? = null
@@ -286,6 +283,10 @@ class ImportBookActivity : BaseImportBookActivity<ActivityImportBookBinding, Imp
} }
} }
override fun onSearchTextChange(newText: String?) {
viewModel.updateCallBackFlow(newText)
}
@Deprecated("Deprecated in Java") @Deprecated("Deprecated in Java")
override fun onBackPressed() { override fun onBackPressed() {
if (!goBackDir()) { if (!goBackDir()) {
@@ -9,7 +9,6 @@ import androidx.activity.viewModels
import androidx.core.view.isGone import androidx.core.view.isGone
import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.LinearLayoutManager
import io.legado.app.R import io.legado.app.R
import io.legado.app.databinding.ActivityImportBookBinding
import io.legado.app.help.config.LocalConfig import io.legado.app.help.config.LocalConfig
import io.legado.app.lib.theme.backgroundColor import io.legado.app.lib.theme.backgroundColor
import io.legado.app.model.remote.RemoteBook import io.legado.app.model.remote.RemoteBook
@@ -18,7 +17,6 @@ import io.legado.app.ui.book.import.BaseImportBookActivity
import io.legado.app.ui.widget.SelectActionBar import io.legado.app.ui.widget.SelectActionBar
import io.legado.app.ui.widget.dialog.TextDialog import io.legado.app.ui.widget.dialog.TextDialog
import io.legado.app.utils.showDialogFragment import io.legado.app.utils.showDialogFragment
import io.legado.app.utils.viewbindingdelegate.viewBinding
import kotlinx.coroutines.delay import kotlinx.coroutines.delay
import kotlinx.coroutines.flow.conflate import kotlinx.coroutines.flow.conflate
import kotlinx.coroutines.launch import kotlinx.coroutines.launch
@@ -27,11 +25,11 @@ import java.io.File
/** /**
* 展示远程书籍 * 展示远程书籍
*/ */
class RemoteBookActivity : BaseImportBookActivity<ActivityImportBookBinding, RemoteBookViewModel>(), class RemoteBookActivity : BaseImportBookActivity<RemoteBookViewModel>(),
RemoteBookAdapter.CallBack, RemoteBookAdapter.CallBack,
SelectActionBar.CallBack, SelectActionBar.CallBack,
ServersDialog.Callback { ServersDialog.Callback {
override val binding by viewBinding(ActivityImportBookBinding::inflate)
override val viewModel by viewModels<RemoteBookViewModel>() override val viewModel by viewModels<RemoteBookViewModel>()
private val adapter by lazy { RemoteBookAdapter(this, this) } private val adapter by lazy { RemoteBookAdapter(this, this) }
private var groupMenu: SubMenu? = null private var groupMenu: SubMenu? = null
@@ -186,6 +184,10 @@ class RemoteBookActivity : BaseImportBookActivity<ActivityImportBookBinding, Rem
} }
} }
override fun onSearchTextChange(newText: String?) {
viewModel.updateCallBackFlow(newText)
}
@Suppress("SameParameterValue") @Suppress("SameParameterValue")
private fun showHelp(fileName: String) { private fun showHelp(fileName: String) {
//显示目录help下的帮助文档 //显示目录help下的帮助文档