fix #8: Add delay between reminders triggered at the same time
This commit is contained in:
parent
9ab7a85ab1
commit
85012bf228
@ -13,8 +13,8 @@ android {
|
||||
applicationId = "de.timklge.karooreminder"
|
||||
minSdk = 26
|
||||
targetSdk = 34
|
||||
versionCode = 6
|
||||
versionName = "1.0.5"
|
||||
versionCode = 7
|
||||
versionName = "1.0.6"
|
||||
}
|
||||
|
||||
buildTypes {
|
||||
|
||||
@ -3,8 +3,8 @@
|
||||
"packageName": "de.timklge.karooreminder",
|
||||
"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",
|
||||
"latestVersion": "1.0.5",
|
||||
"latestVersionCode": 6,
|
||||
"latestVersion": "1.0.6",
|
||||
"latestVersionCode": 7,
|
||||
"developer": "timklge",
|
||||
"description": "Simple karoo extension that shows in-ride alerts every X minutes",
|
||||
"releaseNotes": "Added display duration setting, bluetooth alert sound"
|
||||
|
||||
@ -18,6 +18,7 @@ import kotlinx.coroutines.CoroutineScope
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
import kotlinx.coroutines.Job
|
||||
import kotlinx.coroutines.delay
|
||||
import kotlinx.coroutines.flow.collectLatest
|
||||
import kotlinx.coroutines.flow.combine
|
||||
import kotlinx.coroutines.flow.distinctUntilChanged
|
||||
import kotlinx.coroutines.flow.drop
|
||||
@ -27,7 +28,7 @@ import kotlinx.coroutines.flow.mapNotNull
|
||||
import kotlinx.coroutines.launch
|
||||
import kotlinx.serialization.json.Json
|
||||
|
||||
class KarooReminderExtension : KarooExtension("karoo-reminder", "1.0.5") {
|
||||
class KarooReminderExtension : KarooExtension("karoo-reminder", "1.0.6") {
|
||||
|
||||
companion object {
|
||||
const val TAG = "karoo-reminder"
|
||||
@ -69,10 +70,11 @@ class KarooReminderExtension : KarooExtension("karoo-reminder", "1.0.5") {
|
||||
.filterNot { it == 0 }
|
||||
.combine(preferences) { elapsedMinutes, reminders -> elapsedMinutes to reminders}
|
||||
.distinctUntilChanged { old, new -> old.first == new.first }
|
||||
.collect { (elapsedMinutes, reminders) ->
|
||||
reminders
|
||||
.collectLatest { (elapsedMinutes, reminders) ->
|
||||
val rs = reminders
|
||||
.filter { reminder -> reminder.isActive && elapsedMinutes % reminder.interval == 0 }
|
||||
.forEach { reminder ->
|
||||
|
||||
for (reminder in rs){
|
||||
karooSystem.dispatch(TurnScreenOn)
|
||||
|
||||
val intent = Intent("de.timklge.HIDE_POWERBAR").apply {
|
||||
@ -98,6 +100,9 @@ class KarooReminderExtension : KarooExtension("karoo-reminder", "1.0.5") {
|
||||
backgroundColor = reminder.getResourceColor(applicationContext)
|
||||
),
|
||||
)
|
||||
|
||||
val delayMs = if(reminder.isAutoDismiss) reminder.autoDismissSeconds * 1000L else 20000L
|
||||
delay(delayMs)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user