diff --git a/app/src/main/java/com/all/pdfreader/pro/app/ui/dialog/ListMoreDialogFragment.kt b/app/src/main/java/com/all/pdfreader/pro/app/ui/dialog/ListMoreDialogFragment.kt
index 338d2d3..588626a 100644
--- a/app/src/main/java/com/all/pdfreader/pro/app/ui/dialog/ListMoreDialogFragment.kt
+++ b/app/src/main/java/com/all/pdfreader/pro/app/ui/dialog/ListMoreDialogFragment.kt
@@ -2,6 +2,7 @@ package com.all.pdfreader.pro.app.ui.dialog
import android.net.Uri
import android.os.Bundle
+import android.util.Log
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
@@ -13,7 +14,9 @@ import com.all.pdfreader.pro.app.model.PrintResult
import com.all.pdfreader.pro.app.model.RenameType
import com.all.pdfreader.pro.app.room.entity.PdfDocumentEntity
import com.all.pdfreader.pro.app.ui.act.SplitPdfActivity
+import com.all.pdfreader.pro.app.ui.fragment.FavoriteFrag
import com.all.pdfreader.pro.app.ui.fragment.HomeFrag
+import com.all.pdfreader.pro.app.ui.fragment.RecentlyFrag
import com.all.pdfreader.pro.app.util.AppUtils.dpToPx
import com.all.pdfreader.pro.app.util.AppUtils.printPdfFile
import com.all.pdfreader.pro.app.util.AppUtils.setClickWithAnimation
@@ -73,12 +76,16 @@ class ListMoreDialogFragment(val filePath: String) : BottomSheetDialogFragment()
}
private fun initUi() {
- if (tag == HomeFrag().tag) {
- binding.removeRecentBtn.visibility = View.GONE
- } else {
- if (pdfDocument.lastOpenedTime > 0) {
+ when (tag) {
+ HomeFrag.FRAG_TAG -> {
+ binding.removeRecentBtn.visibility = View.GONE
+ }
+
+ RecentlyFrag.FRAG_TAG -> {
binding.removeRecentBtn.visibility = View.VISIBLE
- } else {
+ }
+
+ FavoriteFrag.FRAG_TAG -> {
binding.removeRecentBtn.visibility = View.GONE
}
}
@@ -108,8 +115,7 @@ class ListMoreDialogFragment(val filePath: String) : BottomSheetDialogFragment()
}
binding.renameFileBtn.setOnClickListener {
RenameDialogFragment(RenameType.FILE).show(
- parentFragmentManager,
- "ListMoreDialogFragment"
+ parentFragmentManager, "ListMoreDialogFragment"
)
dismiss()
}
@@ -135,9 +141,7 @@ class ListMoreDialogFragment(val filePath: String) : BottomSheetDialogFragment()
when (result) {
PrintResult.DeviceNotSupported -> {
Toast.makeText(
- context,
- R.string.device_does_not_support_printing,
- Toast.LENGTH_LONG
+ context, R.string.device_does_not_support_printing, Toast.LENGTH_LONG
).show()
}
@@ -153,9 +157,7 @@ class ListMoreDialogFragment(val filePath: String) : BottomSheetDialogFragment()
PrintResult.PasswordRequired -> {
Toast.makeText(
- context,
- R.string.pdf_cant_print_password_protected,
- Toast.LENGTH_LONG
+ context, R.string.pdf_cant_print_password_protected, Toast.LENGTH_LONG
).show()
}
diff --git a/app/src/main/java/com/all/pdfreader/pro/app/ui/fragment/FavoriteFrag.kt b/app/src/main/java/com/all/pdfreader/pro/app/ui/fragment/FavoriteFrag.kt
index f1f79dc..d1cb4d9 100644
--- a/app/src/main/java/com/all/pdfreader/pro/app/ui/fragment/FavoriteFrag.kt
+++ b/app/src/main/java/com/all/pdfreader/pro/app/ui/fragment/FavoriteFrag.kt
@@ -5,10 +5,26 @@ import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import androidx.fragment.app.Fragment
+import androidx.lifecycle.Lifecycle
+import androidx.lifecycle.lifecycleScope
+import androidx.lifecycle.repeatOnLifecycle
+import androidx.recyclerview.widget.LinearLayoutManager
import com.all.pdfreader.pro.app.databinding.FragmentFavoriteBinding
+import com.all.pdfreader.pro.app.room.repository.PdfRepository
+import com.all.pdfreader.pro.app.ui.act.PdfViewActivity
+import com.all.pdfreader.pro.app.ui.adapter.PdfAdapter
+import com.all.pdfreader.pro.app.ui.dialog.ListMoreDialogFragment
+import kotlinx.coroutines.launch
+
+class FavoriteFrag : BaseFrag() {
+ override val TAG: String = "FavoriteFrag"
+
+ companion object {
+ const val FRAG_TAG = "FavoriteFrag"
+ }
-class FavoriteFrag : Fragment() {
private lateinit var binding: FragmentFavoriteBinding
+ private lateinit var adapter: PdfAdapter
override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?
@@ -20,9 +36,41 @@ class FavoriteFrag : Fragment() {
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
initView()
+ observeDocuments()
}
private fun initView() {
+ adapter = PdfAdapter(pdfList = mutableListOf(), onItemClick = { pdf ->
+ val intent = PdfViewActivity.createIntent(requireContext(), pdf.filePath)
+ startActivity(intent)
+ }, onMoreClick = { pdf ->
+ ListMoreDialogFragment(pdf.filePath).show(parentFragmentManager, FRAG_TAG)
+ })
+ binding.recyclerView.layoutManager = LinearLayoutManager(requireContext())
+ binding.recyclerView.adapter = adapter
+
+ // 下拉刷新示例
+ binding.swipeRefreshLayout.setOnRefreshListener {
+ observeDocuments {
+ binding.swipeRefreshLayout.isRefreshing = false
+ }
+ }
+ }
+
+ private fun observeDocuments(onComplete: () -> Unit = {}) {
+ lifecycleScope.launch {
+ viewLifecycleOwner.lifecycle.repeatOnLifecycle(Lifecycle.State.STARTED) {
+ PdfRepository.getInstance().getFavoriteDocuments().collect { list ->
+ if (list.isNotEmpty()) {
+ adapter.updateData(list)
+ onComplete()
+ binding.noFilesLayout.visibility = View.GONE
+ } else {
+ binding.noFilesLayout.visibility = View.VISIBLE
+ }
+ }
+ }
+ }
}
}
\ No newline at end of file
diff --git a/app/src/main/java/com/all/pdfreader/pro/app/ui/fragment/HomeFrag.kt b/app/src/main/java/com/all/pdfreader/pro/app/ui/fragment/HomeFrag.kt
index 0673c78..7f1145c 100644
--- a/app/src/main/java/com/all/pdfreader/pro/app/ui/fragment/HomeFrag.kt
+++ b/app/src/main/java/com/all/pdfreader/pro/app/ui/fragment/HomeFrag.kt
@@ -21,6 +21,11 @@ import kotlinx.coroutines.launch
class HomeFrag : BaseFrag(), MainActivity.SortableFragment {
override val TAG: String = "HomeFrag"
+
+ companion object {
+ const val FRAG_TAG = "HomeFrag"
+ }
+
private lateinit var binding: FragmentHomeBinding
private lateinit var adapter: PdfAdapter
override fun onCreateView(
@@ -41,7 +46,7 @@ class HomeFrag : BaseFrag(), MainActivity.SortableFragment {
val intent = PdfViewActivity.createIntent(requireContext(), pdf.filePath)
startActivity(intent)
}, onMoreClick = { pdf ->
- ListMoreDialogFragment(pdf.filePath).show(parentFragmentManager, TAG)
+ ListMoreDialogFragment(pdf.filePath).show(parentFragmentManager, FRAG_TAG)
})
binding.recyclerView.layoutManager = LinearLayoutManager(requireContext())
diff --git a/app/src/main/java/com/all/pdfreader/pro/app/ui/fragment/RecentlyFrag.kt b/app/src/main/java/com/all/pdfreader/pro/app/ui/fragment/RecentlyFrag.kt
index 23bfb28..07a03b1 100644
--- a/app/src/main/java/com/all/pdfreader/pro/app/ui/fragment/RecentlyFrag.kt
+++ b/app/src/main/java/com/all/pdfreader/pro/app/ui/fragment/RecentlyFrag.kt
@@ -17,6 +17,11 @@ import kotlinx.coroutines.launch
class RecentlyFrag : BaseFrag() {
override val TAG: String = "RecentlyFrag"
+
+ companion object {
+ const val FRAG_TAG = "RecentlyFrag"
+ }
+
private lateinit var binding: FragmentRecentlyBinding
private lateinit var adapter: PdfAdapter
@@ -38,7 +43,7 @@ class RecentlyFrag : BaseFrag() {
val intent = PdfViewActivity.createIntent(requireContext(), pdf.filePath)
startActivity(intent)
}, onMoreClick = { pdf ->
- ListMoreDialogFragment(pdf.filePath).show(parentFragmentManager, TAG)
+ ListMoreDialogFragment(pdf.filePath).show(parentFragmentManager, FRAG_TAG)
})
binding.recyclerView.layoutManager = LinearLayoutManager(requireContext())
@@ -63,7 +68,6 @@ class RecentlyFrag : BaseFrag() {
} else {
binding.noFilesLayout.visibility = View.VISIBLE
}
- logDebug("更新adapter数据")
}
}
}
diff --git a/app/src/main/res/layout/fragment_favorite.xml b/app/src/main/res/layout/fragment_favorite.xml
index fb3ce0e..7cf3ad2 100644
--- a/app/src/main/res/layout/fragment_favorite.xml
+++ b/app/src/main/res/layout/fragment_favorite.xml
@@ -10,9 +10,40 @@
android:layout_width="match_parent"
android:layout_height="0dp" />
-
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file