kunfei 3 лет назад
Родитель
Сommit
b543cbd11f

+ 11 - 4
app/src/main/java/io/legado/app/ui/book/import/BaseImportBookActivity.kt

@@ -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
             }
         })

+ 5 - 4
app/src/main/java/io/legado/app/ui/book/import/local/ImportBookActivity.kt

@@ -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()) {

+ 6 - 4
app/src/main/java/io/legado/app/ui/book/import/remote/RemoteBookActivity.kt

@@ -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下的帮助文档