优化
This commit is contained in:
@@ -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)
|
||||||
|
|||||||
Reference in New Issue
Block a user