diff --git a/astrid/plugin-src/com/todoroo/astrid/actfm/ActFmLoginActivity.java b/astrid/plugin-src/com/todoroo/astrid/actfm/ActFmLoginActivity.java index e51fcb1a2..da4618e73 100644 --- a/astrid/plugin-src/com/todoroo/astrid/actfm/ActFmLoginActivity.java +++ b/astrid/plugin-src/com/todoroo/astrid/actfm/ActFmLoginActivity.java @@ -524,7 +524,7 @@ public class ActFmLoginActivity extends FragmentActivity implements AuthListener Preferences.setString(ActFmPreferenceService.PREF_PICTURE, result.optString("picture")); - actFmPreferenceService.reloadThisUser(); + ActFmPreferenceService.reloadThisUser(); setResult(RESULT_OK); finish(); diff --git a/astrid/plugin-src/com/todoroo/astrid/backup/BackupPreferences.java b/astrid/plugin-src/com/todoroo/astrid/backup/BackupPreferences.java index 606d18c19..966ada565 100644 --- a/astrid/plugin-src/com/todoroo/astrid/backup/BackupPreferences.java +++ b/astrid/plugin-src/com/todoroo/astrid/backup/BackupPreferences.java @@ -17,10 +17,14 @@ import android.view.View; import android.view.ViewGroup.OnHierarchyChangeListener; import com.timsu.astrid.R; +import com.todoroo.andlib.service.Autowired; +import com.todoroo.andlib.service.DependencyInjectionService; import com.todoroo.andlib.utility.DateUtilities; import com.todoroo.andlib.utility.DialogUtilities; import com.todoroo.andlib.utility.Preferences; import com.todoroo.andlib.utility.TodorooPreferenceActivity; +import com.todoroo.astrid.actfm.ActFmLoginActivity; +import com.todoroo.astrid.actfm.sync.ActFmPreferenceService; /** * Displays synchronization preferences and an action panel so users can @@ -37,6 +41,9 @@ public class BackupPreferences extends TodorooPreferenceActivity { private int statusColor = Color.BLACK; + @Autowired + private ActFmPreferenceService actFmPreferenceService; + @Override public int getPreferenceResource() { return R.xml.preferences_backup; @@ -45,6 +52,7 @@ public class BackupPreferences extends TodorooPreferenceActivity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); + DependencyInjectionService.getInstance().inject(this); getListView().setOnHierarchyChangeListener(new OnHierarchyChangeListener() { @Override @@ -68,6 +76,14 @@ public class BackupPreferences extends TodorooPreferenceActivity { return false; } }); + + findPreference(getString(R.string.backup_BAc_cloud)).setOnPreferenceClickListener(new OnPreferenceClickListener() { + @Override + public boolean onPreferenceClick(Preference preference) { + initiateCloudBackup(); + return false; + } + }); } @Override @@ -133,4 +149,14 @@ public class BackupPreferences extends TodorooPreferenceActivity { } + private void initiateCloudBackup() { + if (actFmPreferenceService.isLoggedIn()) { + DialogUtilities.okDialog(this, getString(R.string.DLG_information_title), 0, + getString(R.string.backup_BPr_cloud_already_logged_in), null); + } else { + Intent intent = new Intent(this, ActFmLoginActivity.class); + startActivity(intent); + } + } + } diff --git a/astrid/res/values/strings-backup.xml b/astrid/res/values/strings-backup.xml index 3ff0f6bd9..c27f88db5 100644 --- a/astrid/res/values/strings-backup.xml +++ b/astrid/res/values/strings-backup.xml @@ -39,6 +39,8 @@ How do I restore backups? You need to add the Astrid Power Pack to manage and restore your backups. As a favor, Astrid also automatically backs up your tasks, just in case. + + You already have cloud backup on Astrid.com! @@ -53,6 +55,9 @@ Export Tasks + + + Click for free cloud backup on Astrid.com diff --git a/astrid/res/xml/preferences_backup.xml b/astrid/res/xml/preferences_backup.xml index f7ca38bc3..4cd8433c9 100644 --- a/astrid/res/xml/preferences_backup.xml +++ b/astrid/res/xml/preferences_backup.xml @@ -33,5 +33,11 @@ android:title="@string/backup_BAc_label" android:textSize="24sp" android:gravity="center"/> + + \ No newline at end of file diff --git a/astrid/src/com/todoroo/astrid/helper/SyncActionHelper.java b/astrid/src/com/todoroo/astrid/helper/SyncActionHelper.java index 90b16e077..313ebe261 100644 --- a/astrid/src/com/todoroo/astrid/helper/SyncActionHelper.java +++ b/astrid/src/com/todoroo/astrid/helper/SyncActionHelper.java @@ -150,8 +150,9 @@ public class SyncActionHelper { // --- sync logic protected void performSyncServiceV2Sync(boolean manual) { - syncService.synchronizeActiveTasks(manual, syncResultCallback); - Preferences.setLong(PREF_LAST_AUTO_SYNC, DateUtilities.now()); + boolean syncOccurred = syncService.synchronizeActiveTasks(manual, syncResultCallback); + if (syncOccurred) + Preferences.setLong(PREF_LAST_AUTO_SYNC, DateUtilities.now()); } /** diff --git a/astrid/src/com/todoroo/astrid/service/SyncV2Service.java b/astrid/src/com/todoroo/astrid/service/SyncV2Service.java index 064ed956c..ba137ed48 100644 --- a/astrid/src/com/todoroo/astrid/service/SyncV2Service.java +++ b/astrid/src/com/todoroo/astrid/service/SyncV2Service.java @@ -59,10 +59,14 @@ public class SyncV2Service { * * @param manual if manual sync * @param callback result callback + * @return true if any servide was logged in and initiated a sync */ - public void synchronizeActiveTasks(final boolean manual, final SyncResultCallback callback) { + public boolean synchronizeActiveTasks(final boolean manual, final SyncResultCallback callback) { final List active = activeProviders(); + if (active.size() == 0) + return false; + if (active.size() > 1) { SyncResultCallback newCallback = new SyncResultCallback() { private int next = 1; @@ -94,6 +98,8 @@ public class SyncV2Service { } else if (active.size() == 1) { active.get(0).synchronizeActiveTasks(manual, callback); } + + return true; } /**