use the Reminder activity for alarms too

This commit is contained in:
tibbi
2018-03-14 17:57:13 +01:00
parent 4fa13283c8
commit 516341bf1b
2 changed files with 31 additions and 10 deletions

View File

@ -3,10 +3,9 @@ package com.simplemobiletools.clock.activities
import android.os.Bundle import android.os.Bundle
import android.os.Handler import android.os.Handler
import com.simplemobiletools.clock.R import com.simplemobiletools.clock.R
import com.simplemobiletools.clock.extensions.config import com.simplemobiletools.clock.extensions.*
import com.simplemobiletools.clock.extensions.hideTimerNotification import com.simplemobiletools.clock.helpers.ALARM_ID
import com.simplemobiletools.clock.extensions.showOverLockscreen import com.simplemobiletools.clock.models.Alarm
import com.simplemobiletools.clock.extensions.showTimerNotification
import com.simplemobiletools.commons.extensions.getAdjustedPrimaryColor import com.simplemobiletools.commons.extensions.getAdjustedPrimaryColor
import com.simplemobiletools.commons.extensions.getColoredDrawableWithColor import com.simplemobiletools.commons.extensions.getColoredDrawableWithColor
import com.simplemobiletools.commons.extensions.updateTextColors import com.simplemobiletools.commons.extensions.updateTextColors
@ -14,6 +13,8 @@ import kotlinx.android.synthetic.main.activity_reminder.*
class ReminderActivity : SimpleActivity() { class ReminderActivity : SimpleActivity() {
private val hideNotificationHandler = Handler() private val hideNotificationHandler = Handler()
private var isAlarmReminder = false
private var alarm: Alarm? = null
override fun onCreate(savedInstanceState: Bundle?) { override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState) super.onCreate(savedInstanceState)
@ -21,25 +22,40 @@ class ReminderActivity : SimpleActivity() {
showOverLockscreen() showOverLockscreen()
updateTextColors(reminder_holder) updateTextColors(reminder_holder)
reminder_title.text = getString(R.string.timer) val id = intent.getIntExtra(ALARM_ID, -1)
reminder_text.text = getString(R.string.time_expired) isAlarmReminder = id != -1
if (id != -1) {
alarm = dbHelper.getAlarmWithId(id) ?: return
}
reminder_title.text = getString(if (isAlarmReminder) R.string.alarm else R.string.timer)
reminder_text.text = if (isAlarmReminder) getFormattedTime(alarm!!.timeInMinutes * 60, false, false) else getString(R.string.time_expired)
reminder_stop.background = resources.getColoredDrawableWithColor(R.drawable.circle_background_filled, getAdjustedPrimaryColor()) reminder_stop.background = resources.getColoredDrawableWithColor(R.drawable.circle_background_filled, getAdjustedPrimaryColor())
reminder_stop.setOnClickListener { reminder_stop.setOnClickListener {
finish() finish()
} }
Handler().postDelayed({ Handler().postDelayed({
showTimerNotification() if (isAlarmReminder) {
showAlarmNotification(alarm!!)
} else {
showTimerNotification()
}
val maxDuration = if (isAlarmReminder) config.alarmMaxReminderSecs else config.timerMaxReminderSecs
hideNotificationHandler.postDelayed({ hideNotificationHandler.postDelayed({
finish() finish()
}, config.timerMaxReminderSecs * 1000L) }, maxDuration * 1000L)
}, 1000L) }, 1000L)
} }
override fun onStop() { override fun onStop() {
super.onStop() super.onStop()
hideTimerNotification() if (isAlarmReminder) {
hideNotification(alarm?.id ?: 0)
} else {
hideTimerNotification()
}
hideNotificationHandler.removeCallbacksAndMessages(null) hideNotificationHandler.removeCallbacksAndMessages(null)
} }
} }

View File

@ -4,6 +4,7 @@ import android.content.BroadcastReceiver
import android.content.Context import android.content.Context
import android.content.Intent import android.content.Intent
import android.os.Handler import android.os.Handler
import com.simplemobiletools.clock.activities.ReminderActivity
import com.simplemobiletools.clock.extensions.* import com.simplemobiletools.clock.extensions.*
import com.simplemobiletools.clock.helpers.ALARM_ID import com.simplemobiletools.clock.helpers.ALARM_ID
@ -18,7 +19,11 @@ class AlarmReceiver : BroadcastReceiver() {
context.hideNotification(id) context.hideNotification(id)
}, context.config.alarmMaxReminderSecs * 1000L) }, context.config.alarmMaxReminderSecs * 1000L)
} else { } else {
Intent(context, ReminderActivity::class.java).apply {
addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
putExtra(ALARM_ID, id)
context.startActivity(this)
}
} }
} }
} }