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