Pith - kiln
kiln/app/src/main/java/com/vgmlr/kiln/KilnIconSyncWorker.kt [1.8 kb]
Modified: 00:02:27 153 026 (19 Aug 026)
5 Days Ago
package com.vgmlr.kiln

import android.content.Context
import androidx.work.CoroutineWorker
import androidx.work.ExistingPeriodicWorkPolicy
import androidx.work.PeriodicWorkRequestBuilder
import androidx.work.WorkManager
import androidx.work.WorkerParameters
import java.time.LocalDate
import java.util.concurrent.TimeUnit
import androidx.work.ExistingWorkPolicy
import androidx.work.OneTimeWorkRequestBuilder

class KilnIconSyncWorker(context: Context, params: WorkerParameters) :
    CoroutineWorker(context, params) {

    override suspend fun doWork(): Result {
        val db = KilnDb.get(applicationContext)
        val account = KilnIconSync.iconAccount(
            db.accountDao().getAll(),
            KilnPrefs.get(applicationContext).defaultAccountId.value
        ) ?: return Result.success()
        val records = db.dayRecordDao().getAll(account.id)
        val buttons = KilnButtonSet(db.buttonDao().getAll(account.id))
        KilnIconSync.apply(
            applicationContext,
            KilnGradientPalette.bucketToday(records, buttons, LocalDate.now())
        )
        return Result.success()
    }

    companion object {
        private const val WORK_NAME = "icon_sync"
        private const val ONCE_NAME = "icon_sync_once"

        fun schedule(context: Context) {
            WorkManager.getInstance(context).enqueueUniquePeriodicWork(
                WORK_NAME,
                ExistingPeriodicWorkPolicy.KEEP,
                PeriodicWorkRequestBuilder<KilnIconSyncWorker>(6, TimeUnit.HOURS).build()
            )
        }
        fun runOnce(context: Context) {
            WorkManager.getInstance(context).enqueueUniqueWork(
                ONCE_NAME,
                ExistingWorkPolicy.REPLACE,
                OneTimeWorkRequestBuilder<KilnIconSyncWorker>().build()
            )
        }
    }
}
Updates
Kerf - Android 157.026
Kiln - Android 157.026
Wedge - Android 156.026
Whittle - Linux 155.026
Grit - Firefox/Chrome 154.026

Menu
Calendar
Project Tin (024/029)
Miter
RSS Feed
User Avatar
@vgmlr
=SUM(parts)
0.00224
257,105 (+359)