diff options
| author | Bananeweizen <bananeweizen@gmx.de> | 2014-05-11 11:12:29 +0200 |
|---|---|---|
| committer | Bananeweizen <bananeweizen@gmx.de> | 2014-05-11 11:12:29 +0200 |
| commit | f499312e2a45e562fd149d06fee243e012eba5cf (patch) | |
| tree | f4e1bfb83e0b1c0cbd7ce1d3ee2bc6105dd309f9 /main/src/cgeo/geocaching/list | |
| parent | 715e276978b81a14ec96a7cb609bdfa22b44c73b (diff) | |
| download | cgeo-f499312e2a45e562fd149d06fee243e012eba5cf.zip cgeo-f499312e2a45e562fd149d06fee243e012eba5cf.tar.gz cgeo-f499312e2a45e562fd149d06fee243e012eba5cf.tar.bz2 | |
refactoring: remove activity reference
Diffstat (limited to 'main/src/cgeo/geocaching/list')
| -rw-r--r-- | main/src/cgeo/geocaching/list/StoredList.java | 16 |
1 files changed, 13 insertions, 3 deletions
diff --git a/main/src/cgeo/geocaching/list/StoredList.java b/main/src/cgeo/geocaching/list/StoredList.java index e557fc8..84e1163 100644 --- a/main/src/cgeo/geocaching/list/StoredList.java +++ b/main/src/cgeo/geocaching/list/StoredList.java @@ -16,6 +16,7 @@ import android.app.AlertDialog; import android.content.DialogInterface; import android.content.res.Resources; +import java.lang.ref.WeakReference; import java.text.Collator; import java.util.ArrayList; import java.util.Collections; @@ -58,12 +59,12 @@ public final class StoredList extends AbstractList { } public static class UserInterface { - private final Activity activity; + private final WeakReference<Activity> activityRef; private final CgeoApplication app; private final Resources res; - public UserInterface(final Activity activity) { - this.activity = activity; + public UserInterface(final @NonNull Activity activity) { + this.activityRef = new WeakReference<Activity>(activity); app = CgeoApplication.getInstance(); res = app.getResources(); } @@ -104,6 +105,7 @@ public final class StoredList extends AbstractList { final CharSequence[] items = new CharSequence[listsTitle.size()]; + final Activity activity = activityRef.get(); AlertDialog.Builder builder = new AlertDialog.Builder(activity); builder.setTitle(res.getString(titleId)); builder.setItems(listsTitle.toArray(items), new DialogInterface.OnClickListener() { @@ -151,6 +153,10 @@ public final class StoredList extends AbstractList { @SuppressWarnings("unused") @Override public void call(final String listName) { + final Activity activity = activityRef.get(); + if (activity == null) { + return; + } final int newId = DataStore.createList(listName); new StoredList(newId, listName, 0); @@ -165,6 +171,10 @@ public final class StoredList extends AbstractList { } private void handleListNameInput(final String defaultValue, int dialogTitle, int buttonTitle, final Action1<String> runnable) { + final Activity activity = activityRef.get(); + if (activity == null) { + return; + } Dialogs.input(activity, dialogTitle, defaultValue, buttonTitle, new Action1<String>() { @Override |
