Commit e935f3b4 authored by wanglei's avatar wanglei

...

parent ab637fc8
...@@ -19,6 +19,11 @@ object ConstObject { ...@@ -19,6 +19,11 @@ object ConstObject {
const val MIME_TYPE_APK = "application/vnd.android.package-archive" const val MIME_TYPE_APK = "application/vnd.android.package-archive"
const val MIME_TYPE_ZIP = "application/zip" const val MIME_TYPE_ZIP = "application/zip"
const val DO_SPLIT_PDF = "do_split_pdf"
const val DO_SAVE_PDF = "do_save_pdf"
const val DO_MERGE_PDF = "do_merge_pdf"
var ifAgreePrivacy = false var ifAgreePrivacy = false
get() { get() {
return AppPreferences.getInstance().getBoolean("ifAgreePrivacy", field) return AppPreferences.getInstance().getBoolean("ifAgreePrivacy", field)
......
...@@ -22,10 +22,10 @@ import com.artifex.mupdfdemo.MuPDFReaderViewListener ...@@ -22,10 +22,10 @@ import com.artifex.mupdfdemo.MuPDFReaderViewListener
import com.artifex.mupdfdemo.MuPDFView import com.artifex.mupdfdemo.MuPDFView
import com.artifex.mupdfdemo.SearchTask import com.artifex.mupdfdemo.SearchTask
import com.artifex.mupdfdemo.SearchTaskResult import com.artifex.mupdfdemo.SearchTaskResult
import com.base.pdfviewerscannerwhite.bean.ConstObject.DO_SAVE_PDF
import com.base.pdfviewerscannerwhite.bean.PdfPageBean import com.base.pdfviewerscannerwhite.bean.PdfPageBean
import com.base.pdfviewerscannerwhite.databinding.ActivityPdfBinding import com.base.pdfviewerscannerwhite.databinding.ActivityPdfBinding
import com.base.pdfviewerscannerwhite.helper.BaseActivity import com.base.pdfviewerscannerwhite.helper.BaseActivity
import com.base.pdfviewerscannerwhite.ui.document.pdf.PdfLoadingActivity.Companion.DO_SAVE_PDF
import com.base.pdfviewerscannerwhite.utils.KeyBoardUtils.hideKeyboard import com.base.pdfviewerscannerwhite.utils.KeyBoardUtils.hideKeyboard
import com.base.pdfviewerscannerwhite.utils.KeyBoardUtils.showKeyBoard import com.base.pdfviewerscannerwhite.utils.KeyBoardUtils.showKeyBoard
import com.base.pdfviewerscannerwhite.utils.ToastUtils.toast import com.base.pdfviewerscannerwhite.utils.ToastUtils.toast
...@@ -187,9 +187,10 @@ class PdfActivity : BaseActivity<ActivityPdfBinding>(), PdfView { ...@@ -187,9 +187,10 @@ class PdfActivity : BaseActivity<ActivityPdfBinding>(), PdfView {
} }
} }
/**
*
*/
private fun resetPdfView() { private fun resetPdfView() {
val pageView = binding.mupdfReaderView.displayedView as MuPDFView?
binding.mupdfReaderView.refresh(true)
} }
private fun cancelOperation() { private fun cancelOperation() {
......
...@@ -3,6 +3,9 @@ package com.base.pdfviewerscannerwhite.ui.document.pdf ...@@ -3,6 +3,9 @@ package com.base.pdfviewerscannerwhite.ui.document.pdf
import android.content.Intent import android.content.Intent
import androidx.lifecycle.lifecycleScope import androidx.lifecycle.lifecycleScope
import com.artifex.mupdfdemo.MuPDFCore import com.artifex.mupdfdemo.MuPDFCore
import com.base.pdfviewerscannerwhite.bean.ConstObject.DO_MERGE_PDF
import com.base.pdfviewerscannerwhite.bean.ConstObject.DO_SAVE_PDF
import com.base.pdfviewerscannerwhite.bean.ConstObject.DO_SPLIT_PDF
import com.base.pdfviewerscannerwhite.databinding.ActivityPdfLoadingBinding import com.base.pdfviewerscannerwhite.databinding.ActivityPdfLoadingBinding
import com.base.pdfviewerscannerwhite.helper.BaseActivity import com.base.pdfviewerscannerwhite.helper.BaseActivity
import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.Dispatchers
...@@ -94,9 +97,6 @@ class PdfLoadingActivity : BaseActivity<ActivityPdfLoadingBinding>() { ...@@ -94,9 +97,6 @@ class PdfLoadingActivity : BaseActivity<ActivityPdfLoadingBinding>() {
companion object { companion object {
var muPDFCore: MuPDFCore? = null var muPDFCore: MuPDFCore? = null
const val DO_SPLIT_PDF = "do_split_pdf"
const val DO_SAVE_PDF = "do_save_pdf"
const val DO_MERGE_PDF = "do_merge_pdf"
} }
......
...@@ -3,10 +3,10 @@ package com.base.pdfviewerscannerwhite.ui.document.pdf ...@@ -3,10 +3,10 @@ package com.base.pdfviewerscannerwhite.ui.document.pdf
import android.content.Intent import android.content.Intent
import androidx.activity.addCallback import androidx.activity.addCallback
import androidx.recyclerview.widget.ItemTouchHelper import androidx.recyclerview.widget.ItemTouchHelper
import com.base.pdfviewerscannerwhite.bean.ConstObject.DO_MERGE_PDF
import com.base.pdfviewerscannerwhite.bean.DocumentBean import com.base.pdfviewerscannerwhite.bean.DocumentBean
import com.base.pdfviewerscannerwhite.databinding.ActivityPdfMergeBinding import com.base.pdfviewerscannerwhite.databinding.ActivityPdfMergeBinding
import com.base.pdfviewerscannerwhite.helper.BaseActivity import com.base.pdfviewerscannerwhite.helper.BaseActivity
import com.base.pdfviewerscannerwhite.ui.document.pdf.PdfLoadingActivity.Companion.DO_MERGE_PDF
import com.base.pdfviewerscannerwhite.ui.view.DialogView.showDocumentRenameDialog import com.base.pdfviewerscannerwhite.ui.view.DialogView.showDocumentRenameDialog
import com.base.pdfviewerscannerwhite.utils.KotlinExt.toFormatTime2 import com.base.pdfviewerscannerwhite.utils.KotlinExt.toFormatTime2
import com.base.pdfviewerscannerwhite.utils.LogEx import com.base.pdfviewerscannerwhite.utils.LogEx
...@@ -42,7 +42,7 @@ class PdfMergeActivity : BaseActivity<ActivityPdfMergeBinding>() { ...@@ -42,7 +42,7 @@ class PdfMergeActivity : BaseActivity<ActivityPdfMergeBinding>() {
showDocumentRenameDialog(name = "Merge_${System.currentTimeMillis().toFormatTime2()}", okAction = { name -> showDocumentRenameDialog(name = "Merge_${System.currentTimeMillis().toFormatTime2()}", okAction = { name ->
startActivity(Intent(this, PdfLoadingActivity::class.java).apply { startActivity(Intent(this, PdfLoadingActivity::class.java).apply {
putExtra("doWhat", DO_MERGE_PDF) putExtra("doWhat", DO_MERGE_PDF)
putExtra("newPath", pdfPresenter.createMergePdf(name)) putExtra("newPath", pdfPresenter.createNewPdfPath(name))
}) })
}) })
......
...@@ -5,12 +5,10 @@ import android.os.Environment ...@@ -5,12 +5,10 @@ import android.os.Environment
import com.artifex.mupdfdemo.MuPDFCore import com.artifex.mupdfdemo.MuPDFCore
import com.artifex.mupdfdemo.OutlineActivityData import com.artifex.mupdfdemo.OutlineActivityData
import com.base.pdfviewerscannerwhite.R import com.base.pdfviewerscannerwhite.R
import com.base.pdfviewerscannerwhite.bean.DocumentBean
import com.base.pdfviewerscannerwhite.bean.PdfPageBean import com.base.pdfviewerscannerwhite.bean.PdfPageBean
import com.base.pdfviewerscannerwhite.ui.document.pdf.PdfMergeActivity.Companion.mergePdfList import com.base.pdfviewerscannerwhite.ui.document.pdf.PdfMergeActivity.Companion.mergePdfList
import com.base.pdfviewerscannerwhite.utils.LogEx import com.base.pdfviewerscannerwhite.utils.LogEx
import com.base.pdfviewerscannerwhite.utils.PdfBoxUtils import com.base.pdfviewerscannerwhite.utils.PdfBoxUtils
import com.tom_roush.pdfbox.io.MemoryUsageSetting
import com.tom_roush.pdfbox.multipdf.PDFMergerUtility import com.tom_roush.pdfbox.multipdf.PDFMergerUtility
import com.tom_roush.pdfbox.pdmodel.PDDocument import com.tom_roush.pdfbox.pdmodel.PDDocument
import java.io.File import java.io.File
...@@ -75,7 +73,7 @@ class PdfPresenter( ...@@ -75,7 +73,7 @@ class PdfPresenter(
finishAction.invoke(File(newPath)) finishAction.invoke(File(newPath))
}.start() }.start()
fun createNewPath(path: String): String { fun createAvoidDupNamePath(path: String): String {
val file = File(path) val file = File(path)
var newName = file.name.split(".")[0] var newName = file.name.split(".")[0]
//aaaa_1.pdf //aaaa_1.pdf
...@@ -99,19 +97,6 @@ class PdfPresenter( ...@@ -99,19 +97,6 @@ class PdfPresenter(
return pattern.matches(input) return pattern.matches(input)
} }
fun savePdf(context: Context, muPDFCore: MuPDFCore?, srcPath: String, newPath: String) {
val tempFile = File(context.filesDir, "temp.pdf")
if (!tempFile.exists()) {
tempFile.createNewFile()
}
File(srcPath).compareTo(tempFile)
muPDFCore?.save()
val newFile = File(newPath)
}
private fun createAppDocumentDir(): File { private fun createAppDocumentDir(): File {
val appName = context.resources.getString(R.string.app_name) val appName = context.resources.getString(R.string.app_name)
val appDir = File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOCUMENTS), appName) val appDir = File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOCUMENTS), appName)
...@@ -121,7 +106,7 @@ class PdfPresenter( ...@@ -121,7 +106,7 @@ class PdfPresenter(
return appDir return appDir
} }
fun createMergePdf(name: String): String { fun createNewPdfPath(name: String): String {
val appDir = createAppDocumentDir() val appDir = createAppDocumentDir()
val mergeFile = File(appDir, "$name.pdf") val mergeFile = File(appDir, "$name.pdf")
mergeFile.createNewFile() mergeFile.createNewFile()
......
...@@ -4,6 +4,7 @@ import android.annotation.SuppressLint ...@@ -4,6 +4,7 @@ import android.annotation.SuppressLint
import android.content.Intent import android.content.Intent
import android.view.View import android.view.View
import androidx.lifecycle.lifecycleScope import androidx.lifecycle.lifecycleScope
import com.base.pdfviewerscannerwhite.bean.ConstObject.DO_MERGE_PDF
import com.base.pdfviewerscannerwhite.bean.DocumentBean import com.base.pdfviewerscannerwhite.bean.DocumentBean
import com.base.pdfviewerscannerwhite.databinding.ActivityPdfSelectBinding import com.base.pdfviewerscannerwhite.databinding.ActivityPdfSelectBinding
import com.base.pdfviewerscannerwhite.helper.BaseActivity import com.base.pdfviewerscannerwhite.helper.BaseActivity
...@@ -17,11 +18,14 @@ class PdfSelectActivity : BaseActivity<ActivityPdfSelectBinding>(), DocumentView ...@@ -17,11 +18,14 @@ class PdfSelectActivity : BaseActivity<ActivityPdfSelectBinding>(), DocumentView
private lateinit var adapter: DocumentAdapter private lateinit var adapter: DocumentAdapter
private var doWhat: String = ""
override val binding: ActivityPdfSelectBinding by lazy { override val binding: ActivityPdfSelectBinding by lazy {
ActivityPdfSelectBinding.inflate(layoutInflater) ActivityPdfSelectBinding.inflate(layoutInflater)
} }
override fun initView() { override fun initView() {
doWhat = intent.extras?.getString("doWhat", "") ?: ""
documentPresenter = DocumentPresenter(this, this, DocumentBean.TYPE_PDF, lifecycleScope) documentPresenter = DocumentPresenter(this, this, DocumentBean.TYPE_PDF, lifecycleScope)
initAdapter() initAdapter()
...@@ -59,7 +63,11 @@ class PdfSelectActivity : BaseActivity<ActivityPdfSelectBinding>(), DocumentView ...@@ -59,7 +63,11 @@ class PdfSelectActivity : BaseActivity<ActivityPdfSelectBinding>(), DocumentView
override fun refreshDocumentRv(documentList: List<DocumentBean>) { override fun refreshDocumentRv(documentList: List<DocumentBean>) {
super.refreshDocumentRv(documentList) super.refreshDocumentRv(documentList)
documentList.map { it.showSelect = true } if (doWhat == DO_MERGE_PDF) {
documentList.map { it.showSelect = true }
}
adapter.submitList(documentList) adapter.submitList(documentList)
} }
} }
\ No newline at end of file
...@@ -44,7 +44,7 @@ class PdfSplitActivity : BaseActivity<ActivityPdfSplitBinding>(), PdfView { ...@@ -44,7 +44,7 @@ class PdfSplitActivity : BaseActivity<ActivityPdfSplitBinding>(), PdfView {
showDocumentRenameDialog { newName -> showDocumentRenameDialog { newName ->
startActivity(Intent(this, PdfLoadingActivity::class.java).apply { startActivity(Intent(this, PdfLoadingActivity::class.java).apply {
putExtra("srcPath", path) putExtra("srcPath", path)
putExtra("newName", newName) putExtra("newPath", pdfPresenter.createNewPdfPath(newName))
putExtra("splitIndex", splitIndex.joinToString(separator = ",")) putExtra("splitIndex", splitIndex.joinToString(separator = ","))
}) })
finish() finish()
......
package com.base.pdfviewerscannerwhite.ui.main package com.base.pdfviewerscannerwhite.ui.main
import android.content.Intent import android.content.Intent
import com.base.pdfviewerscannerwhite.bean.ConstObject.DO_MERGE_PDF
import com.base.pdfviewerscannerwhite.bean.ConstObject.DO_SPLIT_PDF
import com.base.pdfviewerscannerwhite.databinding.FragmentToolBinding import com.base.pdfviewerscannerwhite.databinding.FragmentToolBinding
import com.base.pdfviewerscannerwhite.helper.BaseFragment 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
class ToolFragment : BaseFragment<FragmentToolBinding>() { class ToolFragment : BaseFragment<FragmentToolBinding>() {
...@@ -18,7 +21,14 @@ class ToolFragment : BaseFragment<FragmentToolBinding>() { ...@@ -18,7 +21,14 @@ class ToolFragment : BaseFragment<FragmentToolBinding>() {
override fun setListener() { override fun setListener() {
super.setListener() super.setListener()
binding.llMerge.setOnClickListener { binding.llMerge.setOnClickListener {
startActivity(Intent(requireContext(), PdfSelectActivity::class.java)) startActivity(Intent(requireContext(), PdfSelectActivity::class.java).apply {
putExtra("doWhat", DO_MERGE_PDF)
})
}
binding.llSplit.setOnClickListener {
startActivity(Intent(requireContext(), PdfSelectActivity::class.java).apply {
putExtra("doWhat", DO_SPLIT_PDF)
})
} }
} }
......
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