Commit 1a9a4872 authored by wanglei's avatar wanglei

...

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