stop lock task mode with notification

close #36
This commit is contained in:
BinTianqi
2024-07-17 18:17:57 +08:00
parent 8f8ed1ec57
commit a81a437bc3
7 changed files with 85 additions and 12 deletions

View File

@@ -1,8 +1,11 @@
package com.bintianqi.owndroid
import android.Manifest
import android.app.admin.DevicePolicyManager
import android.content.*
import android.content.pm.PackageManager
import android.net.Uri
import android.os.Build.VERSION
import android.widget.Toast
import androidx.activity.ComponentActivity
import androidx.activity.result.ActivityResultLauncher
@@ -69,6 +72,7 @@ fun writeClipBoard(context: Context, string: String):Boolean{
return true
}
lateinit var requestPermission: ActivityResultLauncher<String>
fun registerActivityResult(context: ComponentActivity){
getFile = context.registerForActivityResult(ActivityResultContracts.StartActivityForResult()) { activityResult ->
@@ -87,4 +91,20 @@ fun registerActivityResult(context: ComponentActivity){
backToHomeStateFlow.value = true
}
}
requestPermission = context.registerForActivityResult(ActivityResultContracts.RequestPermission()) { permissionGranted.value = it }
}
val permissionGranted = MutableStateFlow<Boolean?>(null)
suspend fun prepareForNotification(context: Context, action: ()->Unit) {
if(VERSION.SDK_INT >= 33) {
if(context.checkSelfPermission(Manifest.permission.POST_NOTIFICATIONS) == PackageManager.PERMISSION_GRANTED) {
action()
} else {
requestPermission.launch(Manifest.permission.POST_NOTIFICATIONS)
permissionGranted.collect { if(it == true) action() }
}
} else {
action()
}
}