This commit is contained in:
Horis
2023-09-19 23:39:37 +08:00
parent ff79a4a44a
commit 17bcabd561
@@ -5,6 +5,7 @@ import android.os.Bundle
import android.view.View import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
import android.widget.PopupMenu import android.widget.PopupMenu
import androidx.activity.addCallback
import androidx.activity.viewModels import androidx.activity.viewModels
import androidx.appcompat.widget.SearchView import androidx.appcompat.widget.SearchView
import androidx.core.content.FileProvider import androidx.core.content.FileProvider
@@ -55,6 +56,13 @@ class FileManageActivity : VMBaseActivity<ActivityFileManageBinding, FileManageV
binding.recyclerView.layoutManager = LinearLayoutManager(this) binding.recyclerView.layoutManager = LinearLayoutManager(this)
binding.recyclerView.addItemDecoration(VerticalDivider(this)) binding.recyclerView.addItemDecoration(VerticalDivider(this))
binding.recyclerView.adapter = fileAdapter binding.recyclerView.adapter = fileAdapter
onBackPressedDispatcher.addCallback(this) {
if (viewModel.lastDir != viewModel.rootDoc) {
gotoLastDir()
return@addCallback
}
finish()
}
} }
private fun initSearchView() { private fun initSearchView() {
@@ -87,6 +95,12 @@ class FileManageActivity : VMBaseActivity<ActivityFileManageBinding, FileManageV
} }
} }
private fun gotoLastDir() {
viewModel.subDocs.removeLastOrNull()
pathAdapter.setItems(viewModel.subDocs)
viewModel.upFiles(viewModel.lastDir)
}
override fun observeLiveBus() { override fun observeLiveBus() {
viewModel.filesLiveData.observe(this) { viewModel.filesLiveData.observe(this) {
searchView.setQuery("", false) searchView.setQuery("", false)
@@ -155,9 +169,7 @@ class FileManageActivity : VMBaseActivity<ActivityFileManageBinding, FileManageV
val item = getItemByLayoutPosition(holder.layoutPosition) val item = getItemByLayoutPosition(holder.layoutPosition)
item?.let { item?.let {
if (item == viewModel.lastDir) { if (item == viewModel.lastDir) {
viewModel.subDocs.removeLastOrNull() gotoLastDir()
pathAdapter.setItems(viewModel.subDocs)
viewModel.upFiles(viewModel.subDocs.lastOrNull() ?: viewModel.rootDoc)
} else if (item.isDirectory) { } else if (item.isDirectory) {
viewModel.subDocs.add(item) viewModel.subDocs.add(item)
pathAdapter.setItems(viewModel.subDocs) pathAdapter.setItems(viewModel.subDocs)