aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBananeweizen <bananeweizen@gmx.de>2012-03-10 07:38:38 +0100
committerBananeweizen <bananeweizen@gmx.de>2012-03-10 07:38:38 +0100
commitd40313cf48a9956487afd2b591b34d588bb4ae82 (patch)
tree38cd2a6ed797fdcc0b4952f38611936792c3b192
parentb297de18e81872e9725867ba4da4a9481aedfcbf (diff)
parent22aa3e5e9d3b3064c4831cd6b112e14cc0e6b1db (diff)
downloadcgeo-d40313cf48a9956487afd2b591b34d588bb4ae82.zip
cgeo-d40313cf48a9956487afd2b591b34d588bb4ae82.tar.gz
cgeo-d40313cf48a9956487afd2b591b34d588bb4ae82.tar.bz2
Merge branch 'master' of https://Bananeweizen@github.com/cgeo/c-geo-opensource.git
-rw-r--r--main/res/values-de/strings.xml2
-rwxr-xr-xmain/res/values/strings.xml2
-rw-r--r--main/src/cgeo/geocaching/Settings.java2
-rw-r--r--main/src/cgeo/geocaching/cgCache.java57
-rw-r--r--main/src/cgeo/geocaching/cgeoinit.java1
5 files changed, 42 insertions, 22 deletions
diff --git a/main/res/values-de/strings.xml b/main/res/values-de/strings.xml
index 229afde..e0de5d1 100644
--- a/main/res/values-de/strings.xml
+++ b/main/res/values-de/strings.xml
@@ -422,7 +422,7 @@
<string name="init_maptrail">Zeige Spur auf Karte</string>
<string name="init_trackautovisit">Trackables automatisch auf \"besuchen\" setzen</string>
<string name="init_sigautoinsert">Signatur automatisch einfügen</string>
- <string name="init_loaddirectionimg">Richtungs-Grafik laden wenn nötig</string>
+ <string name="init_loaddirectionimg">Richtungs-Grafik laden wenn nötig (nur Basic Member)</string>
<string name="init_default_navigation_tool">Standardnavigation</string>
<string name="init_default_navigation_tool_description">Hier kannst du dein bevorzugtes Navigationswerkzeug festlegen.</string>
<string name="init_default_navigation_tool_select">Wähle Werkzeug</string>
diff --git a/main/res/values/strings.xml b/main/res/values/strings.xml
index 8a33820..5b38e23 100755
--- a/main/res/values/strings.xml
+++ b/main/res/values/strings.xml
@@ -423,7 +423,7 @@
<string name="init_maptrail">Show trail on Map</string>
<string name="init_trackautovisit">Set trackables to \"Visited\" as a default</string>
<string name="init_sigautoinsert">Insert signature automatically</string>
- <string name="init_loaddirectionimg">Load direction-image if necessary</string>
+ <string name="init_loaddirectionimg">Load direction-image if necessary (only Basic Member)</string>
<string name="init_default_navigation_tool">Default Navigation</string>
<string name="init_default_navigation_tool_description">Here you can select your preferred navigation tool.</string>
<string name="init_default_navigation_tool_select">Select tool</string>
diff --git a/main/src/cgeo/geocaching/Settings.java b/main/src/cgeo/geocaching/Settings.java
index 294521c..4949b62 100644
--- a/main/src/cgeo/geocaching/Settings.java
+++ b/main/src/cgeo/geocaching/Settings.java
@@ -415,7 +415,7 @@ public final class Settings {
}
public static boolean getLoadDirImg() {
- return sharedPrefs.getBoolean(KEY_LOAD_DIRECTION_IMG, true);
+ return isPremiumMember() ? false : sharedPrefs.getBoolean(KEY_LOAD_DIRECTION_IMG, true);
}
public static void setGcCustomDate(final String format) {
diff --git a/main/src/cgeo/geocaching/cgCache.java b/main/src/cgeo/geocaching/cgCache.java
index 5fad72a..14f33af 100644
--- a/main/src/cgeo/geocaching/cgCache.java
+++ b/main/src/cgeo/geocaching/cgCache.java
@@ -1164,17 +1164,13 @@ public class cgCache implements ICache {
finalDefined = true;
}
} else { // this is a waypoint being edited
- deleteWaypoint(waypoint);
-
- waypoints.add(waypoint);
- // when waypoint was edited, finalDefined may have changed. check all waypoints and set again
- finalDefined = false;
- for (cgWaypoint wp : waypoints) {
- if (wp.isFinalWithCoords()) {
- finalDefined = true;
- break;
- }
+ final int index = getWaypointIndex(waypoint);
+ if (index >= 0) {
+ waypoints.remove(index);
}
+ waypoints.add(waypoint);
+ // when waypoint was edited, finalDefined may have changed
+ resetFinalDefined();
}
if (saveToDatabase) {
@@ -1197,6 +1193,19 @@ public class cgCache implements ICache {
this.finalDefined = finalDefined;
}
+ /**
+ * Reset <code>finalDefined</code> based on current list of stored waypoints
+ */
+ private void resetFinalDefined() {
+ finalDefined = false;
+ for (cgWaypoint wp : waypoints) {
+ if (wp.isFinalWithCoords()) {
+ finalDefined = true;
+ break;
+ }
+ }
+ }
+
public boolean hasUserModifiedCoords() {
return userModifiedCoords;
}
@@ -1248,13 +1257,7 @@ public class cgCache implements ICache {
cgeoapplication.getInstance().removeCache(geocode, EnumSet.of(RemoveFlag.REMOVE_CACHE));
// Check status if Final is defined
if (waypoint.isFinalWithCoords()) {
- finalDefined = false;
- for (cgWaypoint wp : waypoints) {
- if (wp.isFinalWithCoords()) {
- finalDefined = true;
- break;
- }
- }
+ resetFinalDefined();
}
return true;
}
@@ -1273,16 +1276,32 @@ public class cgCache implements ICache {
return false;
}
+ final int index = getWaypointIndex(waypoint);
+ if (index >= 0) {
+ return deleteWaypoint(index);
+ }
+
+ return false;
+ }
+
+ /**
+ * Find index of given <code>waypoint</code> in cache's <code>waypoints</code> list
+ *
+ * @param waypoint
+ * to find index for
+ * @return index in <code>waypoints</code> if found, else -1
+ */
+ private int getWaypointIndex(cgWaypoint waypoint) {
int index = 0;
for (cgWaypoint wp : waypoints) {
if (wp.getId() == waypoint.getId()) {
- return deleteWaypoint(index);
+ return index;
}
index++;
}
- return false;
+ return -1;
}
/**
diff --git a/main/src/cgeo/geocaching/cgeoinit.java b/main/src/cgeo/geocaching/cgeoinit.java
index 90b0316..a8e660a 100644
--- a/main/src/cgeo/geocaching/cgeoinit.java
+++ b/main/src/cgeo/geocaching/cgeoinit.java
@@ -406,6 +406,7 @@ public class cgeoinit extends AbstractActivity {
});
final CheckBox dirImgButton = (CheckBox) findViewById(R.id.loaddirectionimg);
+ dirImgButton.setEnabled(!Settings.isPremiumMember());
dirImgButton.setChecked(Settings.getLoadDirImg());
dirImgButton.setOnClickListener(new View.OnClickListener() {