Commit 7abcf0d0 authored by wanglei's avatar wanglei

...

parent 492c8b62
...@@ -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 {
stopScanThenPermissionDialog = true avoidScanThenDialog = true
binding.flScanGuide.visibility = View.GONE binding.flScanGuide.visibility = View.GONE
mainPresenter.starAdGmsScan(this) mainPresenter.starAdGmsScan(this)
} }
binding.ivScanGuide.setOnClickListener { binding.ivScanGuide.setOnClickListener {
stopScanThenPermissionDialog = true avoidScanThenDialog = 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) {
......
...@@ -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)
} }
} }
} }
......
...@@ -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
...@@ -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
......
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