From 2a1e2b064a702cf43a88e60310323fabf079849b Mon Sep 17 00:00:00 2001 From: Corey Downing Date: Sat, 5 Jun 2010 04:53:20 +0800 Subject: [PATCH 1/2] Fixed incorrect deletion of recent backups and fixed deletion of backups older than 7 days. --- .../timsu/astrid/utilities/BackupService.java | 31 ++++++++++++------- .../astrid/utilities/TasksXmlExporter.java | 20 +++++------- 2 files changed, 27 insertions(+), 24 deletions(-) diff --git a/astrid/src-legacy/com/timsu/astrid/utilities/BackupService.java b/astrid/src-legacy/com/timsu/astrid/utilities/BackupService.java index 4c1c09f00..a9ac11cea 100644 --- a/astrid/src-legacy/com/timsu/astrid/utilities/BackupService.java +++ b/astrid/src-legacy/com/timsu/astrid/utilities/BackupService.java @@ -1,27 +1,31 @@ package com.timsu.astrid.utilities; -import java.io.File; -import java.io.FilenameFilter; -import java.util.Date; - import android.app.AlarmManager; import android.app.PendingIntent; import android.app.Service; import android.content.Context; import android.content.Intent; import android.os.IBinder; - +import android.util.Log; import com.timsu.astrid.R; +import java.io.File; +import java.io.FilenameFilter; +import java.util.Date; + /** * Inspired heavily by SynchronizationService */ public class BackupService extends Service { - /** when after phone starts to start first back up */ - private static final long BACKUP_OFFSET = 5*60*1000L; + /** + * when after phone starts to start first back up + */ + private static final long BACKUP_OFFSET = 5 * 60 * 1000L; - /** how often to back up */ + /** + * how often to back up + */ private static final long BACKUP_INTERVAL = AlarmManager.INTERVAL_DAY; private static final String BACKUP_ACTION = "backup"; private static final String BACKUP_FILE_NAME_REGEX = "auto\\.\\d{6}\\-\\d{4}\\.xml"; @@ -58,13 +62,13 @@ public class BackupService extends Service { DateUtilities.getFormattedDate(ctx.getResources(), new Date()))); } catch (Exception e) { // unable to backup. - if(e == null || e.getMessage() == null) { + if (e == null || e.getMessage() == null) { Preferences.setBackupSummary(ctx, ctx.getString(R.string.prefs_backup_desc_failure_null)); } else { Preferences.setBackupSummary(ctx, - ctx.getString(R.string.prefs_backup_desc_failure, - e.toString())); + ctx.getString(R.string.prefs_backup_desc_failure, + e.toString())); } } } @@ -98,8 +102,11 @@ public class BackupService extends Service { FilenameFilter filter = new FilenameFilter() { @Override public boolean accept(File file, String s) { + Log.i("deleteOldBackups", s); if (s.matches(BACKUP_FILE_NAME_REGEX)) { - String dateString = s.substring(12, 18); + String dateString = s.substring(TasksXmlExporter.FILENAME_DATE_BEGIN_INDEX, + TasksXmlExporter.FILENAME_DATE_END_INDEX); + Log.i("deleteOldBackups", dateString); return DateUtilities.wasCreatedBefore(dateString, DAYS_TO_KEEP_BACKUP); } return false; diff --git a/astrid/src-legacy/com/timsu/astrid/utilities/TasksXmlExporter.java b/astrid/src-legacy/com/timsu/astrid/utilities/TasksXmlExporter.java index cd4f67ba1..f3c705bd0 100644 --- a/astrid/src-legacy/com/timsu/astrid/utilities/TasksXmlExporter.java +++ b/astrid/src-legacy/com/timsu/astrid/utilities/TasksXmlExporter.java @@ -1,16 +1,5 @@ package com.timsu.astrid.utilities; -import java.io.File; -import java.io.FileOutputStream; -import java.io.IOException; -import java.util.Date; -import java.util.HashMap; -import java.util.HashSet; -import java.util.LinkedList; -import java.util.List; - -import org.xmlpull.v1.XmlSerializer; - import android.content.Context; import android.database.Cursor; import android.os.Environment; @@ -18,7 +7,6 @@ import android.os.Looper; import android.util.Log; import android.util.Xml; import android.widget.Toast; - import com.timsu.astrid.R; import com.timsu.astrid.data.alerts.AlertController; import com.timsu.astrid.data.sync.SyncDataController; @@ -29,6 +17,12 @@ import com.timsu.astrid.data.tag.TagModelForView; import com.timsu.astrid.data.task.TaskController; import com.timsu.astrid.data.task.TaskIdentifier; import com.timsu.astrid.data.task.TaskModelForXml; +import org.xmlpull.v1.XmlSerializer; + +import java.io.File; +import java.io.FileOutputStream; +import java.io.IOException; +import java.util.*; public class TasksXmlExporter { @@ -57,6 +51,8 @@ public class TasksXmlExporter { public static final String ASTRID_DIR = "/astrid"; private static final String EXPORT_FILE_NAME = "user.%s.xml"; private static final String BACKUP_FILE_NAME = "auto.%s.xml"; + public static final int FILENAME_DATE_BEGIN_INDEX = 5; + public static final int FILENAME_DATE_END_INDEX = 11; public TasksXmlExporter(boolean isService) { this.isService = isService; From 7d5bf5fa9a672f4af04d570948f9ee54114bc301 Mon Sep 17 00:00:00 2001 From: Corey Downing Date: Sat, 5 Jun 2010 04:59:17 +0800 Subject: [PATCH 2/2] Removed extra logging added when testing bug. --- .../src-legacy/com/timsu/astrid/utilities/BackupService.java | 3 --- 1 file changed, 3 deletions(-) diff --git a/astrid/src-legacy/com/timsu/astrid/utilities/BackupService.java b/astrid/src-legacy/com/timsu/astrid/utilities/BackupService.java index a9ac11cea..946e4271a 100644 --- a/astrid/src-legacy/com/timsu/astrid/utilities/BackupService.java +++ b/astrid/src-legacy/com/timsu/astrid/utilities/BackupService.java @@ -6,7 +6,6 @@ import android.app.Service; import android.content.Context; import android.content.Intent; import android.os.IBinder; -import android.util.Log; import com.timsu.astrid.R; import java.io.File; @@ -102,11 +101,9 @@ public class BackupService extends Service { FilenameFilter filter = new FilenameFilter() { @Override public boolean accept(File file, String s) { - Log.i("deleteOldBackups", s); if (s.matches(BACKUP_FILE_NAME_REGEX)) { String dateString = s.substring(TasksXmlExporter.FILENAME_DATE_BEGIN_INDEX, TasksXmlExporter.FILENAME_DATE_END_INDEX); - Log.i("deleteOldBackups", dateString); return DateUtilities.wasCreatedBefore(dateString, DAYS_TO_KEEP_BACKUP); } return false;