Ensure exact alarm permission before sending scheduled/delayed messages

This commit is contained in:
Moez Bhatti
2022-12-14 17:01:56 -05:00
parent c1483d2c93
commit c31d38905b
4 changed files with 41 additions and 8 deletions
@@ -19,6 +19,7 @@
package com.moez.QKSMS.manager
import android.Manifest
import android.app.AlarmManager
import android.app.NotificationManager
import android.app.role.RoleManager
import android.content.Context
@@ -71,6 +72,15 @@ class PermissionManagerImpl @Inject constructor(private val context: Context) :
return hasPermission(Manifest.permission.WRITE_EXTERNAL_STORAGE)
}
override fun hasExactAlarms(): Boolean {
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.S) {
return true
}
val alarmManager = context.getSystemService(AlarmManager::class.java)
return alarmManager.canScheduleExactAlarms()
}
private fun hasPermission(permission: String): Boolean {
return ContextCompat.checkSelfPermission(context, permission) == PackageManager.PERMISSION_GRANTED
}