Commit 7abcf0d0 authored by wanglei's avatar wanglei

...

parent 492c8b62
......@@ -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.ppt.PptActivity
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.showDeleteDialog
import com.base.pdfviewerscannerwhite.ui.view.DialogView.showDocumentRenameDialog
......@@ -67,7 +66,7 @@ class MainActivity : BaseActivity<ActivityMain2Binding>(), MainView {
private var actionId: String = ""
private var currentFragment: Fragment = documentFragment
var bannerShowed: Boolean = false
override fun initView() {
actionId = intent.extras?.getString("actionId") ?: ""
......@@ -114,6 +113,30 @@ class MainActivity : BaseActivity<ActivityMain2Binding>(), MainView {
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() {
super.onResume()
......@@ -135,31 +158,36 @@ class MainActivity : BaseActivity<ActivityMain2Binding>(), MainView {
return
}
mainPresenter.initAllDocumentData()
//scan guide
if (mainStartTimes == 1) {
binding.flScanGuide.visibility = View.VISIBLE
return
}
//permission
if (checkStorePermission() && needRefresh) {
mainPresenter.initAllDocumentData()
showMainBanner()
} else {
if (stopScanThenPermissionDialog) {
return
}
showPermissionDialog()
return
//避免scan回调的任意弹窗
if (!avoidScanThenDialog) {
dialogRequestStep()
}
}
//通知弹窗
if (bannerShowed && checkStorePermission() && notificationDialogResumeShow) {
showNotificationDialog(launcher)
//弹窗请求顺序
private fun dialogRequestStep() {
if (!checkStorePermission()) {
showPermissionDialog()
} else {
notificationDialogResumeShow = true
if (!bannerShowed) {
showMainBanner()
return
}
//通知弹窗
if (notificationDialogResumeShow) {
showNotificationDialog(launcher)
} else {
notificationDialogResumeShow = true
}
}
}
private var permissionDialog: Dialog? = null
......@@ -312,27 +340,25 @@ class MainActivity : BaseActivity<ActivityMain2Binding>(), MainView {
shareDocument()
}
binding.ivScan.setOnClickListener {
avoidScanThenDialog = true
mainPresenter.starAdGmsScan(this)
}
binding.flScanGuide.setOnClickListener {
closeScanGuide()
}
binding.tvTryScan.setOnClickListener {
stopScanThenPermissionDialog = true
avoidScanThenDialog = true
binding.flScanGuide.visibility = View.GONE
mainPresenter.starAdGmsScan(this)
}
binding.ivScanGuide.setOnClickListener {
stopScanThenPermissionDialog = true
avoidScanThenDialog = true
binding.flScanGuide.visibility = View.GONE
mainPresenter.starAdGmsScan(this)
}
actionIdOperation()
}
//避免第一次引导扫描后权限弹窗
var stopScanThenPermissionDialog: Boolean = false
private fun shareDocument() {
if (currentFragment is DocumentPageFragment) {
......@@ -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() {
if (currentFragment is DocumentFragment) {
(currentFragment as DocumentFragment).currentPage.refreshData()
......@@ -419,7 +423,10 @@ class MainActivity : BaseActivity<ActivityMain2Binding>(), MainView {
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) {
if (item.type == DocumentBean.TYPE_PDF) {
if (item.state == 0) {
......
......@@ -108,86 +108,97 @@ class MainPresenter(
when (documentType) {
TYPE_PDF -> {
pdfDocuments.forEach {
val data = arrayListOf<DocumentBean>()
data.addAll(pdfDocuments)
data.forEach {
it.isBookmarked = bookmarkList.contains(it.path)
it.state = PdfBoxUtils.checkPdfEncryption(it.path)
}
when (dataType) {
DOCUMENT_DATA_TYPE -> {
return pdfDocuments
return data
}
RECENT_DATA_TYPE -> {
return pdfDocuments.filter { it.lastViewTime != 0L }.sortedByDescending { it.lastViewTime }
return data.filter { it.lastViewTime != 0L }.sortedByDescending { it.lastViewTime }
}
BOOKMARK_DATA_TYPE -> {
return pdfDocuments.filter { it.isBookmarked }
return data.filter { it.isBookmarked }
}
}
}
TYPE_WORD -> {
wordDocuments.forEach {
val data = arrayListOf<DocumentBean>()
data.addAll(wordDocuments)
data.forEach {
it.isBookmarked = bookmarkList.contains(it.path)
}
when (dataType) {
DOCUMENT_DATA_TYPE -> {
return wordDocuments
return data
}
RECENT_DATA_TYPE -> {
wordDocuments.forEach { recentFilter(recentList, it) }
return wordDocuments.filter { it.lastViewTime != 0L }.sortedByDescending { it.lastViewTime }
data.forEach { recentFilter(recentList, it) }
return data.filter { it.lastViewTime != 0L }.sortedByDescending { it.lastViewTime }
}
BOOKMARK_DATA_TYPE -> {
return wordDocuments.filter { it.isBookmarked }
return data.filter { it.isBookmarked }
}
}
}
TYPE_EXCEL -> {
excelDocuments.forEach {
val data = arrayListOf<DocumentBean>()
data.addAll(excelDocuments)
data.forEach {
it.isBookmarked = bookmarkList.contains(it.path)
}
when (dataType) {
DOCUMENT_DATA_TYPE -> {
return excelDocuments
return data
}
RECENT_DATA_TYPE -> {
excelDocuments.forEach { recentFilter(recentList, it) }
return excelDocuments.filter { it.lastViewTime != 0L }.sortedByDescending { it.lastViewTime }
data.forEach { recentFilter(recentList, it) }
return data.filter { it.lastViewTime != 0L }.sortedByDescending { it.lastViewTime }
}
BOOKMARK_DATA_TYPE -> {
return excelDocuments.filter { it.isBookmarked }
return data.filter { it.isBookmarked }
}
}
}
TYPE_PPT -> {
val data = arrayListOf<DocumentBean>()
data.addAll(pptDocuments)
pptDocuments.forEach {
it.isBookmarked = bookmarkList.contains(it.path)
}
when (dataType) {
DOCUMENT_DATA_TYPE -> {
return pptDocuments
return data
}
RECENT_DATA_TYPE -> {
pptDocuments.forEach { recentFilter(recentList, it) }
return pptDocuments.filter { it.lastViewTime != 0L }.sortedByDescending { it.lastViewTime }
data.forEach { recentFilter(recentList, it) }
return data.filter { it.lastViewTime != 0L }.sortedByDescending { it.lastViewTime }
}
BOOKMARK_DATA_TYPE -> {
return pptDocuments.filter { it.isBookmarked }
return data.filter { it.isBookmarked }
}
}
......@@ -295,17 +306,19 @@ class MainPresenter(
val resultCode = activityResult.resultCode
val result = GmsDocumentScanningResult.fromActivityResultIntent(activityResult.data)
appCompatActivity.toast("回调1")
// appCompatActivity.toast("回调1")
if (resultCode == Activity.RESULT_OK && result != null) {
val pages = result.pages
appCompatActivity.toast("回调2 ${pages?.size}")
// appCompatActivity.toast("回调2 ${pages?.size}")
var imageUri = Uri.EMPTY
if (!pages.isNullOrEmpty()) {
appCompatActivity.toast("回调3")
// appCompatActivity.toast("回调3")
imageUri = pages[0].imageUri
}
val pdfUri = result.pdf?.uri ?: Uri.EMPTY
mainView.handleActivityGmsScanResult(imageUri, pdfUri)
} else {
mainView.handleActivityGmsScanResult(null, null)
}
}
}
......
......@@ -3,6 +3,6 @@ package com.base.pdfviewerscannerwhite.ui.main
import android.net.Uri
interface MainView {
fun handleActivityGmsScanResult(imageUri: Uri, pdfUri: Uri)
fun handleActivityGmsScanResult(imageUri: Uri?, pdfUri: Uri?)
fun refreshPageList()
}
\ No newline at end of file
......@@ -39,6 +39,7 @@ import com.base.pdfviewerscannerwhite.databinding.DialogStoragePermissionBinding
import com.base.pdfviewerscannerwhite.ui.main.DocumentFragment
import com.base.pdfviewerscannerwhite.ui.main.DocumentPageFragment
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.IntentShareUtils.documentShare
import com.base.pdfviewerscannerwhite.utils.KotlinExt.toFormatSize
......@@ -482,7 +483,6 @@ object DialogView {
}
var notificationDialogResumeShow: Boolean = true
fun Activity.showNotificationDialog(launcher: ActivityLauncher) {
// 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