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

This commit is contained in:
kunfei 2023-03-30 20:52:55 +08:00
parent 1b39e7068c
commit a15aace1b4
13 changed files with 79 additions and 13 deletions

View File

@ -1,12 +1,19 @@
package io.legado.app.ui.document
import android.os.Bundle
import android.view.ViewGroup
import androidx.activity.viewModels
import androidx.appcompat.widget.SearchView
import androidx.recyclerview.widget.LinearLayoutManager
import io.legado.app.R
import io.legado.app.base.VMBaseActivity
import io.legado.app.base.adapter.ItemViewHolder
import io.legado.app.base.adapter.RecyclerAdapter
import io.legado.app.databinding.ActivityFileManageBinding
import io.legado.app.databinding.ItemFileBinding
import io.legado.app.lib.theme.backgroundColor
import io.legado.app.lib.theme.primaryTextColor
import io.legado.app.utils.FileDoc
import io.legado.app.utils.applyTint
import io.legado.app.utils.viewbindingdelegate.viewBinding
@ -18,6 +25,9 @@ class FileManageActivity : VMBaseActivity<ActivityFileManageBinding, FileManageV
private val searchView: SearchView by lazy {
binding.titleBar.findViewById(R.id.search_view)
}
private val adapter by lazy {
FileAdapter()
}
override fun onActivityCreated(savedInstanceState: Bundle?) {
initView()
@ -25,11 +35,14 @@ class FileManageActivity : VMBaseActivity<ActivityFileManageBinding, FileManageV
}
private fun initView() {
binding.layTop.setBackgroundColor(backgroundColor)
binding.recyclerView.layoutManager = LinearLayoutManager(this)
binding.recyclerView.adapter = adapter
}
private fun initSearchView() {
searchView.applyTint(primaryTextColor)
searchView.queryHint = getString(R.string.screen) + "" + getString(R.string.file_manage)
searchView.onActionViewExpanded()
searchView.isSubmitButtonEnabled = true
searchView.clearFocus()
@ -45,4 +58,28 @@ class FileManageActivity : VMBaseActivity<ActivityFileManageBinding, FileManageV
})
}
inner class FileAdapter : RecyclerAdapter<FileDoc, ItemFileBinding>(this@FileManageActivity) {
override fun getViewBinding(parent: ViewGroup): ItemFileBinding {
TODO("Not yet implemented")
}
override fun registerListener(holder: ItemViewHolder, binding: ItemFileBinding) {
TODO("Not yet implemented")
}
override fun convert(
holder: ItemViewHolder,
binding: ItemFileBinding,
item: FileDoc,
payloads: MutableList<Any>
) {
TODO("Not yet implemented")
}
}
}

View File

