diff --git a/astrid/plugin-src/com/todoroo/astrid/backup/BackupService.java b/astrid/plugin-src/com/todoroo/astrid/backup/BackupService.java index ca863e271..5872b0cac 100644 --- a/astrid/plugin-src/com/todoroo/astrid/backup/BackupService.java +++ b/astrid/plugin-src/com/todoroo/astrid/backup/BackupService.java @@ -15,6 +15,7 @@ import android.util.Log; import com.timsu.astrid.R; import com.todoroo.andlib.service.ContextManager; +import com.todoroo.astrid.core.PluginServices; import com.todoroo.astrid.utility.Preferences; /** @@ -44,9 +45,13 @@ public class BackupService extends Service { @Override public void onStart(Intent intent, int startId) { - if (intent.getAction().equals(BACKUP_ACTION)) { - ContextManager.setContext(this); - startBackup(this); + try { + if (intent.getAction().equals(BACKUP_ACTION)) { + ContextManager.setContext(this); + startBackup(this); + } + } catch (Exception e) { + PluginServices.getExceptionService().reportError("backup-bg-sync", e); //$NON-NLS-1$ } } diff --git a/astrid/plugin-src/com/todoroo/astrid/producteev/ProducteevBackgroundService.java b/astrid/plugin-src/com/todoroo/astrid/producteev/ProducteevBackgroundService.java index dffa47776..667d425d2 100644 --- a/astrid/plugin-src/com/todoroo/astrid/producteev/ProducteevBackgroundService.java +++ b/astrid/plugin-src/com/todoroo/astrid/producteev/ProducteevBackgroundService.java @@ -53,6 +53,7 @@ public class ProducteevBackgroundService extends Service { if(ProducteevUtilities.INSTANCE.isOngoing()) return; + PluginServices.getTaskService(); new ProducteevSyncProvider().synchronize(context); } diff --git a/astrid/plugin-src/com/todoroo/astrid/producteev/sync/ProducteevSyncProvider.java b/astrid/plugin-src/com/todoroo/astrid/producteev/sync/ProducteevSyncProvider.java index 3c11c4afc..5461247ee 100644 --- a/astrid/plugin-src/com/todoroo/astrid/producteev/sync/ProducteevSyncProvider.java +++ b/astrid/plugin-src/com/todoroo/astrid/producteev/sync/ProducteevSyncProvider.java @@ -163,8 +163,8 @@ public class ProducteevSyncProvider extends SyncProvider { } }); intent.putExtra(MilkLoginActivity.URL_TOKEN, url); + if(context instanceof Activity) ((Activity)context).startActivityForResult(intent, 0); - else - context.startActivity(intent); + else { + // can't synchronize until user logs in + MilkUtilities.setToken(null); + MilkUtilities.stopOngoing(); + } } else { performSync();