aboutsummaryrefslogtreecommitdiffstats
path: root/main/src/cgeo/geocaching/utils/SimpleHandler.java
diff options
context:
space:
mode:
authorMarco Jacob <mjacob@union06.de>2013-07-18 05:49:37 +0200
committerMarco Jacob <mjacob@union06.de>2013-07-18 05:49:37 +0200
commit2122a9eb046c56d45aacfcbb804ad61269c5c9f4 (patch)
tree777ec585355f6a9aec98052d261d597bf906b53c /main/src/cgeo/geocaching/utils/SimpleHandler.java
parent8af7e6965a46ef46c628c164262b044fb271d263 (diff)
downloadcgeo-2122a9eb046c56d45aacfcbb804ad61269c5c9f4.zip
cgeo-2122a9eb046c56d45aacfcbb804ad61269c5c9f4.tar.gz
cgeo-2122a9eb046c56d45aacfcbb804ad61269c5c9f4.tar.bz2
Fixes #2931 - make Handler static to solve lint
Diffstat (limited to 'main/src/cgeo/geocaching/utils/SimpleHandler.java')
-rw-r--r--main/src/cgeo/geocaching/utils/SimpleHandler.java65
1 files changed, 65 insertions, 0 deletions
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();
+ }
+
+ }
+
+}