diff options
Diffstat (limited to 'main/src')
| -rw-r--r-- | main/src/cgeo/geocaching/CacheDetailActivity.java | 1 | ||||
| -rw-r--r-- | main/src/cgeo/geocaching/connector/gc/GCParser.java | 32 | ||||
| -rw-r--r-- | main/src/cgeo/geocaching/export/GpxExport.java | 10 |
3 files changed, 15 insertions, 28 deletions
diff --git a/main/src/cgeo/geocaching/CacheDetailActivity.java b/main/src/cgeo/geocaching/CacheDetailActivity.java index a9b6bf7..7b799b0 100644 --- a/main/src/cgeo/geocaching/CacheDetailActivity.java +++ b/main/src/cgeo/geocaching/CacheDetailActivity.java @@ -1686,6 +1686,7 @@ public class CacheDetailActivity extends AbstractActivity { Button buttonRemove = (Button) view.findViewById(R.id.remove_from_watchlist); TextView text = (TextView) view.findViewById(R.id.watchlist_text); + //TODO: We already have cache.isOwn(). Those 2 should be combined. boolean userIsOwner = StringUtils.equals(cache.getOwnerReal(), Settings.getUsername()); if (cache.isOnWatchlist() || userIsOwner) { diff --git a/main/src/cgeo/geocaching/connector/gc/GCParser.java b/main/src/cgeo/geocaching/connector/gc/GCParser.java index 936ce6c..32b7c05 100644 --- a/main/src/cgeo/geocaching/connector/gc/GCParser.java +++ b/main/src/cgeo/geocaching/connector/gc/GCParser.java @@ -1178,24 +1178,27 @@ public abstract class GCParser { * @return <code>false</code> if an error occurred, <code>true</code> otherwise */ static boolean addToFavorites(final cgCache cache) { + return changeFavorite(cache, true); + } + private static boolean changeFavorite(final cgCache cache, final boolean add) { final String page = requestHtmlPage(cache.getGeocode(), null, "n", "0"); final String userToken = BaseUtils.getMatch(page, GCConstants.PATTERN_USERTOKEN, ""); if (StringUtils.isEmpty(userToken)) { return false; } - final String uri = "http://www.geocaching.com/datastore/favorites.svc/update?u=" + userToken + "&f=true"; + final String uri = "http://www.geocaching.com/datastore/favorites.svc/update?u=" + userToken + "&f=" + Boolean.toString(add); HttpResponse response = Network.postRequest(uri, null); if (response != null && response.getStatusLine().getStatusCode() == 200) { - Log.i("GCParser.addToFavorites: cache added to favorites"); - cache.setFavorite(true); - cache.setFavoritePoints(cache.getFavoritePoints() + 1); + Log.i("GCParser.changeFavorite: cache added/removed to/from favorites"); + cache.setFavorite(add); + cache.setFavoritePoints(cache.getFavoritePoints() + (add ? 1 : -1)); return true; } - Log.e("GCParser.addToFavorites: cache not added to favorites"); + Log.e("GCParser.changeFavorite: cache not added/removed to/from favorites"); return false; } @@ -1207,24 +1210,7 @@ public abstract class GCParser { * @return <code>false</code> if an error occurred, <code>true</code> otherwise */ static boolean removeFromFavorites(final cgCache cache) { - final String page = requestHtmlPage(cache.getGeocode(), null, "n", "0"); - final String userToken = BaseUtils.getMatch(page, GCConstants.PATTERN_USERTOKEN, ""); - if (StringUtils.isEmpty(userToken)) { - return false; - } - - final String uri = "http://www.geocaching.com/datastore/favorites.svc/update?u=" + userToken + "&f=false"; - - HttpResponse response = Network.postRequest(uri, null); - - if (response != null && response.getStatusLine().getStatusCode() == 200) { - Log.i("GCParser.removeFromFavorites: cache removed from favorites"); - cache.setFavorite(false); - cache.setFavoritePoints(cache.getFavoritePoints() - 1); - return true; - } - Log.e("GCParser.removeFromFavorites: cache not removed from favorites"); - return false; + return changeFavorite(cache, false); } /** diff --git a/main/src/cgeo/geocaching/export/GpxExport.java b/main/src/cgeo/geocaching/export/GpxExport.java index e7579f3..554db2c 100644 --- a/main/src/cgeo/geocaching/export/GpxExport.java +++ b/main/src/cgeo/geocaching/export/GpxExport.java @@ -121,7 +121,7 @@ class GpxExport extends AbstractExport { gpx.write("</sym>"); gpx.write("<type>"); - gpx.write(StringEscapeUtils.escapeXml("Geocache|" + cache.getType().toString())); //TODO: Correct (english) string + gpx.write(StringEscapeUtils.escapeXml("Geocache|" + cache.getType().id)); gpx.write("</type>"); gpx.write("<groundspeak:cache "); @@ -145,11 +145,11 @@ class GpxExport extends AbstractExport { gpx.write("</groundspeak:owner>"); gpx.write("<groundspeak:type>"); - gpx.write(StringEscapeUtils.escapeXml(cache.getType().toString())); //TODO: Correct (english) string + gpx.write(StringEscapeUtils.escapeXml(cache.getType().id)); gpx.write("</groundspeak:type>"); gpx.write("<groundspeak:container>"); - gpx.write(StringEscapeUtils.escapeXml(cache.getSize().toString())); //TODO: Correct (english) string + gpx.write(StringEscapeUtils.escapeXml(cache.getSize().id)); gpx.write("</groundspeak:container>"); if (cache.hasAttributes()) { @@ -269,11 +269,11 @@ class GpxExport extends AbstractExport { gpx.write("</desc>"); gpx.write("<sym>"); - gpx.write(StringEscapeUtils.escapeXml(wp.getWaypointType().toString())); + gpx.write(StringEscapeUtils.escapeXml(wp.getWaypointType().toString())); //TODO: Correct identifier string gpx.write("</sym>"); gpx.write("<type>Waypoint|"); - gpx.write(StringEscapeUtils.escapeXml(wp.getWaypointType().toString())); + gpx.write(StringEscapeUtils.escapeXml(wp.getWaypointType().toString())); //TODO: Correct identifier string gpx.write("</type>"); gpx.write("</wpt>"); |
