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..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,8 +170,10 @@ class ReminderActivity : SimpleActivity() { } private fun setupEffects() { + audioManager = getSystemService(Context.AUDIO_SERVICE) as AudioManager + if (!isAlarmReminder || !config.increaseVolumeGradually) { - lastVolumeValue = 1f + lastVolumeValue = MAX_VOL } val doVibrate = if (alarm != null) alarm!!.vibrate else config.timerVibrate @@ -197,18 +201,18 @@ class ReminderActivity : SimpleActivity() { } if (config.increaseVolumeGradually) { - scheduleVolumeIncrease() + scheduleVolumeIncrease(MAX_VOL) } } catch (e: Exception) { } } } - private fun scheduleVolumeIncrease() { + private fun scheduleVolumeIncrease(maxVolume: Float) { increaseVolumeHandler.postDelayed({ - lastVolumeValue = Math.min(lastVolumeValue + 0.1f, 1f) - mediaPlayer?.setVolume(lastVolumeValue, lastVolumeValue) - scheduleVolumeIncrease() + lastVolumeValue = (lastVolumeValue + 0.1f).coerceAtMost(maxVolume) + audioManager?.setStreamVolume(AudioManager.STREAM_ALARM, lastVolumeValue.toInt(), 0) + scheduleVolumeIncrease(maxVolume) }, INCREASE_VOLUME_DELAY) }