diff --git a/app/src/main/java/com/all/pdfreader/pro/app/ui/dialog/FileDetailsDialogFragment.kt b/app/src/main/java/com/all/pdfreader/pro/app/ui/dialog/FileDetailsDialogFragment.kt new file mode 100644 index 0000000..3e68115 --- /dev/null +++ b/app/src/main/java/com/all/pdfreader/pro/app/ui/dialog/FileDetailsDialogFragment.kt @@ -0,0 +1,58 @@ +package com.all.pdfreader.pro.app.ui.dialog + +import android.os.Bundle +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.Toast +import androidx.fragment.app.activityViewModels +import com.all.pdfreader.pro.app.R +import com.all.pdfreader.pro.app.databinding.DialogFileDetailsBinding +import com.all.pdfreader.pro.app.room.entity.PdfDocumentEntity +import com.all.pdfreader.pro.app.util.FileUtils.toFormatFileSize +import com.all.pdfreader.pro.app.util.FileUtils.toSlashDateTime +import com.all.pdfreader.pro.app.viewmodel.PdfViewModel +import com.google.android.material.bottomsheet.BottomSheetDialogFragment + +class FileDetailsDialogFragment() : BottomSheetDialogFragment() { + + private lateinit var binding: DialogFileDetailsBinding + private val viewModel: PdfViewModel by activityViewModels() + private lateinit var pdfDocument: PdfDocumentEntity + + override fun onCreateView( + inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle? + ): View? { + binding = DialogFileDetailsBinding.inflate(layoutInflater) + return binding.root + } + + override fun onStart() { + super.onStart() + dialog?.window?.findViewById(com.google.android.material.R.id.design_bottom_sheet) + ?.setBackgroundResource(R.drawable.dr_rounded_corner_12_bg_white) + } + + override fun onViewCreated(view: View, savedInstanceState: Bundle?) { + super.onViewCreated(view, savedInstanceState) + viewModel.pdfDocument.value?.let { + pdfDocument = it + initView() + } ?: run { + showToast(getString(R.string.file_not)) + dismiss() + } + } + + private fun initView() { + binding.fileNameTv.text = pdfDocument.fileName + binding.pathTv.text = pdfDocument.filePath + binding.lastModifiedTv.text = pdfDocument.lastModified.toSlashDateTime() + binding.lastViewedTv.text = pdfDocument.lastOpenedTime.toSlashDateTime() + binding.sizeTv.text = pdfDocument.fileSize.toFormatFileSize() + } + + private fun showToast(message: String) { + Toast.makeText(requireActivity(), message, Toast.LENGTH_SHORT).show() + } +} \ No newline at end of file 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 9549f0d..de3c6a5 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 @@ -93,6 +93,10 @@ class ListMoreDialogFragment(val filePath: String) : BottomSheetDialogFragment() DeleteDialogFragment().show(parentFragmentManager, "DeleteDialogFragment") dismiss() } + binding.detailsBtn.setOnClickListener { + FileDetailsDialogFragment().show(parentFragmentManager, "FileDetailsDialogFragment") + dismiss() + } } private fun updateCollectUi(b: Boolean) { diff --git a/app/src/main/java/com/all/pdfreader/pro/app/util/FileUtils.kt b/app/src/main/java/com/all/pdfreader/pro/app/util/FileUtils.kt index 7411d6f..70240ea 100644 --- a/app/src/main/java/com/all/pdfreader/pro/app/util/FileUtils.kt +++ b/app/src/main/java/com/all/pdfreader/pro/app/util/FileUtils.kt @@ -321,6 +321,11 @@ object FileUtils { return sdf.format(Date(this)) } + fun Long.toSlashDateTime(): String { + val sdf = SimpleDateFormat("M/d/yyyy HH:mm", Locale.ENGLISH) + return sdf.format(Date(this)) + } + data class FileInfo( val name: String, val size: Long, val uri: Uri diff --git a/app/src/main/res/layout/dialog_file_details.xml b/app/src/main/res/layout/dialog_file_details.xml new file mode 100644 index 0000000..4ef8f6e --- /dev/null +++ b/app/src/main/res/layout/dialog_file_details.xml @@ -0,0 +1,139 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/dialog_list_more.xml b/app/src/main/res/layout/dialog_list_more.xml index 09f3ebc..82a81e7 100644 --- a/app/src/main/res/layout/dialog_list_more.xml +++ b/app/src/main/res/layout/dialog_list_more.xml @@ -146,6 +146,7 @@ OK Sort by Created Date + Path File Name File Size Ascending @@ -78,4 +79,9 @@ Cannot delete protected system directory Delete this file permanently? Deleting this file will remove it permanently from your device. + File Information + Everything you need to know about the file. + Last Modified + Last Viewed + Size \ No newline at end of file