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;
}
/**