Remove USE_EXACT_ALARM permission.

It's only available to Clock and Calendar apps.
This commit is contained in:
Naveen
2024-04-14 22:51:03 +05:30
parent ec70f71323
commit de9bf192c2
3 changed files with 32 additions and 8 deletions

View File

@@ -8,7 +8,6 @@
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.SCHEDULE_EXACT_ALARM" />
<uses-permission android:name="android.permission.USE_EXACT_ALARM" />
<uses-feature
android:name="android.hardware.faketouch"

View File

@@ -1,5 +1,6 @@
package org.fossify.notes.activities
import android.app.AlarmManager
import android.content.Intent
import android.net.Uri
import android.os.Bundle
@@ -11,11 +12,13 @@ import kotlinx.serialization.SerializationException
import kotlinx.serialization.encodeToString
import kotlinx.serialization.json.Json
import org.fossify.commons.dialogs.ConfirmationDialog
import org.fossify.commons.dialogs.PermissionRequiredDialog
import org.fossify.commons.dialogs.RadioGroupDialog
import org.fossify.commons.dialogs.SecurityDialog
import org.fossify.commons.extensions.*
import org.fossify.commons.helpers.*
import org.fossify.commons.models.RadioItem
import org.fossify.notes.BuildConfig
import org.fossify.notes.R
import org.fossify.notes.databinding.ActivitySettingsBinding
import org.fossify.notes.dialogs.ExportNotesDialog
@@ -368,13 +371,15 @@ class SettingsActivity : SimpleActivity() {
binding.settingsEnableAutomaticBackupsHolder.setOnClickListener {
val wasBackupDisabled = !config.autoBackup
if (wasBackupDisabled) {
ManageAutoBackupsDialog(
activity = this,
onSuccess = {
enableOrDisableAutomaticBackups(true)
scheduleNextAutomaticBackup()
}
)
maybeRequestExactAlarmPermission {
ManageAutoBackupsDialog(
activity = this,
onSuccess = {
enableOrDisableAutomaticBackups(true)
scheduleNextAutomaticBackup()
}
)
}
} else {
cancelScheduledAutomaticBackup()
enableOrDisableAutomaticBackups(false)
@@ -400,6 +405,25 @@ class SettingsActivity : SimpleActivity() {
binding.settingsManageAutomaticBackupsHolder.beVisibleIf(enable)
}
private fun maybeRequestExactAlarmPermission(callback: () -> Unit = {}) {
if (isSPlus()) {
val alarmManager: AlarmManager = getSystemService(ALARM_SERVICE) as AlarmManager
if (alarmManager.canScheduleExactAlarms()) {
callback()
} else {
PermissionRequiredDialog(
activity = this,
textId = R.string.allow_alarm_automatic_backups,
positiveActionCallback = {
openRequestExactAlarmSettings(BuildConfig.APPLICATION_ID)
},
)
}
} else {
callback()
}
}
private fun setupAppPasswordProtection() {
binding.settingsAppPasswordProtection.isChecked = config.isAppPasswordProtectionOn
binding.settingsAppPasswordProtectionHolder.setOnClickListener {

View File

@@ -29,6 +29,7 @@
<string name="new_text_note">New text note</string>
<string name="new_checklist">New checklist</string>
<string name="cannot_load_over_internet">The app cannot load files over the internet</string>
<string name="allow_alarm_automatic_backups">To backup notes automatically, please grant the app permission to schedule exact alarms.</string>
<!-- File notes -->
<string name="open_file">Open file</string>