From 8e0552ca8d059cd0ccb8c2cfe961c279b62078df Mon Sep 17 00:00:00 2001 From: timklge <2026103+timklge@users.noreply.github.com> Date: Wed, 12 Mar 2025 20:45:45 +0100 Subject: [PATCH] Add new tones, different tone frequences between K2 and K3 for nicer tones on K3 (#35) * Add new tones, different tone frequences between K2 and K3 for nicer tones on K3 * Update changelog --- app/build.gradle.kts | 4 +- .../karooreminder/KarooReminderExtension.kt | 4 +- .../karooreminder/screens/DetailScreen.kt | 3 +- .../timklge/karooreminder/screens/Reminder.kt | 63 +++++++++++++++++-- 4 files changed, 63 insertions(+), 11 deletions(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index a60e867..ca762b5 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -71,9 +71,7 @@ tasks.register("generateManifest") { "latestVersionCode" to android.defaultConfig.versionCode, "developer" to "timklge", "description" to "Shows in-ride alerts after a given time interval, distance or HR / power / speed / cadence out of range", - "releaseNotes" to "* Enlarge trigger select\n" + - "* Increase tone frequency\n" + - "* Optimize build\n" + + "releaseNotes" to "* Add additional beep patterns for Karoo 3\n" + "* Add touchable back button", ) diff --git a/app/src/main/kotlin/de/timklge/karooreminder/KarooReminderExtension.kt b/app/src/main/kotlin/de/timklge/karooreminder/KarooReminderExtension.kt index 1302e7c..7a94829 100644 --- a/app/src/main/kotlin/de/timklge/karooreminder/KarooReminderExtension.kt +++ b/app/src/main/kotlin/de/timklge/karooreminder/KarooReminderExtension.kt @@ -10,6 +10,7 @@ import de.timklge.karooreminder.screens.preferencesKey import io.hammerhead.karooext.KarooSystemService import io.hammerhead.karooext.extension.KarooExtension import io.hammerhead.karooext.models.DataType +import io.hammerhead.karooext.models.HardwareType import io.hammerhead.karooext.models.InRideAlert import io.hammerhead.karooext.models.PlayBeepPattern import io.hammerhead.karooext.models.StreamState @@ -122,7 +123,8 @@ class KarooReminderExtension : KarooExtension("karoo-reminder", BuildConfig.VERS applicationContext.sendBroadcast(intent) if (displayedReminder.beepPattern != ReminderBeepPattern.NO_TONES) { - karooSystem.dispatch(PlayBeepPattern(displayedReminder.beepPattern.tones)) + val tones = if (karooSystem.hardwareType == HardwareType.K2) displayedReminder.beepPattern.tonesKaroo2 else displayedReminder.beepPattern.tonesKaroo3 + karooSystem.dispatch(PlayBeepPattern(tones)) mediaPlayer?.start() } karooSystem.dispatch(displayedReminder.alert) diff --git a/app/src/main/kotlin/de/timklge/karooreminder/screens/DetailScreen.kt b/app/src/main/kotlin/de/timklge/karooreminder/screens/DetailScreen.kt index 4b2af7c..b9ac66e 100644 --- a/app/src/main/kotlin/de/timklge/karooreminder/screens/DetailScreen.kt +++ b/app/src/main/kotlin/de/timklge/karooreminder/screens/DetailScreen.kt @@ -63,6 +63,7 @@ import de.timklge.karooreminder.R import de.timklge.karooreminder.ReminderTrigger import de.timklge.karooreminder.streamUserProfile import io.hammerhead.karooext.KarooSystemService +import io.hammerhead.karooext.models.HardwareType import io.hammerhead.karooext.models.PlayBeepPattern import io.hammerhead.karooext.models.UserProfile @@ -326,7 +327,7 @@ fun DetailScreen(isCreating: Boolean, reminder: Reminder, onSubmit: (updatedRemi .fillMaxWidth(), verticalArrangement = Arrangement.spacedBy(10.dp)) { ReminderBeepPattern.entries.forEach { pattern -> - val tones = pattern.tones + val tones = if (karooSystem.hardwareType == HardwareType.K2) pattern.tonesKaroo2 else pattern.tonesKaroo3 Row(modifier = Modifier .fillMaxWidth() diff --git a/app/src/main/kotlin/de/timklge/karooreminder/screens/Reminder.kt b/app/src/main/kotlin/de/timklge/karooreminder/screens/Reminder.kt index 9c72e0b..1677785 100644 --- a/app/src/main/kotlin/de/timklge/karooreminder/screens/Reminder.kt +++ b/app/src/main/kotlin/de/timklge/karooreminder/screens/Reminder.kt @@ -11,10 +11,14 @@ import kotlinx.serialization.encodeToString import kotlinx.serialization.json.Json @Serializable -enum class ReminderBeepPattern(val displayName: String, val tones: List) { - NO_TONES("No tones", emptyList()), - THREE_TONES_UP("Three tones up", listOf(PlayBeepPattern.Tone(4_000, 500), PlayBeepPattern.Tone(5_000, 500), PlayBeepPattern.Tone(6_000, 500))), - THREE_TONES_DOWN("Three tones down", listOf(PlayBeepPattern.Tone(6_000, 500), PlayBeepPattern.Tone(5_000, 500), PlayBeepPattern.Tone(4_000, 500))), +enum class ReminderBeepPattern(val displayName: String, val tonesKaroo2: List, val tonesKaroo3: List) { + NO_TONES("No tones", emptyList(), emptyList()), + THREE_TONES_UP("Three tones up", + listOf(PlayBeepPattern.Tone(4_000, 500), PlayBeepPattern.Tone(5_000, 500), PlayBeepPattern.Tone(6_000, 500)), + listOf(PlayBeepPattern.Tone(2_000, 250), PlayBeepPattern.Tone(2_500, 250), PlayBeepPattern.Tone(3_000, 250))), + THREE_TONES_DOWN("Three tones down", + listOf(PlayBeepPattern.Tone(6_000, 500), PlayBeepPattern.Tone(5_000, 500), PlayBeepPattern.Tone(4_000, 500)), + listOf(PlayBeepPattern.Tone(3_000, 250), PlayBeepPattern.Tone(2_500, 250), PlayBeepPattern.Tone(2_000, 250))), DOUBLE_HIGH("Double high", listOf( PlayBeepPattern.Tone(4_000, 500), PlayBeepPattern.Tone(0, 200), @@ -22,7 +26,16 @@ enum class ReminderBeepPattern(val displayName: String, val tones: List