aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--main/src/cgeo/geocaching/CacheDetailActivity.java270
-rw-r--r--main/src/cgeo/geocaching/SearchActivity.java4
-rw-r--r--main/src/cgeo/geocaching/cgeocaches.java5
-rw-r--r--main/src/cgeo/geocaching/utils/SimpleCancellableHandler.java86
-rw-r--r--main/src/cgeo/geocaching/utils/SimpleHandler.java65
5 files changed, 296 insertions, 134 deletions
diff --git a/main/src/cgeo/geocaching/CacheDetailActivity.java b/main/src/cgeo/geocaching/CacheDetailActivity.java
index a5ace9e..ac9b156 100644
--- a/main/src/cgeo/geocaching/CacheDetailActivity.java
+++ b/main/src/cgeo/geocaching/CacheDetailActivity.java
@@ -4,6 +4,7 @@ import butterknife.InjectView;
import butterknife.Views;
import cgeo.calendar.ICalendar;
+import cgeo.geocaching.activity.AbstractActivity;
import cgeo.geocaching.activity.AbstractViewPagerActivity;
import cgeo.geocaching.activity.Progress;
import cgeo.geocaching.apps.cache.navi.NavigationAppFactory;
@@ -45,6 +46,8 @@ import cgeo.geocaching.utils.ImageUtils;
import cgeo.geocaching.utils.Log;
import cgeo.geocaching.utils.MatcherWrapper;
import cgeo.geocaching.utils.RunnableWithArgument;
+import cgeo.geocaching.utils.SimpleCancellableHandler;
+import cgeo.geocaching.utils.SimpleHandler;
import cgeo.geocaching.utils.TextUtils;
import cgeo.geocaching.utils.TranslationUtils;
import cgeo.geocaching.utils.UnknownTagsHandler;
@@ -105,6 +108,7 @@ import android.widget.ScrollView;
import android.widget.TextView;
import android.widget.TextView.BufferType;
+import java.lang.ref.WeakReference;
import java.util.ArrayList;
import java.util.Collections;
import java.util.EnumSet;
@@ -149,6 +153,7 @@ public class CacheDetailActivity extends AbstractViewPagerActivity<CacheDetailAc
private Geocache cache;
private final Progress progress = new Progress();
+
private SearchResult search;
private EditNoteDialogListener editNoteDialogListener;
@@ -178,12 +183,6 @@ public class CacheDetailActivity extends AbstractViewPagerActivity<CacheDetailAc
// some views that must be available from everywhere // TODO: Reference can block GC?
private TextView cacheDistanceView;
- private final Handler cacheChangeNotificationHandler = new Handler() {
- @Override
- public void handleMessage(Message msg) {
- notifyDataSetChanged();
- }
- };
protected ImagesList imagesList;
@Override
@@ -278,7 +277,7 @@ public class CacheDetailActivity extends AbstractViewPagerActivity<CacheDetailAc
return;
}
- final LoadCacheHandler loadCacheHandler = new LoadCacheHandler();
+ final LoadCacheHandler loadCacheHandler = new LoadCacheHandler(this, progress);
try {
String title = res.getString(R.string.cache);
@@ -609,44 +608,56 @@ public class CacheDetailActivity extends AbstractViewPagerActivity<CacheDetailAc
return true;
}
- private class LoadCacheHandler extends CancellableHandler {
+ private final static class LoadCacheHandler extends SimpleCancellableHandler {
+
+ public LoadCacheHandler(CacheDetailActivity activity, Progress progress) {
+ super(activity, progress);
+ }
+
@Override
public void handleRegularMessage(final Message msg) {
if (UPDATE_LOAD_PROGRESS_DETAIL == msg.what && msg.obj instanceof String) {
updateStatusMsg((String) msg.obj);
} else {
+ CacheDetailActivity activity = ((CacheDetailActivity) activityRef.get());
+ if (activity == null) {
+ return;
+ }
+ SearchResult search = activity.getSearch();
if (search == null) {
- showToast(res.getString(R.string.err_dwld_details_failed));
-
- progress.dismiss();
- finish();
+ showToast(R.string.err_dwld_details_failed);
+ dismissProgress();
+ finishActivity();
return;
}
if (search.getError() != null) {
- showToast(res.getString(R.string.err_dwld_details_failed) + " " + search.getError().getErrorString(res) + ".");
-
- progress.dismiss();
- finish();
+ activity.showToast(activity.getResources().getString(R.string.err_dwld_details_failed) + " " + search.getError().getErrorString(activity.getResources()) + ".");
+ dismissProgress();
+ finishActivity();
return;
}
- updateStatusMsg(res.getString(R.string.cache_dialog_loading_details_status_render));
+ updateStatusMsg(activity.getResources().getString(R.string.cache_dialog_loading_details_status_render));
// Data loaded, we're ready to show it!
- notifyDataSetChanged();
+ activity.notifyDataSetChanged();
}
}
private void updateStatusMsg(final String msg) {
- progress.setMessage(res.getString(R.string.cache_dialog_loading_details)
+ CacheDetailActivity activity = ((CacheDetailActivity) activityRef.get());
+ if (activity == null) {
+ return;
+ }
+ setProgressMessage(activity.getResources().getString(R.string.cache_dialog_loading_details)
+ "\n\n"
+ msg);
}
@Override
public void handleCancel(final Object extra) {
- finish();
+ finishActivity();
}
}
@@ -666,7 +677,7 @@ public class CacheDetailActivity extends AbstractViewPagerActivity<CacheDetailAc
}
// allow cache to notify CacheDetailActivity when it changes so it can be reloaded
- cache.setChangeNotificationHandler(cacheChangeNotificationHandler);
+ cache.setChangeNotificationHandler(new ChangeNotificationHandler(this, progress));
// action bar: title and icon
if (StringUtils.isNotBlank(cache.getName())) {
@@ -1183,49 +1194,6 @@ public class CacheDetailActivity extends AbstractViewPagerActivity<CacheDetailAc
return view;
}
- private class StoreCacheHandler extends CancellableHandler {
- @Override
- public void handleRegularMessage(Message msg) {
- if (UPDATE_LOAD_PROGRESS_DETAIL == msg.what && msg.obj instanceof String) {
- updateStatusMsg((String) msg.obj);
- } else {
- storeThread = null;
- CacheDetailActivity.this.notifyDataSetChanged(); // reload cache details
- }
- }
-
- private void updateStatusMsg(final String msg) {
- progress.setMessage(res.getString(R.string.cache_dialog_offline_save_message)
- + "\n\n"
- + msg);
- }
- }
-
- private class RefreshCacheHandler extends CancellableHandler {
- @Override
- public void handleRegularMessage(Message msg) {
- if (UPDATE_LOAD_PROGRESS_DETAIL == msg.what && msg.obj instanceof String) {
- updateStatusMsg((String) msg.obj);
- } else {
- refreshThread = null;
- CacheDetailActivity.this.notifyDataSetChanged(); // reload cache details
- }
- }
-
- private void updateStatusMsg(final String msg) {
- progress.setMessage(res.getString(R.string.cache_dialog_refresh_message)
- + "\n\n"
- + msg);
- }
- }
-
- private class DropCacheHandler extends Handler {
- @Override
- public void handleMessage(Message msg) {
- CacheDetailActivity.this.notifyDataSetChanged();
- }
- }
-
private class StoreCacheClickListener implements View.OnClickListener {
@Override
public void onClick(View arg0) {
@@ -1249,7 +1217,7 @@ public class CacheDetailActivity extends AbstractViewPagerActivity<CacheDetailAc
}
protected void storeCache(int listId) {
- final StoreCacheHandler storeCacheHandler = new StoreCacheHandler();
+ final StoreCacheHandler storeCacheHandler = new StoreCacheHandler(CacheDetailActivity.this, progress);
progress.show(CacheDetailActivity.this, res.getString(R.string.cache_dialog_offline_save_title), res.getString(R.string.cache_dialog_offline_save_message), true, storeCacheHandler.cancelMessage());
@@ -1275,7 +1243,7 @@ public class CacheDetailActivity extends AbstractViewPagerActivity<CacheDetailAc
return;
}
- final RefreshCacheHandler refreshCacheHandler = new RefreshCacheHandler();
+ final RefreshCacheHandler refreshCacheHandler = new RefreshCacheHandler(CacheDetailActivity.this, progress);
progress.show(CacheDetailActivity.this, res.getString(R.string.cache_dialog_refresh_title), res.getString(R.string.cache_dialog_refresh_message), true, refreshCacheHandler.cancelMessage());
@@ -1300,6 +1268,7 @@ public class CacheDetailActivity extends AbstractViewPagerActivity<CacheDetailAc
@Override
public void run() {
cache.store(listId, handler);
+ storeThread = null;
}
}
@@ -1313,7 +1282,7 @@ public class CacheDetailActivity extends AbstractViewPagerActivity<CacheDetailAc
@Override
public void run() {
cache.refresh(cache.getListId(), handler);
-
+ refreshThread = null;
handler.sendEmptyMessage(0);
}
}
@@ -1326,24 +1295,22 @@ public class CacheDetailActivity extends AbstractViewPagerActivity<CacheDetailAc
return;
}
- final DropCacheHandler dropCacheHandler = new DropCacheHandler();
-
progress.show(CacheDetailActivity.this, res.getString(R.string.cache_dialog_offline_drop_title), res.getString(R.string.cache_dialog_offline_drop_message), true, null);
- new DropCacheThread(dropCacheHandler).start();
+ new DropCacheThread(new ChangeNotificationHandler(CacheDetailActivity.this, progress)).start();
}
}
private class DropCacheThread extends Thread {
+ private Handler handler;
- private Handler handler = null;
-
- public DropCacheThread(Handler handlerIn) {
- handler = handlerIn;
+ public DropCacheThread(Handler handler) {
+ super();
+ this.handler = handler;
}
@Override
public void run() {
- cache.drop(handler);
+ cache.drop(this.handler);
}
}
@@ -1375,7 +1342,7 @@ public class CacheDetailActivity extends AbstractViewPagerActivity<CacheDetailAc
public void onClick(View arg0) {
doExecute(R.string.cache_dialog_watchlist_add_title,
R.string.cache_dialog_watchlist_add_message,
- new WatchlistAddThread(new WatchlistHandler()));
+ new WatchlistAddThread(new WatchlistHandler(CacheDetailActivity.this, progress)));
}
}
@@ -1387,7 +1354,7 @@ public class CacheDetailActivity extends AbstractViewPagerActivity<CacheDetailAc
public void onClick(View arg0) {
doExecute(R.string.cache_dialog_watchlist_remove_title,
R.string.cache_dialog_watchlist_remove_message,
- new WatchlistRemoveThread(new WatchlistHandler()));
+ new WatchlistRemoveThread(new WatchlistHandler(CacheDetailActivity.this, progress)));
}
}
@@ -1401,6 +1368,7 @@ public class CacheDetailActivity extends AbstractViewPagerActivity<CacheDetailAc
@Override
public void run() {
+ watchlistThread = null;
handler.sendEmptyMessage(ConnectorFactory.getConnector(cache).addToWatchlist(cache) ? 1 : -1);
}
}
@@ -1415,6 +1383,7 @@ public class CacheDetailActivity extends AbstractViewPagerActivity<CacheDetailAc
@Override
public void run() {
+ watchlistThread = null;
handler.sendEmptyMessage(ConnectorFactory.getConnector(cache).removeFromWatchlist(cache) ? 1 : -1);
}
}
@@ -1429,6 +1398,7 @@ public class CacheDetailActivity extends AbstractViewPagerActivity<CacheDetailAc
@Override
public void run() {
+ watchlistThread = null;
handler.sendEmptyMessage(GCConnector.addToFavorites(cache) ? 1 : -1);
}
}
@@ -1443,22 +1413,11 @@ public class CacheDetailActivity extends AbstractViewPagerActivity<CacheDetailAc
@Override
public void run() {
+ watchlistThread = null;
handler.sendEmptyMessage(GCConnector.removeFromFavorites(cache) ? 1 : -1);
}
}
- private class FavoriteUpdateHandler extends Handler {
- @Override
- public void handleMessage(Message msg) {
- progress.dismiss();
- if (msg.what == -1) {
- showToast(res.getString(R.string.err_favorite_failed));
- } else {
- CacheDetailActivity.this.notifyDataSetChanged(); // reload cache details
- }
- }
- }
-
/**
* Listener for "add to favorites" button
*/
@@ -1467,7 +1426,7 @@ public class CacheDetailActivity extends AbstractViewPagerActivity<CacheDetailAc
public void onClick(View arg0) {
doExecute(R.string.cache_dialog_favorite_add_title,
R.string.cache_dialog_favorite_add_message,
- new FavoriteAddThread(new FavoriteUpdateHandler()));
+ new FavoriteAddThread(new FavoriteUpdateHandler(CacheDetailActivity.this, progress)));
}
}
@@ -1479,7 +1438,7 @@ public class CacheDetailActivity extends AbstractViewPagerActivity<CacheDetailAc
public void onClick(View arg0) {
doExecute(R.string.cache_dialog_favorite_remove_title,
R.string.cache_dialog_favorite_remove_message,
- new FavoriteRemoveThread(new FavoriteUpdateHandler()));
+ new FavoriteRemoveThread(new FavoriteUpdateHandler(CacheDetailActivity.this, progress)));
}
}
@@ -1607,22 +1566,6 @@ public class CacheDetailActivity extends AbstractViewPagerActivity<CacheDetailAc
}
}
- /**
- * Handler, called when watchlist add or remove is done
- */
- private class WatchlistHandler extends Handler {
- @Override
- public void handleMessage(Message msg) {
- watchlistThread = null;
- progress.dismiss();
- if (msg.what == -1) {
- showToast(res.getString(R.string.err_watchlist_failed));
- } else {
- CacheDetailActivity.this.notifyDataSetChanged(); // reload cache details
- }
- }
- }
-
private class PreviewMapTask extends AsyncTask<Void, Void, BitmapDrawable> {
@Override
protected BitmapDrawable doInBackground(Void... parameters) {
@@ -1805,7 +1748,7 @@ public class CacheDetailActivity extends AbstractViewPagerActivity<CacheDetailAc
Thread currentThread;
private void uploadPersonalNote() {
- final SimpleHandler myHandler = new SimpleHandler();
+ final SimpleCancellableHandler myHandler = new SimpleCancellableHandler(CacheDetailActivity.this, progress);
Message cancelMessage = myHandler.cancelMessage(res.getString(R.string.cache_personal_note_upload_cancelled));
progress.show(CacheDetailActivity.this, res.getString(R.string.cache_personal_note_uploading), res.getString(R.string.cache_personal_note_uploading), true, cancelMessage);
@@ -2311,24 +2254,6 @@ public class CacheDetailActivity extends AbstractViewPagerActivity<CacheDetailAc
}
}
- public class SimpleHandler extends CancellableHandler {
- public static final String SUCCESS_TEXT = "success_message";
-
- @Override
- public void handleRegularMessage(final Message msg) {
- if (msg.getData() != null && msg.getData().getString(SUCCESS_TEXT) != null) {
- showToast(msg.getData().getString(SUCCESS_TEXT));
- }
- progress.dismiss();
- }
-
- @Override
- public void handleCancel(final Object extra) {
- showToast((String) extra);
- progress.dismiss();
- }
- }
-
private class UploadPersonalNoteThread extends Thread {
private Geocache cache = null;
private CancellableHandler handler = null;
@@ -2346,7 +2271,7 @@ public class CacheDetailActivity extends AbstractViewPagerActivity<CacheDetailAc
}
Message msg = Message.obtain();
Bundle bundle = new Bundle();
- bundle.putString(SimpleHandler.SUCCESS_TEXT, res.getString(R.string.cache_personal_note_upload_done));
+ bundle.putString(SimpleCancellableHandler.SUCCESS_TEXT, res.getString(R.string.cache_personal_note_upload_done));
msg.setData(bundle);
handler.sendMessage(msg);
}
@@ -2460,4 +2385,95 @@ public class CacheDetailActivity extends AbstractViewPagerActivity<CacheDetailAc
return cache;
}
+ public SearchResult getSearch() {
+ return search;
+ }
+
+ private static final class StoreCacheHandler extends SimpleCancellableHandler {
+
+ public StoreCacheHandler(CacheDetailActivity activity, Progress progress) {
+ super(activity, progress);
+ }
+
+ @Override
+ public void handleRegularMessage(Message msg) {
+ if (UPDATE_LOAD_PROGRESS_DETAIL == msg.what && msg.obj instanceof String) {
+ updateStatusMsg(R.string.cache_dialog_offline_save_message, (String) msg.obj);
+ } else {
+ notifyDatasetChanged(activityRef);
+ }
+ }
+ }
+
+ private static final class RefreshCacheHandler extends SimpleCancellableHandler {
+
+ public RefreshCacheHandler(CacheDetailActivity activity, Progress progress) {
+ super(activity, progress);
+ }
+
+ @Override
+ public void handleRegularMessage(Message msg) {
+ if (UPDATE_LOAD_PROGRESS_DETAIL == msg.what && msg.obj instanceof String) {
+ updateStatusMsg(R.string.cache_dialog_refresh_message, (String) msg.obj);
+ } else {
+ notifyDatasetChanged(activityRef);
+ }
+ }
+ }
+
+ private static final class ChangeNotificationHandler extends SimpleHandler {
+
+ public ChangeNotificationHandler(CacheDetailActivity activity, Progress progress) {
+ super(activity, progress);
+ }
+
+ @Override
+ public void handleMessage(Message msg) {
+ notifyDatasetChanged(activityRef);
+ }
+ }
+
+ private static final class FavoriteUpdateHandler extends SimpleHandler {
+
+ public FavoriteUpdateHandler(CacheDetailActivity activity, Progress progress) {
+ super(activity, progress);
+ }
+
+ @Override
+ public void handleMessage(Message msg) {
+ if (msg.what == -1) {
+ dismissProgress();
+ showToast(R.string.err_favorite_failed);
+ } else {
+ notifyDatasetChanged(activityRef);
+ }
+ }
+ }
+
+ /**
+ * Handler, called when watchlist add or remove is done
+ */
+ private static final class WatchlistHandler extends SimpleHandler {
+
+ public WatchlistHandler(CacheDetailActivity activity, Progress progress) {
+ super(activity, progress);
+ }
+
+ @Override
+ public void handleMessage(Message msg) {
+ if (msg.what == -1) {
+ dismissProgress();
+ showToast(R.string.err_watchlist_failed);
+ } else {
+ notifyDatasetChanged(activityRef);
+ }
+ }
+ }
+
+ private static void notifyDatasetChanged(WeakReference<AbstractActivity> activityRef) {
+ CacheDetailActivity activity = ((CacheDetailActivity) activityRef.get());
+ if (activity != null) {
+ activity.notifyDataSetChanged();
+ }
+ }
}
diff --git a/main/src/cgeo/geocaching/SearchActivity.java b/main/src/cgeo/geocaching/SearchActivity.java
index b1a58a4..6285cda 100644
--- a/main/src/cgeo/geocaching/SearchActivity.java
+++ b/main/src/cgeo/geocaching/SearchActivity.java
@@ -127,9 +127,7 @@ public class SearchActivity extends AbstractActivity {
final IConnector connector = ConnectorFactory.getConnector(geocode);
if (connector instanceof ISearchByGeocode) {
- final Intent cachesIntent = new Intent(this, CacheDetailActivity.class);
- cachesIntent.putExtra(Intents.EXTRA_GEOCODE, geocode.toUpperCase(Locale.US));
- startActivity(cachesIntent);
+ CacheDetailActivity.startActivity(this, geocode.toUpperCase(Locale.US));
return true;
}
diff --git a/main/src/cgeo/geocaching/cgeocaches.java b/main/src/cgeo/geocaching/cgeocaches.java
index e388078..5d7841d 100644
--- a/main/src/cgeo/geocaching/cgeocaches.java
+++ b/main/src/cgeo/geocaching/cgeocaches.java
@@ -907,10 +907,7 @@ public class cgeocaches extends AbstractListActivity implements FilteredActivity
NavigationAppFactory.showNavigationMenu(this, cache, null, null);
break;
case MENU_CACHE_DETAILS:
- final Intent cachesIntent = new Intent(this, CacheDetailActivity.class);
- cachesIntent.putExtra(Intents.EXTRA_GEOCODE, cache.getGeocode());
- cachesIntent.putExtra(Intents.EXTRA_NAME, cache.getName());
- startActivity(cachesIntent);
+ CacheDetailActivity.startActivity(this, cache.getGeocode(), cache.getName());
break;
case MENU_DROP_CACHE:
cache.drop(new Handler() {
diff --git a/main/src/cgeo/geocaching/utils/SimpleCancellableHandler.java b/main/src/cgeo/geocaching/utils/SimpleCancellableHandler.java
new file mode 100644
index 0000000..94246e0
--- /dev/null
+++ b/main/src/cgeo/geocaching/utils/SimpleCancellableHandler.java
@@ -0,0 +1,86 @@
+package cgeo.geocaching.utils;
+
+import cgeo.geocaching.CacheDetailActivity;
+import cgeo.geocaching.activity.AbstractActivity;
+import cgeo.geocaching.activity.Progress;
+
+import android.content.res.Resources;
+import android.os.Message;
+
+import java.lang.ref.WeakReference;
+
+public class SimpleCancellableHandler extends CancellableHandler {
+ public static final String SUCCESS_TEXT = "success_message";
+ protected final WeakReference<AbstractActivity> activityRef;
+ protected final WeakReference<Progress> progressDialogRef;
+
+ public SimpleCancellableHandler(final AbstractActivity activity, final Progress progress) {
+ this.activityRef = new WeakReference<AbstractActivity>(activity);
+ this.progressDialogRef = new WeakReference<Progress>(progress);
+ }
+
+ @Override
+ public void handleRegularMessage(final Message msg) {
+ AbstractActivity activity = activityRef.get();
+ if (activity != null && msg.getData() != null && msg.getData().getString(SUCCESS_TEXT) != null) {
+ activity.showToast(msg.getData().getString(SUCCESS_TEXT));
+ }
+ Progress progressDialog = progressDialogRef.get();
+ if (progressDialog != null) {
+ progressDialog.dismiss();
+ }
+ return;
+ }
+
+ @Override
+ public void handleCancel(final Object extra) {
+ AbstractActivity activity = activityRef.get();
+ if (activity != null) {
+ activity.showToast((String) extra);
+ }
+ Progress progressDialog = progressDialogRef.get();
+ if (progressDialog != null) {
+ progressDialog.dismiss();
+ }
+ }
+
+ public final void showToast(int resId) {
+ AbstractActivity activity = activityRef.get();
+ if (activity != null) {
+ Resources res = activity.getResources();
+ activity.showToast(res.getText(resId).toString());
+ }
+ }
+
+ public final void dismissProgress() {
+ Progress progressDialog = progressDialogRef.get();
+ if (progressDialog != null) {
+ progressDialog.dismiss();
+ }
+ }
+
+ protected final void setProgressMessage(final String txt) {
+ Progress progressDialog = progressDialogRef.get();
+ if (progressDialog != null) {
+ progressDialog.setMessage(txt);
+ }
+ }
+
+ protected final void finishActivity() {
+ AbstractActivity activity = activityRef.get();
+ if (activity != null) {
+ activity.finish();
+ }
+
+ }
+
+ protected void updateStatusMsg(final int resId, final String msg) {
+ CacheDetailActivity activity = ((CacheDetailActivity) activityRef.get());
+ if (activity != null) {
+ setProgressMessage(activity.getResources().getString(resId)
+ + "\n\n"
+ + msg);
+ }
+ }
+
+}
diff --git a/main/src/cgeo/geocaching/utils/SimpleHandler.java b/main/src/cgeo/geocaching/utils/SimpleHandler.java
new file mode 100644
index 0000000..554ded6
--- /dev/null
+++ b/main/src/cgeo/geocaching/utils/SimpleHandler.java
@@ -0,0 +1,65 @@
+package cgeo.geocaching.utils;
+
+import cgeo.geocaching.activity.AbstractActivity;
+import cgeo.geocaching.activity.Progress;
+
+import android.content.res.Resources;
+import android.os.Handler;
+import android.os.Message;
+
+import java.lang.ref.WeakReference;
+
+public abstract class SimpleHandler extends Handler {
+ public static final String SUCCESS_TEXT = "success_message";
+ protected final WeakReference<AbstractActivity> activityRef;
+ protected final WeakReference<Progress> progressDialogRef;
+
+ public SimpleHandler(final AbstractActivity activity, final Progress progress) {
+ this.activityRef = new WeakReference<AbstractActivity>(activity);
+ this.progressDialogRef = new WeakReference<Progress>(progress);
+ }
+
+ @Override
+ public void handleMessage(final Message msg) {
+ AbstractActivity activity = activityRef.get();
+ if (activity != null && msg.getData() != null && msg.getData().getString(SUCCESS_TEXT) != null) {
+ activity.showToast(msg.getData().getString(SUCCESS_TEXT));
+ }
+ Progress progressDialog = progressDialogRef.get();
+ if (progressDialog != null) {
+ progressDialog.dismiss();
+ }
+ return;
+ }
+
+ protected final void showToast(final int resId) {
+ AbstractActivity activity = activityRef.get();
+ if (activity != null) {
+ Resources res = activity.getResources();
+ activity.showToast(res.getText(resId).toString());
+ }
+ }
+
+ protected final void dismissProgress() {
+ Progress progressDialog = progressDialogRef.get();
+ if (progressDialog != null) {
+ progressDialog.dismiss();
+ }
+ }
+
+ protected final void setProgressMessage(final String txt) {
+ Progress progressDialog = progressDialogRef.get();
+ if (progressDialog != null) {
+ progressDialog.setMessage(txt);
+ }
+ }
+
+ protected final void finishActivity() {
+ AbstractActivity activity = activityRef.get();
+ if (activity != null) {
+ activity.finish();
+ }
+
+ }
+
+}