Skip to content

Commit

Permalink
Improvements From Massive Adaptation
Browse files Browse the repository at this point in the history
Fixed TimerHandler Delay getDelay()
Fixed vibrate not stopping sometimes
  • Loading branch information
josephnglynn committed Mar 11, 2024
1 parent 692d951 commit 5e05e85
Showing 1 changed file with 13 additions and 7 deletions.
20 changes: 13 additions & 7 deletions android/app/src/main/kotlin/com/presley/flexify/TimerService.kt
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,9 @@ class TimerService : Service() {
object : BroadcastReceiver() {
override fun onReceive(context: Context?, intent: Intent?) {
Log.d("TimerService", "Received add broadcast intent")
mediaPlayer?.stop()
vibrator?.cancel()

val timeStamp = intent?.getLongExtra("timeStamp", 0)
if (flexifyTimer.isExpired()) return startTimer(
FlexifyTimer.ONE_MINUTE_MILLI,
Expand All @@ -71,8 +74,7 @@ class TimerService : Service() {

flexifyTimer.increaseDuration(applicationContext, FlexifyTimer.ONE_MINUTE_MILLI)
updateNotification(flexifyTimer.getRemainingSeconds())
mediaPlayer?.stop()
vibrator?.cancel()

if (intent != null && intent.action == ADD_BROADCAST_INTERNAL) updateAppUI()
}
}
Expand Down Expand Up @@ -124,12 +126,15 @@ class TimerService : Service() {
fun updateTimerNotificationRefreshRate() {
timerRunnable?.let {
timerHandler.removeCallbacks(it)
timerHandler.postDelayed(it, getDelay())
timerHandler.postDelayed(it, getDelay(SystemClock.elapsedRealtime()))
}
}

private fun getDelay(): Long {
return if (mainActivityVisible) 20 else flexifyTimer.getRemainingMillis() % 1000
private fun getDelay(startTime: Long): Long {
if (mainActivityVisible) return 20

val delay = flexifyTimer.getRemainingMillis() % 1000
return if (SystemClock.elapsedRealtime() - startTime + delay > 980) 20 else delay
}

private fun startTimer(msDuration: Long, timeStamp: Long) {
Expand Down Expand Up @@ -157,12 +162,13 @@ class TimerService : Service() {

timerRunnable = object : Runnable {
override fun run() {
val startTime = SystemClock.elapsedRealtime()
if (flexifyTimer.isExpired()) return
if (flexifyTimer.hasSecondsUpdated()) updateNotification(flexifyTimer.getRemainingSeconds())
timerHandler.postDelayed(this, getDelay())
timerHandler.postDelayed(this, getDelay(startTime))
}
}
timerHandler.postDelayed(timerRunnable!!, getDelay())
timerHandler.postDelayed(timerRunnable!!, getDelay(SystemClock.elapsedRealtime()))

if (timeStamp == 0.toLong()) updateAppUI()
}
Expand Down

0 comments on commit 5e05e85

Please sign in to comment.