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,
result.optString("picture"));
actFmPreferenceService.reloadThisUser();
ActFmPreferenceService.reloadThisUser();
setResult(RESULT_OK);
finish();

@ -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);
}
}
}

@ -39,6 +39,8 @@
<string name="backup_BPr_how_to_restore">How do I restore backups?</string>
<!-- 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_cloud_already_logged_in">You already have cloud backup on Astrid.com!</string>
<!-- ================================================= BackupActivity == -->
@ -53,6 +55,9 @@
<!-- backup activity export button -->
<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 == -->

@ -33,5 +33,11 @@
android:title="@string/backup_BAc_label"
android:textSize="24sp"
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>

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

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

Loading…
Cancel
Save