Commit 0c67e240 authored by wanglei's avatar wanglei

...

parent 7abcf0d0
...@@ -55,7 +55,11 @@ ...@@ -55,7 +55,11 @@
android:exported="false" android:exported="false"
android:launchMode="singleTask" android:launchMode="singleTask"
android:screenOrientation="portrait" android:screenOrientation="portrait"
tools:ignore="DiscouragedApi,LockedOrientationActivity" /> tools:ignore="DiscouragedApi,LockedOrientationActivity">
<intent-filter>
</intent-filter>
</activity>
<activity <activity
android:name=".ui.set.SetLanguageActivity" android:name=".ui.set.SetLanguageActivity"
android:exported="false" android:exported="false"
......
package com.base.pdfviewerscannerwhite.bean package com.base.pdfviewerscannerwhite.bean
import com.base.pdfviewerscannerwhite.utils.AppPreferences import com.base.pdfviewerscannerwhite.utils.AppPreferences
import java.text.SimpleDateFormat
import java.util.Calendar
import java.util.Locale import java.util.Locale
...@@ -133,4 +135,20 @@ object ConstObject { ...@@ -133,4 +135,20 @@ object ConstObject {
field = value field = value
AppPreferences.getInstance().put("mainStartTimes", value, true) 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
...@@ -22,6 +22,7 @@ import com.base.pdfviewerscannerwhite.bean.ConstObject.SHORTCUT_MERGE_PDF ...@@ -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_SCAN_PDF
import com.base.pdfviewerscannerwhite.bean.ConstObject.SHORTCUT_SPLIT_PDF import com.base.pdfviewerscannerwhite.bean.ConstObject.SHORTCUT_SPLIT_PDF
import com.base.pdfviewerscannerwhite.bean.ConstObject.mainStartTimes import com.base.pdfviewerscannerwhite.bean.ConstObject.mainStartTimes
import com.base.pdfviewerscannerwhite.bean.ConstObject.todayShowNotificationDialog
import com.base.pdfviewerscannerwhite.bean.DocumentBean import com.base.pdfviewerscannerwhite.bean.DocumentBean
import com.base.pdfviewerscannerwhite.databinding.ActivityMain2Binding import com.base.pdfviewerscannerwhite.databinding.ActivityMain2Binding
import com.base.pdfviewerscannerwhite.helper.BaseActivity import com.base.pdfviewerscannerwhite.helper.BaseActivity
...@@ -182,10 +183,9 @@ class MainActivity : BaseActivity<ActivityMain2Binding>(), MainView { ...@@ -182,10 +183,9 @@ class MainActivity : BaseActivity<ActivityMain2Binding>(), MainView {
return return
} }
//通知弹窗 //通知弹窗
if (notificationDialogResumeShow) { if (!todayShowNotificationDialog) {
todayShowNotificationDialog = true
showNotificationDialog(launcher) showNotificationDialog(launcher)
} else {
notificationDialogResumeShow = true
} }
} }
} }
...@@ -425,7 +425,6 @@ class MainActivity : BaseActivity<ActivityMain2Binding>(), MainView { ...@@ -425,7 +425,6 @@ class MainActivity : BaseActivity<ActivityMain2Binding>(), MainView {
var bannerShowed: Boolean = false//banner已经显示 var bannerShowed: Boolean = false//banner已经显示
var avoidScanThenDialog: Boolean = false//扫描回调后避免任何弹窗 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) {
......
...@@ -27,6 +27,7 @@ import com.base.pdfviewerscannerwhite.bean.DocumentBean.Companion.TYPE_PPT ...@@ -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.bean.DocumentBean.Companion.TYPE_WORD
import com.base.pdfviewerscannerwhite.databinding.DialogAppExitBinding import com.base.pdfviewerscannerwhite.databinding.DialogAppExitBinding
import com.base.pdfviewerscannerwhite.databinding.DialogCommonTipBinding import com.base.pdfviewerscannerwhite.databinding.DialogCommonTipBinding
import com.base.pdfviewerscannerwhite.databinding.DialogDefaultBinding
import com.base.pdfviewerscannerwhite.databinding.DialogDeleteBinding import com.base.pdfviewerscannerwhite.databinding.DialogDeleteBinding
import com.base.pdfviewerscannerwhite.databinding.DialogDocumentDetailBinding import com.base.pdfviewerscannerwhite.databinding.DialogDocumentDetailBinding
import com.base.pdfviewerscannerwhite.databinding.DialogDocumentHomeMoreBinding import com.base.pdfviewerscannerwhite.databinding.DialogDocumentHomeMoreBinding
...@@ -39,7 +40,6 @@ import com.base.pdfviewerscannerwhite.databinding.DialogStoragePermissionBinding ...@@ -39,7 +40,6 @@ 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
...@@ -504,7 +504,6 @@ object DialogView { ...@@ -504,7 +504,6 @@ object DialogView {
binding.tvOk.setOnClickListener { binding.tvOk.setOnClickListener {
dialog.dismiss() dialog.dismiss()
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
notificationDialogResumeShow = false
launcher.launch(arrayOf(Manifest.permission.POST_NOTIFICATIONS)) { launcher.launch(arrayOf(Manifest.permission.POST_NOTIFICATIONS)) {
} }
...@@ -519,4 +518,31 @@ object DialogView { ...@@ -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
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
<?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
<?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
...@@ -100,5 +100,8 @@ ...@@ -100,5 +100,8 @@
<string name="not_open">Not open</string> <string name="not_open">Not open</string>
<string name="unfinished_documents_to_read">You still have some unfinished documents to read.</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="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> </resources>
\ No newline at end of file
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