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
24da9f80
Commit
24da9f80
authored
Jan 25, 2025
by
wanglei
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
...
parent
c281ff79
Show whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
147 additions
and
143 deletions
+147
-143
GuideActivity.kt
.../com/base/pdfviewerscannerwhite/ui/guide/GuideActivity.kt
+4
-4
GuidePageFragment.kt
.../base/pdfviewerscannerwhite/ui/guide/GuidePageFragment.kt
+4
-3
DocumentAdapter.kt
...com/base/pdfviewerscannerwhite/ui/main/DocumentAdapter.kt
+4
-4
MainActivity.kt
...va/com/base/pdfviewerscannerwhite/ui/main/MainActivity.kt
+61
-72
PermissionActivity.kt
...pdfviewerscannerwhite/ui/permission/PermissionActivity.kt
+5
-1
activity_main.xml
app/src/main/res/layout/activity_main.xml
+1
-1
fragment_guide_page.xml
app/src/main/res/layout/fragment_guide_page.xml
+68
-58
No files found.
app/src/main/java/com/base/pdfviewerscannerwhite/ui/guide/GuideActivity.kt
View file @
24da9f80
...
@@ -6,7 +6,6 @@ import androidx.activity.addCallback
...
@@ -6,7 +6,6 @@ import androidx.activity.addCallback
import
androidx.fragment.app.Fragment
import
androidx.fragment.app.Fragment
import
androidx.viewpager2.adapter.FragmentStateAdapter
import
androidx.viewpager2.adapter.FragmentStateAdapter
import
androidx.viewpager2.widget.ViewPager2
import
androidx.viewpager2.widget.ViewPager2
import
com.base.pdfviewerscannerwhite.ads.admob.AdmobInterstitialUtils
import
com.base.pdfviewerscannerwhite.databinding.ActivityGuideBinding
import
com.base.pdfviewerscannerwhite.databinding.ActivityGuideBinding
import
com.base.pdfviewerscannerwhite.helper.BaseActivity
import
com.base.pdfviewerscannerwhite.helper.BaseActivity
import
com.base.pdfviewerscannerwhite.ui.permission.PermissionActivity
import
com.base.pdfviewerscannerwhite.ui.permission.PermissionActivity
...
@@ -40,9 +39,10 @@ class GuideActivity : BaseActivity<ActivityGuideBinding>() {
...
@@ -40,9 +39,10 @@ class GuideActivity : BaseActivity<ActivityGuideBinding>() {
//
//
// })
// })
onBackPressedDispatcher
.
addCallback
{
onBackPressedDispatcher
.
addCallback
{
AdmobInterstitialUtils
.
showInterstitialAd
(
this
@GuideActivity
)
{
//
AdmobInterstitialUtils.showInterstitialAd(this@GuideActivity) {
startActivity
(
Intent
(
this
@GuideActivity
,
PermissionActivity
::
class
.
java
))
startActivity
(
Intent
(
this
@GuideActivity
,
PermissionActivity
::
class
.
java
))
}
finish
()
// }
}
}
}
}
...
...
app/src/main/java/com/base/pdfviewerscannerwhite/ui/guide/GuidePageFragment.kt
View file @
24da9f80
...
@@ -68,9 +68,10 @@ class GuidePageFragment(
...
@@ -68,9 +68,10 @@ class GuidePageFragment(
}
}
3
->
{
3
->
{
AdmobInterstitialUtils
.
showInterstitialAd
(
activity
)
{
//
AdmobInterstitialUtils.showInterstitialAd(activity) {
startActivity
(
Intent
(
activity
,
PermissionActivity
::
class
.
java
))
startActivity
(
Intent
(
activity
,
PermissionActivity
::
class
.
java
))
}
requireActivity
().
finish
()
// }
}
}
}
}
}
}
...
...
app/src/main/java/com/base/pdfviewerscannerwhite/ui/main/DocumentAdapter.kt
View file @
24da9f80
...
@@ -80,9 +80,9 @@ class DocumentAdapter(val activity: Activity) : BaseQuickAdapter<DocumentBean, D
...
@@ -80,9 +80,9 @@ class DocumentAdapter(val activity: Activity) : BaseQuickAdapter<DocumentBean, D
itemClick
?.
invoke
(
item
)
itemClick
?.
invoke
(
item
)
}
}
if
(
item
.
path
.
contains
(
"DEMO.pdf"
))
{
//
if (item.path.contains("DEMO.pdf")) {
guideDemo
(
holder
.
itemView
,
item
)
//
guideDemo(holder.itemView, item)
}
//
}
}
}
1
->
{
//合并选择
1
->
{
//合并选择
...
@@ -175,7 +175,7 @@ class DocumentAdapter(val activity: Activity) : BaseQuickAdapter<DocumentBean, D
...
@@ -175,7 +175,7 @@ class DocumentAdapter(val activity: Activity) : BaseQuickAdapter<DocumentBean, D
val
isGuideDemo
=
AppPreferences
.
getInstance
().
getBoolean
(
"isGuideDemo"
,
false
)
val
isGuideDemo
=
AppPreferences
.
getInstance
().
getBoolean
(
"isGuideDemo"
,
false
)
if
(!
isGuideDemo
&&
activity
.
checkStorePermission
()
)
{
if
(!
isGuideDemo
)
{
view
.
post
{
view
.
post
{
val
builder
=
GuideBuilder
()
val
builder
=
GuideBuilder
()
...
...
app/src/main/java/com/base/pdfviewerscannerwhite/ui/main/MainActivity.kt
View file @
24da9f80
...
@@ -50,8 +50,6 @@ import com.base.pdfviewerscannerwhite.ui.view.DialogView.showNotificationDialog
...
@@ -50,8 +50,6 @@ import com.base.pdfviewerscannerwhite.ui.view.DialogView.showNotificationDialog
import
com.base.pdfviewerscannerwhite.ui.view.DialogView.showStoragePermission
import
com.base.pdfviewerscannerwhite.ui.view.DialogView.showStoragePermission
import
com.base.pdfviewerscannerwhite.ui.view.PdfDialog.showPdfPwdDialog
import
com.base.pdfviewerscannerwhite.ui.view.PdfDialog.showPdfPwdDialog
import
com.base.pdfviewerscannerwhite.ui.view.RateDialog.showRateDialog
import
com.base.pdfviewerscannerwhite.ui.view.RateDialog.showRateDialog
import
com.base.pdfviewerscannerwhite.ui.view.guideview.GuideBuilder
import
com.base.pdfviewerscannerwhite.ui.view.guideview.LottieComponent
import
com.base.pdfviewerscannerwhite.ui.weather.WeatherInterface
import
com.base.pdfviewerscannerwhite.ui.weather.WeatherInterface
import
com.base.pdfviewerscannerwhite.utils.AppPreferences
import
com.base.pdfviewerscannerwhite.utils.AppPreferences
import
com.base.pdfviewerscannerwhite.utils.BarUtils
import
com.base.pdfviewerscannerwhite.utils.BarUtils
...
@@ -174,6 +172,10 @@ class MainActivity : BaseActivity<ActivityMainBinding>(), MainView {
...
@@ -174,6 +172,10 @@ class MainActivity : BaseActivity<ActivityMainBinding>(), MainView {
}
}
private
fun
closeScanGuide
()
{
binding
.
flScanGuide
.
visibility
=
View
.
GONE
dialogRequestStep
()
}
override
fun
handleActivityGmsScanResult
(
imageUri
:
Uri
?,
pdfUri
:
Uri
?)
{
override
fun
handleActivityGmsScanResult
(
imageUri
:
Uri
?,
pdfUri
:
Uri
?)
{
// LogEx.logDebug(TAG, "imageUri=$imageUri")
// LogEx.logDebug(TAG, "imageUri=$imageUri")
...
@@ -189,14 +191,16 @@ class MainActivity : BaseActivity<ActivityMainBinding>(), MainView {
...
@@ -189,14 +191,16 @@ class MainActivity : BaseActivity<ActivityMainBinding>(), MainView {
},
},
dismissAction
=
{
dismissAction
=
{
avoidScanThenDialog
=
false
avoidScanThenDialog
=
false
dialogRequestStep
()
})
})
}
else
{
}
else
{
avoidScanThenDialog
=
false
avoidScanThenDialog
=
false
dialogRequestStep
()
}
}
}
}
private
var
isPause
=
false
var
isPause
=
false
override
fun
onPause
()
{
override
fun
onPause
()
{
super
.
onPause
()
super
.
onPause
()
isPause
=
true
isPause
=
true
...
@@ -231,82 +235,58 @@ class MainActivity : BaseActivity<ActivityMainBinding>(), MainView {
...
@@ -231,82 +235,58 @@ class MainActivity : BaseActivity<ActivityMainBinding>(), MainView {
mainPresenter
.
initAllDocumentData
()
mainPresenter
.
initAllDocumentData
()
showMainBanner
()
//scan guide
if
(
mainStartTimes
==
1
)
{
//权限
binding
.
flScanGuide
.
visibility
=
View
.
VISIBLE
val
permissionGrand
=
checkStorePermission
()
return
if
(
permissionGrand
)
{
showPermissionThenGuide
()
}
else
{
showPermissionDialog
()
}
}
//避免scan回调的任意弹窗
if
(!
avoidScanThenDialog
)
{
dialogRequestStep
()
}
}
/**
*权限过后的弹窗顺序
*/
@SuppressLint
(
"NotifyDataSetChanged"
)
private
fun
showPermissionThenGuide
()
{
//demo guide
val
isGuideDemo
=
AppPreferences
.
getInstance
().
getBoolean
(
"isGuideDemo"
,
false
)
//scan guide
val
isGuideScan
=
AppPreferences
.
getInstance
().
getBoolean
(
"isGuideScan"
,
false
)
if
(
isGuideDemo
)
{
if
(!
isGuideScan
)
{
showGuideScan
()
}
else
{
if
(!
avoidScanThenDialog
)
{
val
canShowRateN
=
AppPreferences
.
getInstance
().
getString
(
"canShowRateN"
,
"4"
).
toInt
()
val
canShowRateN
=
AppPreferences
.
getInstance
().
getString
(
"canShowRateN"
,
"4"
).
toInt
()
if
(
isPause
&&
mainStartTimes
>=
canShowRateN
)
{
if
(
isPause
&&
mainStartTimes
>=
canShowRateN
)
{
showRateDialog
()
showRateDialog
()
}
}
}
}
}
}
}
private
fun
showGuideScan
()
{
binding
.
root
.
post
{
val
builder
=
GuideBuilder
()
builder
.
setTargetView
(
binding
.
ivScan
)
.
setAlpha
(
150
)
.
setHighTargetCorner
(
20
)
.
setHighTargetPadding
(
10
)
// .setOverlayTarget(false)
// .setOutsideTouchable(false)
// .setAutoDismiss(true)
builder
.
setOnVisibilityChangedListener
(
object
:
GuideBuilder
.
OnVisibilityChangedListener
{
override
fun
onShown
()
{
AppPreferences
.
getInstance
().
put
(
"isGuideScan"
,
true
)
}
override
fun
onDismiss
()
{
//弹窗请求顺序
useGmsScanFunction
()
private
fun
dialogRequestStep
()
{
LogEx
.
logDebug
(
TAG
,
"dialogRequestStep 1"
)
if
(!
checkStorePermission
())
{
LogEx
.
logDebug
(
TAG
,
"dialogRequestStep 2"
)
showPermissionDialog
()
}
else
{
if
(!
bannerShowed
)
{
LogEx
.
logDebug
(
TAG
,
"dialogRequestStep 3"
)
showMainBanner
()
return
}
}
})
//通知弹窗
// if (!todayShowNotificationDialog && !checkNotificationPermission()) {
val
component
=
LottieComponent
()
// todayShowNotificationDialog = true
builder
.
addComponent
(
component
)
// showNotificationDialog(launcher)
val
guide
=
builder
.
createGuide
()
// } else {
guide
.
setShouldCheckLocInWindow
(
false
)
// if (!ConstObject.setDefault) {
guide
.
show
(
this
)
// showDefaultBottomDialog()
// } else {
// showRateDialog()
// }
// }
}
}
}
}
private
var
permissionDialog
:
Dialog
?
=
null
private
var
permissionDialog
:
Dialog
?
=
null
private
fun
showPermissionDialog
()
{
private
fun
showPermissionDialog
()
{
if
(
permissionDialog
==
null
)
{
if
(
permissionDialog
==
null
)
{
permissionDialog
=
showStoragePermission
(
launcher
,
permissionDialog
=
showStoragePermission
(
launcher
,
noLauncherAction
=
{
noLauncherAction
=
{
show
PermissionThenGuide
()
show
MainBanner
()
},
},
dismissAction
=
{
dismissAction
=
{
permissionDialog
=
null
})
})
}
}
}
}
...
@@ -314,15 +294,18 @@ class MainActivity : BaseActivity<ActivityMainBinding>(), MainView {
...
@@ -314,15 +294,18 @@ class MainActivity : BaseActivity<ActivityMainBinding>(), MainView {
private
fun
showMainBanner
()
{
private
fun
showMainBanner
()
{
if
(!
bannerShowed
)
{
if
(!
bannerShowed
)
{
bannerShowed
=
true
bannerShowed
=
true
val
isGuideDemo
=
AppPreferences
.
getInstance
().
getBoolean
(
"isGuideDemo"
,
false
)
AdmobBannerUtils
.
showCollapsibleBannerAd
(
this
,
true
,
binding
.
flBanner
)
{
val
isGuideScan
=
AppPreferences
.
getInstance
().
getBoolean
(
"isGuideScan"
,
false
)
//通知弹窗
val
flag
=
checkStorePermission
()
// if (!todayShowNotificationDialog && !checkNotificationPermission()) {
//权限 引导都完了 弹折叠
// todayShowNotificationDialog = true
AdmobBannerUtils
.
showCollapsibleBannerAd
(
// showNotificationDialog(launcher)
this
,
// } else {
isGuideDemo
&&
isGuideScan
&&
flag
,
// if (!ConstObject.setDefault) {
binding
.
flBanner
// showDefaultBottomDialog()
)
{
// } else {
// showRateDialog()
// }
// }
}
}
}
}
}
}
...
@@ -455,6 +438,9 @@ class MainActivity : BaseActivity<ActivityMainBinding>(), MainView {
...
@@ -455,6 +438,9 @@ class MainActivity : BaseActivity<ActivityMainBinding>(), MainView {
binding
.
ivScan
.
setOnClickListener
{
binding
.
ivScan
.
setOnClickListener
{
useGmsScanFunction
()
useGmsScanFunction
()
}
}
binding
.
flScanGuide
.
setOnClickListener
{
closeScanGuide
()
}
binding
.
tvTryScan
.
setOnClickListener
{
binding
.
tvTryScan
.
setOnClickListener
{
useGmsScanFunction
()
useGmsScanFunction
()
}
}
...
@@ -466,6 +452,7 @@ class MainActivity : BaseActivity<ActivityMainBinding>(), MainView {
...
@@ -466,6 +452,7 @@ class MainActivity : BaseActivity<ActivityMainBinding>(), MainView {
fun
useGmsScanFunction
()
{
fun
useGmsScanFunction
()
{
avoidScanThenDialog
=
true
avoidScanThenDialog
=
true
binding
.
flScanGuide
.
visibility
=
View
.
GONE
mainPresenter
.
starAdGmsScan
(
this
)
mainPresenter
.
starAdGmsScan
(
this
)
}
}
...
@@ -477,6 +464,7 @@ class MainActivity : BaseActivity<ActivityMainBinding>(), MainView {
...
@@ -477,6 +464,7 @@ class MainActivity : BaseActivity<ActivityMainBinding>(), MainView {
if
(
items
.
isNotEmpty
())
{
if
(
items
.
isNotEmpty
())
{
shareMutDocuments
(
documentPageFragment
.
type
,
items
.
map
{
it
.
uri
}
as
ArrayList
<
Uri
>)
shareMutDocuments
(
documentPageFragment
.
type
,
items
.
map
{
it
.
uri
}
as
ArrayList
<
Uri
>)
}
}
}
}
}
}
...
@@ -485,6 +473,7 @@ class MainActivity : BaseActivity<ActivityMainBinding>(), MainView {
...
@@ -485,6 +473,7 @@ class MainActivity : BaseActivity<ActivityMainBinding>(), MainView {
binding
.
llRecent
.
isSelected
=
selectView
==
binding
.
llRecent
binding
.
llRecent
.
isSelected
=
selectView
==
binding
.
llRecent
binding
.
llBookmark
.
isSelected
=
selectView
==
binding
.
llBookmark
binding
.
llBookmark
.
isSelected
=
selectView
==
binding
.
llBookmark
binding
.
llTool
.
isSelected
=
selectView
==
binding
.
llTool
binding
.
llTool
.
isSelected
=
selectView
==
binding
.
llTool
}
}
fun
changeSelectUI
(
show
:
Boolean
)
{
fun
changeSelectUI
(
show
:
Boolean
)
{
...
...
app/src/main/java/com/base/pdfviewerscannerwhite/ui/permission/PermissionActivity.kt
View file @
24da9f80
...
@@ -11,8 +11,10 @@ import android.text.style.ForegroundColorSpan
...
@@ -11,8 +11,10 @@ import android.text.style.ForegroundColorSpan
import
androidx.activity.addCallback
import
androidx.activity.addCallback
import
androidx.annotation.RequiresApi
import
androidx.annotation.RequiresApi
import
androidx.core.content.ContextCompat
import
androidx.core.content.ContextCompat
import
androidx.core.view.postDelayed
import
androidx.core.view.updatePadding
import
androidx.core.view.updatePadding
import
com.base.pdfviewerscannerwhite.R
import
com.base.pdfviewerscannerwhite.R
import
com.base.pdfviewerscannerwhite.ads.admob.AdmobInterstitialUtils
import
com.base.pdfviewerscannerwhite.databinding.ActivityPermissionBinding
import
com.base.pdfviewerscannerwhite.databinding.ActivityPermissionBinding
import
com.base.pdfviewerscannerwhite.helper.BaseActivity
import
com.base.pdfviewerscannerwhite.helper.BaseActivity
import
com.base.pdfviewerscannerwhite.utils.BarUtils
import
com.base.pdfviewerscannerwhite.utils.BarUtils
...
@@ -54,7 +56,9 @@ class PermissionActivity : BaseActivity<ActivityPermissionBinding>() {
...
@@ -54,7 +56,9 @@ class PermissionActivity : BaseActivity<ActivityPermissionBinding>() {
super
.
initListener
()
super
.
initListener
()
onBackPressedDispatcher
.
addCallback
{
onBackPressedDispatcher
.
addCallback
{
finishToMain
()
AdmobInterstitialUtils
.
showInterstitialAd
(
this
@PermissionActivity
)
{
binding
.
root
.
postDelayed
({
finishToMain
()
},
300
)
}
// val isGuide = AppPreferences.getInstance().getBoolean("isGuide", false)
// val isGuide = AppPreferences.getInstance().getBoolean("isGuide", false)
// if (!isGuide) {
// if (!isGuide) {
...
...
app/src/main/res/layout/activity_main.xml
View file @
24da9f80
...
@@ -279,8 +279,8 @@
...
@@ -279,8 +279,8 @@
</LinearLayout>
</LinearLayout>
<!-- android:id="@+id/fl_scan_guide"-->
<FrameLayout
<FrameLayout
android:id=
"@+id/fl_scan_guide"
android:layout_width=
"match_parent"
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
android:layout_height=
"match_parent"
android:visibility=
"gone"
android:visibility=
"gone"
...
...
app/src/main/res/layout/fragment_guide_page.xml
View file @
24da9f80
<?xml version="1.0" encoding="utf-8"?>
<?xml version="1.0" encoding="utf-8"?>
<
Linear
Layout
xmlns:android=
"http://schemas.android.com/apk/res/android"
<
Relative
Layout
xmlns:android=
"http://schemas.android.com/apk/res/android"
xmlns:tools=
"http://schemas.android.com/tools"
xmlns:tools=
"http://schemas.android.com/tools"
android:layout_width=
"match_parent"
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
android:layout_height=
"match_parent"
android:orientation=
"vertical"
tools:context=
".ui.guide.GuidePageFragment"
>
tools:context=
".ui.guide.GuidePageFragment"
>
<LinearLayout
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
android:orientation=
"vertical"
>
<FrameLayout
<FrameLayout
android:id=
"@+id/fl_ad"
android:id=
"@+id/fl_ad"
android:layout_width=
"match_parent"
android:layout_width=
"match_parent"
...
@@ -13,8 +17,9 @@
...
@@ -13,8 +17,9 @@
<LinearLayout
<LinearLayout
android:layout_width=
"wrap_content"
android:layout_width=
"wrap_content"
android:layout_height=
"60dp"
android:layout_height=
"wrap_content"
android:layout_marginStart=
"16dp"
android:layout_marginLeft=
"16dp"
android:layout_marginTop=
"8dp"
android:orientation=
"horizontal"
>
android:orientation=
"horizontal"
>
<TextView
<TextView
...
@@ -42,7 +47,9 @@
...
@@ -42,7 +47,9 @@
<LinearLayout
<LinearLayout
android:layout_width=
"match_parent"
android:layout_width=
"match_parent"
android:layout_height=
"150dp"
android:layout_height=
"wrap_content"
android:layout_marginTop=
"16dp"
android:layout_marginBottom=
"16dp"
android:gravity=
"center"
android:gravity=
"center"
android:orientation=
"vertical"
>
android:orientation=
"vertical"
>
...
@@ -70,23 +77,26 @@
...
@@ -70,23 +77,26 @@
<ImageView
<ImageView
android:id=
"@+id/iv"
android:id=
"@+id/iv"
android:layout_width=
"wrap_content"
android:layout_width=
"wrap_content"
android:layout_height=
"0dp
"
android:layout_height=
"wrap_content
"
android:layout_gravity=
"center_horizontal"
android:layout_gravity=
"center_horizontal"
android:layout_weight=
"1"
android:src=
"@mipmap/ydyetu2"
android:src=
"@mipmap/ydyetu2"
tools:ignore=
"ContentDescription"
/>
tools:ignore=
"ContentDescription"
/>
</LinearLayout>
<TextView
<TextView
android:id=
"@+id/tvBtn"
android:id=
"@+id/tvBtn"
android:layout_width=
"250dp"
android:layout_width=
"250dp"
android:layout_height=
"50dp"
android:layout_height=
"50dp"
android:layout_gravity=
"center_horizontal"
android:layout_gravity=
"center_horizontal"
android:layout_margin
Vertical=
"10
dp"
android:layout_margin
Top=
"8
dp"
android:background=
"@drawable/bg_00b8de_90"
android:background=
"@drawable/bg_00b8de_90"
android:gravity=
"center"
android:gravity=
"center"
android:layout_centerHorizontal=
"true"
android:layout_alignParentBottom=
"true"
android:layout_marginBottom=
"32dp"
android:text=
"@string/go_to_start"
android:text=
"@string/go_to_start"
android:textColor=
"@color/white"
android:textColor=
"@color/white"
android:textSize=
"18sp"
/>
android:textSize=
"18sp"
/>
</RelativeLayout>
</LinearLayout>
\ No newline at end of file
\ No newline at end of file
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