fix #6: Add alert sound for bluetooth playback

This commit is contained in:
Tim Kluge 2024-12-04 22:35:28 +01:00
parent a7310220e5
commit 1b7a2457d0
5 changed files with 16 additions and 9 deletions

View File

@ -16,9 +16,10 @@ extensions like this. Until it is available, you can sideload the app.
2. Set up your Karoo for sideloading. DC Rainmaker has a great [step-by-step guide](https://www.dcrainmaker.com/2021/02/how-to-sideload-android-apps-on-your-hammerhead-karoo-1-karoo-2.html). 2. Set up your Karoo for sideloading. DC Rainmaker has a great [step-by-step guide](https://www.dcrainmaker.com/2021/02/how-to-sideload-android-apps-on-your-hammerhead-karoo-1-karoo-2.html).
3. Install the app by running `adb install app-release.apk`. 3. Install the app by running `adb install app-release.apk`.
## Icon ## Credits
Icon is `timers` by [boxicons.com](https://boxicons.com) (MIT-licensed). - Icon is `timers` by [boxicons.com](https://boxicons.com) (MIT-licensed).
- Reminder sound played over bluetooth is `SweetAlertSound5.wav` by `KIZILSUNGUR` from [freesound.org](https://freesound.org/people/KIZILSUNGUR/sounds/72129/) (CC0).
## Links ## Links

View File

@ -13,8 +13,8 @@ android {
applicationId = "de.timklge.karooreminder" applicationId = "de.timklge.karooreminder"
minSdk = 26 minSdk = 26
targetSdk = 34 targetSdk = 34
versionCode = 4 versionCode = 5
versionName = "1.0.3" versionName = "1.0.4"
} }
buildTypes { buildTypes {

View File

@ -3,9 +3,9 @@
"packageName": "de.timklge.karooreminder", "packageName": "de.timklge.karooreminder",
"iconUrl": "https://github.com/timklge/karoo-reminder/releases/latest/download/karoo-reminder.png", "iconUrl": "https://github.com/timklge/karoo-reminder/releases/latest/download/karoo-reminder.png",
"latestApkUrl": "https://github.com/timklge/karoo-reminder/releases/latest/download/app-release.apk", "latestApkUrl": "https://github.com/timklge/karoo-reminder/releases/latest/download/app-release.apk",
"latestVersion": "1.0.3", "latestVersion": "1.0.4",
"latestVersionCode": 4, "latestVersionCode": 5,
"developer": "timklge", "developer": "timklge",
"description": "Simple karoo extension that shows in-ride alerts every X minutes", "description": "Simple karoo extension that shows in-ride alerts every X minutes",
"releaseNotes": "Added display duration setting" "releaseNotes": "Added display duration setting, bluetooth alert sound"
} }

View File

@ -1,5 +1,6 @@
package de.timklge.karooreminder package de.timklge.karooreminder
import android.media.MediaPlayer
import android.util.Log import android.util.Log
import de.timklge.karooreminder.screens.Reminder import de.timklge.karooreminder.screens.Reminder
import de.timklge.karooreminder.screens.ReminderBeepPattern import de.timklge.karooreminder.screens.ReminderBeepPattern
@ -25,7 +26,7 @@ import kotlinx.coroutines.flow.mapNotNull
import kotlinx.coroutines.launch import kotlinx.coroutines.launch
import kotlinx.serialization.json.Json import kotlinx.serialization.json.Json
class KarooReminderExtension : KarooExtension("karoo-reminder", "1.0.3") { class KarooReminderExtension : KarooExtension("karoo-reminder", "1.0.4") {
companion object { companion object {
const val TAG = "karoo-reminder" const val TAG = "karoo-reminder"
@ -40,6 +41,8 @@ class KarooReminderExtension : KarooExtension("karoo-reminder", "1.0.3") {
karooSystem = KarooSystemService(applicationContext) karooSystem = KarooSystemService(applicationContext)
val mediaPlayer = MediaPlayer.create(this, R.raw.reminder)
serviceJob = CoroutineScope(Dispatchers.IO).launch { serviceJob = CoroutineScope(Dispatchers.IO).launch {
karooSystem.connect { connected -> karooSystem.connect { connected ->
if (connected) { if (connected) {
@ -71,7 +74,10 @@ class KarooReminderExtension : KarooExtension("karoo-reminder", "1.0.3") {
.forEach { reminder -> .forEach { reminder ->
karooSystem.dispatch(TurnScreenOn) karooSystem.dispatch(TurnScreenOn)
delay(1_000) delay(1_000)
if (reminder.tone != ReminderBeepPattern.NO_TONES) karooSystem.dispatch(PlayBeepPattern(reminder.tone.tones)) if (reminder.tone != ReminderBeepPattern.NO_TONES){
karooSystem.dispatch(PlayBeepPattern(reminder.tone.tones))
mediaPlayer.start()
}
karooSystem.dispatch( karooSystem.dispatch(
InRideAlert( InRideAlert(
id = "reminder-${reminder.id}-${elapsedMinutes}", id = "reminder-${reminder.id}-${elapsedMinutes}",

Binary file not shown.