diff --git a/astrid/plugin-src/com/todoroo/astrid/actfm/TagUpdatesActivity.java b/astrid/plugin-src/com/todoroo/astrid/actfm/TagUpdatesActivity.java
index 22155a939..8cd793a1a 100644
--- a/astrid/plugin-src/com/todoroo/astrid/actfm/TagUpdatesActivity.java
+++ b/astrid/plugin-src/com/todoroo/astrid/actfm/TagUpdatesActivity.java
@@ -1,7 +1,6 @@
package com.todoroo.astrid.actfm;
import android.app.ListActivity;
-import android.app.ProgressDialog;
import android.content.Intent;
import android.database.Cursor;
import android.graphics.Bitmap;
@@ -28,7 +27,6 @@ import com.todoroo.andlib.service.Autowired;
import com.todoroo.andlib.service.DependencyInjectionService;
import com.todoroo.andlib.utility.AndroidUtilities;
import com.todoroo.andlib.utility.DateUtilities;
-import com.todoroo.andlib.utility.DialogUtilities;
import com.todoroo.astrid.actfm.ActFmCameraModule.CameraResultCallback;
import com.todoroo.astrid.actfm.ActFmCameraModule.ClearImageCallback;
import com.todoroo.astrid.actfm.sync.ActFmPreferenceService;
@@ -38,6 +36,7 @@ import com.todoroo.astrid.dao.UpdateDao;
import com.todoroo.astrid.data.TagData;
import com.todoroo.astrid.data.Task;
import com.todoroo.astrid.data.Update;
+import com.todoroo.astrid.helper.ProgressBarSyncResultCallback;
import com.todoroo.astrid.service.StatisticsConstants;
import com.todoroo.astrid.service.StatisticsService;
import com.todoroo.astrid.service.TagDataService;
@@ -141,7 +140,7 @@ public class TagUpdatesActivity extends ListActivity {
});
refreshUpdatesList();
- refreshActivity(null); // start a pull in the background
+ refreshActivity(false); // start a pull in the background
}
private void refreshUpdatesList() {
@@ -193,8 +192,7 @@ public class TagUpdatesActivity extends ListActivity {
case MENU_REFRESH_ID: {
- final ProgressDialog progressDialog = DialogUtilities.progressDialog(this, getString(R.string.DLG_please_wait));
- refreshActivity(progressDialog);
+ refreshActivity(true);
return true;
}
@@ -202,20 +200,25 @@ public class TagUpdatesActivity extends ListActivity {
}
}
- private void refreshActivity(final ProgressDialog progressDialog) {
- actFmSyncService.fetchUpdatesForTag(tagData, true, new Runnable() {
+ private void refreshActivity(boolean manual) {
+ final ProgressBarSyncResultCallback callback = new ProgressBarSyncResultCallback(
+ this, R.id.progressBar, new Runnable() {
+ @Override
+ public void run() {
+ refreshUpdatesList();
+ }
+ });
+
+ callback.started();
+ callback.incrementMax(100);
+ actFmSyncService.fetchUpdatesForTag(tagData, manual, new Runnable() {
@Override
public void run() {
- runOnUiThread(new Runnable() {
- @Override
- public void run() {
- refreshUpdatesList();
- if (progressDialog != null)
- DialogUtilities.dismissDialog(TagUpdatesActivity.this, progressDialog);
- }
- });
+ callback.incrementProgress(50);
+ callback.finished();
}
});
+ callback.incrementProgress(50);
}
@SuppressWarnings("nls")
diff --git a/astrid/plugin-src/com/todoroo/astrid/notes/EditNoteActivity.java b/astrid/plugin-src/com/todoroo/astrid/notes/EditNoteActivity.java
index 86e4f2b0d..8850a9082 100644
--- a/astrid/plugin-src/com/todoroo/astrid/notes/EditNoteActivity.java
+++ b/astrid/plugin-src/com/todoroo/astrid/notes/EditNoteActivity.java
@@ -10,7 +10,6 @@ import java.util.List;
import org.json.JSONObject;
import android.app.ListActivity;
-import android.app.ProgressDialog;
import android.content.Context;
import android.graphics.Color;
import android.os.Bundle;
@@ -37,7 +36,6 @@ import com.todoroo.andlib.service.Autowired;
import com.todoroo.andlib.service.DependencyInjectionService;
import com.todoroo.andlib.sql.Query;
import com.todoroo.andlib.utility.DateUtilities;
-import com.todoroo.andlib.utility.DialogUtilities;
import com.todoroo.andlib.utility.Preferences;
import com.todoroo.astrid.actfm.sync.ActFmPreferenceService;
import com.todoroo.astrid.actfm.sync.ActFmSyncService;
@@ -47,9 +45,11 @@ import com.todoroo.astrid.dao.UpdateDao;
import com.todoroo.astrid.data.Metadata;
import com.todoroo.astrid.data.Task;
import com.todoroo.astrid.data.Update;
+import com.todoroo.astrid.helper.ProgressBarSyncResultCallback;
import com.todoroo.astrid.service.MetadataService;
import com.todoroo.astrid.service.StatisticsConstants;
import com.todoroo.astrid.service.StatisticsService;
+import com.todoroo.astrid.service.SyncV2Service.SyncResultCallback;
import com.todoroo.astrid.utility.Flags;
public class EditNoteActivity extends ListActivity {
@@ -95,12 +95,12 @@ public class EditNoteActivity extends ListActivity {
findViewById(R.id.add_comment).setVisibility(View.VISIBLE);
if(task.getValue(Task.REMOTE_ID) == 0)
- refreshData(true);
+ refreshData(true, null);
else {
String fetchKey = LAST_FETCH_KEY + task.getId();
long lastFetchDate = Preferences.getLong(fetchKey, 0);
if(DateUtilities.now() > lastFetchDate + 300000L) {
- refreshData(false);
+ refreshData(false, null);
Preferences.setLong(fetchKey, DateUtilities.now());
} else {
loadingText.setText(R.string.ENA_no_comments);
@@ -223,21 +223,32 @@ public class EditNoteActivity extends ListActivity {
// --- events
- private void refreshData(boolean manual) {
- final ProgressDialog progressDialog;
- if(manual)
- progressDialog = DialogUtilities.progressDialog(this, getString(R.string.DLG_please_wait));
- else
- progressDialog = null;
+ private void refreshData(boolean manual, SyncResultCallback existingCallback) {
+ final SyncResultCallback callback;
+ if(existingCallback != null)
+ callback = existingCallback;
+ else {
+ callback = new ProgressBarSyncResultCallback(
+ this, R.id.progressBar, new Runnable() {
+ @Override
+ public void run() {
+ setUpListAdapter();
+ loadingText.setText(R.string.ENA_no_comments);
+ loadingText.setVisibility(items.size() == 0 ? View.VISIBLE : View.GONE);
+ }
+ });
+
+ callback.started();
+ callback.incrementMax(100);
+ }
+ // push task if it hasn't been pushed
if(task.getValue(Task.REMOTE_ID) == 0) {
- // push task if it hasn't been pushed
new Thread(new Runnable() {
@Override
public void run() {
actFmSyncService.pushTask(task.getId());
- refreshData(false);
- DialogUtilities.dismissDialog(EditNoteActivity.this, progressDialog);
+ refreshData(false, callback);
}
}).start();
return;
@@ -246,17 +257,11 @@ public class EditNoteActivity extends ListActivity {
actFmSyncService.fetchUpdatesForTask(task, manual, new Runnable() {
@Override
public void run() {
- runOnUiThread(new Runnable() {
- @Override
- public void run() {
- setUpListAdapter();
- loadingText.setText(R.string.ENA_no_comments);
- loadingText.setVisibility(items.size() == 0 ? View.VISIBLE : View.GONE);
- DialogUtilities.dismissDialog(EditNoteActivity.this, progressDialog);
- }
- });
+ callback.incrementProgress(50);
+ callback.finished();
}
});
+ callback.incrementProgress(50);
}
private void addComment() {
@@ -288,7 +293,7 @@ public class EditNoteActivity extends ListActivity {
switch (item.getItemId()) {
case MENU_REFRESH_ID: {
- refreshData(true);
+ refreshData(true, null);
return true;
}
diff --git a/astrid/res/layout/edit_note_activity.xml b/astrid/res/layout/edit_note_activity.xml
index b371ae39f..951355cf1 100644
--- a/astrid/res/layout/edit_note_activity.xml
+++ b/astrid/res/layout/edit_note_activity.xml
@@ -5,6 +5,15 @@
android:layout_height="fill_parent"
android:orientation="vertical"
android:background="@drawable/background_gradient">
+
+
+
+
+