Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Sign in / Register
Toggle navigation
P
PDF Viewer Scanner White
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Packages
Packages
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wanglei
PDF Viewer Scanner White
Commits
ab637fc8
Commit
ab637fc8
authored
Sep 20, 2024
by
wanglei
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
...
parent
25febf49
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
92 additions
and
1 deletion
+92
-1
PdfLoadingActivity.kt
...fviewerscannerwhite/ui/document/pdf/PdfLoadingActivity.kt
+13
-0
PdfMergeActivity.kt
...pdfviewerscannerwhite/ui/document/pdf/PdfMergeActivity.kt
+24
-1
PdfMergeAdapter.kt
.../pdfviewerscannerwhite/ui/document/pdf/PdfMergeAdapter.kt
+6
-0
PdfPresenter.kt
...ase/pdfviewerscannerwhite/ui/document/pdf/PdfPresenter.kt
+46
-0
PdfSelectActivity.kt
...dfviewerscannerwhite/ui/document/pdf/PdfSelectActivity.kt
+3
-0
No files found.
app/src/main/java/com/base/pdfviewerscannerwhite/ui/document/pdf/PdfLoadingActivity.kt
View file @
ab637fc8
...
@@ -53,6 +53,18 @@ class PdfLoadingActivity : BaseActivity<ActivityPdfLoadingBinding>() {
...
@@ -53,6 +53,18 @@ class PdfLoadingActivity : BaseActivity<ActivityPdfLoadingBinding>() {
}
}
}
}
DO_MERGE_PDF
->
{
progressFinishAction
=
{
startActivity
(
Intent
(
this
,
PdfActivity
::
class
.
java
).
apply
{
putExtra
(
"path"
,
newPath
)
})
finish
()
}
pdfPresenter
.
mergePdf
(
newPath
)
{
isFinishBoolean
=
true
}
}
}
}
startProgress
()
startProgress
()
...
@@ -84,6 +96,7 @@ class PdfLoadingActivity : BaseActivity<ActivityPdfLoadingBinding>() {
...
@@ -84,6 +96,7 @@ class PdfLoadingActivity : BaseActivity<ActivityPdfLoadingBinding>() {
const
val
DO_SPLIT_PDF
=
"do_split_pdf"
const
val
DO_SPLIT_PDF
=
"do_split_pdf"
const
val
DO_SAVE_PDF
=
"do_save_pdf"
const
val
DO_SAVE_PDF
=
"do_save_pdf"
const
val
DO_MERGE_PDF
=
"do_merge_pdf"
}
}
...
...
app/src/main/java/com/base/pdfviewerscannerwhite/ui/document/pdf/PdfMergeActivity.kt
View file @
ab637fc8
package
com.base.pdfviewerscannerwhite.ui.document.pdf
package
com.base.pdfviewerscannerwhite.ui.document.pdf
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.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.utils.KotlinExt.toFormatTime2
import
com.base.pdfviewerscannerwhite.utils.LogEx
import
com.base.pdfviewerscannerwhite.utils.LogEx
class
PdfMergeActivity
:
BaseActivity
<
ActivityPdfMergeBinding
>()
{
class
PdfMergeActivity
:
BaseActivity
<
ActivityPdfMergeBinding
>()
{
...
@@ -13,10 +17,12 @@ class PdfMergeActivity : BaseActivity<ActivityPdfMergeBinding>() {
...
@@ -13,10 +17,12 @@ class PdfMergeActivity : BaseActivity<ActivityPdfMergeBinding>() {
override
val
binding
:
ActivityPdfMergeBinding
by
lazy
{
override
val
binding
:
ActivityPdfMergeBinding
by
lazy
{
ActivityPdfMergeBinding
.
inflate
(
layoutInflater
)
ActivityPdfMergeBinding
.
inflate
(
layoutInflater
)
}
}
private
lateinit
var
pdfPresenter
:
PdfPresenter
private
lateinit
var
adapter
:
PdfMergeAdapter
private
lateinit
var
adapter
:
PdfMergeAdapter
override
fun
initView
()
{
override
fun
initView
()
{
pdfPresenter
=
PdfPresenter
(
this
)
initAdapter
()
initAdapter
()
}
}
...
@@ -28,13 +34,30 @@ class PdfMergeActivity : BaseActivity<ActivityPdfMergeBinding>() {
...
@@ -28,13 +34,30 @@ class PdfMergeActivity : BaseActivity<ActivityPdfMergeBinding>() {
binding
.
flFanhui
.
setOnClickListener
{
binding
.
flFanhui
.
setOnClickListener
{
onBackPressedDispatcher
.
onBackPressed
()
onBackPressedDispatcher
.
onBackPressed
()
}
}
binding
.
tvAdd
.
setOnClickListener
{
finish
()
}
binding
.
tvBtnNext
.
setOnClickListener
{
showDocumentRenameDialog
(
name
=
"Merge_${System.currentTimeMillis().toFormatTime2()}"
,
okAction
=
{
name
->
startActivity
(
Intent
(
this
,
PdfLoadingActivity
::
class
.
java
).
apply
{
putExtra
(
"doWhat"
,
DO_MERGE_PDF
)
putExtra
(
"newPath"
,
pdfPresenter
.
createMergePdf
(
name
))
})
})
}
}
}
private
fun
initAdapter
()
{
private
fun
initAdapter
()
{
val
callBack
=
PdfMergeItemTouchHelperCallBack
()
val
callBack
=
PdfMergeItemTouchHelperCallBack
()
val
itemTouchHelper
=
ItemTouchHelper
(
callBack
)
val
itemTouchHelper
=
ItemTouchHelper
(
callBack
)
itemTouchHelper
.
attachToRecyclerView
(
binding
.
rv
)
itemTouchHelper
.
attachToRecyclerView
(
binding
.
rv
)
adapter
=
PdfMergeAdapter
(
itemTouchHelper
,
callBack
)
adapter
=
PdfMergeAdapter
(
itemTouchHelper
,
callBack
)
adapter
.
removeAction
=
{
mergePdfList
.
remove
(
it
)
binding
.
tvBtnNext
.
isEnabled
=
mergePdfList
.
isNotEmpty
()
}
binding
.
rv
.
adapter
=
adapter
binding
.
rv
.
adapter
=
adapter
callBack
.
changeListOrder
=
{
olderPosition
,
newPosition
->
callBack
.
changeListOrder
=
{
olderPosition
,
newPosition
->
...
...
app/src/main/java/com/base/pdfviewerscannerwhite/ui/document/pdf/PdfMergeAdapter.kt
View file @
ab637fc8
...
@@ -25,6 +25,7 @@ class PdfMergeAdapter(
...
@@ -25,6 +25,7 @@ class PdfMergeAdapter(
private
val
TAG
=
"PdfMergeAdapter"
private
val
TAG
=
"PdfMergeAdapter"
var
removeAction
:
((
item
:
DocumentBean
)
->
Unit
)?
=
null
inner
class
PdfMergeViewHolder
(
view
:
View
)
:
RecyclerView
.
ViewHolder
(
view
)
inner
class
PdfMergeViewHolder
(
view
:
View
)
:
RecyclerView
.
ViewHolder
(
view
)
...
@@ -36,6 +37,11 @@ class PdfMergeAdapter(
...
@@ -36,6 +37,11 @@ class PdfMergeAdapter(
binding
.
tvName
.
text
=
file
.
name
binding
.
tvName
.
text
=
file
.
name
binding
.
tvInfo
.
text
=
file
.
lastModified
().
toFormatTime4
()
+
" "
+
file
.
length
().
toFormatSize
()
binding
.
tvInfo
.
text
=
file
.
lastModified
().
toFormatTime4
()
+
" "
+
file
.
length
().
toFormatSize
()
binding
.
flClose
.
setOnClickListener
{
remove
(
item
)
removeAction
?.
invoke
(
item
)
}
binding
.
ivMove
.
setOnTouchListener
(
object
:
View
.
OnTouchListener
{
binding
.
ivMove
.
setOnTouchListener
(
object
:
View
.
OnTouchListener
{
override
fun
onTouch
(
v
:
View
?,
event
:
MotionEvent
?):
Boolean
{
override
fun
onTouch
(
v
:
View
?,
event
:
MotionEvent
?):
Boolean
{
if
(
event
?.
action
==
MotionEvent
.
ACTION_DOWN
)
{
if
(
event
?.
action
==
MotionEvent
.
ACTION_DOWN
)
{
...
...
app/src/main/java/com/base/pdfviewerscannerwhite/ui/document/pdf/PdfPresenter.kt
View file @
ab637fc8
package
com.base.pdfviewerscannerwhite.ui.document.pdf
package
com.base.pdfviewerscannerwhite.ui.document.pdf
import
android.content.Context
import
android.content.Context
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.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.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.pdmodel.PDDocument
import
com.tom_roush.pdfbox.pdmodel.PDDocument
import
java.io.File
import
java.io.File
...
@@ -104,4 +111,43 @@ class PdfPresenter(
...
@@ -104,4 +111,43 @@ class PdfPresenter(
val
newFile
=
File
(
newPath
)
val
newFile
=
File
(
newPath
)
}
}
private
fun
createAppDocumentDir
():
File
{
val
appName
=
context
.
resources
.
getString
(
R
.
string
.
app_name
)
val
appDir
=
File
(
Environment
.
getExternalStoragePublicDirectory
(
Environment
.
DIRECTORY_DOCUMENTS
),
appName
)
if
(!
appDir
.
exists
())
{
appDir
.
mkdirs
()
}
return
appDir
}
fun
createMergePdf
(
name
:
String
):
String
{
val
appDir
=
createAppDocumentDir
()
val
mergeFile
=
File
(
appDir
,
"$name.pdf"
)
mergeFile
.
createNewFile
()
LogEx
.
logDebug
(
TAG
,
"mergeFile ${mergeFile.absolutePath}"
)
return
mergeFile
.
absolutePath
}
fun
mergePdf
(
mergePath
:
String
,
finishAction
:
(
success
:
Boolean
)
->
Unit
)
=
Thread
{
var
isSuccess
:
Boolean
=
false
try
{
val
mergerUtility
=
PDFMergerUtility
()
mergerUtility
.
destinationFileName
=
mergePath
PdfMergeActivity
.
mergePdfList
.
forEach
{
documentBean
->
mergerUtility
.
addSource
(
File
(
documentBean
.
path
))
}
mergerUtility
.
mergeDocuments
(
null
)
mergePdfList
.
clear
()
LogEx
.
logDebug
(
TAG
,
"mergePdf finish"
)
isSuccess
=
true
}
catch
(
e
:
Exception
)
{
}
finishAction
.
invoke
(
isSuccess
)
}.
start
()
}
}
\ No newline at end of file
app/src/main/java/com/base/pdfviewerscannerwhite/ui/document/pdf/PdfSelectActivity.kt
View file @
ab637fc8
...
@@ -33,7 +33,10 @@ class PdfSelectActivity : BaseActivity<ActivityPdfSelectBinding>(), DocumentView
...
@@ -33,7 +33,10 @@ class PdfSelectActivity : BaseActivity<ActivityPdfSelectBinding>(), DocumentView
binding
.
tvBtnNext
.
setOnClickListener
{
binding
.
tvBtnNext
.
setOnClickListener
{
val
selectList
=
adapter
.
items
.
filter
{
it
.
isSelect
}
val
selectList
=
adapter
.
items
.
filter
{
it
.
isSelect
}
PdfMergeActivity
.
mergePdfList
.
clear
()
PdfMergeActivity
.
mergePdfList
.
addAll
(
selectList
)
PdfMergeActivity
.
mergePdfList
.
addAll
(
selectList
)
startActivity
(
Intent
(
this
,
PdfMergeActivity
::
class
.
java
))
startActivity
(
Intent
(
this
,
PdfMergeActivity
::
class
.
java
))
}
}
}
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment