package com.enterprise.mdm.work import android.content.Context import androidx.work.CoroutineWorker import androidx.work.WorkerParameters import com.enterprise.mdm.data.repo.MdmRepository class SyncWorker(context: Context, params: WorkerParameters) : CoroutineWorker(context, params) { override suspend fun doWork(): Result { val repo = MdmRepository(applicationContext) if (!repo.session.isLoggedIn) return Result.success() return try { repo.heartbeat() repo.syncStatus() repo.processCommands() Result.success() } catch (e: Exception) { if (runAttemptCount < 3) Result.retry() else Result.success() } } }