使用ProgressBar

This commit is contained in:
HapeLee committed 2025-09-05 03:38:27 +08:00
1 parent 3b10cb7ad7
commit ee703523de
24 files changed
+54 -463

No files matched your search

@@ -216,7 +216,7 @@ class ChangeChapterSourceDialog() : BaseDialogFragment(R.layout.dialog_chapter_c
private fun initLiveData() {
viewModel.searchStateData.observe(viewLifecycleOwner) {
binding.refreshProgressBar.isAutoLoading = it
binding.refreshProgressBar.isVisible = it
if (it) {
startStopMenuItem?.let { item ->
item.setIcon(R.drawable.ic_stop_black_24dp)
@@ -1,5 +1,6 @@
package io.legato.kazusa.ui.book.import.local
//import io.legado.app.lib.theme.backgroundColor
import android.annotation.SuppressLint
import android.net.Uri
import android.os.Bundle
@@ -8,6 +9,8 @@ import android.view.MenuItem
import androidx.activity.addCallback
import androidx.activity.viewModels
import androidx.appcompat.widget.PopupMenu
import androidx.core.net.toUri
import androidx.core.view.isVisible
import androidx.documentfile.provider.DocumentFile
import androidx.lifecycle.lifecycleScope
import androidx.recyclerview.widget.LinearLayoutManager
@@ -19,7 +22,6 @@ import io.legato.kazusa.help.config.AppConfig
import io.legato.kazusa.lib.dialogs.alert
import io.legato.kazusa.lib.permission.Permissions
import io.legato.kazusa.lib.permission.PermissionsCompat
//import io.legado.app.lib.theme.backgroundColor
import io.legato.kazusa.ui.book.import.BaseImportBookActivity
import io.legato.kazusa.ui.file.HandleFileContract
import io.legato.kazusa.ui.widget.SelectActionBar
@@ -38,7 +40,6 @@ import kotlinx.coroutines.flow.conflate
import kotlinx.coroutines.launch
import kotlinx.coroutines.withContext
import java.io.File
import androidx.core.net.toUri
/**
* 导入本地书籍界面
@@ -252,12 +253,12 @@ class ImportBookActivity : BaseImportBookActivity<ImportBookViewModel>(),
viewModel.rootDoc?.let { doc ->
adapter.clearItems()
val lastDoc = viewModel.subDocs.lastOrNull() ?: doc
binding.refreshProgressBar.isAutoLoading = true
binding.refreshProgressBar.isVisible = true
scanDocJob?.cancel()
scanDocJob = lifecycleScope.launch(IO) {
viewModel.scanDoc(lastDoc)
withContext(Main) {
binding.refreshProgressBar.isAutoLoading = false
binding.refreshProgressBar.isVisible = false
}
}
}
@@ -9,6 +9,7 @@ import android.view.SubMenu
import androidx.activity.addCallback
import androidx.activity.viewModels
import androidx.core.view.isGone
import androidx.core.view.isVisible
import androidx.lifecycle.lifecycleScope
import androidx.recyclerview.widget.LinearLayoutManager
import io.legato.kazusa.R
@@ -59,7 +60,7 @@ class RemoteBookActivity : BaseImportBookActivity<RemoteBookViewModel>(),
initEvent()
launch {
viewModel.dataFlow.conflate().collect { sortedRemoteBooks ->
binding.refreshProgressBar.isAutoLoading = false
binding.refreshProgressBar.isVisible = false
binding.tvEmptyMsg.isGone = sortedRemoteBooks.isNotEmpty()
adapter.setItems(sortedRemoteBooks)
delay(500)
@@ -151,11 +152,11 @@ class RemoteBookActivity : BaseImportBookActivity<RemoteBookViewModel>(),
@SuppressLint("NotifyDataSetChanged")
override fun onClickSelectBarMainAction() {
binding.refreshProgressBar.isAutoLoading = true
binding.refreshProgressBar.isVisible = true
viewModel.addToBookshelf(adapter.selected) {
adapter.selected.clear()
adapter.notifyDataSetChanged()
binding.refreshProgressBar.isAutoLoading = false
binding.refreshProgressBar.isVisible = false
}
}
@@ -184,7 +185,7 @@ class RemoteBookActivity : BaseImportBookActivity<RemoteBookViewModel>(),
viewModel.loadRemoteBookList(
viewModel.dirList.lastOrNull()?.path
) {
binding.refreshProgressBar.isAutoLoading = it
binding.refreshProgressBar.isVisible = it
}
}
@@ -247,9 +248,9 @@ class RemoteBookActivity : BaseImportBookActivity<RemoteBookViewModel>(),
override fun addToBookShelfAgain(remoteBook: RemoteBook) {
alert(getString(R.string.sure), "是否重新加入书架?") {
yesButton {
binding.refreshProgressBar.isAutoLoading = true
binding.refreshProgressBar.isVisible = true
viewModel.addToBookshelf(hashSetOf(remoteBook)) {
binding.refreshProgressBar.isAutoLoading = false
binding.refreshProgressBar.isVisible = false
}
}
noButton()
@@ -1,5 +1,6 @@
package io.legato.kazusa.ui.book.read
//import io.legado.app.lib.theme.primaryColor
import android.app.Application
import android.content.DialogInterface
import android.os.Bundle
@@ -20,13 +21,13 @@ import io.legato.kazusa.help.book.ContentProcessor
import io.legato.kazusa.help.book.isLocal
import io.legato.kazusa.help.coroutine.Coroutine
import io.legato.kazusa.lib.dialogs.alert
//import io.legado.app.lib.theme.primaryColor
import io.legato.kazusa.model.ReadBook
import io.legato.kazusa.model.webBook.WebBook
import io.legato.kazusa.utils.applyTint
import io.legato.kazusa.utils.gone
import io.legato.kazusa.utils.sendToClip
import io.legato.kazusa.utils.setLayout
import io.legato.kazusa.utils.viewbindingdelegate.viewBinding
import io.legato.kazusa.utils.visible
import kotlinx.coroutines.Dispatchers.IO
import kotlinx.coroutines.launch
import kotlinx.coroutines.withContext
@@ -10,6 +10,7 @@ import android.widget.EditText
import androidx.activity.viewModels
import androidx.appcompat.widget.SearchView
import androidx.core.view.allViews
import androidx.core.view.isVisible
import androidx.lifecycle.lifecycleScope
import io.legato.kazusa.R
import io.legato.kazusa.base.VMBaseActivity
@@ -210,7 +211,7 @@ class SearchContentActivity :
viewModel.searchResultList.clear()
viewModel.searchResultCounts = 0
viewModel.lastQuery = query
binding.refreshProgressBar.isAutoLoading = true
binding.refreshProgressBar.isVisible = true
binding.fbStop.visible()
searchJob = lifecycleScope.launch(IO) {
initJob?.join()
@@ -246,7 +247,7 @@ class SearchContentActivity :
}
binding.tvCurrentSearchInfo.post {
binding.fbStop.invisible()
binding.refreshProgressBar.isAutoLoading = false
binding.refreshProgressBar.isVisible = false
}
}
}
@@ -19,11 +19,13 @@ import io.legato.kazusa.lib.dialogs.selector
import io.legato.kazusa.ui.qrcode.QrCodeResult
import io.legato.kazusa.ui.widget.dialog.TextDialog
import io.legato.kazusa.utils.applyNavigationBarPadding
import io.legato.kazusa.utils.gone
import io.legato.kazusa.utils.launch
import io.legato.kazusa.utils.showDialogFragment
import io.legato.kazusa.utils.showHelp
import io.legato.kazusa.utils.toastOnUi
import io.legato.kazusa.utils.viewbindingdelegate.viewBinding
import io.legato.kazusa.utils.visible
import kotlinx.coroutines.launch
import splitties.views.onClick
import splitties.views.onLongClick