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
7abcf0d0
Commit
7abcf0d0
authored
Oct 12, 2024
by
wanglei
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
...
parent
492c8b62
Show whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
89 additions
and
69 deletions
+89
-69
MainActivity.kt
...va/com/base/pdfviewerscannerwhite/ui/main/MainActivity.kt
+52
-45
MainPresenter.kt
...a/com/base/pdfviewerscannerwhite/ui/main/MainPresenter.kt
+35
-22
MainView.kt
...n/java/com/base/pdfviewerscannerwhite/ui/main/MainView.kt
+1
-1
DialogView.kt
...java/com/base/pdfviewerscannerwhite/ui/view/DialogView.kt
+1
-1
No files found.
app/src/main/java/com/base/pdfviewerscannerwhite/ui/main/MainActivity.kt
View file @
7abcf0d0
...
@@ -31,7 +31,6 @@ import com.base.pdfviewerscannerwhite.ui.document.pdf.PdfActivity
...
@@ -31,7 +31,6 @@ import com.base.pdfviewerscannerwhite.ui.document.pdf.PdfActivity
import
com.base.pdfviewerscannerwhite.ui.document.pdf.PdfSelectActivity
import
com.base.pdfviewerscannerwhite.ui.document.pdf.PdfSelectActivity
import
com.base.pdfviewerscannerwhite.ui.document.ppt.PptActivity
import
com.base.pdfviewerscannerwhite.ui.document.ppt.PptActivity
import
com.base.pdfviewerscannerwhite.ui.document.word.WordActivity
import
com.base.pdfviewerscannerwhite.ui.document.word.WordActivity
import
com.base.pdfviewerscannerwhite.ui.view.DialogView.notificationDialogResumeShow
import
com.base.pdfviewerscannerwhite.ui.view.DialogView.showAppExitDialog
import
com.base.pdfviewerscannerwhite.ui.view.DialogView.showAppExitDialog
import
com.base.pdfviewerscannerwhite.ui.view.DialogView.showDeleteDialog
import
com.base.pdfviewerscannerwhite.ui.view.DialogView.showDeleteDialog
import
com.base.pdfviewerscannerwhite.ui.view.DialogView.showDocumentRenameDialog
import
com.base.pdfviewerscannerwhite.ui.view.DialogView.showDocumentRenameDialog
...
@@ -67,7 +66,7 @@ class MainActivity : BaseActivity<ActivityMain2Binding>(), MainView {
...
@@ -67,7 +66,7 @@ class MainActivity : BaseActivity<ActivityMain2Binding>(), MainView {
private
var
actionId
:
String
=
""
private
var
actionId
:
String
=
""
private
var
currentFragment
:
Fragment
=
documentFragment
private
var
currentFragment
:
Fragment
=
documentFragment
var
bannerShowed
:
Boolean
=
false
override
fun
initView
()
{
override
fun
initView
()
{
actionId
=
intent
.
extras
?.
getString
(
"actionId"
)
?:
""
actionId
=
intent
.
extras
?.
getString
(
"actionId"
)
?:
""
...
@@ -114,6 +113,30 @@ class MainActivity : BaseActivity<ActivityMain2Binding>(), MainView {
...
@@ -114,6 +113,30 @@ class MainActivity : BaseActivity<ActivityMain2Binding>(), MainView {
showPermissionDialog
()
showPermissionDialog
()
}
}
override
fun
handleActivityGmsScanResult
(
imageUri
:
Uri
?,
pdfUri
:
Uri
?)
{
// LogEx.logDebug(TAG, "imageUri=$imageUri")
LogEx
.
logDebug
(
TAG
,
"pdfUri=$pdfUri"
)
val
file
=
File
(
pdfUri
.
toString
().
replace
(
"file://"
,
""
))
if
(
file
.
exists
())
{
// binding.tvTest.text = "imageUri=$imageUri\n\n\n\npdfUri=$pdfUri"
showDocumentRenameDialog
(
file
.
name
,
okAction
=
{
val
newFile
=
File
(
mainPresenter
.
getDocumentAppDir
(),
"$it.pdf"
)
mainPresenter
.
copyFile
(
file
,
newFile
)
this
.
updateMediaStore
()
},
dismissAction
=
{
avoidScanThenDialog
=
false
dialogRequestStep
()
})
}
else
{
avoidScanThenDialog
=
false
dialogRequestStep
()
}
}
override
fun
onResume
()
{
override
fun
onResume
()
{
super
.
onResume
()
super
.
onResume
()
...
@@ -135,31 +158,36 @@ class MainActivity : BaseActivity<ActivityMain2Binding>(), MainView {
...
@@ -135,31 +158,36 @@ class MainActivity : BaseActivity<ActivityMain2Binding>(), MainView {
return
return
}
}
mainPresenter
.
initAllDocumentData
()
//scan guide
//scan guide
if
(
mainStartTimes
==
1
)
{
if
(
mainStartTimes
==
1
)
{
binding
.
flScanGuide
.
visibility
=
View
.
VISIBLE
binding
.
flScanGuide
.
visibility
=
View
.
VISIBLE
return
return
}
}
//permission
//避免scan回调的任意弹窗
if
(
checkStorePermission
()
&&
needRefresh
)
{
if
(!
avoidScanThenDialog
)
{
mainPresenter
.
initAllDocumentData
()
dialogRequestStep
()
showMainBanner
()
}
}
else
{
if
(
stopScanThenPermissionDialog
)
{
return
}
}
//弹窗请求顺序
private
fun
dialogRequestStep
()
{
if
(!
checkStorePermission
())
{
showPermissionDialog
()
showPermissionDialog
()
}
else
{
if
(!
bannerShowed
)
{
showMainBanner
()
return
return
}
}
//通知弹窗
//通知弹窗
if
(
bannerShowed
&&
checkStorePermission
()
&&
notificationDialogResumeShow
)
{
if
(
notificationDialogResumeShow
)
{
showNotificationDialog
(
launcher
)
showNotificationDialog
(
launcher
)
}
else
{
}
else
{
notificationDialogResumeShow
=
true
notificationDialogResumeShow
=
true
}
}
}
}
}
private
var
permissionDialog
:
Dialog
?
=
null
private
var
permissionDialog
:
Dialog
?
=
null
...
@@ -312,27 +340,25 @@ class MainActivity : BaseActivity<ActivityMain2Binding>(), MainView {
...
@@ -312,27 +340,25 @@ class MainActivity : BaseActivity<ActivityMain2Binding>(), MainView {
shareDocument
()
shareDocument
()
}
}
binding
.
ivScan
.
setOnClickListener
{
binding
.
ivScan
.
setOnClickListener
{
avoidScanThenDialog
=
true
mainPresenter
.
starAdGmsScan
(
this
)
mainPresenter
.
starAdGmsScan
(
this
)
}
}
binding
.
flScanGuide
.
setOnClickListener
{
binding
.
flScanGuide
.
setOnClickListener
{
closeScanGuide
()
closeScanGuide
()
}
}
binding
.
tvTryScan
.
setOnClickListener
{
binding
.
tvTryScan
.
setOnClickListener
{
stopScanThenPermissio
nDialog
=
true
avoidScanThe
nDialog
=
true
binding
.
flScanGuide
.
visibility
=
View
.
GONE
binding
.
flScanGuide
.
visibility
=
View
.
GONE
mainPresenter
.
starAdGmsScan
(
this
)
mainPresenter
.
starAdGmsScan
(
this
)
}
}
binding
.
ivScanGuide
.
setOnClickListener
{
binding
.
ivScanGuide
.
setOnClickListener
{
stopScanThenPermissio
nDialog
=
true
avoidScanThe
nDialog
=
true
binding
.
flScanGuide
.
visibility
=
View
.
GONE
binding
.
flScanGuide
.
visibility
=
View
.
GONE
mainPresenter
.
starAdGmsScan
(
this
)
mainPresenter
.
starAdGmsScan
(
this
)
}
}
actionIdOperation
()
actionIdOperation
()
}
}
//避免第一次引导扫描后权限弹窗
var
stopScanThenPermissionDialog
:
Boolean
=
false
private
fun
shareDocument
()
{
private
fun
shareDocument
()
{
if
(
currentFragment
is
DocumentPageFragment
)
{
if
(
currentFragment
is
DocumentPageFragment
)
{
...
@@ -377,28 +403,6 @@ class MainActivity : BaseActivity<ActivityMain2Binding>(), MainView {
...
@@ -377,28 +403,6 @@ class MainActivity : BaseActivity<ActivityMain2Binding>(), MainView {
}
}
override
fun
handleActivityGmsScanResult
(
imageUri
:
Uri
,
pdfUri
:
Uri
)
{
// LogEx.logDebug(TAG, "imageUri=$imageUri")
LogEx
.
logDebug
(
TAG
,
"pdfUri=$pdfUri"
)
val
file
=
File
(
pdfUri
.
toString
().
replace
(
"file://"
,
""
))
if
(
file
.
exists
())
{
// binding.tvTest.text = "imageUri=$imageUri\n\n\n\npdfUri=$pdfUri"
showDocumentRenameDialog
(
file
.
name
,
okAction
=
{
val
newFile
=
File
(
mainPresenter
.
getDocumentAppDir
(),
"$it.pdf"
)
mainPresenter
.
copyFile
(
file
,
newFile
)
this
.
updateMediaStore
()
// refreshPageList()
if
(!
checkStorePermission
())
{
showPermissionDialog
()
}
},
dismissAction
=
{
stopScanThenPermissionDialog
=
false
})
}
}
override
fun
refreshPageList
()
{
override
fun
refreshPageList
()
{
if
(
currentFragment
is
DocumentFragment
)
{
if
(
currentFragment
is
DocumentFragment
)
{
(
currentFragment
as
DocumentFragment
).
currentPage
.
refreshData
()
(
currentFragment
as
DocumentFragment
).
currentPage
.
refreshData
()
...
@@ -419,7 +423,10 @@ class MainActivity : BaseActivity<ActivityMain2Binding>(), MainView {
...
@@ -419,7 +423,10 @@ class MainActivity : BaseActivity<ActivityMain2Binding>(), MainView {
companion
object
{
companion
object
{
var
needRefresh
:
Boolean
=
true
var
bannerShowed
:
Boolean
=
false
//banner已经显示
var
avoidScanThenDialog
:
Boolean
=
false
//扫描回调后避免任何弹窗
var
notificationDialogResumeShow
:
Boolean
=
true
//通知Resume是否展示
fun
Activity
.
jumpDocument
(
item
:
DocumentBean
)
{
fun
Activity
.
jumpDocument
(
item
:
DocumentBean
)
{
if
(
item
.
type
==
DocumentBean
.
TYPE_PDF
)
{
if
(
item
.
type
==
DocumentBean
.
TYPE_PDF
)
{
if
(
item
.
state
==
0
)
{
if
(
item
.
state
==
0
)
{
...
...
app/src/main/java/com/base/pdfviewerscannerwhite/ui/main/MainPresenter.kt
View file @
7abcf0d0
...
@@ -108,86 +108,97 @@ class MainPresenter(
...
@@ -108,86 +108,97 @@ class MainPresenter(
when
(
documentType
)
{
when
(
documentType
)
{
TYPE_PDF
->
{
TYPE_PDF
->
{
pdfDocuments
.
forEach
{
val
data
=
arrayListOf
<
DocumentBean
>()
data
.
addAll
(
pdfDocuments
)
data
.
forEach
{
it
.
isBookmarked
=
bookmarkList
.
contains
(
it
.
path
)
it
.
isBookmarked
=
bookmarkList
.
contains
(
it
.
path
)
it
.
state
=
PdfBoxUtils
.
checkPdfEncryption
(
it
.
path
)
it
.
state
=
PdfBoxUtils
.
checkPdfEncryption
(
it
.
path
)
}
}
when
(
dataType
)
{
when
(
dataType
)
{
DOCUMENT_DATA_TYPE
->
{
DOCUMENT_DATA_TYPE
->
{
return
pdfDocuments
return
data
}
}
RECENT_DATA_TYPE
->
{
RECENT_DATA_TYPE
->
{
return
pdfDocuments
.
filter
{
it
.
lastViewTime
!=
0L
}.
sortedByDescending
{
it
.
lastViewTime
}
return
data
.
filter
{
it
.
lastViewTime
!=
0L
}.
sortedByDescending
{
it
.
lastViewTime
}
}
}
BOOKMARK_DATA_TYPE
->
{
BOOKMARK_DATA_TYPE
->
{
return
pdfDocuments
.
filter
{
it
.
isBookmarked
}
return
data
.
filter
{
it
.
isBookmarked
}
}
}
}
}
}
}
TYPE_WORD
->
{
TYPE_WORD
->
{
wordDocuments
.
forEach
{
val
data
=
arrayListOf
<
DocumentBean
>()
data
.
addAll
(
wordDocuments
)
data
.
forEach
{
it
.
isBookmarked
=
bookmarkList
.
contains
(
it
.
path
)
it
.
isBookmarked
=
bookmarkList
.
contains
(
it
.
path
)
}
}
when
(
dataType
)
{
when
(
dataType
)
{
DOCUMENT_DATA_TYPE
->
{
DOCUMENT_DATA_TYPE
->
{
return
wordDocuments
return
data
}
}
RECENT_DATA_TYPE
->
{
RECENT_DATA_TYPE
->
{
wordDocuments
.
forEach
{
recentFilter
(
recentList
,
it
)
}
data
.
forEach
{
recentFilter
(
recentList
,
it
)
}
return
wordDocuments
.
filter
{
it
.
lastViewTime
!=
0L
}.
sortedByDescending
{
it
.
lastViewTime
}
return
data
.
filter
{
it
.
lastViewTime
!=
0L
}.
sortedByDescending
{
it
.
lastViewTime
}
}
}
BOOKMARK_DATA_TYPE
->
{
BOOKMARK_DATA_TYPE
->
{
return
data
.
filter
{
it
.
isBookmarked
}
return
wordDocuments
.
filter
{
it
.
isBookmarked
}
}
}
}
}
}
}
TYPE_EXCEL
->
{
TYPE_EXCEL
->
{
excelDocuments
.
forEach
{
val
data
=
arrayListOf
<
DocumentBean
>()
data
.
addAll
(
excelDocuments
)
data
.
forEach
{
it
.
isBookmarked
=
bookmarkList
.
contains
(
it
.
path
)
it
.
isBookmarked
=
bookmarkList
.
contains
(
it
.
path
)
}
}
when
(
dataType
)
{
when
(
dataType
)
{
DOCUMENT_DATA_TYPE
->
{
DOCUMENT_DATA_TYPE
->
{
return
excelDocuments
return
data
}
}
RECENT_DATA_TYPE
->
{
RECENT_DATA_TYPE
->
{
excelDocuments
.
forEach
{
recentFilter
(
recentList
,
it
)
}
data
.
forEach
{
recentFilter
(
recentList
,
it
)
}
return
excelDocuments
.
filter
{
it
.
lastViewTime
!=
0L
}.
sortedByDescending
{
it
.
lastViewTime
}
return
data
.
filter
{
it
.
lastViewTime
!=
0L
}.
sortedByDescending
{
it
.
lastViewTime
}
}
}
BOOKMARK_DATA_TYPE
->
{
BOOKMARK_DATA_TYPE
->
{
return
excelDocuments
.
filter
{
it
.
isBookmarked
}
return
data
.
filter
{
it
.
isBookmarked
}
}
}
}
}
}
}
TYPE_PPT
->
{
TYPE_PPT
->
{
val
data
=
arrayListOf
<
DocumentBean
>()
data
.
addAll
(
pptDocuments
)
pptDocuments
.
forEach
{
pptDocuments
.
forEach
{
it
.
isBookmarked
=
bookmarkList
.
contains
(
it
.
path
)
it
.
isBookmarked
=
bookmarkList
.
contains
(
it
.
path
)
}
}
when
(
dataType
)
{
when
(
dataType
)
{
DOCUMENT_DATA_TYPE
->
{
DOCUMENT_DATA_TYPE
->
{
return
pptDocuments
return
data
}
}
RECENT_DATA_TYPE
->
{
RECENT_DATA_TYPE
->
{
pptDocuments
.
forEach
{
recentFilter
(
recentList
,
it
)
}
data
.
forEach
{
recentFilter
(
recentList
,
it
)
}
return
pptDocuments
.
filter
{
it
.
lastViewTime
!=
0L
}.
sortedByDescending
{
it
.
lastViewTime
}
return
data
.
filter
{
it
.
lastViewTime
!=
0L
}.
sortedByDescending
{
it
.
lastViewTime
}
}
}
BOOKMARK_DATA_TYPE
->
{
BOOKMARK_DATA_TYPE
->
{
return
pptDocuments
.
filter
{
it
.
isBookmarked
}
return
data
.
filter
{
it
.
isBookmarked
}
}
}
}
}
...
@@ -295,17 +306,19 @@ class MainPresenter(
...
@@ -295,17 +306,19 @@ class MainPresenter(
val
resultCode
=
activityResult
.
resultCode
val
resultCode
=
activityResult
.
resultCode
val
result
=
GmsDocumentScanningResult
.
fromActivityResultIntent
(
activityResult
.
data
)
val
result
=
GmsDocumentScanningResult
.
fromActivityResultIntent
(
activityResult
.
data
)
appCompatActivity
.
toast
(
"回调1"
)
//
appCompatActivity.toast("回调1")
if
(
resultCode
==
Activity
.
RESULT_OK
&&
result
!=
null
)
{
if
(
resultCode
==
Activity
.
RESULT_OK
&&
result
!=
null
)
{
val
pages
=
result
.
pages
val
pages
=
result
.
pages
appCompatActivity
.
toast
(
"回调2 ${pages?.size}"
)
//
appCompatActivity.toast("回调2 ${pages?.size}")
var
imageUri
=
Uri
.
EMPTY
var
imageUri
=
Uri
.
EMPTY
if
(!
pages
.
isNullOrEmpty
())
{
if
(!
pages
.
isNullOrEmpty
())
{
appCompatActivity
.
toast
(
"回调3"
)
//
appCompatActivity.toast("回调3")
imageUri
=
pages
[
0
].
imageUri
imageUri
=
pages
[
0
].
imageUri
}
}
val
pdfUri
=
result
.
pdf
?.
uri
?:
Uri
.
EMPTY
val
pdfUri
=
result
.
pdf
?.
uri
?:
Uri
.
EMPTY
mainView
.
handleActivityGmsScanResult
(
imageUri
,
pdfUri
)
mainView
.
handleActivityGmsScanResult
(
imageUri
,
pdfUri
)
}
else
{
mainView
.
handleActivityGmsScanResult
(
null
,
null
)
}
}
}
}
}
}
...
...
app/src/main/java/com/base/pdfviewerscannerwhite/ui/main/MainView.kt
View file @
7abcf0d0
...
@@ -3,6 +3,6 @@ package com.base.pdfviewerscannerwhite.ui.main
...
@@ -3,6 +3,6 @@ package com.base.pdfviewerscannerwhite.ui.main
import
android.net.Uri
import
android.net.Uri
interface
MainView
{
interface
MainView
{
fun
handleActivityGmsScanResult
(
imageUri
:
Uri
,
pdfUri
:
Uri
)
fun
handleActivityGmsScanResult
(
imageUri
:
Uri
?,
pdfUri
:
Uri
?
)
fun
refreshPageList
()
fun
refreshPageList
()
}
}
\ No newline at end of file
app/src/main/java/com/base/pdfviewerscannerwhite/ui/view/DialogView.kt
View file @
7abcf0d0
...
@@ -39,6 +39,7 @@ import com.base.pdfviewerscannerwhite.databinding.DialogStoragePermissionBinding
...
@@ -39,6 +39,7 @@ 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.ui.main.MainActivity
import
com.base.pdfviewerscannerwhite.ui.main.MainActivity.Companion.notificationDialogResumeShow
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
...
@@ -482,7 +483,6 @@ object DialogView {
...
@@ -482,7 +483,6 @@ object DialogView {
}
}
var
notificationDialogResumeShow
:
Boolean
=
true
fun
Activity
.
showNotificationDialog
(
launcher
:
ActivityLauncher
)
{
fun
Activity
.
showNotificationDialog
(
launcher
:
ActivityLauncher
)
{
// if (checkNotificationPermission()) return
// if (checkNotificationPermission()) return
...
...
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