@ -5,7 +5,7 @@ import android.content.Context
import android.view.ViewGroup
import io.legado.app.base.adapter.ItemViewHolder
import io.legado.app.base.adapter.RecyclerAdapter
import io.legado.app.databinding.ItemFileFilepickerBinding
import io.legado.app.databinding.ItemFilePickerBinding
import io.legado.app.help.config.AppConfig
import io.legado.app.lib.theme.getPrimaryDisabledTextColor
import io.legado.app.lib.theme.getPrimaryTextColor
@ -17,7 +17,7 @@ import java.io.File
class FileAdapter(context: Context, val callBack: CallBack) :
RecyclerAdapter<FileItem, ItemFileFilepickerBinding>(context) {
RecyclerAdapter<FileItem, ItemFilePickerBinding>(context) {
private var rootPath: String? = null
var currentPath: String? = null
private set
@ -84,13 +84,13 @@ class FileAdapter(context: Context, val callBack: CallBack) :
}
override fun getViewBinding(parent: ViewGroup): ItemFileFilepickerBinding {
return ItemFileFilepickerBinding.inflate(inflater, parent, false)
override fun getViewBinding(parent: ViewGroup): ItemFilePickerBinding {
return ItemFilePickerBinding.inflate(inflater, parent, false)
}
override fun convert(
holder: ItemViewHolder,
binding: ItemFileFilepickerBinding,
binding: ItemFilePickerBinding,
item: FileItem,
payloads: MutableList<Any>
) {
@ -115,7 +115,7 @@ class FileAdapter(context: Context, val callBack: CallBack) :
}
}
override fun registerListener(holder: ItemViewHolder, binding: ItemFileFilepickerBinding) {
override fun registerListener(holder: ItemViewHolder, binding: ItemFilePickerBinding) {
holder.itemView.setOnClickListener {
callBack.onFileClick(holder.layoutPosition)
}

View File

@ -5,14 +5,14 @@ import android.os.Environment
import android.view.ViewGroup
import io.legado.app.base.adapter.ItemViewHolder
import io.legado.app.base.adapter.RecyclerAdapter
import io.legado.app.databinding.ItemPathFilepickerBinding
import io.legado.app.databinding.ItemPathPickerBinding
import io.legado.app.ui.document.utils.FilePickerIcon
import io.legado.app.utils.ConvertUtils
import java.util.*
class PathAdapter(context: Context, val callBack: CallBack) :
RecyclerAdapter<String, ItemPathFilepickerBinding>(context) {
RecyclerAdapter<String, ItemPathPickerBinding>(context) {
private val paths = LinkedList<String>()
private val arrowIcon = ConvertUtils.toDrawable(FilePickerIcon.getArrow())
@ -43,13 +43,13 @@ class PathAdapter(context: Context, val callBack: CallBack) :
setItems(paths)
}
override fun getViewBinding(parent: ViewGroup): ItemPathFilepickerBinding {
return ItemPathFilepickerBinding.inflate(inflater, parent, false)
override fun getViewBinding(parent: ViewGroup): ItemPathPickerBinding {
return ItemPathPickerBinding.inflate(inflater, parent, false)
}
override fun convert(
holder: ItemViewHolder,
binding: ItemPathFilepickerBinding,
binding: ItemPathPickerBinding,
item: String,
payloads: MutableList<Any>
) {
@ -59,7 +59,7 @@ class PathAdapter(context: Context, val callBack: CallBack) :
}
}
override fun registerListener(holder: ItemViewHolder, binding: ItemPathFilepickerBinding) {
override fun registerListener(holder: ItemViewHolder, binding: ItemPathPickerBinding) {
holder.itemView.setOnClickListener {
callBack.onPathClick(holder.layoutPosition)
}

View File

@ -0,0 +1,22 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_vertical"
android:padding="5dp">
<ImageView
android:id="@+id/image_view"
android:layout_width="24dp"
android:layout_height="24dp"
tools:ignore="ContentDescription" />
<TextView
android:id="@+id/text_view"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:gravity="center_vertical" />
</LinearLayout>

View File

@ -1087,4 +1087,5 @@
<string name="privacy_policy">用户隐私与协议</string>
<string name="agree">同意</string>
<string name="refuse">拒绝</string>
<string name="file_manage">文件管理</string>
</resources>

View File

@ -1090,4 +1090,5 @@
<string name="privacy_policy">用户隐私与协议</string>
<string name="agree">同意</string>
<string name="refuse">拒绝</string>
<string name="file_manage">文件管理</string>
</resources>

View File

@ -1090,4 +1090,5 @@
<string name="privacy_policy">用户隐私与协议</string>
<string name="agree">同意</string>
<string name="refuse">拒绝</string>
<string name="file_manage">文件管理</string>
</resources>

View File

@ -1087,4 +1087,5 @@
<string name="privacy_policy">用户隐私与协议</string>
<string name="agree">同意</string>
<string name="refuse">拒绝</string>
<string name="file_manage">文件管理</string>
</resources>

View File

@ -1089,4 +1089,5 @@
<string name="privacy_policy">用户隐私与协议</string>
<string name="agree">同意</string>
<string name="refuse">拒绝</string>
<string name="file_manage">文件管理</string>
</resources>

View File

@ -1089,4 +1089,5 @@
<string name="privacy_policy">用户隐私与协议</string>
<string name="agree">同意</string>
<string name="refuse">拒绝</string>
<string name="file_manage">文件管理</string>
</resources>

View File

@ -1090,4 +1090,5 @@
<string name="privacy_policy">用户隐私与协议</string>
<string name="agree">同意</string>
<string name="refuse">拒绝</string>
<string name="file_manage">文件管理</string>
</resources>