From b1b85444bd54a4268fdd700d32c9edf930039d9a Mon Sep 17 00:00:00 2001 From: Alex Baker Date: Fri, 17 Mar 2023 00:40:35 -0500 Subject: [PATCH] Fix backup cleanup regex --- .../androidTest/java/org/tasks/jobs/BackupServiceTests.kt | 3 ++- app/src/main/java/org/tasks/backup/BackupConstants.kt | 1 + app/src/main/java/org/tasks/jobs/BackupWork.kt | 5 ++--- 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/app/src/androidTest/java/org/tasks/jobs/BackupServiceTests.kt b/app/src/androidTest/java/org/tasks/jobs/BackupServiceTests.kt index e95f8a0b6..ac44c4b3a 100644 --- a/app/src/androidTest/java/org/tasks/jobs/BackupServiceTests.kt +++ b/app/src/androidTest/java/org/tasks/jobs/BackupServiceTests.kt @@ -18,6 +18,7 @@ import org.junit.Assert.assertTrue import org.junit.Before import org.junit.Test import org.tasks.R +import org.tasks.backup.BackupConstants.BACKUP_CLEANUP_MATCHER import org.tasks.backup.TasksJsonExporter import org.tasks.backup.TasksJsonExporter.ExportType import org.tasks.injection.InjectingTestCase @@ -77,6 +78,6 @@ class BackupServiceTests : InjectingTestCase() { // assert file created val files = temporaryDirectory.listFiles() assertEquals(1, files!!.size) - assertTrue(files[0].name.matches(BackupWork.BACKUP_FILE_NAME_REGEX)) + assertTrue(files[0].name.matches(BACKUP_CLEANUP_MATCHER)) } } \ No newline at end of file diff --git a/app/src/main/java/org/tasks/backup/BackupConstants.kt b/app/src/main/java/org/tasks/backup/BackupConstants.kt index 8ea001e02..f0954f84f 100755 --- a/app/src/main/java/org/tasks/backup/BackupConstants.kt +++ b/app/src/main/java/org/tasks/backup/BackupConstants.kt @@ -11,6 +11,7 @@ object BackupConstants { const val BACKUP_FILE_NAME = "auto.%s.json" private val MATCHER = Pattern.compile("""(auto|user)\.(\d{2,4})(\d{2})(\d{2})[T-](\d{2})(\d{2})\.json""") + val BACKUP_CLEANUP_MATCHER = Regex("""auto\.\d{6,8}[T-]\d{4}\.json""") fun isBackupFile(name: String?) = name?.let { MATCHER.matcher(it).matches() } ?: false diff --git a/app/src/main/java/org/tasks/jobs/BackupWork.kt b/app/src/main/java/org/tasks/jobs/BackupWork.kt index df2b80d7b..814840828 100644 --- a/app/src/main/java/org/tasks/jobs/BackupWork.kt +++ b/app/src/main/java/org/tasks/jobs/BackupWork.kt @@ -11,12 +11,12 @@ import dagger.assisted.AssistedInject import org.tasks.R import org.tasks.analytics.Firebase import org.tasks.backup.BackupConstants +import org.tasks.backup.BackupConstants.BACKUP_CLEANUP_MATCHER import org.tasks.backup.TasksJsonExporter import org.tasks.preferences.Preferences import timber.log.Timber import java.io.File import java.io.FileFilter -import java.util.* @HiltWorker class BackupWork @AssistedInject constructor( @@ -78,8 +78,7 @@ class BackupWork @AssistedInject constructor( companion object { const val DAYS_TO_KEEP_BACKUP = 7 - val BACKUP_FILE_NAME_REGEX = Regex("""auto\.[-\d]+\.json""") - private val FILENAME_FILTER = { f: String -> f.matches(BACKUP_FILE_NAME_REGEX) } + private val FILENAME_FILTER = { f: String -> f.matches(BACKUP_CLEANUP_MATCHER) } val FILE_FILTER = FileFilter { f: File -> FILENAME_FILTER(f.name) } private val BY_LAST_MODIFIED = { f1: File, f2: File -> BackupConstants.getTimestamp(f2).compareTo(BackupConstants.getTimestamp(f1))