Update widgets at most once per minute

pull/699/head
Alinson S. Xavier 5 years ago
parent 06e5d517cc
commit 0de86ac66c

@ -28,6 +28,7 @@ import org.isoron.uhabits.core.tasks.*
import org.isoron.uhabits.core.utils.*
import org.isoron.uhabits.intents.*
import javax.inject.*
import kotlin.math.*
/**
* A WidgetUpdater listens to the commands being executed by the application and
@ -42,6 +43,8 @@ class WidgetUpdater
private val intentScheduler: IntentScheduler
) : CommandRunner.Listener {
private var lastUpdated = 0L
override fun onCommandExecuted(command: Command, refreshKey: Long?) {
updateWidgets(refreshKey)
}
@ -69,6 +72,10 @@ class WidgetUpdater
}
fun updateWidgets(modifiedHabitId: Long?) {
val now = DateUtils.getLocalTime()
if (abs(now - lastUpdated) < 60_000) return
lastUpdated = now
taskRunner.execute {
updateWidgets(modifiedHabitId, CheckmarkWidgetProvider::class.java)
updateWidgets(modifiedHabitId, HistoryWidgetProvider::class.java)

Loading…
Cancel
Save