package com.yidianling.muse.utils import android.app.Activity import android.content.Context import android.content.Intent import android.net.Uri import android.os.Build import android.provider.Settings object MeditationFloatPermissionUtil { const val REQUEST_FLOAT_CODE=1001 private fun commonROMPermissionCheck(context: Context?):Boolean { var result = true if (Build.VERSION.SDK_INT >= 23){ try { val clazz:Class<*> = Settings::class.java val canDrawOverlays = clazz.getDeclaredMethod("canDrawOverlays",Context::class.java) result = canDrawOverlays.invoke(null, context) as Boolean }catch (e:Exception){ } } return result } fun checkSuspendedWindowPermission(context: Activity,block:() -> Unit){ if(commonROMPermissionCheck(context)){ block }else{ context.startActivityForResult(Intent(Settings.ACTION_MANAGE_OVERLAY_PERMISSION).apply { data = Uri.parse("package:${context.packageName}") }, REQUEST_FLOAT_CODE) } } }