From dc4c6358da0d685dd632c90df171b9b465b30db9 Mon Sep 17 00:00:00 2001 From: Rawlin C Date: Sat, 24 Jun 2023 18:31:43 +0530 Subject: [PATCH 1/2] Setting max alarm volume to max volume of STREAM_ALARM instead of 1f --- .../clock/activities/ReminderActivity.kt | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/app/src/main/kotlin/com/simplemobiletools/clock/activities/ReminderActivity.kt b/app/src/main/kotlin/com/simplemobiletools/clock/activities/ReminderActivity.kt index 880e2a31..bf5db25a 100644 --- a/app/src/main/kotlin/com/simplemobiletools/clock/activities/ReminderActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/clock/activities/ReminderActivity.kt @@ -168,8 +168,14 @@ class ReminderActivity : SimpleActivity() { } private fun setupEffects() { + val maxAlarmStreamVolume = try { + val audioManager = getSystemService(Context.AUDIO_SERVICE) as AudioManager + audioManager.getStreamMaxVolume(AudioManager.STREAM_ALARM).toFloat().div(100) + } catch (t: Throwable) { + 1f + } if (!isAlarmReminder || !config.increaseVolumeGradually) { - lastVolumeValue = 1f + lastVolumeValue = maxAlarmStreamVolume } val doVibrate = if (alarm != null) alarm!!.vibrate else config.timerVibrate @@ -197,18 +203,18 @@ class ReminderActivity : SimpleActivity() { } if (config.increaseVolumeGradually) { - scheduleVolumeIncrease() + scheduleVolumeIncrease(maxAlarmStreamVolume) } } catch (e: Exception) { } } } - private fun scheduleVolumeIncrease() { + private fun scheduleVolumeIncrease(maxVolume: Float) { increaseVolumeHandler.postDelayed({ - lastVolumeValue = Math.min(lastVolumeValue + 0.1f, 1f) + lastVolumeValue = (lastVolumeValue + 0.1f).coerceAtMost(maxVolume) mediaPlayer?.setVolume(lastVolumeValue, lastVolumeValue) - scheduleVolumeIncrease() + scheduleVolumeIncrease(maxVolume) }, INCREASE_VOLUME_DELAY) } From f8b3119159b431c012ce9e1a120671c94e540f35 Mon Sep 17 00:00:00 2001 From: Rawlin C Date: Wed, 28 Jun 2023 00:11:02 +0530 Subject: [PATCH 2/2] Alarm volume refactoring --- .../clock/activities/ReminderActivity.kt | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/app/src/main/kotlin/com/simplemobiletools/clock/activities/ReminderActivity.kt b/app/src/main/kotlin/com/simplemobiletools/clock/activities/ReminderActivity.kt index bf5db25a..c3a8d324 100644 --- a/app/src/main/kotlin/com/simplemobiletools/clock/activities/ReminderActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/clock/activities/ReminderActivity.kt @@ -28,7 +28,8 @@ import com.simplemobiletools.commons.helpers.isOreoPlus import kotlinx.android.synthetic.main.activity_reminder.* class ReminderActivity : SimpleActivity() { - private val INCREASE_VOLUME_DELAY = 3000L + private val INCREASE_VOLUME_DELAY = 300L + private val MAX_VOL = 10f // max volume set to level 10 private val increaseVolumeHandler = Handler() private val maxReminderDurationHandler = Handler() @@ -37,6 +38,7 @@ class ReminderActivity : SimpleActivity() { private var didVibrate = false private var wasAlarmSnoozed = false private var alarm: Alarm? = null + private var audioManager: AudioManager? = null private var mediaPlayer: MediaPlayer? = null private var vibrator: Vibrator? = null private var lastVolumeValue = 0.1f @@ -168,14 +170,10 @@ class ReminderActivity : SimpleActivity() { } private fun setupEffects() { - val maxAlarmStreamVolume = try { - val audioManager = getSystemService(Context.AUDIO_SERVICE) as AudioManager - audioManager.getStreamMaxVolume(AudioManager.STREAM_ALARM).toFloat().div(100) - } catch (t: Throwable) { - 1f - } + audioManager = getSystemService(Context.AUDIO_SERVICE) as AudioManager + if (!isAlarmReminder || !config.increaseVolumeGradually) { - lastVolumeValue = maxAlarmStreamVolume + lastVolumeValue = MAX_VOL } val doVibrate = if (alarm != null) alarm!!.vibrate else config.timerVibrate @@ -203,7 +201,7 @@ class ReminderActivity : SimpleActivity() { } if (config.increaseVolumeGradually) { - scheduleVolumeIncrease(maxAlarmStreamVolume) + scheduleVolumeIncrease(MAX_VOL) } } catch (e: Exception) { } @@ -213,7 +211,7 @@ class ReminderActivity : SimpleActivity() { private fun scheduleVolumeIncrease(maxVolume: Float) { increaseVolumeHandler.postDelayed({ lastVolumeValue = (lastVolumeValue + 0.1f).coerceAtMost(maxVolume) - mediaPlayer?.setVolume(lastVolumeValue, lastVolumeValue) + audioManager?.setStreamVolume(AudioManager.STREAM_ALARM, lastVolumeValue.toInt(), 0) scheduleVolumeIncrease(maxVolume) }, INCREASE_VOLUME_DELAY) }