Add a periodic DB vacuuming task

This commit is contained in:
Jorge Martín
2025-12-05 14:19:36 +01:00
committed by Jorge Martin Espinosa
parent 9c72310cb4
commit 482d7e0648
22 changed files with 172 additions and 21 deletions

View File

@@ -11,6 +11,7 @@ package io.element.android.libraries.workmanager.impl
import androidx.work.WorkManager
import dev.zacsweers.metro.AppScope
import dev.zacsweers.metro.ContributesBinding
import io.element.android.libraries.core.bool.orFalse
import dev.zacsweers.metro.SingleIn
import io.element.android.libraries.matrix.api.core.SessionId
import io.element.android.libraries.sessionstorage.api.observer.SessionListener
@@ -51,6 +52,10 @@ class DefaultWorkManagerScheduler(
)
}
override fun hasPendingWork(sessionId: SessionId, requestType: WorkManagerRequestType): Boolean {
return workManager.getWorkInfosByTag(workManagerTag(sessionId, requestType)).get()?.isNotEmpty().orFalse()
}
override fun cancel(sessionId: SessionId) {
Timber.d("Cancelling work for sessionId: $sessionId")
for (requestType in WorkManagerRequestType.entries) {