Commit 1a9a4872 authored by wanglei's avatar wanglei

...

parent fb4966ef
......@@ -105,7 +105,6 @@ class DocumentFragment(
changePageSelect(binding.ivAllSelector.isSelected)
}
binding.editSearch.setOnEditorActionListener { v, actionId, event ->
if (actionId == EditorInfo.IME_ACTION_DONE) {
LogEx.logDebug(TAG, "IME_ACTION_DONE")
searchDocument()
......@@ -284,8 +283,7 @@ class DocumentFragment(
private fun searchDocument() {
if (binding.editSearch.text.isNotEmpty()) {
val search = binding.editSearch.text.toString()
if (currentPage is DocumentPageFragment) {
val item = (currentPage as DocumentPageFragment).getSearchItems(search)
val item = currentPage.getSearchItems(search)
if (item.isNotEmpty()) {
item.map { it.uiType = 4 }
searchAdapter.submitList(item)
......@@ -294,7 +292,6 @@ class DocumentFragment(
}
}
}
}
fun searchDeleteDocument(item: DocumentBean) {
searchAdapter.remove(item)
......
......@@ -15,8 +15,8 @@ import com.base.pdfviewerscannerwhite.helper.BaseFragment
import com.base.pdfviewerscannerwhite.ui.document.pdf.PdfSelectActivity
import com.base.pdfviewerscannerwhite.ui.document.pdf.PdfSplitActivity
import com.base.pdfviewerscannerwhite.ui.main.MainActivity.Companion.jumpDocument
import com.base.pdfviewerscannerwhite.ui.view.DialogView.showDocumentHomeMoreDialog
import com.base.pdfviewerscannerwhite.ui.view.PdfDialog.showPdfHomeMoreDialog
import com.base.pdfviewerscannerwhite.utils.LogEx
import java.io.File
import java.util.Locale
......@@ -80,15 +80,16 @@ class DocumentPageFragment() : BaseFragment<FragmentDocumentPageBinding>(), Docu
}
var documentMoreAction: (item: DocumentBean) -> Unit = { item ->
val documentFragment = parentFragment as DocumentFragment
val mainActivity = (requireActivity() as MainActivity)
val documentFragment = (parentFragment as DocumentFragment)
if (item.type == TYPE_PDF) {
requireContext().showPdfHomeMoreDialog(
item, adapter, this, documentFragment
item, mainActivity, documentFragment, this
)
}
if (item.type == TYPE_WORD || item.type == TYPE_EXCEL || item.type == TYPE_PPT) {
// requireContext().showDocumentHomeMoreDialog(item, this, documentFragment)
requireContext().showDocumentHomeMoreDialog(item, mainActivity, documentFragment, this)
}
}
......@@ -106,12 +107,6 @@ class DocumentPageFragment() : BaseFragment<FragmentDocumentPageBinding>(), Docu
})
}
override fun deleteDocument(item: DocumentBean) {
val flag = documentList.removeIf { it.path == item.path }
LogEx.logDebug(TAG, "deleteDocument $item.path flag=$flag")
adapter.submitList(documentList)
binding.llEmpty.isVisible = adapter.items.isEmpty()
}
@SuppressLint("NotifyDataSetChanged")
fun changeSelectUi(select: Boolean) {
......
......@@ -8,8 +8,6 @@ interface DocumentView {
fun refreshDocumentRv(documentList: List<DocumentBean>) = Unit
fun splitPdf(path: String, pwd: String? = null) = Unit
fun deleteDocument(item: DocumentBean) = Unit
fun mergePdf(path: String) = Unit
}
\ No newline at end of file
......@@ -12,10 +12,6 @@ import androidx.lifecycle.LifecycleCoroutineScope
import com.base.pdfviewerscannerwhite.bean.ConstObject
import com.base.pdfviewerscannerwhite.bean.ConstObject.BOOKMARK_DATA_TYPE
import com.base.pdfviewerscannerwhite.bean.ConstObject.DOCUMENT_DATA_TYPE
import com.base.pdfviewerscannerwhite.bean.ConstObject.MIME_TYPE_DOC
import com.base.pdfviewerscannerwhite.bean.ConstObject.MIME_TYPE_PDF
import com.base.pdfviewerscannerwhite.bean.ConstObject.MIME_TYPE_PPT
import com.base.pdfviewerscannerwhite.bean.ConstObject.MIME_TYPE_XLS
import com.base.pdfviewerscannerwhite.bean.ConstObject.RECENT_DATA_TYPE
import com.base.pdfviewerscannerwhite.bean.DocumentBean
import com.base.pdfviewerscannerwhite.bean.DocumentBean.Companion.TYPE_EXCEL
......@@ -24,6 +20,7 @@ import com.base.pdfviewerscannerwhite.bean.DocumentBean.Companion.TYPE_PPT
import com.base.pdfviewerscannerwhite.bean.DocumentBean.Companion.TYPE_WORD
import com.base.pdfviewerscannerwhite.utils.AssetUtils.saveAssetsFile
import com.base.pdfviewerscannerwhite.utils.SpStringUtils
import com.base.pdfviewerscannerwhite.utils.SpStringUtils.BOOKMARK_KEY
import com.base.pdfviewerscannerwhite.utils.ToastUtils.toast
import com.base.pdfviewerscannerwhite.utils.getMediaFile
import com.base.pdfviewerscannerwhite.utils.upDateDemoStore
......@@ -306,4 +303,64 @@ class MainPresenter(
context.updateMediaStore()
}
}
fun renameDocumentBean(
file: File,
newName: String,
documentPageFragment: DocumentPageFragment,
) = lifecycleScope.launch(Dispatchers.IO) {
try {
val newFile = File(file.parentFile, newName)
val result = file.renameTo(newFile)
if (result) {
when (documentPageFragment.type) {
TYPE_PDF -> pdfDocuments.find { it.path == file.absolutePath }?.path = newFile.absolutePath
TYPE_WORD -> wordDocuments.find { it.path == file.absolutePath }?.path = newFile.absolutePath
TYPE_EXCEL -> excelDocuments.find { it.path == file.absolutePath }?.path = newFile.absolutePath
TYPE_PPT -> pptDocuments.find { it.path == file.absolutePath }?.path = newFile.absolutePath
}
}
} catch (e: Exception) {
}
launch(Dispatchers.Main) {
documentPageFragment.refreshData()
}
}
fun deleteDocument(path: String, documentPageFragment: DocumentPageFragment) = lifecycleScope.launch(Dispatchers.IO) {
val flag = File(path).delete()
if (flag) {
when (documentPageFragment.type) {
TYPE_PDF -> pdfDocuments.removeIf { it.path == path }
TYPE_WORD -> wordDocuments.removeIf { it.path == path }
TYPE_EXCEL -> excelDocuments.removeIf { it.path == path }
TYPE_PPT -> pptDocuments.removeIf { it.path == path }
}
launch(Dispatchers.Main) {
documentPageFragment.refreshData()
}
}
}
fun changeBookmark(path: String, isBookmarked: Boolean, documentPageFragment: DocumentPageFragment) =
lifecycleScope.launch(Dispatchers.IO) {
when (documentPageFragment.type) {
TYPE_PDF -> pdfDocuments.find { it.path == path }?.isBookmarked = isBookmarked
TYPE_WORD -> wordDocuments.find { it.path == path }?.isBookmarked = isBookmarked
TYPE_EXCEL -> excelDocuments.find { it.path == path }?.isBookmarked = isBookmarked
TYPE_PPT -> pptDocuments.find { it.path == path }?.isBookmarked = isBookmarked
}
if (isBookmarked) {
SpStringUtils.addSpString(BOOKMARK_KEY, path)
} else {
SpStringUtils.deleteSpString(BOOKMARK_KEY, path)
}
launch(Dispatchers.Main) {
documentPageFragment.refreshData()
}
}
}
\ No newline at end of file
......@@ -22,6 +22,7 @@ import com.base.pdfviewerscannerwhite.databinding.DialogPageNumberBinding
import com.base.pdfviewerscannerwhite.databinding.DialogStoragePermissionBinding
import com.base.pdfviewerscannerwhite.ui.main.DocumentFragment
import com.base.pdfviewerscannerwhite.ui.main.DocumentPageFragment
import com.base.pdfviewerscannerwhite.ui.main.MainActivity
import com.base.pdfviewerscannerwhite.utils.ActivityLauncher
import com.base.pdfviewerscannerwhite.utils.IntentShareUtils.documentShare
import com.base.pdfviewerscannerwhite.utils.KotlinExt.toFormatSize
......@@ -101,8 +102,9 @@ object DialogView {
@SuppressLint("SetTextI18n", "NotifyDataSetChanged")
fun Context.showDocumentHomeMoreDialog(
item: DocumentBean,
documentPageFragment: DocumentPageFragment,
mainActivity: MainActivity,
documentFragment: DocumentFragment,
documentPageFragment: DocumentPageFragment,
): BottomSheetDialog {
val dialog = BottomSheetDialog(this, R.style.BottomSheetDialog)
val binding = DialogDocumentHomeMoreBinding.inflate(LayoutInflater.from(this))
......@@ -140,13 +142,7 @@ object DialogView {
binding.llRename.setOnClickListener {
showDocumentRenameDialog(file.name) { newName ->
dialog.dismiss()
documentPageFragment.documentPresenter.renameDocumentBean(file, newName) { newPath ->
if (newPath.isNotEmpty()) {
item.path = newPath
documentPageFragment.adapter.notifyDataSetChanged()
documentFragment.searchAdapter.notifyDataSetChanged()
}
}
mainActivity.mainPresenter.renameDocumentBean(file, newName, documentPageFragment)
}
}
binding.llDetail.setOnClickListener {
......@@ -158,16 +154,10 @@ object DialogView {
binding.llDelete.setOnClickListener {
dialog.dismiss()
showDeleteDialog {
runCatching {
val flag = File(item.path).delete()
if (flag) {
documentPageFragment.deleteDocument(item)
mainActivity.mainPresenter.deleteDocument(item.path, documentPageFragment)
documentFragment.searchDeleteDocument(item)
}
}
}
}
return dialog
}
......
......@@ -15,11 +15,11 @@ import com.base.pdfviewerscannerwhite.bean.DocumentBean
import com.base.pdfviewerscannerwhite.databinding.DialogPdfHomeMoreBinding
import com.base.pdfviewerscannerwhite.databinding.DialogPdfMoreBinding
import com.base.pdfviewerscannerwhite.databinding.DialogPdfPasswordBinding
import com.base.pdfviewerscannerwhite.ui.main.DocumentAdapter
import com.base.pdfviewerscannerwhite.ui.document.pdf.PdfBoxUtils
import com.base.pdfviewerscannerwhite.ui.document.pdf.PdfView
import com.base.pdfviewerscannerwhite.ui.main.DocumentFragment
import com.base.pdfviewerscannerwhite.ui.main.DocumentPageFragment
import com.base.pdfviewerscannerwhite.ui.main.MainActivity
import com.base.pdfviewerscannerwhite.ui.view.DialogView.showDeleteDialog
import com.base.pdfviewerscannerwhite.ui.view.DialogView.showDocumentDetail
import com.base.pdfviewerscannerwhite.ui.view.DialogView.showDocumentRenameDialog
......@@ -39,9 +39,9 @@ object PdfDialog {
@SuppressLint("SetTextI18n", "NotifyDataSetChanged")
fun Context.showPdfHomeMoreDialog(
item: DocumentBean,
adapter: DocumentAdapter,
documentPageFragment: DocumentPageFragment,
mainActivity: MainActivity,
documentFragment: DocumentFragment,
documentPageFragment: DocumentPageFragment,
): BottomSheetDialog {
val dialog = BottomSheetDialog(this, R.style.BottomSheetDialog)
val binding = DialogPdfHomeMoreBinding.inflate(LayoutInflater.from(this))
......@@ -65,23 +65,18 @@ object PdfDialog {
}
binding.ivBookmark.setOnClickListener {
item.isBookmarked = !item.isBookmarked
adapter.notifyDataSetChanged()
if (item.isBookmarked) {
binding.ivBookmark.setImageResource(R.mipmap.h_soucang_s)
} else {
binding.ivBookmark.setImageResource(R.mipmap.h_soucang_n)
}
mainActivity.mainPresenter.changeBookmark(item.path, item.isBookmarked, documentPageFragment)
}
binding.llRename.setOnClickListener {
showDocumentRenameDialog(file.name) { newName ->
dialog.dismiss()
documentPageFragment.documentPresenter.renameDocumentBean(file, newName) { newPath ->
if (newPath.isNotEmpty()) {
item.path = newPath
documentPageFragment.adapter.notifyDataSetChanged()
documentFragment.searchAdapter.notifyDataSetChanged()
}
}
mainActivity.mainPresenter.renameDocumentBean(file, newName, documentPageFragment)
}
}
binding.llSplit.setOnClickListener {
......@@ -102,16 +97,10 @@ object PdfDialog {
binding.llDelete.setOnClickListener {
dialog.dismiss()
showDeleteDialog {
runCatching {
val flag = File(item.path).delete()
if (flag) {
documentPageFragment.deleteDocument(item)
mainActivity.mainPresenter.deleteDocument(item.path, documentPageFragment)
documentFragment.searchDeleteDocument(item)
}
}
}
}
binding.llDetail.setOnClickListener {
showDocumentDetail(item.path)
}
......
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