Commit 18031b3c authored by wanglei's avatar wanglei

...

parent ac39abd5
package com.base.pdfreaderallpdfreader.ui.main.recent package com.base.pdfreaderallpdfreader.ui.main.recent
import android.annotation.SuppressLint
import android.os.Bundle import android.os.Bundle
import androidx.fragment.app.Fragment import androidx.fragment.app.Fragment
import android.view.LayoutInflater import android.view.LayoutInflater
...@@ -7,15 +8,26 @@ import android.view.View ...@@ -7,15 +8,26 @@ import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
import androidx.lifecycle.ViewModelProvider import androidx.lifecycle.ViewModelProvider
import androidx.lifecycle.lifecycleScope import androidx.lifecycle.lifecycleScope
import com.base.pdfreaderallpdfreader.bean.DocumentBean
import com.base.pdfreaderallpdfreader.bean.DocumentBean.Companion.TYPE_PDF
import com.base.pdfreaderallpdfreader.databinding.FragmentRecentBinding import com.base.pdfreaderallpdfreader.databinding.FragmentRecentBinding
import com.base.pdfreaderallpdfreader.ui.document.DocumentFragment.Companion.jumpOtherDocument
import com.base.pdfreaderallpdfreader.ui.main.DocumentAdapter import com.base.pdfreaderallpdfreader.ui.main.DocumentAdapter
import com.base.pdfreaderallpdfreader.ui.pdf.PdfActivity
import com.base.pdfreaderallpdfreader.ui.view.DialogCallBack
import com.base.pdfreaderallpdfreader.ui.view.DocumentDialog.showDocumentHomeMoreDialog
import com.base.pdfreaderallpdfreader.ui.view.PdfDialog.showPdfHomeMoreDialog
import com.base.pdfreaderallpdfreader.utils.LogEx import com.base.pdfreaderallpdfreader.utils.LogEx
import com.base.pdfreaderallpdfreader.utils.PdfBoxUtils.checkPdfEncryption
import com.base.pdfreaderallpdfreader.utils.SpStringUtils
import com.base.pdfreaderallpdfreader.utils.SpStringUtils.BOOKMARK_KEY
import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.launch import kotlinx.coroutines.launch
import java.io.File
import kotlin.random.Random import kotlin.random.Random
class RecentFragment() : Fragment() { class RecentFragment() : Fragment(), DialogCallBack {
private val TAG = "RecentFragment" private val TAG = "RecentFragment"
...@@ -46,9 +58,61 @@ class RecentFragment() : Fragment() { ...@@ -46,9 +58,61 @@ class RecentFragment() : Fragment() {
override fun onViewCreated(view: View, savedInstanceState: Bundle?) { override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState) super.onViewCreated(view, savedInstanceState)
adapter = DocumentAdapter(requireActivity()) adapter = DocumentAdapter(requireActivity())
adapter?.itemClickAction = { item: DocumentBean ->
if (item.type == TYPE_PDF) {
PdfActivity.jumpPdfActivity(requireActivity(), item)
} else {
requireActivity().jumpOtherDocument(item)
}
}
adapter?.moreAction = { item: DocumentBean ->
if (item.type == TYPE_PDF) {
requireActivity().showPdfHomeMoreDialog(item, this)
} else {
requireContext().showDocumentHomeMoreDialog(item, this)
}
}
binding.rv.adapter = adapter binding.rv.adapter = adapter
} }
@SuppressLint("NotifyDataSetChanged")
override fun changeBookmark(path: String, isBookmarked: Boolean) {
if (isBookmarked) {
SpStringUtils.addSpString(BOOKMARK_KEY, path)
} else {
SpStringUtils.deleteSpString(BOOKMARK_KEY, path)
}
adapter?.items?.find { it.path == path }?.isBookmarked = isBookmarked
adapter?.notifyDataSetChanged()
}
override fun deleteDocument(item: DocumentBean) {
val flag = File(item.path).delete()
if (flag) {
adapter?.remove(item)
}
}
@SuppressLint("NotifyDataSetChanged")
override fun changePdfLock(item: DocumentBean) {
val pdf = adapter?.items?.find { it.path == item.path }
pdf?.state = requireContext().checkPdfEncryption(item.path)
adapter?.notifyDataSetChanged()
}
override fun renameDocumentBean(file: File, newName: String) {
try {
val newFile = File(file.parentFile, newName)
val result = file.renameTo(newFile)
if (result) {
initData()
}
} catch (e: Exception) {
e.printStackTrace()
}
}
override fun onResume() { override fun onResume() {
super.onResume() super.onResume()
initData() initData()
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment