fix: use alarm audio stream for alarm sound

Closes: #63
This commit is contained in:
Nishant Mishra
2025-10-08 21:22:36 +05:30
parent bab70e6de1
commit 84daa547d8

View File

@@ -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
}
}
}