aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--main/AndroidManifest.xml3
-rw-r--r--main/res/layout/editwaypoint_activity.xml9
-rw-r--r--main/res/menu/map_activity.xml4
-rw-r--r--main/src/cgeo/geocaching/CacheDetailActivity.java2
-rw-r--r--main/src/cgeo/geocaching/EditWaypointActivity.java242
-rw-r--r--main/src/cgeo/geocaching/StaticMapsActivity.java3
-rw-r--r--main/src/cgeo/geocaching/activity/Progress.java2
-rw-r--r--main/src/cgeo/geocaching/connector/oc/OkapiClient.java1
-rw-r--r--main/src/cgeo/geocaching/maps/CGeoMap.java18
-rw-r--r--tests/src/cgeo/geocaching/GeocacheTest.java (renamed from tests/src/cgeo/geocaching/CacheTest.java)2
-rw-r--r--tests/src/cgeo/geocaching/geopoint/GeoPointParserTest.java8
11 files changed, 123 insertions, 171 deletions
diff --git a/main/AndroidManifest.xml b/main/AndroidManifest.xml
index 1ea0d28..004ecc0 100644
--- a/main/AndroidManifest.xml
+++ b/main/AndroidManifest.xml
@@ -111,8 +111,7 @@
android:windowSoftInputMode="stateHidden" >
</activity>
<activity
- android:name=".EditWaypointActivity"
- android:configChanges="keyboardHidden|orientation"
+ android:name=".EditWaypointActivity_"
android:label="@string/waypoint_edit_title"
android:windowSoftInputMode="stateHidden" >
</activity>
diff --git a/main/res/layout/editwaypoint_activity.xml b/main/res/layout/editwaypoint_activity.xml
index 657e9f4..cd0b46c 100644
--- a/main/res/layout/editwaypoint_activity.xml
+++ b/main/res/layout/editwaypoint_activity.xml
@@ -21,12 +21,14 @@
<Button
android:id="@+id/buttonLatitude"
style="@style/button_full"
- android:hint="@string/latitude" />
+ android:hint="@string/latitude"
+ android:freezesText="true" />
<Button
android:id="@+id/buttonLongitude"
style="@style/button_full"
- android:hint="@string/longitude" />
+ android:hint="@string/longitude"
+ android:freezesText="true" />
<EditText
android:id="@+id/bearing"
@@ -62,7 +64,8 @@
<Spinner
android:id="@+id/type"
android:layout_width="fill_parent"
- android:layout_height="wrap_content" />
+ android:layout_height="wrap_content"
+ android:visibility="gone" />
<EditText
android:id="@+id/note"
diff --git a/main/res/menu/map_activity.xml b/main/res/menu/map_activity.xml
index d76f5ca..df8fe09 100644
--- a/main/res/menu/map_activity.xml
+++ b/main/res/menu/map_activity.xml
@@ -55,22 +55,18 @@
android:checkableBehavior="single" >
<item
android:id="@+id/menu_strategy_fastest"
- android:checkable="true"
android:title="@string/map_strategy_fastest">
</item>
<item
android:id="@+id/menu_strategy_fast"
- android:checkable="true"
android:title="@string/map_strategy_fast">
</item>
<item
android:id="@+id/menu_strategy_auto"
- android:checkable="true"
android:title="@string/map_strategy_auto">
</item>
<item
android:id="@+id/menu_strategy_detailed"
- android:checkable="true"
android:title="@string/map_strategy_detailed">
</item>
</group>
diff --git a/main/src/cgeo/geocaching/CacheDetailActivity.java b/main/src/cgeo/geocaching/CacheDetailActivity.java
index 32aabd8..b4c7b33 100644
--- a/main/src/cgeo/geocaching/CacheDetailActivity.java
+++ b/main/src/cgeo/geocaching/CacheDetailActivity.java
@@ -1873,8 +1873,10 @@ public class CacheDetailActivity extends AbstractViewPagerActivity<CacheDetailAc
@Override
public void onFinishEditNoteDialog(final String note) {
cache.setPersonalNote(note);
+ cache.parseWaypointsFromNote();
setPersonalNote();
cgData.saveCache(cache, EnumSet.of(SaveFlag.SAVE_DB));
+ CacheDetailActivity.this.notifyDataSetChanged();
}
};
final FragmentManager fm = getSupportFragmentManager();
diff --git a/main/src/cgeo/geocaching/EditWaypointActivity.java b/main/src/cgeo/geocaching/EditWaypointActivity.java
index f97e9b5..ab35641 100644
--- a/main/src/cgeo/geocaching/EditWaypointActivity.java
+++ b/main/src/cgeo/geocaching/EditWaypointActivity.java
@@ -1,7 +1,5 @@
package cgeo.geocaching;
-import butterknife.InjectView;
-
import cgeo.geocaching.activity.AbstractActivity;
import cgeo.geocaching.connector.ConnectorFactory;
import cgeo.geocaching.connector.IConnector;
@@ -17,11 +15,15 @@ import cgeo.geocaching.utils.BaseUtils;
import cgeo.geocaching.utils.GeoDirHandler;
import cgeo.geocaching.utils.Log;
+import com.googlecode.androidannotations.annotations.EActivity;
+import com.googlecode.androidannotations.annotations.Extra;
+import com.googlecode.androidannotations.annotations.InstanceState;
+import com.googlecode.androidannotations.annotations.ViewById;
+
import org.apache.commons.lang3.StringUtils;
import android.app.ProgressDialog;
import android.content.Context;
-import android.content.Intent;
import android.os.AsyncTask;
import android.os.Bundle;
import android.os.Handler;
@@ -29,90 +31,88 @@ import android.os.Message;
import android.text.Html;
import android.view.View;
import android.widget.AdapterView;
-import android.widget.AdapterView.OnItemSelectedListener;
import android.widget.ArrayAdapter;
import android.widget.AutoCompleteTextView;
import android.widget.Button;
import android.widget.CheckBox;
-import android.widget.CompoundButton;
-import android.widget.CompoundButton.OnCheckedChangeListener;
import android.widget.EditText;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.Spinner;
import java.util.ArrayList;
+import java.util.Arrays;
import java.util.EnumSet;
import java.util.List;
+@EActivity
public class EditWaypointActivity extends AbstractActivity {
- @InjectView(R.id.buttonLatitude) protected Button buttonLat;
- @InjectView(R.id.buttonLongitude) protected Button buttonLon;
- @InjectView(R.id.add_waypoint) protected Button addWaypoint;
- @InjectView(R.id.note) protected EditText note;
- @InjectView(R.id.wpt_visited_checkbox) protected CheckBox visitedCheckBox;
- @InjectView(R.id.name) protected AutoCompleteTextView waypointName;
- @InjectView(R.id.type) protected Spinner waypointTypeSelector;
- @InjectView(R.id.distance) protected EditText distanceView;
- @InjectView(R.id.modify_cache_coordinates_group) protected RadioGroup coordinatesGroup;
- @InjectView(R.id.modify_cache_coordinates_local_and_remote) protected RadioButton modifyBoth;
- @InjectView(R.id.distanceUnit) protected Spinner distanceUnitSelector;
- @InjectView(R.id.bearing) protected EditText bearing;
- @InjectView(R.id.modify_cache_coordinates_local) protected RadioButton modifyLocal;
-
- private String geocode = null;
- private int id = -1;
+ @ViewById(R.id.buttonLatitude) protected Button buttonLat;
+ @ViewById(R.id.buttonLongitude) protected Button buttonLon;
+ @ViewById(R.id.add_waypoint) protected Button addWaypoint;
+ @ViewById(R.id.note) protected EditText note;
+ @ViewById(R.id.wpt_visited_checkbox) protected CheckBox visitedCheckBox;
+ @ViewById(R.id.name) protected AutoCompleteTextView waypointName;
+ @ViewById(R.id.type) protected Spinner waypointTypeSelector;
+ @ViewById(R.id.distance) protected EditText distanceView;
+ @ViewById(R.id.modify_cache_coordinates_group) protected RadioGroup coordinatesGroup;
+ @ViewById(R.id.modify_cache_coordinates_local_and_remote) protected RadioButton modifyBoth;
+ @ViewById(R.id.distanceUnit) protected Spinner distanceUnitSelector;
+ @ViewById(R.id.bearing) protected EditText bearing;
+ @ViewById(R.id.modify_cache_coordinates_local) protected RadioButton modifyLocal;
+
+ @Extra(Intents.EXTRA_GEOCODE) protected String geocode = null;
+ @Extra(Intents.EXTRA_WAYPOINT_ID) protected int id = -1;
+ /**
+ * number of waypoints that the corresponding cache has until now
+ */
+ @Extra(Intents.EXTRA_COUNT) protected int wpCount = 0;
+
+ @InstanceState protected int waypointTypeSelectorPosition = -1;
private ProgressDialog waitDialog = null;
private Waypoint waypoint = null;
- private Geopoint gpTemp = null;
- private WaypointType type = WaypointType.OWN;
private String prefix = "OWN";
private String lookup = "---";
private boolean own = true;
- private boolean visited = false;
ArrayList<WaypointType> wpTypes = null;
- String distanceUnit = "";
+ ArrayList<String> distanceUnits = null;
+ private boolean initViews = true;
- /**
- * number of waypoints that the corresponding cache has until now
- */
- private int wpCount = 0;
private Handler loadWaypointHandler = new Handler() {
@Override
public void handleMessage(Message msg) {
try {
if (waypoint == null) {
+ Log.d("No waypoint loaded to edit. id= " + id);
id = -1;
} else {
geocode = waypoint.getGeocode();
- type = waypoint.getWaypointType();
prefix = waypoint.getPrefix();
lookup = waypoint.getLookup();
own = waypoint.isUserDefined();
- visited = waypoint.isVisited();
- if (waypoint.getCoords() != null) {
- buttonLat.setText(waypoint.getCoords().format(GeopointFormatter.Format.LAT_DECMINUTE));
- buttonLon.setText(waypoint.getCoords().format(GeopointFormatter.Format.LON_DECMINUTE));
- }
- waypointName.setText(Html.fromHtml(StringUtils.trimToEmpty(waypoint.getName())).toString());
- if (BaseUtils.containsHtml(waypoint.getNote())) {
- note.setText(Html.fromHtml(StringUtils.trimToEmpty(waypoint.getNote())).toString());
- }
- else {
- note.setText(StringUtils.trimToEmpty(waypoint.getNote()));
+ if (initViews) {
+ visitedCheckBox.setChecked(waypoint.isVisited());
+ if (waypoint.getCoords() != null) {
+ buttonLat.setText(waypoint.getCoords().format(GeopointFormatter.Format.LAT_DECMINUTE));
+ buttonLon.setText(waypoint.getCoords().format(GeopointFormatter.Format.LON_DECMINUTE));
+ }
+ waypointName.setText(Html.fromHtml(StringUtils.trimToEmpty(waypoint.getName())).toString());
+ if (BaseUtils.containsHtml(waypoint.getNote())) {
+ note.setText(Html.fromHtml(StringUtils.trimToEmpty(waypoint.getNote())).toString());
+ }
+ else {
+ note.setText(StringUtils.trimToEmpty(waypoint.getNote()));
+ }
}
- Geocache cache = cgData.loadCache(geocode, LoadFlags.LOAD_CACHE_ONLY);
+ final Geocache cache = cgData.loadCache(geocode, LoadFlags.LOAD_CACHE_ONLY);
setCoordsModificationVisibility(ConnectorFactory.getConnector(geocode), cache);
}
if (own) {
initializeWaypointTypeSelector();
}
- visitedCheckBox.setChecked(visited);
-
- initializeDistanceUnitSelector();
} catch (Exception e) {
Log.e("EditWaypointActivity.loadWaypointHandler", e);
} finally {
@@ -128,14 +128,6 @@ public class EditWaypointActivity extends AbstractActivity {
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState, R.layout.editwaypoint_activity);
- // get parameters
- Bundle extras = getIntent().getExtras();
- if (extras != null) {
- geocode = extras.getString(Intents.EXTRA_GEOCODE);
- wpCount = extras.getInt(Intents.EXTRA_COUNT, 0);
- id = extras.getInt(Intents.EXTRA_WAYPOINT_ID);
- }
-
if (StringUtils.isBlank(geocode) && id <= 0) {
showToast(res.getString(R.string.err_waypoint_cache_unknown));
@@ -152,7 +144,7 @@ public class EditWaypointActivity extends AbstractActivity {
buttonLat.setOnClickListener(new CoordDialogListener());
buttonLon.setOnClickListener(new CoordDialogListener());
- addWaypoint.setOnClickListener(new CoordsListener());
+ addWaypoint.setOnClickListener(new SaveWaypointListener());
List<String> wayPointNames = new ArrayList<String>();
for (WaypointType wpt : WaypointType.ALL_TYPES_EXCEPT_OWN_AND_ORIGINAL) {
@@ -161,28 +153,24 @@ public class EditWaypointActivity extends AbstractActivity {
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_dropdown_item_1line, wayPointNames);
waypointName.setAdapter(adapter);
- if (id > 0) {
- waypointTypeSelector.setVisibility(View.GONE);
+ if (savedInstanceState != null) {
+ initViews = false;
+ }
+ if (id > 0) { // existing waypoint
waitDialog = ProgressDialog.show(this, null, res.getString(R.string.waypoint_loading), true);
waitDialog.setCancelable(true);
(new LoadWaypointThread()).start();
- } else {
+
+ } else { // new waypoint
initializeWaypointTypeSelector();
- }
- if (geocode != null) {
- Geocache cache = cgData.loadCache(geocode, LoadFlags.LOAD_CACHE_OR_DB);
- IConnector con = ConnectorFactory.getConnector(geocode);
- setCoordsModificationVisibility(con, cache);
- }
- visitedCheckBox.setOnCheckedChangeListener(new OnCheckedChangeListener() {
- @Override
- public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
- visited = isChecked;
+ if (geocode != null) {
+ final Geocache cache = cgData.loadCache(geocode, LoadFlags.LOAD_CACHE_OR_DB);
+ setCoordsModificationVisibility(ConnectorFactory.getConnector(geocode), cache);
}
- });
+ }
initializeDistanceUnitSelector();
@@ -204,15 +192,6 @@ public class EditWaypointActivity extends AbstractActivity {
super.onResume();
geoDirHandler.startGeo();
-
- if (id > 0) {
- if (waitDialog == null) {
- waitDialog = ProgressDialog.show(this, null, res.getString(R.string.waypoint_loading), true);
- waitDialog.setCancelable(true);
-
- (new LoadWaypointThread()).start();
- }
- }
}
@Override
@@ -227,29 +206,35 @@ public class EditWaypointActivity extends AbstractActivity {
wpAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
waypointTypeSelector.setAdapter(wpAdapter);
- int typeIndex = wpTypes.indexOf(type);
- if (typeIndex < 0) {
- typeIndex = wpTypes.indexOf(WaypointType.WAYPOINT);
- }
+ waypointTypeSelector.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
+ @Override
+ public void onItemSelected(AdapterView<?> parent, View v, int pos, long id) {
+ waypointTypeSelectorPosition = pos;
+ }
- waypointTypeSelector.setSelection(typeIndex);
- waypointTypeSelector.setOnItemSelectedListener(new ChangeWaypointType(this));
+ @Override
+ public void onNothingSelected(AdapterView<?> parent) {
+ }
+ });
+
+ if (initViews) {
+ int typeIndex = -1;
+ if (waypoint != null) {
+ typeIndex = wpTypes.indexOf(waypoint.getWaypointType());
+ }
+ waypointTypeSelector.setSelection(typeIndex >= 0 ? typeIndex : wpTypes.indexOf(WaypointType.WAYPOINT));
+ } else {
+ waypointTypeSelector.setSelection(waypointTypeSelectorPosition);
+ }
waypointTypeSelector.setVisibility(View.VISIBLE);
}
private void initializeDistanceUnitSelector() {
- if (StringUtils.isBlank(distanceUnit)) {
- if (Settings.isUseMetricUnits()) {
- distanceUnitSelector.setSelection(0); // m
- distanceUnit = res.getStringArray(R.array.distance_units)[0];
- } else {
- distanceUnitSelector.setSelection(2); // ft
- distanceUnit = res.getStringArray(R.array.distance_units)[2];
- }
+ distanceUnits = new ArrayList<String>(Arrays.asList(res.getStringArray(R.array.distance_units)));
+ if (initViews) {
+ distanceUnitSelector.setSelection(Settings.isUseMetricUnits() ? 0 : 2); //0:m, 2:ft
}
-
- distanceUnitSelector.setOnItemSelectedListener(new ChangeDistanceUnit(this));
}
final private GeoDirHandler geoDirHandler = new GeoDirHandler() {
@@ -287,10 +272,10 @@ public class EditWaypointActivity extends AbstractActivity {
@Override
public void onClick(View arg0) {
Geopoint gp = null;
- if (waypoint != null && waypoint.getCoords() != null) {
- gp = waypoint.getCoords();
- } else if (gpTemp != null) {
- gp = gpTemp;
+ try {
+ gp = new Geopoint(buttonLat.getText().toString(), buttonLon.getText().toString());
+ } catch (Geopoint.ParseException e) {
+ // button text is blank when creating new waypoint
}
Geocache cache = cgData.loadCache(geocode, LoadFlags.LOAD_WAYPOINTS);
CoordinatesInputDialog coordsDialog = new CoordinatesInputDialog(EditWaypointActivity.this, cache, gp, app.currentGeo());
@@ -300,60 +285,12 @@ public class EditWaypointActivity extends AbstractActivity {
public void update(final Geopoint gp) {
buttonLat.setText(gp.format(GeopointFormatter.Format.LAT_DECMINUTE));
buttonLon.setText(gp.format(GeopointFormatter.Format.LON_DECMINUTE));
- if (waypoint != null) {
- waypoint.setCoords(gp);
- } else {
- gpTemp = gp;
- }
}
});
coordsDialog.show();
}
}
- private static class ChangeWaypointType implements OnItemSelectedListener {
-
- private ChangeWaypointType(EditWaypointActivity wpView) {
- this.wpView = wpView;
- }
-
- private EditWaypointActivity wpView;
-
- @Override
- public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2,
- long arg3) {
- if (null != wpView.wpTypes) {
- wpView.type = wpView.wpTypes.get(arg2);
- }
- }
-
- @Override
- public void onNothingSelected(AdapterView<?> arg0) {
- if (null != wpView.wpTypes) {
- arg0.setSelection(wpView.wpTypes.indexOf(wpView.type));
- }
- }
- }
-
- private static class ChangeDistanceUnit implements OnItemSelectedListener {
-
- private ChangeDistanceUnit(EditWaypointActivity unitView) {
- this.unitView = unitView;
- }
-
- private EditWaypointActivity unitView;
-
- @Override
- public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2,
- long arg3) {
- unitView.distanceUnit = (String) arg0.getItemAtPosition(arg2);
- }
-
- @Override
- public void onNothingSelected(AdapterView<?> arg0) {
- }
- }
-
public static final int SUCCESS = 0;
public static final int UPLOAD_START = 1;
public static final int UPLOAD_ERROR = 2;
@@ -361,13 +298,13 @@ public class EditWaypointActivity extends AbstractActivity {
public static final int UPLOAD_SUCCESS = 4;
public static final int SAVE_ERROR = 5;
- private class CoordsListener implements View.OnClickListener {
+ private class SaveWaypointListener implements View.OnClickListener {
@Override
public void onClick(View arg0) {
final String bearingText = bearing.getText().toString();
// combine distance from EditText and distanceUnit saved from Spinner
- final String distanceText = distanceView.getText().toString() + distanceUnit;
+ final String distanceText = distanceView.getText().toString() + distanceUnits.get(distanceUnitSelector.getSelectedItemPosition());
final String latText = buttonLat.getText().toString();
final String lonText = buttonLon.getText().toString();
@@ -421,6 +358,8 @@ public class EditWaypointActivity extends AbstractActivity {
final String name = StringUtils.isNotEmpty(givenName) ? givenName : res.getString(R.string.waypoint) + " " + (wpCount + 1);
final String noteText = note.getText().toString().trim();
final Geopoint coordsToSave = coords;
+ final WaypointType type = wpTypes.get(waypointTypeSelector.getSelectedItemPosition());
+ final boolean visited = visitedCheckBox.isChecked();
final ProgressDialog progress = ProgressDialog.show(EditWaypointActivity.this, getString(R.string.cache), getString(R.string.waypoint_being_saved), true);
final Handler finishHandler = new Handler() {
@@ -527,13 +466,10 @@ public class EditWaypointActivity extends AbstractActivity {
}
public static void startActivityEditWaypoint(final Context context, final int waypointId) {
- context.startActivity(new Intent(context, EditWaypointActivity.class)
- .putExtra(Intents.EXTRA_WAYPOINT_ID, waypointId));
+ EditWaypointActivity_.intent(context).id(waypointId).start();
}
public static void startActivityAddWaypoint(final Context context, final Geocache cache) {
- context.startActivity(new Intent(context, EditWaypointActivity.class)
- .putExtra(Intents.EXTRA_GEOCODE, cache.getGeocode())
- .putExtra(Intents.EXTRA_COUNT, cache.getWaypoints().size()));
+ EditWaypointActivity_.intent(context).geocode(cache.getGeocode()).wpCount(cache.getWaypoints().size()).start();
}
}
diff --git a/main/src/cgeo/geocaching/StaticMapsActivity.java b/main/src/cgeo/geocaching/StaticMapsActivity.java
index 5cf9e9d..4658262 100644
--- a/main/src/cgeo/geocaching/StaticMapsActivity.java
+++ b/main/src/cgeo/geocaching/StaticMapsActivity.java
@@ -1,6 +1,5 @@
package cgeo.geocaching;
-import cgeo.geocaching.StaticMapsActivity_.IntentBuilder_;
import cgeo.geocaching.activity.AbstractActivity;
import cgeo.geocaching.enumerations.LoadFlags;
import cgeo.geocaching.utils.Log;
@@ -177,7 +176,7 @@ public class StaticMapsActivity extends AbstractActivity {
}
public static void startActivity(final Context activity, final String geocode, final boolean download, final Waypoint waypoint) {
- IntentBuilder_ builder = StaticMapsActivity_.intent(activity).geocode(geocode).download(download);
+ StaticMapsActivity_.IntentBuilder_ builder = StaticMapsActivity_.intent(activity).geocode(geocode).download(download);
if (waypoint != null) {
builder.waypoint_id(waypoint.getId());
}
diff --git a/main/src/cgeo/geocaching/activity/Progress.java b/main/src/cgeo/geocaching/activity/Progress.java
index 68ac272..34e7623 100644
--- a/main/src/cgeo/geocaching/activity/Progress.java
+++ b/main/src/cgeo/geocaching/activity/Progress.java
@@ -54,7 +54,7 @@ public class Progress {
dialog = new CustomProgressDialog(context);
}
else {
- dialog = new ProgressDialog(context, ActivityMixin.getDialogTheme());
+ dialog = new ProgressDialog(context);
}
dialog.setTitle(title);
dialog.setMessage(message);
diff --git a/main/src/cgeo/geocaching/connector/oc/OkapiClient.java b/main/src/cgeo/geocaching/connector/oc/OkapiClient.java
index 30ccf06..9920e6f 100644
--- a/main/src/cgeo/geocaching/connector/oc/OkapiClient.java
+++ b/main/src/cgeo/geocaching/connector/oc/OkapiClient.java
@@ -323,6 +323,7 @@ final public class OkapiClient {
description.append(response.getString(CACHE_DESCRIPTION));
cache.setDescription(description.toString());
+ // currently the hint is delivered as HTML (contrary to OKAPI documentation), so we can store it directly
cache.setHint(response.getString(CACHE_HINT));
// not used: hints
diff --git a/main/src/cgeo/geocaching/maps/CGeoMap.java b/main/src/cgeo/geocaching/maps/CGeoMap.java
index a377e38..c876192 100644
--- a/main/src/cgeo/geocaching/maps/CGeoMap.java
+++ b/main/src/cgeo/geocaching/maps/CGeoMap.java
@@ -586,11 +586,19 @@ public class CGeoMap extends AbstractMap implements OnMapDragListener, ViewFacto
menu.findItem(R.id.submenu_strategy).setEnabled(isLiveEnabled);
- Strategy strategy = Settings.getLiveMapStrategy();
- menu.findItem(R.id.menu_strategy_fastest).setChecked(strategy == Strategy.FASTEST);
- menu.findItem(R.id.menu_strategy_fast).setChecked(strategy == Strategy.FAST);
- menu.findItem(R.id.menu_strategy_auto).setChecked(strategy == Strategy.AUTO);
- menu.findItem(R.id.menu_strategy_detailed).setChecked(strategy == Strategy.DETAILED);
+ switch (Settings.getLiveMapStrategy()) {
+ case FASTEST:
+ menu.findItem(R.id.menu_strategy_fastest).setChecked(true);
+ break;
+ case FAST:
+ menu.findItem(R.id.menu_strategy_fast).setChecked(true);
+ break;
+ case AUTO:
+ menu.findItem(R.id.menu_strategy_auto).setChecked(true);
+ break;
+ default: // DETAILED
+ menu.findItem(R.id.menu_strategy_detailed).setChecked(true);
+ }
} catch (Exception e) {
Log.e("CGeoMap.onPrepareOptionsMenu", e);
}
diff --git a/tests/src/cgeo/geocaching/CacheTest.java b/tests/src/cgeo/geocaching/GeocacheTest.java
index 20c7d9e..f3c9a65 100644
--- a/tests/src/cgeo/geocaching/CacheTest.java
+++ b/tests/src/cgeo/geocaching/GeocacheTest.java
@@ -6,7 +6,7 @@ import android.test.AndroidTestCase;
import java.util.Date;
-public class CacheTest extends AndroidTestCase {
+public class GeocacheTest extends AndroidTestCase {
final static private class MockedEventCache extends Geocache {
public MockedEventCache(final Date date) {
diff --git a/tests/src/cgeo/geocaching/geopoint/GeoPointParserTest.java b/tests/src/cgeo/geocaching/geopoint/GeoPointParserTest.java
index 2e4660b..076f2c9 100644
--- a/tests/src/cgeo/geocaching/geopoint/GeoPointParserTest.java
+++ b/tests/src/cgeo/geocaching/geopoint/GeoPointParserTest.java
@@ -1,5 +1,7 @@
package cgeo.geocaching.geopoint;
+import cgeo.geocaching.ui.Formatter;
+
import android.test.AndroidTestCase;
public class GeoPointParserTest extends AndroidTestCase {
@@ -49,6 +51,12 @@ public class GeoPointParserTest extends AndroidTestCase {
assertTrue(goal1.isEqualTo(goal2, 1e-6));
}
+ public static void testParseOurOwnSeparator() {
+ final Geopoint separator = GeopointParser.parse("N 49° 43' 57\"" + Formatter.SEPARATOR + "E 2 12' 35");
+ final Geopoint noSeparator = GeopointParser.parse("N 49 43.95 E2°12.5833333333");
+ assertTrue(separator.isEqualTo(noSeparator, 1e-6));
+ }
+
public static void testInSentence() {
final Geopoint p1 = GeopointParser.parse("Station3: N51 21.523 / E07 02.680");
final Geopoint p2 = GeopointParser.parse("N51 21.523", "E07 02.680");