handle dynamic snooze picker
This commit is contained in:
parent
241f527412
commit
244a137e5b
4 changed files with 31 additions and 6 deletions
|
@ -2,9 +2,32 @@ package com.simplemobiletools.clock.activities
|
||||||
|
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
import android.support.v7.app.AppCompatActivity
|
import android.support.v7.app.AppCompatActivity
|
||||||
|
import com.simplemobiletools.clock.extensions.config
|
||||||
|
import com.simplemobiletools.clock.extensions.dbHelper
|
||||||
|
import com.simplemobiletools.clock.extensions.hideNotification
|
||||||
|
import com.simplemobiletools.clock.extensions.setupAlarmClock
|
||||||
|
import com.simplemobiletools.clock.helpers.ALARM_ID
|
||||||
|
import com.simplemobiletools.commons.extensions.showPickIntervalDialog
|
||||||
|
|
||||||
class SnoozeReminderActivity : AppCompatActivity() {
|
class SnoozeReminderActivity : AppCompatActivity() {
|
||||||
override fun onCreate(savedInstanceState: Bundle?) {
|
override fun onCreate(savedInstanceState: Bundle?) {
|
||||||
super.onCreate(savedInstanceState)
|
super.onCreate(savedInstanceState)
|
||||||
|
val id = intent.getIntExtra(ALARM_ID, -1)
|
||||||
|
val alarm = dbHelper.getAlarmWithId(id) ?: return
|
||||||
|
hideNotification(id)
|
||||||
|
showPickIntervalDialog(config.snoozeTime, true, cancelCallback = { dialogCancelled() }) {
|
||||||
|
config.snoozeTime = it
|
||||||
|
setupAlarmClock(alarm, it * 60)
|
||||||
|
finishActivity()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun dialogCancelled() {
|
||||||
|
finishActivity()
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun finishActivity() {
|
||||||
|
finish()
|
||||||
|
overridePendingTransition(0, 0)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,6 +2,7 @@ package com.simplemobiletools.clock.extensions
|
||||||
|
|
||||||
import android.annotation.SuppressLint
|
import android.annotation.SuppressLint
|
||||||
import android.app.AlarmManager
|
import android.app.AlarmManager
|
||||||
|
import android.app.NotificationManager
|
||||||
import android.app.PendingIntent
|
import android.app.PendingIntent
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
import android.content.Intent
|
import android.content.Intent
|
||||||
|
@ -133,3 +134,8 @@ fun Context.cancelAlarmClock(alarm: Alarm) {
|
||||||
val alarmManager = getSystemService(Context.ALARM_SERVICE) as AlarmManager
|
val alarmManager = getSystemService(Context.ALARM_SERVICE) as AlarmManager
|
||||||
alarmManager.cancel(getPendingIntent(alarm))
|
alarmManager.cancel(getPendingIntent(alarm))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fun Context.hideNotification(id: Int) {
|
||||||
|
val manager = applicationContext.getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManager
|
||||||
|
manager.cancel(id)
|
||||||
|
}
|
||||||
|
|
|
@ -34,7 +34,6 @@ class AlarmReceiver : BroadcastReceiver() {
|
||||||
val notification = getNotification(context, pendingIntent, alarm)
|
val notification = getNotification(context, pendingIntent, alarm)
|
||||||
val notificationManager = context.getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManager
|
val notificationManager = context.getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManager
|
||||||
notificationManager.notify(alarm.id, notification)
|
notificationManager.notify(alarm.id, notification)
|
||||||
|
|
||||||
context.scheduleNextAlarm(alarm, false)
|
context.scheduleNextAlarm(alarm, false)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,11 +1,10 @@
|
||||||
package com.simplemobiletools.clock.services
|
package com.simplemobiletools.clock.services
|
||||||
|
|
||||||
import android.app.IntentService
|
import android.app.IntentService
|
||||||
import android.app.NotificationManager
|
|
||||||
import android.content.Context
|
|
||||||
import android.content.Intent
|
import android.content.Intent
|
||||||
import com.simplemobiletools.clock.extensions.config
|
import com.simplemobiletools.clock.extensions.config
|
||||||
import com.simplemobiletools.clock.extensions.dbHelper
|
import com.simplemobiletools.clock.extensions.dbHelper
|
||||||
|
import com.simplemobiletools.clock.extensions.hideNotification
|
||||||
import com.simplemobiletools.clock.extensions.setupAlarmClock
|
import com.simplemobiletools.clock.extensions.setupAlarmClock
|
||||||
import com.simplemobiletools.clock.helpers.ALARM_ID
|
import com.simplemobiletools.clock.helpers.ALARM_ID
|
||||||
|
|
||||||
|
@ -13,9 +12,7 @@ class SnoozeService : IntentService("Snooze") {
|
||||||
override fun onHandleIntent(intent: Intent) {
|
override fun onHandleIntent(intent: Intent) {
|
||||||
val id = intent.getIntExtra(ALARM_ID, -1)
|
val id = intent.getIntExtra(ALARM_ID, -1)
|
||||||
val alarm = dbHelper.getAlarmWithId(id) ?: return
|
val alarm = dbHelper.getAlarmWithId(id) ?: return
|
||||||
|
hideNotification(id)
|
||||||
setupAlarmClock(alarm, config.snoozeTime * 60)
|
setupAlarmClock(alarm, config.snoozeTime * 60)
|
||||||
|
|
||||||
val manager = applicationContext.getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManager
|
|
||||||
manager.cancel(alarm.id)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue