fixes a bug where housekeeping worker was using a static value for 'remove filers older than' time. now uses time value that is calced when used

This commit is contained in:
gavine99
2025-03-29 06:37:21 +11:00
parent c8c875dd7e
commit 858a406a74
@@ -21,19 +21,13 @@ package dev.octoshrimpy.quik.worker
import android.content.Context
import androidx.work.Constraints
import androidx.work.ExistingPeriodicWorkPolicy
import androidx.work.OneTimeWorkRequestBuilder
import androidx.work.OutOfQuotaPolicy
import androidx.work.PeriodicWorkRequest
import androidx.work.WorkManager
import androidx.work.Worker
import androidx.work.WorkerParameters
import com.moez.QKSMS.util.Constants
import androidx.work.workDataOf
import com.moez.QKSMS.manager.MediaRecorderManager
import com.moez.QKSMS.manager.MediaRecorderManager.AUDIO_FILE_PREFIX
import dev.octoshrimpy.quik.repository.ScheduledMessageRepository
import dev.octoshrimpy.quik.repository.ScheduledMessageRepositoryImpl
import dev.octoshrimpy.quik.worker.ReceiveSmsWorker.Companion.INPUT_DATA_KEY_MESSAGE_ID
import java.io.File
import java.util.concurrent.TimeUnit
import javax.inject.Inject
@@ -43,8 +37,6 @@ class HousekeepingWorker(appContext: Context, workerParams: WorkerParameters)
companion object {
private val WORKER_TAG: String = HousekeepingWorker::class.java.simpleName
private val someHoursAgo = (System.currentTimeMillis() - (2 * 60 * 60 * 1000))
fun register(context: Context) {
// don't check return value because, well, we can't do much about a failure
WorkManager.getInstance(context).enqueueUniquePeriodicWork(
@@ -77,11 +69,13 @@ class HousekeepingWorker(appContext: Context, workerParams: WorkerParameters)
@Inject lateinit var scheduledMessageRepository: ScheduledMessageRepository
override fun doWork(): Result {
val twoHoursAgo = (System.currentTimeMillis() - (2 * 60 * 60 * 1000))
removeOrphanedScheduledMessageAttachmentFiles()
removeOrphanedComposeAudioRecordings()
removeOrphanedComposeAudioRecordings(twoHoursAgo)
removeSavedMessagesTexts()
removeSavedMessagesTexts(twoHoursAgo)
return Result.success()
}
@@ -102,21 +96,21 @@ class HousekeepingWorker(appContext: Context, workerParams: WorkerParameters)
?.forEach { it.deleteRecursively() }
}
private fun removeOrphanedComposeAudioRecordings() =
private fun removeOrphanedComposeAudioRecordings(removeOlderThan: Long) =
// find recording files in cache dir
applicationContext.cacheDir.listFiles { entry ->
entry.isFile &&
entry.name.startsWith(MediaRecorderManager.AUDIO_FILE_PREFIX) &&
entry.name.endsWith(MediaRecorderManager.AUDIO_FILE_SUFFIX) &&
(entry.lastModified() < someHoursAgo)
(entry.lastModified() < removeOlderThan)
}?.forEach { it.delete() } // delete recording file
private fun removeSavedMessagesTexts() =
private fun removeSavedMessagesTexts(removeOlderThan: Long) =
// find saved message text files in cache dir
applicationContext.cacheDir.listFiles { entry ->
entry.isFile &&
entry.name.startsWith(Constants.SAVED_MESSAGE_TEXT_FILE_PREFIX) &&
(entry.lastModified() < someHoursAgo)
(entry.lastModified() < removeOlderThan)
}?.forEach { it.delete() } // delete message text file
}