解决 第一次就进入 通知 系统设置页面,而不是直接请求权限
This commit is contained in:
parent
8cbc29db36
commit
3b4e8522ec
|
|
@ -196,7 +196,11 @@ class HomeItemFragment : AppViewsEmptyViewModelFragment<ViewBinding>() {
|
|||
if (mIsPlaying != isPlaying) {
|
||||
mIsPlaying = isPlaying
|
||||
if (!mIsPlaying) {
|
||||
binding?.circlePb?.let {
|
||||
it.postDelayed({
|
||||
generateThumbAndSet()
|
||||
}, 500)
|
||||
}
|
||||
} else {
|
||||
binding?.circlePb?.isVisible = false
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,11 +2,15 @@ package com.gamedog.vididin.manager
|
|||
|
||||
import android.Manifest
|
||||
import android.app.Activity
|
||||
import android.content.Context
|
||||
import android.content.Intent
|
||||
import android.content.pm.PackageManager
|
||||
import android.os.Build
|
||||
import android.provider.Settings
|
||||
import androidx.core.app.ActivityCompat
|
||||
import androidx.core.content.ContextCompat
|
||||
import androidx.lifecycle.LifecycleCoroutineScope
|
||||
import com.ama.core.architecture.util.SpUtil
|
||||
import com.blankj.utilcode.util.StringUtils
|
||||
import com.remax.base.controller.SystemPageNavigationController
|
||||
import com.remax.base.ext.KvBoolDelegate
|
||||
|
|
@ -147,9 +151,15 @@ object NotificationController {
|
|||
DataReportManager.reportData(
|
||||
"Notific_Allow_Start", mapOf("Notific_Allow_Position" to position)
|
||||
)
|
||||
|
||||
if (isNotificationPermissionGranted(context)) {
|
||||
return
|
||||
}
|
||||
|
||||
// android判断是否永久拒绝的api存在故意设计
|
||||
// 权限弹框用户点了返回键也算是一次拒绝
|
||||
if (ActivityCompat.shouldShowRequestPermissionRationale(
|
||||
if (!SpUtil.instance().getBoolean(SpUtil.KEY_HAS_REQUEST_NOTIFICATION_PERMISSION) ||
|
||||
ActivityCompat.shouldShowRequestPermissionRationale(
|
||||
context, Manifest.permission.POST_NOTIFICATIONS
|
||||
)
|
||||
) {
|
||||
|
|
@ -163,7 +173,7 @@ object NotificationController {
|
|||
onGrantedOnlyUnauthorized.invoke(isGranted)
|
||||
}
|
||||
|
||||
|
||||
SpUtil.instance().putBoolean(SpUtil.KEY_HAS_REQUEST_NOTIFICATION_PERMISSION, true)
|
||||
} else {
|
||||
SystemPageNavigationController.markEnterNotificationAccessPage()
|
||||
activityLauncher.launch(Intent(Settings.ACTION_APP_NOTIFICATION_SETTINGS).apply {
|
||||
|
|
@ -184,4 +194,16 @@ object NotificationController {
|
|||
|
||||
}
|
||||
}
|
||||
|
||||
private fun isNotificationPermissionGranted(context: Context): Boolean {
|
||||
return if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
|
||||
ContextCompat.checkSelfPermission(
|
||||
context,
|
||||
Manifest.permission.POST_NOTIFICATIONS
|
||||
) == PackageManager.PERMISSION_GRANTED
|
||||
} else {
|
||||
true
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -41,6 +41,7 @@ class SpUtil private constructor(spFileName: String) {
|
|||
|
||||
const val KEY_GUIDE_HAS_GOT_NEWBIE_GOLD = "KEY_GUIDE_HAS_GOT_NEWBIE_GOLD"
|
||||
const val KEY_GUIDE_HAS_SHOW = "KEY_GUIDE_STATE" // 1,2,3,4,5, 6 6 stands for finish
|
||||
const val KEY_HAS_REQUEST_NOTIFICATION_PERMISSION = "KEY_HAS_REQUEST_NOTIFICATION_PERMISSION"
|
||||
|
||||
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue