Removed time formatting function to avoid code duplication

This commit is contained in:
Rawlin C 2023-07-05 14:05:58 +05:30
parent 728c2b50b1
commit 8543f2dafe
4 changed files with 5 additions and 24 deletions

View File

@ -161,7 +161,6 @@ fun Context.setupAlarmClock(alarm: Alarm, triggerInSeconds: Int) {
fun Context.getEarlyAlarmDismissalIntent(alarm: Alarm): PendingIntent {
val intent = Intent(this, EarlyAlarmDismissalReceiver::class.java).apply {
putExtra(ALARM_ID, alarm.id)
putExtra(ALARM_TIME, alarm.timeInMinutes)
}
return PendingIntent.getBroadcast(this, EARLY_ALARM_DISMISSAL_INTENT_ID, intent, PendingIntent.FLAG_UPDATE_CURRENT or PendingIntent.FLAG_IMMUTABLE)
}

View File

@ -27,7 +27,6 @@ const val TABS_COUNT = 4
const val EDITED_TIME_ZONE_SEPARATOR = ":"
const val ALARM_ID = "alarm_id"
const val NOTIFICATION_ID = "notification_id"
const val ALARM_TIME = "alarm_time"
const val DEFAULT_ALARM_MINUTES = 480
const val DEFAULT_MAX_ALARM_REMINDER_SECS = 300
const val DEFAULT_MAX_TIMER_REMINDER_SECS = 60

View File

@ -37,7 +37,7 @@ class DismissAlarmReceiver : BroadcastReceiver() {
private fun scheduleNextAlarm(alarm: Alarm, context: Context) {
val oldBitmask = alarm.days
alarm.days = removeTodayFromBitmask(oldBitmask)
context.scheduleNextAlarm(alarm, true)
context.scheduleNextAlarm(alarm, false)
alarm.days = oldBitmask
}

View File

@ -10,6 +10,7 @@ import android.text.format.DateFormat
import androidx.core.app.NotificationCompat
import com.simplemobiletools.clock.R
import com.simplemobiletools.clock.extensions.getDismissAlarmPendingIntent
import com.simplemobiletools.clock.extensions.getNextAlarm
import com.simplemobiletools.clock.extensions.getOpenAlarmTabIntent
import com.simplemobiletools.clock.helpers.*
import com.simplemobiletools.commons.helpers.isOreoPlus
@ -24,11 +25,10 @@ class EarlyAlarmDismissalReceiver : BroadcastReceiver() {
return
}
val alarmTime = intent.getIntExtra(ALARM_TIME, -1)
triggerEarlyDismissalNotification(context, alarmTime, alarmId)
triggerEarlyDismissalNotification(context, alarmId)
}
private fun triggerEarlyDismissalNotification(context: Context, alarmTime: Int, alarmId: Int) {
private fun triggerEarlyDismissalNotification(context: Context, alarmId: Int) {
val notificationManager = context.getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManager
if (isOreoPlus()) {
NotificationChannel(EARLY_ALARM_DISMISSAL_CHANNEL_ID, context.getString(R.string.early_alarm_dismissal), NotificationManager.IMPORTANCE_DEFAULT).apply {
@ -42,7 +42,7 @@ class EarlyAlarmDismissalReceiver : BroadcastReceiver() {
val contentIntent = context.getOpenAlarmTabIntent()
val notification = NotificationCompat.Builder(context)
.setContentTitle(context.getString(R.string.upcoming_alarm))
.setContentText(getNotificationTimeString(alarmTime, context))
.setContentText(context.getNextAlarm())
.setSmallIcon(R.drawable.ic_alarm_vector)
.setPriority(Notification.PRIORITY_LOW)
.addAction(0, context.getString(R.string.dismiss), dismissIntent)
@ -55,21 +55,4 @@ class EarlyAlarmDismissalReceiver : BroadcastReceiver() {
notificationManager.notify(EARLY_ALARM_NOTIF_ID, notification)
}
/**
* Gets the time at which the alarm is going to fire.
* eg: "Sun 1:30 pm"
*/
private fun getNotificationTimeString(alarmTime: Int, context: Context): String {
val calendar = Calendar.getInstance()
val triggerTime = ((alarmTime - getCurrentDayMinutes()) * 60) - calendar.get(Calendar.SECOND)
val targetMs = System.currentTimeMillis() + (triggerTime * 1000)
val is24HourFormat = DateFormat.is24HourFormat(context)
val sdf = if (is24HourFormat) {
SimpleDateFormat("EEE HH:mm", Locale.getDefault())
} else {
SimpleDateFormat("EEE h:mm a", Locale.getDefault())
}
return sdf.format(Date(targetMs))
}
}