|
@@ -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()
|
|
|
|
|
- pathAdapter.setItems(viewModel.subDocs)
|
|
|
|
|
- viewModel.upFiles(viewModel.subDocs.lastOrNull() ?: viewModel.rootDoc)
|
|
|
|
|
|
|
+ gotoLastDir()
|
|
|
} else if (item.isDirectory) {
|
|
} else if (item.isDirectory) {
|
|
|
viewModel.subDocs.add(item)
|
|
viewModel.subDocs.add(item)
|
|
|
pathAdapter.setItems(viewModel.subDocs)
|
|
pathAdapter.setItems(viewModel.subDocs)
|