mirror of
https://github.com/gedoor/legado.git
synced 2024-07-19 01:17:25 +08:00
增加内置文件管理器,未完成
This commit is contained in:
parent
1b39e7068c
commit
a15aace1b4
@ -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")
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
}
|
@ -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)
|
||||
}
|
||||
|
@ -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)
|
||||
}
|
||||
|
22
app/src/main/res/layout/item_file_picker.xml
Normal file
22
app/src/main/res/layout/item_file_picker.xml
Normal 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>
|
@ -1087,4 +1087,5 @@
|
||||
<string name="privacy_policy">用户隐私与协议</string>
|
||||
<string name="agree">同意</string>
|
||||
<string name="refuse">拒绝</string>
|
||||
<string name="file_manage">文件管理</string>
|
||||
</resources>
|
||||
|
@ -1090,4 +1090,5 @@
|
||||
<string name="privacy_policy">用户隐私与协议</string>
|
||||
<string name="agree">同意</string>
|
||||
<string name="refuse">拒绝</string>
|
||||
<string name="file_manage">文件管理</string>
|
||||
</resources>
|
||||
|
@ -1090,4 +1090,5 @@
|
||||
<string name="privacy_policy">用户隐私与协议</string>
|
||||
<string name="agree">同意</string>
|
||||
<string name="refuse">拒绝</string>
|
||||
<string name="file_manage">文件管理</string>
|
||||
</resources>
|
||||
|
@ -1087,4 +1087,5 @@
|
||||
<string name="privacy_policy">用户隐私与协议</string>
|
||||
<string name="agree">同意</string>
|
||||
<string name="refuse">拒绝</string>
|
||||
<string name="file_manage">文件管理</string>
|
||||
</resources>
|
||||
|
@ -1089,4 +1089,5 @@
|
||||
<string name="privacy_policy">用户隐私与协议</string>
|
||||
<string name="agree">同意</string>
|
||||
<string name="refuse">拒绝</string>
|
||||
<string name="file_manage">文件管理</string>
|
||||
</resources>
|
||||
|
@ -1089,4 +1089,5 @@
|
||||
<string name="privacy_policy">用户隐私与协议</string>
|
||||
<string name="agree">同意</string>
|
||||
<string name="refuse">拒绝</string>
|
||||
<string name="file_manage">文件管理</string>
|
||||
</resources>
|
||||
|
@ -1090,4 +1090,5 @@
|
||||
<string name="privacy_policy">用户隐私与协议</string>
|
||||
<string name="agree">同意</string>
|
||||
<string name="refuse">拒绝</string>
|
||||
<string name="file_manage">文件管理</string>
|
||||
</resources>
|
||||
|
Loading…
Reference in New Issue
Block a user