From d8f4906afb5ffd35d38ca0a9c2160295dc96e9fb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sylwester=20Zieli=C5=84ski?= Date: Tue, 3 May 2022 10:55:23 +0200 Subject: [PATCH] Change alarm sound for medium and high levels --- .../android/prx/repository/AlarmHandler.kt | 30 +++++++++++-------- 1 file changed, 18 insertions(+), 12 deletions(-) diff --git a/profile_prx/src/main/java/no/nordicsemi/android/prx/repository/AlarmHandler.kt b/profile_prx/src/main/java/no/nordicsemi/android/prx/repository/AlarmHandler.kt index 9b4bc16a..bf54fb27 100644 --- a/profile_prx/src/main/java/no/nordicsemi/android/prx/repository/AlarmHandler.kt +++ b/profile_prx/src/main/java/no/nordicsemi/android/prx/repository/AlarmHandler.kt @@ -12,23 +12,29 @@ internal class AlarmHandler @Inject constructor( private val context: Context ) { - private val ringtone = RingtoneManager.getRingtone(context, RingtoneManager.getDefaultUri(RingtoneManager.TYPE_RINGTONE)) + private val highLevelRingtone = RingtoneManager.getRingtone(context, RingtoneManager.getDefaultUri(RingtoneManager.TYPE_ALARM)).apply { + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) { + volume = 1f + } + } + + private val mediumLevelRingtone = RingtoneManager.getRingtone(context, RingtoneManager.getDefaultUri(RingtoneManager.TYPE_RINGTONE)).apply { + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) { + volume = 0.5f + } + } fun playAlarm(alarmLevel: AlarmLevel) { - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) { - ringtone.volume = when (alarmLevel) { - AlarmLevel.NONE -> 0f - AlarmLevel.MEDIUM -> 0.5f - AlarmLevel.HIGH -> 1f - } + val ringtone = when (alarmLevel) { + AlarmLevel.NONE -> null + AlarmLevel.MEDIUM -> mediumLevelRingtone + AlarmLevel.HIGH -> highLevelRingtone } - - ringtone.play() + ringtone?.play() } fun pauseAlarm() { - if (ringtone.isPlaying) { - ringtone.stop() - } + highLevelRingtone.takeIf { it.isPlaying }?.stop() + mediumLevelRingtone.takeIf { it.isPlaying }?.stop() } }