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
0c67e240
Commit
0c67e240
authored
Oct 12, 2024
by
wanglei
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
...
parent
7abcf0d0
Hide whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
174 additions
and
7 deletions
+174
-7
AndroidManifest.xml
app/src/main/AndroidManifest.xml
+5
-1
ConstObject.kt
...n/java/com/base/pdfviewerscannerwhite/bean/ConstObject.kt
+18
-0
MainActivity.kt
...va/com/base/pdfviewerscannerwhite/ui/main/MainActivity.kt
+3
-4
DialogView.kt
...java/com/base/pdfviewerscannerwhite/ui/view/DialogView.kt
+28
-2
RoleManagerUtils.kt
.../com/base/pdfviewerscannerwhite/utils/RoleManagerUtils.kt
+48
-0
bg_d3d1d4_3.xml
app/src/main/res/drawable/bg_d3d1d4_3.xml
+6
-0
dialog_default.xml
app/src/main/res/layout/dialog_default.xml
+63
-0
moren_logo.png
app/src/main/res/mipmap-xxhdpi/moren_logo.png
+0
-0
strings.xml
app/src/main/res/values/strings.xml
+3
-0
No files found.
app/src/main/AndroidManifest.xml
View file @
0c67e240
...
...
@@ -55,7 +55,11 @@
android:exported=
"false"
android:launchMode=
"singleTask"
android:screenOrientation=
"portrait"
tools:ignore=
"DiscouragedApi,LockedOrientationActivity"
/>
tools:ignore=
"DiscouragedApi,LockedOrientationActivity"
>
<intent-filter>
</intent-filter>
</activity>
<activity
android:name=
".ui.set.SetLanguageActivity"
android:exported=
"false"
...
...
app/src/main/java/com/base/pdfviewerscannerwhite/bean/ConstObject.kt
View file @
0c67e240
package
com.base.pdfviewerscannerwhite.bean
import
com.base.pdfviewerscannerwhite.utils.AppPreferences
import
java.text.SimpleDateFormat
import
java.util.Calendar
import
java.util.Locale
...
...
@@ -133,4 +135,20 @@ object ConstObject {
field
=
value
AppPreferences
.
getInstance
().
put
(
"mainStartTimes"
,
value
,
true
)
}
var
todayShowNotificationDialog
=
false
get
()
{
return
AppPreferences
.
getInstance
().
getBoolean
(
"todayShowNotificationDialog_${currentDate()}"
,
field
)
}
set
(
value
)
{
field
=
value
AppPreferences
.
getInstance
().
put
(
"todayShowNotificationDialog_${currentDate()}"
,
value
,
true
)
}
private
fun
currentDate
():
String
{
val
dateFormat
=
SimpleDateFormat
(
"yyyy-MM-dd"
,
Locale
.
getDefault
())
val
currentDate
=
Calendar
.
getInstance
().
time
return
dateFormat
.
format
(
currentDate
)
}
}
\ No newline at end of file
app/src/main/java/com/base/pdfviewerscannerwhite/ui/main/MainActivity.kt
View file @
0c67e240
...
...
@@ -22,6 +22,7 @@ import com.base.pdfviewerscannerwhite.bean.ConstObject.SHORTCUT_MERGE_PDF
import
com.base.pdfviewerscannerwhite.bean.ConstObject.SHORTCUT_SCAN_PDF
import
com.base.pdfviewerscannerwhite.bean.ConstObject.SHORTCUT_SPLIT_PDF
import
com.base.pdfviewerscannerwhite.bean.ConstObject.mainStartTimes
import
com.base.pdfviewerscannerwhite.bean.ConstObject.todayShowNotificationDialog
import
com.base.pdfviewerscannerwhite.bean.DocumentBean
import
com.base.pdfviewerscannerwhite.databinding.ActivityMain2Binding
import
com.base.pdfviewerscannerwhite.helper.BaseActivity
...
...
@@ -182,10 +183,9 @@ class MainActivity : BaseActivity<ActivityMain2Binding>(), MainView {
return
}
//通知弹窗
if
(
notificationDialogResumeShow
)
{
if
(!
todayShowNotificationDialog
)
{
todayShowNotificationDialog
=
true
showNotificationDialog
(
launcher
)
}
else
{
notificationDialogResumeShow
=
true
}
}
}
...
...
@@ -425,7 +425,6 @@ class MainActivity : BaseActivity<ActivityMain2Binding>(), MainView {
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
)
{
...
...
app/src/main/java/com/base/pdfviewerscannerwhite/ui/view/DialogView.kt
View file @
0c67e240
...
...
@@ -27,6 +27,7 @@ import com.base.pdfviewerscannerwhite.bean.DocumentBean.Companion.TYPE_PPT
import
com.base.pdfviewerscannerwhite.bean.DocumentBean.Companion.TYPE_WORD
import
com.base.pdfviewerscannerwhite.databinding.DialogAppExitBinding
import
com.base.pdfviewerscannerwhite.databinding.DialogCommonTipBinding
import
com.base.pdfviewerscannerwhite.databinding.DialogDefaultBinding
import
com.base.pdfviewerscannerwhite.databinding.DialogDeleteBinding
import
com.base.pdfviewerscannerwhite.databinding.DialogDocumentDetailBinding
import
com.base.pdfviewerscannerwhite.databinding.DialogDocumentHomeMoreBinding
...
...
@@ -39,7 +40,6 @@ 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
...
...
@@ -504,7 +504,6 @@ object DialogView {
binding
.
tvOk
.
setOnClickListener
{
dialog
.
dismiss
()
if
(
Build
.
VERSION
.
SDK_INT
>=
Build
.
VERSION_CODES
.
TIRAMISU
)
{
notificationDialogResumeShow
=
false
launcher
.
launch
(
arrayOf
(
Manifest
.
permission
.
POST_NOTIFICATIONS
))
{
}
...
...
@@ -519,4 +518,31 @@ object DialogView {
}
}
@SuppressLint
(
"SetTextI18n"
)
fun
Context
.
showDefaultDialog
()
{
val
dialog
=
BottomSheetDialog
(
this
,
R
.
style
.
BottomSheetDialog
)
val
binding
=
DialogDefaultBinding
.
inflate
(
LayoutInflater
.
from
(
this
))
dialog
.
setContentView
(
binding
.
root
)
dialog
.
setCanceledOnTouchOutside
(
false
)
val
window
=
dialog
.
window
window
?.
setSoftInputMode
(
WindowManager
.
LayoutParams
.
SOFT_INPUT_ADJUST_RESIZE
)
dialog
.
show
()
val
parentView
=
binding
.
root
.
parent
as
View
val
behavior
=
BottomSheetBehavior
.
from
(
parentView
)
//展开
behavior
.
state
=
BottomSheetBehavior
.
STATE_EXPANDED
val
appName
=
resources
.
getString
(
R
.
string
.
app_name
)
binding
.
tvTittle
.
text
=
getString
(
R
.
string
.
set_as_default
)
+
appName
binding
.
tvDesc
.
text
=
getString
(
R
.
string
.
set_this_app_as_your_default
)
+
appName
+
getString
(
R
.
string
.
for_a_better_reading_experience
)
binding
.
tvConfirm
}
}
\ No newline at end of file
app/src/main/java/com/base/pdfviewerscannerwhite/utils/RoleManagerUtils.kt
0 → 100644
View file @
0c67e240
package
com.base.pdfviewerscannerwhite.utils
import
android.app.role.RoleManager
import
android.content.Context
import
android.content.Intent
import
android.net.Uri
import
android.os.Build
import
android.provider.Settings
import
android.view.View
object
RoleManagerUtils
{
// fun Context.isDefaultBrowser(): Boolean {
// val testIntent = Intent(Intent.ACTION_VIEW, Uri.parse("http://www.example.com"))
// val resolveInfo = packageManager.resolveActivity(testIntent, 0)
// return resolveInfo != null && resolveInfo.activityInfo.packageName == packageName
// }
fun
Context
.
requestRoleBrowser
(
launcher
:
ActivityLauncher
,
callBack
:
(()
->
Unit
)?
=
null
)
{
if
(
Build
.
VERSION
.
SDK_INT
>=
Build
.
VERSION_CODES
.
Q
)
{
val
roleManager
:
RoleManager
=
getSystemService
(
RoleManager
::
class
.
java
)
as
RoleManager
if
(!
roleManager
.
isRoleAvailable
(
"android.app.role.BROWSER"
))
{
val
intent
=
Intent
(
Settings
.
ACTION_MANAGE_DEFAULT_APPS_SETTINGS
)
launcher
.
launch
(
intent
)
{
callBack
?.
invoke
()
}
}
else
if
(
roleManager
.
isRoleHeld
(
"android.app.role.BROWSER"
))
{
val
intent
=
Intent
(
Settings
.
ACTION_MANAGE_DEFAULT_APPS_SETTINGS
)
launcher
.
launch
(
intent
)
{
callBack
?.
invoke
()
}
}
else
{
val
intent
=
roleManager
.
createRequestRoleIntent
(
"android.app.role.BROWSER"
)
launcher
.
launch
(
intent
)
{
callBack
?.
invoke
()
}
}
}
else
{
val
intent
=
Intent
(
Settings
.
ACTION_MANAGE_DEFAULT_APPS_SETTINGS
)
launcher
.
launch
(
intent
)
{
callBack
?.
invoke
()
}
}
}
}
\ No newline at end of file
app/src/main/res/drawable/bg_d3d1d4_3.xml
0 → 100644
View file @
0c67e240
<?xml version="1.0" encoding="utf-8"?>
<shape
xmlns:android=
"http://schemas.android.com/apk/res/android"
>
<solid
android:color=
"#D3D1D4"
/>
<corners
android:radius=
"3dp"
/>
</shape>
\ No newline at end of file
app/src/main/res/layout/dialog_default.xml
0 → 100644
View file @
0c67e240
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android=
"http://schemas.android.com/apk/res/android"
xmlns:tools=
"http://schemas.android.com/tools"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:background=
"@drawable/bg_ffffff_tlf25"
android:orientation=
"vertical"
>
<View
android:layout_width=
"72dp"
android:layout_height=
"6dp"
android:layout_gravity=
"center_horizontal"
android:layout_marginTop=
"12dp"
android:background=
"@drawable/bg_d3d1d4_3"
/>
<ImageView
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_gravity=
"center_horizontal"
android:layout_marginTop=
"40dp"
android:src=
"@mipmap/moren_logo"
tools:ignore=
"ContentDescription"
/>
<TextView
android:id=
"@+id/tv_tittle"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_gravity=
"center_horizontal"
android:layout_marginTop=
"24dp"
android:textColor=
"#333333"
android:textSize=
"17sp"
android:textStyle=
"bold"
tools:ignore=
"HardcodedText"
tools:text=
"@string/app_name"
/>
<TextView
android:id=
"@+id/tv_desc"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_gravity=
"center_horizontal"
android:layout_marginTop=
"16dp"
android:gravity=
"center"
android:textColor=
"#666666"
android:textSize=
"15sp"
tools:ignore=
"HardcodedText"
tools:text=
"aaaaaaa"
/>
<TextView
android:id=
"@+id/tv_confirm"
android:layout_width=
"338dp"
android:layout_height=
"48dp"
android:layout_gravity=
"center_horizontal"
android:layout_marginTop=
"20dp"
android:layout_marginBottom=
"20dp"
android:background=
"@drawable/bg_00b8de_10"
android:gravity=
"center"
android:text=
"@string/confirm"
android:textColor=
"@color/white"
android:textSize=
"18sp"
tools:ignore=
"HardcodedText"
/>
</LinearLayout>
\ No newline at end of file
app/src/main/res/mipmap-xxhdpi/moren_logo.png
0 → 100644
View file @
0c67e240
15.9 KB
app/src/main/res/values/strings.xml
View file @
0c67e240
...
...
@@ -100,5 +100,8 @@
<string
name=
"not_open"
>
Not open
</string>
<string
name=
"unfinished_documents_to_read"
>
You still have some unfinished documents to read.
</string>
<string
name=
"click_to_view_details"
>
Click to view details.
</string>
<string
name=
"set_as_default"
>
Set as Default
</string>
<string
name=
"set_this_app_as_your_default"
>
Set this app as your default
</string>
<string
name=
"for_a_better_reading_experience"
>
for a better reading experience
</string>
</resources>
\ 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