diff options
| author | Marco Jacob <mjacob@union06.de> | 2013-07-18 05:49:37 +0200 |
|---|---|---|
| committer | Marco Jacob <mjacob@union06.de> | 2013-07-18 05:49:37 +0200 |
| commit | 2122a9eb046c56d45aacfcbb804ad61269c5c9f4 (patch) | |
| tree | 777ec585355f6a9aec98052d261d597bf906b53c /main/src/cgeo/geocaching/utils/SimpleHandler.java | |
| parent | 8af7e6965a46ef46c628c164262b044fb271d263 (diff) | |
| download | cgeo-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.java | 65 |
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(); + } + + } + +} |
