mirror of
https://github.com/SimpleMobileTools/Simple-Clock.git
synced 2025-02-21 22:27:50 +01:00
add handling for the Post Notifications permission on Android 13
This commit is contained in:
parent
c196d5c1f8
commit
f365e92f15
@ -11,6 +11,7 @@
|
|||||||
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
|
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
|
||||||
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
|
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
|
||||||
<uses-permission android:name="android.permission.WAKE_LOCK" />
|
<uses-permission android:name="android.permission.WAKE_LOCK" />
|
||||||
|
<uses-permission android:name="android.permission.POST_NOTIFICATIONS" />
|
||||||
|
|
||||||
<uses-permission
|
<uses-permission
|
||||||
android:name="android.permission.ACCESS_NETWORK_STATE"
|
android:name="android.permission.ACCESS_NETWORK_STATE"
|
||||||
|
@ -118,11 +118,17 @@ class TimerAdapter(
|
|||||||
|
|
||||||
timer_play_pause.applyColorFilter(textColor)
|
timer_play_pause.applyColorFilter(textColor)
|
||||||
timer_play_pause.setOnClickListener {
|
timer_play_pause.setOnClickListener {
|
||||||
when (val state = timer.state) {
|
(activity as SimpleActivity).handleNotificationPermission {
|
||||||
is TimerState.Idle -> EventBus.getDefault().post(TimerEvent.Start(timer.id!!, timer.seconds.secondsToMillis))
|
if (it) {
|
||||||
is TimerState.Paused -> EventBus.getDefault().post(TimerEvent.Start(timer.id!!, state.tick))
|
when (val state = timer.state) {
|
||||||
is TimerState.Running -> EventBus.getDefault().post(TimerEvent.Pause(timer.id!!, state.tick))
|
is TimerState.Idle -> EventBus.getDefault().post(TimerEvent.Start(timer.id!!, timer.seconds.secondsToMillis))
|
||||||
is TimerState.Finished -> EventBus.getDefault().post(TimerEvent.Start(timer.id!!, timer.seconds.secondsToMillis))
|
is TimerState.Paused -> EventBus.getDefault().post(TimerEvent.Start(timer.id!!, state.tick))
|
||||||
|
is TimerState.Running -> EventBus.getDefault().post(TimerEvent.Pause(timer.id!!, state.tick))
|
||||||
|
is TimerState.Finished -> EventBus.getDefault().post(TimerEvent.Start(timer.id!!, timer.seconds.secondsToMillis))
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
activity.toast(R.string.no_post_notifications_permissions)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -130,20 +130,26 @@ class EditAlarmDialog(val activity: SimpleActivity, val alarm: Alarm, val callba
|
|||||||
alarm.isEnabled = true
|
alarm.isEnabled = true
|
||||||
|
|
||||||
var alarmId = alarm.id
|
var alarmId = alarm.id
|
||||||
if (alarm.id == 0) {
|
activity.handleNotificationPermission {
|
||||||
alarmId = activity.dbHelper.insertAlarm(alarm)
|
if (it) {
|
||||||
if (alarmId == -1) {
|
if (alarm.id == 0) {
|
||||||
activity.toast(R.string.unknown_error_occurred)
|
alarmId = activity.dbHelper.insertAlarm(alarm)
|
||||||
}
|
if (alarmId == -1) {
|
||||||
} else {
|
activity.toast(R.string.unknown_error_occurred)
|
||||||
if (!activity.dbHelper.updateAlarm(alarm)) {
|
}
|
||||||
activity.toast(R.string.unknown_error_occurred)
|
} else {
|
||||||
|
if (!activity.dbHelper.updateAlarm(alarm)) {
|
||||||
|
activity.toast(R.string.unknown_error_occurred)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
activity.config.alarmLastConfig = alarm
|
||||||
|
callback(alarmId)
|
||||||
|
alertDialog.dismiss()
|
||||||
|
} else {
|
||||||
|
activity.toast(R.string.no_post_notifications_permissions)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
activity.config.alarmLastConfig = alarm
|
|
||||||
callback(alarmId)
|
|
||||||
alertDialog.dismiss()
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -122,14 +122,20 @@ class AlarmFragment : Fragment(), ToggleAlarmInterface {
|
|||||||
}
|
}
|
||||||
|
|
||||||
override fun alarmToggled(id: Int, isEnabled: Boolean) {
|
override fun alarmToggled(id: Int, isEnabled: Boolean) {
|
||||||
if (requireContext().dbHelper.updateAlarmEnabledState(id, isEnabled)) {
|
(activity as SimpleActivity).handleNotificationPermission {
|
||||||
val alarm = alarms.firstOrNull { it.id == id } ?: return
|
if (it) {
|
||||||
alarm.isEnabled = isEnabled
|
if (requireContext().dbHelper.updateAlarmEnabledState(id, isEnabled)) {
|
||||||
checkAlarmState(alarm)
|
val alarm = alarms.firstOrNull { it.id == id } ?: return@handleNotificationPermission
|
||||||
} else {
|
alarm.isEnabled = isEnabled
|
||||||
requireActivity().toast(R.string.unknown_error_occurred)
|
checkAlarmState(alarm)
|
||||||
|
} else {
|
||||||
|
requireActivity().toast(R.string.unknown_error_occurred)
|
||||||
|
}
|
||||||
|
requireContext().updateWidgets()
|
||||||
|
} else {
|
||||||
|
activity?.toast(R.string.no_post_notifications_permissions)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
requireContext().updateWidgets()
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun checkAlarmState(alarm: Alarm) {
|
private fun checkAlarmState(alarm: Alarm) {
|
||||||
|
@ -119,10 +119,15 @@ class StopwatchFragment : Fragment() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private fun togglePlayPause() {
|
private fun togglePlayPause() {
|
||||||
Stopwatch.toggle(true)
|
(activity as SimpleActivity).handleNotificationPermission {
|
||||||
|
if (it) {
|
||||||
|
Stopwatch.toggle(true)
|
||||||
|
} else {
|
||||||
|
activity?.toast(R.string.no_post_notifications_permissions)
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private fun updateDisplayedText(totalTime: Long, lapTime: Long, useLongerMSFormat: Boolean) {
|
private fun updateDisplayedText(totalTime: Long, lapTime: Long, useLongerMSFormat: Boolean) {
|
||||||
view.stopwatch_time.text = totalTime.formatStopwatchTime(useLongerMSFormat)
|
view.stopwatch_time.text = totalTime.formatStopwatchTime(useLongerMSFormat)
|
||||||
if (Stopwatch.laps.isNotEmpty() && lapTime != -1L) {
|
if (Stopwatch.laps.isNotEmpty() && lapTime != -1L) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user