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
import androidx.lifecycle.ViewModel
import androidx.viewbinding.ViewBinding
import androidx.appcompat.widget.SearchView
import androidx.lifecycle.ViewModel
import io.legado.app.R
import io.legado.app.base.VMBaseActivity
import io.legado.app.databinding.ActivityImportBookBinding
import io.legado.app.help.config.AppConfig
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.utils.applyTint
import io.legado.app.utils.viewbindingdelegate.viewBinding
import kotlin.coroutines.resume
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 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() {
searchView.applyTint(primaryTextColor)
searchView.onActionViewExpanded()
@@ -67,7 +74,7 @@ abstract class BaseImportBookActivity<VB : ViewBinding, VM : ViewModel> : VMBase
}
override fun onQueryTextChange(newText: String?): Boolean {
viewModel.updateCallBackFlow(newText)
onSearchTextChange(newText)
return false
}
})
@@ -13,7 +13,6 @@ import io.legado.app.R
import io.legado.app.constant.AppConst
import io.legado.app.constant.PreferKey
import io.legado.app.data.appDb
import io.legado.app.databinding.ActivityImportBookBinding
import io.legado.app.databinding.DialogEditTextBinding
import io.legado.app.help.config.AppConfig
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.widget.SelectActionBar
import io.legado.app.utils.*
import io.legado.app.utils.viewbindingdelegate.viewBinding
import kotlinx.coroutines.Dispatchers.IO
import kotlinx.coroutines.Job
import kotlinx.coroutines.flow.conflate
@@ -34,12 +32,11 @@ import java.io.File
/**
* 导入本地书籍界面
*/
class ImportBookActivity : BaseImportBookActivity<ActivityImportBookBinding, ImportBookViewModel>(),
class ImportBookActivity : BaseImportBookActivity<ImportBookViewModel>(),
PopupMenu.OnMenuItemClickListener,
ImportBookAdapter.CallBack,
SelectActionBar.CallBack {
override val binding by viewBinding(ActivityImportBookBinding::inflate)
override val viewModel by viewModels<ImportBookViewModel>()
private val adapter by lazy { ImportBookAdapter(this, this) }
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")
override fun onBackPressed() {
if (!goBackDir()) {
@@ -9,7 +9,6 @@ import androidx.activity.viewModels
import androidx.core.view.isGone
import androidx.recyclerview.widget.LinearLayoutManager
import io.legado.app.R
import io.legado.app.databinding.ActivityImportBookBinding
import io.legado.app.help.config.LocalConfig
import io.legado.app.lib.theme.backgroundColor
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.dialog.TextDialog
import io.legado.app.utils.showDialogFragment
import io.legado.app.utils.viewbindingdelegate.viewBinding
import kotlinx.coroutines.delay
import kotlinx.coroutines.flow.conflate
import kotlinx.coroutines.launch
@@ -27,11 +25,11 @@ import java.io.File
/**
* 展示远程书籍
*/
class RemoteBookActivity : BaseImportBookActivity<ActivityImportBookBinding, RemoteBookViewModel>(),
class RemoteBookActivity : BaseImportBookActivity<RemoteBookViewModel>(),
RemoteBookAdapter.CallBack,
SelectActionBar.CallBack,
ServersDialog.Callback {
override val binding by viewBinding(ActivityImportBookBinding::inflate)
override val viewModel by viewModels<RemoteBookViewModel>()
private val adapter by lazy { RemoteBookAdapter(this, this) }
private var groupMenu: SubMenu? = null
@@ -186,6 +184,10 @@ class RemoteBookActivity : BaseImportBookActivity<ActivityImportBookBinding, Rem
}
}
override fun onSearchTextChange(newText: String?) {
viewModel.updateCallBackFlow(newText)
}
@Suppress("SameParameterValue")
private fun showHelp(fileName: String) {
//显示目录help下的帮助文档