增加内置文件管理器,未完成

This commit is contained in:
kunfei
2023-03-31 00:10:48 +08:00
parent 0dc76a053e
commit 01f18067df
14 changed files with 57 additions and 13 deletions
@@ -18,6 +18,7 @@ import io.legado.app.ui.widget.recycler.VerticalDivider
import io.legado.app.utils.ConvertUtils
import io.legado.app.utils.FileDoc
import io.legado.app.utils.applyTint
import io.legado.app.utils.list
import io.legado.app.utils.viewbindingdelegate.viewBinding
class FileManageActivity : VMBaseActivity<ActivityFileManageBinding, FileManageViewModel>(),
@@ -38,6 +39,7 @@ class FileManageActivity : VMBaseActivity<ActivityFileManageBinding, FileManageV
override fun onActivityCreated(savedInstanceState: Bundle?) {
initView()
initSearchView()
initData()
}
private fun initView() {
@@ -66,15 +68,17 @@ class FileManageActivity : VMBaseActivity<ActivityFileManageBinding, FileManageV
})
}
private fun initData() {
viewModel.rootDoc?.list()?.let {
fileAdapter.setItems(it)
}
}
override fun onPathClick(position: Int) {
}
inner class FileAdapter : RecyclerAdapter<FileDoc, ItemFileBinding>(this@FileManageActivity) {
private var rootPath: String? = null
var currentPath: String? = null
private set
private val homeIcon = ConvertUtils.toDrawable(FilePickerIcon.getHome())!!
private val upIcon = ConvertUtils.toDrawable(FilePickerIcon.getUpDir())!!
private val folderIcon = ConvertUtils.toDrawable(FilePickerIcon.getFolder())!!
private val fileIcon = ConvertUtils.toDrawable(FilePickerIcon.getFile())!!
@@ -93,7 +97,14 @@ class FileManageActivity : VMBaseActivity<ActivityFileManageBinding, FileManageV
item: FileDoc,
payloads: MutableList<Any>
) {
binding.imageView
if (!item.isDir) {
binding.imageView.setImageDrawable(fileIcon)
} else if (holder.layoutPosition == 0 && viewModel.subDocs.isNotEmpty()) {
binding.imageView.setImageDrawable(upIcon)
} else {
binding.imageView.setImageDrawable(folderIcon)
}
binding.textView.text = item.name
}
@@ -2,6 +2,13 @@ package io.legado.app.ui.document
import android.app.Application
import io.legado.app.base.BaseViewModel
import io.legado.app.utils.FileDoc
class FileManageViewModel(application: Application) : BaseViewModel(application) {
val rootDoc = context.getExternalFilesDir(null)?.parentFile?.let {
FileDoc.fromFile(it)
}
val subDocs = arrayListOf<FileDoc>()
}
@@ -29,6 +29,7 @@ import io.legado.app.ui.book.toc.rule.TxtTocRuleActivity
import io.legado.app.ui.config.ConfigActivity
import io.legado.app.ui.config.ConfigTag
import io.legado.app.ui.dict.rule.DictRuleActivity
import io.legado.app.ui.document.FileManageActivity
import io.legado.app.ui.replace.ReplaceRuleActivity
import io.legado.app.ui.widget.dialog.TextDialog
import io.legado.app.utils.*
@@ -150,6 +151,7 @@ class MyFragment : BaseFragment(R.layout.fragment_my_config) {
"theme_setting" -> startActivity<ConfigActivity> {
putExtra("configTag", ConfigTag.THEME_CONFIG)
}
"fileManage" -> startActivity<FileManageActivity>()
"readRecord" -> startActivity<ReadRecordActivity>()
"donate" -> startActivity<DonateActivity>()
"about" -> startActivity<AboutActivity>()