Handle last autosync times better, offer astrid.com sync on backups page

pull/14/head
Sam Bosley 13 years ago
parent 4083d8ea8b
commit 2834564e0e

@ -524,7 +524,7 @@ public class ActFmLoginActivity extends FragmentActivity implements AuthListener
Preferences.setString(ActFmPreferenceService.PREF_PICTURE, Preferences.setString(ActFmPreferenceService.PREF_PICTURE,
result.optString("picture")); result.optString("picture"));
actFmPreferenceService.reloadThisUser(); ActFmPreferenceService.reloadThisUser();
setResult(RESULT_OK); setResult(RESULT_OK);
finish(); finish();

@ -17,10 +17,14 @@ import android.view.View;
import android.view.ViewGroup.OnHierarchyChangeListener; import android.view.ViewGroup.OnHierarchyChangeListener;
import com.timsu.astrid.R; 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.DateUtilities;
import com.todoroo.andlib.utility.DialogUtilities; import com.todoroo.andlib.utility.DialogUtilities;
import com.todoroo.andlib.utility.Preferences; import com.todoroo.andlib.utility.Preferences;
import com.todoroo.andlib.utility.TodorooPreferenceActivity; 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 * Displays synchronization preferences and an action panel so users can
@ -37,6 +41,9 @@ public class BackupPreferences extends TodorooPreferenceActivity {
private int statusColor = Color.BLACK; private int statusColor = Color.BLACK;
@Autowired
private ActFmPreferenceService actFmPreferenceService;
@Override @Override
public int getPreferenceResource() { public int getPreferenceResource() {
return R.xml.preferences_backup; return R.xml.preferences_backup;
@ -45,6 +52,7 @@ public class BackupPreferences extends TodorooPreferenceActivity {
@Override @Override
public void onCreate(Bundle savedInstanceState) { public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); super.onCreate(savedInstanceState);
DependencyInjectionService.getInstance().inject(this);
getListView().setOnHierarchyChangeListener(new OnHierarchyChangeListener() { getListView().setOnHierarchyChangeListener(new OnHierarchyChangeListener() {
@Override @Override
@ -68,6 +76,14 @@ public class BackupPreferences extends TodorooPreferenceActivity {
return false; return false;
} }
}); });
findPreference(getString(R.string.backup_BAc_cloud)).setOnPreferenceClickListener(new OnPreferenceClickListener() {
@Override
public boolean onPreferenceClick(Preference preference) {
initiateCloudBackup();
return false;
}
});
} }
@Override @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);
}
}
} }

@ -40,6 +40,8 @@
<!-- Preference screen Restoring Tasks Help Dialog Text--> <!-- Preference screen Restoring Tasks Help Dialog Text-->
<string name="backup_BPr_how_to_restore_dialog">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.</string> <string name="backup_BPr_how_to_restore_dialog">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.</string>
<string name="backup_BPr_cloud_already_logged_in">You already have cloud backup on Astrid.com!</string>
<!-- ================================================= BackupActivity == --> <!-- ================================================= BackupActivity == -->
<!-- slide 48c: backup activity label --> <!-- slide 48c: backup activity label -->
@ -54,6 +56,9 @@
<!-- backup activity export button --> <!-- backup activity export button -->
<string name="backup_BAc_export">Export Tasks</string> <string name="backup_BAc_export">Export Tasks</string>
<!-- backup activity cloud (Astrid.com) option -->
<string name="backup_BAc_cloud">Click for free cloud backup on Astrid.com</string>
<!-- ============================================== Importer / Exporter == --> <!-- ============================================== Importer / Exporter == -->
<!-- Message displayed when error occurs --> <!-- Message displayed when error occurs -->

@ -34,4 +34,10 @@
android:textSize="24sp" android:textSize="24sp"
android:gravity="center"/> android:gravity="center"/>
<com.todoroo.astrid.ui.MultilinePreference
android:key="@string/backup_BAc_cloud"
android:title="@string/backup_BAc_cloud"
android:textSize="24sp"
android:gravity="center" />
</PreferenceScreen> </PreferenceScreen>

@ -150,7 +150,8 @@ public class SyncActionHelper {
// --- sync logic // --- sync logic
protected void performSyncServiceV2Sync(boolean manual) { protected void performSyncServiceV2Sync(boolean manual) {
syncService.synchronizeActiveTasks(manual, syncResultCallback); boolean syncOccurred = syncService.synchronizeActiveTasks(manual, syncResultCallback);
if (syncOccurred)
Preferences.setLong(PREF_LAST_AUTO_SYNC, DateUtilities.now()); Preferences.setLong(PREF_LAST_AUTO_SYNC, DateUtilities.now());
} }

@ -59,10 +59,14 @@ public class SyncV2Service {
* *
* @param manual if manual sync * @param manual if manual sync
* @param callback result callback * @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<SyncV2Provider> active = activeProviders(); final List<SyncV2Provider> active = activeProviders();
if (active.size() == 0)
return false;
if (active.size() > 1) { if (active.size() > 1) {
SyncResultCallback newCallback = new SyncResultCallback() { SyncResultCallback newCallback = new SyncResultCallback() {
private int next = 1; private int next = 1;
@ -94,6 +98,8 @@ public class SyncV2Service {
} else if (active.size() == 1) { } else if (active.size() == 1) {
active.get(0).synchronizeActiveTasks(manual, callback); active.get(0).synchronizeActiveTasks(manual, callback);
} }
return true;
} }
/** /**

Loading…
Cancel
Save