aboutsummaryrefslogtreecommitdiffstats
path: root/main/src/cgeo/geocaching/ui
diff options
context:
space:
mode:
authorBananeweizen <bananeweizen@gmx.de>2014-05-11 18:16:31 +0200
committerBananeweizen <bananeweizen@gmx.de>2014-05-11 18:16:31 +0200
commit7bcf0e177f4b8f731fd205ac0baee9a65154091e (patch)
treedd1c33824125cecaff2de2f23f31e157f9bf2185 /main/src/cgeo/geocaching/ui
parent2279eca9ebb25bd6306acf4502e969c47756c958 (diff)
downloadcgeo-7bcf0e177f4b8f731fd205ac0baee9a65154091e.zip
cgeo-7bcf0e177f4b8f731fd205ac0baee9a65154091e.tar.gz
cgeo-7bcf0e177f4b8f731fd205ac0baee9a65154091e.tar.bz2
refactoring: avoid activity references
Diffstat (limited to 'main/src/cgeo/geocaching/ui')
-rw-r--r--main/src/cgeo/geocaching/ui/dialog/CoordinatesInputDialog.java22
1 files changed, 14 insertions, 8 deletions
diff --git a/main/src/cgeo/geocaching/ui/dialog/CoordinatesInputDialog.java b/main/src/cgeo/geocaching/ui/dialog/CoordinatesInputDialog.java
index b2ce11a..67b8923 100644
--- a/main/src/cgeo/geocaching/ui/dialog/CoordinatesInputDialog.java
+++ b/main/src/cgeo/geocaching/ui/dialog/CoordinatesInputDialog.java
@@ -1,17 +1,18 @@
package cgeo.geocaching.ui.dialog;
import cgeo.geocaching.Geocache;
-import cgeo.geocaching.sensors.IGeoData;
import cgeo.geocaching.R;
import cgeo.geocaching.activity.AbstractActivity;
import cgeo.geocaching.activity.ActivityMixin;
import cgeo.geocaching.geopoint.Geopoint;
import cgeo.geocaching.geopoint.GeopointFormatter;
+import cgeo.geocaching.sensors.IGeoData;
import cgeo.geocaching.settings.Settings;
import cgeo.geocaching.settings.Settings.CoordInputFormatEnum;
import cgeo.geocaching.utils.EditUtils;
import org.apache.commons.lang3.StringUtils;
+import org.eclipse.jdt.annotation.NonNull;
import android.os.Bundle;
import android.text.Editable;
@@ -25,9 +26,11 @@ import android.widget.EditText;
import android.widget.Spinner;
import android.widget.TextView;
+import java.lang.ref.WeakReference;
+
public class CoordinatesInputDialog extends NoTitleDialog {
- final private AbstractActivity context;
+ final private WeakReference<AbstractActivity> context;
final private IGeoData geo;
final private Geocache cache;
private Geopoint gp;
@@ -43,9 +46,9 @@ public class CoordinatesInputDialog extends NoTitleDialog {
private CoordInputFormatEnum currentFormat = null;
- public CoordinatesInputDialog(final AbstractActivity context, final Geocache cache, final Geopoint gp, final IGeoData geo) {
+ public CoordinatesInputDialog(final @NonNull AbstractActivity context, final Geocache cache, final Geopoint gp, final IGeoData geo) {
super(context, ActivityMixin.getDialogTheme());
- this.context = context;
+ this.context = new WeakReference<AbstractActivity>(context);
this.geo = geo;
this.cache = cache;
@@ -66,7 +69,7 @@ public class CoordinatesInputDialog extends NoTitleDialog {
final Spinner spinner = (Spinner) findViewById(R.id.spinnerCoordinateFormats);
final ArrayAdapter<CharSequence> adapter =
- ArrayAdapter.createFromResource(context,
+ ArrayAdapter.createFromResource(context.get(),
R.array.waypoint_coordinate_formats,
android.R.layout.simple_spinner_item);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
@@ -371,7 +374,8 @@ public class CoordinatesInputDialog extends NoTitleDialog {
// Signaled and returned below
}
if (signalError) {
- context.showToast(context.getResources().getString(R.string.err_parse_lat_lon));
+ final AbstractActivity activity = context.get();
+ activity.showToast(activity.getResources().getString(R.string.err_parse_lat_lon));
}
return false;
}
@@ -423,7 +427,8 @@ public class CoordinatesInputDialog extends NoTitleDialog {
@Override
public void onClick(View v) {
if (geo == null || geo.getCoords() == null) {
- context.showToast(context.getResources().getString(R.string.err_point_unknown_position));
+ final AbstractActivity activity = context.get();
+ activity.showToast(activity.getResources().getString(R.string.err_point_unknown_position));
return;
}
@@ -437,7 +442,8 @@ public class CoordinatesInputDialog extends NoTitleDialog {
@Override
public void onClick(View v) {
if (cache == null || cache.getCoords() == null) {
- context.showToast(context.getResources().getString(R.string.err_location_unknown));
+ final AbstractActivity activity = context.get();
+ activity.showToast(activity.getResources().getString(R.string.err_location_unknown));
return;
}