From 84daa547d8322f8b630036f0232c6e56a904b6af Mon Sep 17 00:00:00 2001 From: Nishant Mishra Date: Wed, 8 Oct 2025 21:22:36 +0530 Subject: [PATCH] fix: use alarm audio stream for alarm sound Closes: #63 --- .../nsh07/pomodoro/service/TimerService.kt | 27 ++++++++++++++++--- 1 file changed, 24 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/org/nsh07/pomodoro/service/TimerService.kt b/app/src/main/java/org/nsh07/pomodoro/service/TimerService.kt index 595efae..07de4c2 100644 --- a/app/src/main/java/org/nsh07/pomodoro/service/TimerService.kt +++ b/app/src/main/java/org/nsh07/pomodoro/service/TimerService.kt @@ -3,6 +3,7 @@ package org.nsh07.pomodoro.service import android.annotation.SuppressLint import android.app.Service import android.content.Intent +import android.media.AudioAttributes import android.media.MediaPlayer import android.os.Build import android.os.IBinder @@ -78,7 +79,7 @@ class TimerService : Service() { override fun onCreate() { super.onCreate() timerRepository.serviceRunning = true - alarm = MediaPlayer.create(this, timerRepository.alarmSoundUri) + alarm = initializeMediaPlayer() } override fun onDestroy() { @@ -387,9 +388,29 @@ class TimerService : Service() { ) } + private fun initializeMediaPlayer(): MediaPlayer? { + return try { + MediaPlayer().apply { + setAudioAttributes( + AudioAttributes.Builder() + .setContentType(AudioAttributes.CONTENT_TYPE_MUSIC) + .setUsage(AudioAttributes.USAGE_ALARM) + .build() + ) + timerRepository.alarmSoundUri?.let { + setDataSource(applicationContext, it) + prepare() + } + } + } catch (e: Exception) { + e.printStackTrace() + null + } + } + fun updateAlarmTone() { alarm?.release() - alarm = MediaPlayer.create(this, timerRepository.alarmSoundUri) + alarm = initializeMediaPlayer() } suspend fun saveTimeToDb() { @@ -417,4 +438,4 @@ class TimerService : Service() { enum class Actions { TOGGLE, SKIP, RESET, STOP_ALARM, UPDATE_ALARM_TONE } -} \ No newline at end of file +}