Remove midnight refresh worker

pull/2872/head
Alex Baker 2 years ago
parent 4ddb7816f1
commit 95c351e9fd

@ -95,7 +95,6 @@ class Tasks : Application(), Configuration.Provider {
NotificationSchedulerIntentService.enqueueWork(context) NotificationSchedulerIntentService.enqueueWork(context)
workManager.get().apply { workManager.get().apply {
updateBackgroundSync() updateBackgroundSync()
scheduleMidnightRefresh()
scheduleBackup() scheduleBackup()
scheduleConfigRefresh() scheduleConfigRefresh()
updatePurchases() updatePurchases()

@ -42,7 +42,7 @@ FROM (
WHERE completed = 0 AND deleted = 0 WHERE completed = 0 AND deleted = 0
) )
""") """)
abstract suspend fun nextRefresh(now: Long = System.currentTimeMillis()): Long abstract suspend fun nextRefresh(now: Long = now()): Long
@Query("SELECT * FROM tasks WHERE _id = :id LIMIT 1") @Query("SELECT * FROM tasks WHERE _id = :id LIMIT 1")
abstract suspend fun fetch(id: Long): Task? abstract suspend fun fetch(id: Long): Task?

@ -1,25 +0,0 @@
package org.tasks.jobs
import android.content.Context
import androidx.hilt.work.HiltWorker
import androidx.work.WorkerParameters
import dagger.assisted.Assisted
import dagger.assisted.AssistedInject
import org.tasks.LocalBroadcastManager
import org.tasks.analytics.Firebase
@HiltWorker
class MidnightRefreshWork @AssistedInject constructor(
@Assisted context: Context,
@Assisted workerParams: WorkerParameters,
firebase: Firebase,
private val workManager: WorkManager,
private val localBroadcastManager: LocalBroadcastManager) : RepeatingWorker(context, workerParams, firebase) {
override suspend fun run(): Result {
localBroadcastManager.broadcastRefresh()
return Result.success()
}
override suspend fun scheduleNext() = workManager.scheduleMidnightRefresh()
}

@ -7,6 +7,9 @@ import dagger.assisted.Assisted
import dagger.assisted.AssistedInject import dagger.assisted.AssistedInject
import org.tasks.LocalBroadcastManager import org.tasks.LocalBroadcastManager
import org.tasks.analytics.Firebase import org.tasks.analytics.Firebase
import org.tasks.data.TaskDao
import org.tasks.date.DateTimeUtils
import kotlin.math.min
@HiltWorker @HiltWorker
class RefreshWork @AssistedInject constructor( class RefreshWork @AssistedInject constructor(
@ -15,6 +18,7 @@ class RefreshWork @AssistedInject constructor(
firebase: Firebase, firebase: Firebase,
private val localBroadcastManager: LocalBroadcastManager, private val localBroadcastManager: LocalBroadcastManager,
private val workManager: WorkManager, private val workManager: WorkManager,
private val taskDao: TaskDao,
) : RepeatingWorker(context, workerParams, firebase) { ) : RepeatingWorker(context, workerParams, firebase) {
override suspend fun run(): Result { override suspend fun run(): Result {
@ -22,5 +26,6 @@ class RefreshWork @AssistedInject constructor(
return Result.success() return Result.success()
} }
override suspend fun scheduleNext() = workManager.scheduleRefresh() override suspend fun scheduleNext() =
workManager.scheduleRefresh(min(taskDao.nextRefresh(), DateTimeUtils.midnight()))
} }

@ -1,6 +1,7 @@
package org.tasks.jobs package org.tasks.jobs
import android.net.Uri import android.net.Uri
import com.todoroo.andlib.utility.DateUtilities.now
import com.todoroo.astrid.data.Task import com.todoroo.astrid.data.Task
import org.tasks.BuildConfig import org.tasks.BuildConfig
import org.tasks.data.CaldavAccount import org.tasks.data.CaldavAccount
@ -20,9 +21,7 @@ interface WorkManager {
fun updateBackgroundSync() fun updateBackgroundSync()
suspend fun scheduleRefresh() suspend fun scheduleRefresh(timestamp: Long = now() + 5_000)
fun scheduleMidnightRefresh()
fun scheduleNotification(scheduledTime: Long) fun scheduleNotification(scheduledTime: Long)
@ -40,7 +39,6 @@ interface WorkManager {
val REMOTE_CONFIG_INTERVAL_HOURS = if (BuildConfig.DEBUG) 1 else 12.toLong() val REMOTE_CONFIG_INTERVAL_HOURS = if (BuildConfig.DEBUG) 1 else 12.toLong()
const val TAG_BACKUP = "tag_backup" const val TAG_BACKUP = "tag_backup"
const val TAG_REFRESH = "tag_refresh" const val TAG_REFRESH = "tag_refresh"
const val TAG_MIDNIGHT_REFRESH = "tag_midnight_refresh"
const val TAG_SYNC = "tag_sync" const val TAG_SYNC = "tag_sync"
const val TAG_BACKGROUND_SYNC = "tag_background_sync" const val TAG_BACKGROUND_SYNC = "tag_background_sync"
const val TAG_REMOTE_CONFIG = "tag_remote_config" const val TAG_REMOTE_CONFIG = "tag_remote_config"

@ -45,7 +45,6 @@ import org.tasks.jobs.SyncWork.Companion.EXTRA_IMMEDIATE
import org.tasks.jobs.WorkManager.Companion.REMOTE_CONFIG_INTERVAL_HOURS import org.tasks.jobs.WorkManager.Companion.REMOTE_CONFIG_INTERVAL_HOURS
import org.tasks.jobs.WorkManager.Companion.TAG_BACKGROUND_SYNC import org.tasks.jobs.WorkManager.Companion.TAG_BACKGROUND_SYNC
import org.tasks.jobs.WorkManager.Companion.TAG_BACKUP import org.tasks.jobs.WorkManager.Companion.TAG_BACKUP
import org.tasks.jobs.WorkManager.Companion.TAG_MIDNIGHT_REFRESH
import org.tasks.jobs.WorkManager.Companion.TAG_MIGRATE_LOCAL import org.tasks.jobs.WorkManager.Companion.TAG_MIGRATE_LOCAL
import org.tasks.jobs.WorkManager.Companion.TAG_REFRESH import org.tasks.jobs.WorkManager.Companion.TAG_REFRESH
import org.tasks.jobs.WorkManager.Companion.TAG_REMOTE_CONFIG import org.tasks.jobs.WorkManager.Companion.TAG_REMOTE_CONFIG
@ -140,11 +139,8 @@ class WorkManagerImpl(
} }
} }
override suspend fun scheduleRefresh() = override suspend fun scheduleRefresh(timestamp: Long) =
enqueueUnique(TAG_REFRESH, RefreshWork::class.java, taskDao.nextRefresh()) enqueueUnique(TAG_REFRESH, RefreshWork::class.java, timestamp)
override fun scheduleMidnightRefresh() =
enqueueUnique(TAG_MIDNIGHT_REFRESH, MidnightRefreshWork::class.java, midnight())
override fun scheduleNotification(scheduledTime: Long) { override fun scheduleNotification(scheduledTime: Long) {
val time = max(DateUtilities.now(), scheduledTime) val time = max(DateUtilities.now(), scheduledTime)

Loading…
Cancel
Save