From 26c25f0b20f9dc99c3629d6d8405dda8fbbeb723 Mon Sep 17 00:00:00 2001 From: Alex Baker Date: Thu, 5 Jun 2014 11:15:09 -0500 Subject: [PATCH] Inject BackupStartupReceiver --- .../todoroo/astrid/backup/BackupServiceTests.java | 9 +++++---- .../todoroo/astrid/backup/BackupPreferences.java | 2 +- .../com/todoroo/astrid/backup/BackupService.java | 15 +++++++++------ .../astrid/backup/BackupStartupReceiver.java | 14 +++++++++++--- .../todoroo/astrid/service/StartupService.java | 2 +- .../java/org/tasks/injection/BroadcastModule.java | 4 +++- 6 files changed, 30 insertions(+), 16 deletions(-) diff --git a/astrid/src/androidTest/java/com/todoroo/astrid/backup/BackupServiceTests.java b/astrid/src/androidTest/java/com/todoroo/astrid/backup/BackupServiceTests.java index b93378a8a..bf541e1d7 100644 --- a/astrid/src/androidTest/java/com/todoroo/astrid/backup/BackupServiceTests.java +++ b/astrid/src/androidTest/java/com/todoroo/astrid/backup/BackupServiceTests.java @@ -29,6 +29,7 @@ public class BackupServiceTests extends DatabaseTestCase { File temporaryDirectory = null; + @Inject TasksXmlExporter xmlExporter; @Inject TaskDao taskDao; @Inject Preferences preferences; @@ -89,7 +90,7 @@ public class BackupServiceTests extends DatabaseTestCase { // create a backup BackupService service = new BackupService(); service.setBackupDirectorySetting(setting); - service.testBackup(getContext()); + service.testBackup(xmlExporter, preferences, getContext()); AndroidUtilities.sleepDeep(BACKUP_WAIT_TIME); @@ -122,7 +123,7 @@ public class BackupServiceTests extends DatabaseTestCase { return null; } }); - service.testBackup(getContext()); + service.testBackup(xmlExporter, preferences, getContext()); AndroidUtilities.sleepDeep(BACKUP_WAIT_TIME); @@ -167,7 +168,7 @@ public class BackupServiceTests extends DatabaseTestCase { // backup BackupService service = new BackupService(); service.setBackupDirectorySetting(setting); - service.testBackup(getContext()); + service.testBackup(xmlExporter, preferences, getContext()); AndroidUtilities.sleepDeep(BACKUP_WAIT_TIME); @@ -176,7 +177,7 @@ public class BackupServiceTests extends DatabaseTestCase { assertFalse(files[4].exists()); // assert user file still exists - service.testBackup(getContext()); + service.testBackup(xmlExporter, preferences, getContext()); assertTrue(myFile.exists()); } finally { diff --git a/astrid/src/main/java/com/todoroo/astrid/backup/BackupPreferences.java b/astrid/src/main/java/com/todoroo/astrid/backup/BackupPreferences.java index 82163d93d..21d2fa68c 100644 --- a/astrid/src/main/java/com/todoroo/astrid/backup/BackupPreferences.java +++ b/astrid/src/main/java/com/todoroo/astrid/backup/BackupPreferences.java @@ -88,7 +88,7 @@ public class BackupPreferences extends InjectingTodorooPreferenceActivity { @Override protected void onPause() { super.onPause(); - BackupService.scheduleService(this); + BackupService.scheduleService(preferences, this); } @Override diff --git a/astrid/src/main/java/com/todoroo/astrid/backup/BackupService.java b/astrid/src/main/java/com/todoroo/astrid/backup/BackupService.java index 87e0d1b87..8be27da6c 100644 --- a/astrid/src/main/java/com/todoroo/astrid/backup/BackupService.java +++ b/astrid/src/main/java/com/todoroo/astrid/backup/BackupService.java @@ -14,10 +14,10 @@ import android.util.Log; import com.todoroo.andlib.service.ContextManager; import com.todoroo.andlib.utility.DateUtilities; -import com.todoroo.andlib.utility.Preferences; import org.tasks.R; import org.tasks.injection.InjectingService; +import org.tasks.preferences.Preferences; import java.io.File; import java.io.FileFilter; @@ -49,6 +49,7 @@ public class BackupService extends InjectingService { private static final int DAYS_TO_KEEP_BACKUP = 7; @Inject TasksXmlExporter xmlExporter; + @Inject Preferences preferences; @Override public IBinder onBind(Intent intent) { @@ -68,7 +69,9 @@ public class BackupService extends InjectingService { /** * Test hook for backup */ - void testBackup(Context context) { + void testBackup(TasksXmlExporter xmlExporter, Preferences preferences, Context context) { + this.xmlExporter = xmlExporter; + this.preferences = preferences; startBackup(context); } @@ -77,7 +80,7 @@ public class BackupService extends InjectingService { return; } try { - if (!Preferences.getBoolean(R.string.backup_BPr_auto_key, true)) { + if (!preferences.getBoolean(R.string.backup_BPr_auto_key, true)) { return; } @@ -92,16 +95,16 @@ public class BackupService extends InjectingService { } catch (Exception e) { Log.e("error-backup", "Error starting backups", e); //$NON-NLS-1$ //$NON-NLS-2$ - Preferences.setString(BackupPreferences.PREF_BACKUP_LAST_ERROR, e.toString()); + preferences.setString(BackupPreferences.PREF_BACKUP_LAST_ERROR, e.toString()); } } - public static void scheduleService(Context context) { + public static void scheduleService(Preferences preferences, Context context) { AlarmManager am = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE); PendingIntent pendingIntent = PendingIntent.getService(context, 0, createAlarmIntent(context), PendingIntent.FLAG_UPDATE_CURRENT); am.cancel(pendingIntent); - if (!Preferences.getBoolean(R.string.backup_BPr_auto_key, true)) { + if (!preferences.getBoolean(R.string.backup_BPr_auto_key, true)) { return; } am.setInexactRepeating(AlarmManager.RTC, DateUtilities.now() + BACKUP_OFFSET, diff --git a/astrid/src/main/java/com/todoroo/astrid/backup/BackupStartupReceiver.java b/astrid/src/main/java/com/todoroo/astrid/backup/BackupStartupReceiver.java index 9e39366aa..4a8e289ff 100644 --- a/astrid/src/main/java/com/todoroo/astrid/backup/BackupStartupReceiver.java +++ b/astrid/src/main/java/com/todoroo/astrid/backup/BackupStartupReceiver.java @@ -5,18 +5,26 @@ */ package com.todoroo.astrid.backup; -import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import com.todoroo.andlib.service.ContextManager; -public class BackupStartupReceiver extends BroadcastReceiver { +import org.tasks.injection.InjectingBroadcastReceiver; +import org.tasks.preferences.Preferences; + +import javax.inject.Inject; + +public class BackupStartupReceiver extends InjectingBroadcastReceiver { + + @Inject Preferences preferences; @Override /** Called when device is restarted */ public void onReceive(final Context context, Intent intent) { + super.onReceive(context, intent); + ContextManager.setContext(context); - BackupService.scheduleService(context); + BackupService.scheduleService(preferences, context); } } diff --git a/astrid/src/main/java/com/todoroo/astrid/service/StartupService.java b/astrid/src/main/java/com/todoroo/astrid/service/StartupService.java index dc90e075d..6f8a1f913 100644 --- a/astrid/src/main/java/com/todoroo/astrid/service/StartupService.java +++ b/astrid/src/main/java/com/todoroo/astrid/service/StartupService.java @@ -186,7 +186,7 @@ public class StartupService { // perform initialization ReminderStartupReceiver.startReminderSchedulingService(context); - BackupService.scheduleService(context); + BackupService.scheduleService(preferences, context); gtasksSyncService.initialize(); diff --git a/astrid/src/main/java/org/tasks/injection/BroadcastModule.java b/astrid/src/main/java/org/tasks/injection/BroadcastModule.java index 4ba9f27c7..154d652d0 100644 --- a/astrid/src/main/java/org/tasks/injection/BroadcastModule.java +++ b/astrid/src/main/java/org/tasks/injection/BroadcastModule.java @@ -4,6 +4,7 @@ import android.content.Context; import com.todoroo.astrid.alarms.AlarmDetailExposer; import com.todoroo.astrid.alarms.AlarmTaskRepeatListener; +import com.todoroo.astrid.backup.BackupStartupReceiver; import com.todoroo.astrid.calls.PhoneStateChangedReceiver; import com.todoroo.astrid.core.CustomFilterExposer; import com.todoroo.astrid.gcal.GCalTaskCompleteListener; @@ -53,7 +54,8 @@ import dagger.Provides; TimerFilterExposer.class, CustomFilterExposer.class, GtasksFilterExposer.class, - TagFilterExposer.class + TagFilterExposer.class, + BackupStartupReceiver.class }) public class BroadcastModule {