Просмотр исходного кода

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

kunfei 3 лет назад
Родитель
Сommit
8631383245

+ 38 - 1
app/src/main/java/io/legado/app/ui/document/FileManageActivity.kt

@@ -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")
+        }
+
+
+    }
+
 }

+ 6 - 6
app/src/main/java/io/legado/app/ui/document/adapter/FileAdapter.kt

@@ -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)
         }

+ 6 - 6
app/src/main/java/io/legado/app/ui/document/adapter/PathAdapter.kt

@@ -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)
         }

+ 0 - 0
app/src/main/res/layout/item_file_filepicker.xml → app/src/main/res/layout/item_file.xml


+ 22 - 0
app/src/main/res/layout/item_file_picker.xml

@@ -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>

+ 0 - 0
app/src/main/res/layout/item_path_filepicker.xml → app/src/main/res/layout/item_path_picker.xml


+ 1 - 0
app/src/main/res/values-es-rES/strings.xml

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

+ 1 - 0
app/src/main/res/values-ja-rJP/strings.xml

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

+ 1 - 0
app/src/main/res/values-pt-rBR/strings.xml

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

+ 1 - 0
app/src/main/res/values-zh-rHK/strings.xml

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

+ 1 - 0
app/src/main/res/values-zh-rTW/strings.xml

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

+ 1 - 0
app/src/main/res/values-zh/strings.xml

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

+ 1 - 0
app/src/main/res/values/strings.xml

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