diff options
| author | Marco Jacob <mjacob@union06.de> | 2013-07-18 12:32:50 -0700 |
|---|---|---|
| committer | Marco Jacob <mjacob@union06.de> | 2013-07-18 12:32:50 -0700 |
| commit | c3d4840e3e56ad4a0b94bcc0f58b5e50fc34c822 (patch) | |
| tree | 65be261b01f7df168bfb5d31c6b17522c881cecf /main/src/cgeo/geocaching/utils/SimpleCancellableHandler.java | |
| parent | a3e7256c505f9df3335aca417f36e4a8e96a5b4a (diff) | |
| parent | 2122a9eb046c56d45aacfcbb804ad61269c5c9f4 (diff) | |
| download | cgeo-c3d4840e3e56ad4a0b94bcc0f58b5e50fc34c822.zip cgeo-c3d4840e3e56ad4a0b94bcc0f58b5e50fc34c822.tar.gz cgeo-c3d4840e3e56ad4a0b94bcc0f58b5e50fc34c822.tar.bz2 | |
Merge pull request #3017 from marco-jacob/fixHandlerToStaticNew
Fixes #2931 - make Handler static to solve lint
Diffstat (limited to 'main/src/cgeo/geocaching/utils/SimpleCancellableHandler.java')
| -rw-r--r-- | main/src/cgeo/geocaching/utils/SimpleCancellableHandler.java | 86 |
1 files changed, 86 insertions, 0 deletions
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); + } + } + +} |
