From cadf1bb896976c5dc04cfd4b1615ad694fec3415 Mon Sep 17 00:00:00 2001 From: Arne Schwabe Date: Wed, 21 May 2014 19:23:47 +0200 Subject: Revert the url distinguistion from "Implement Android Beam (NFC Sharing) for cgeo", as it seems the // urls don't work anymore. This partly reverts commit a0825983139c99a9799503cafdf0dd0e3ce54a2f. --- main/src/cgeo/calendar/CalendarAddon.java | 2 +- main/src/cgeo/geocaching/CacheDetailActivity.java | 2 +- main/src/cgeo/geocaching/Geocache.java | 10 ++++------ main/src/cgeo/geocaching/Trackable.java | 8 ++------ main/src/cgeo/geocaching/TrackableActivity.java | 6 +++--- main/src/cgeo/geocaching/connector/AbstractConnector.java | 7 +------ .../geocaching/connector/GeocachingAustraliaConnector.java | 2 +- main/src/cgeo/geocaching/connector/GeopeitusConnector.java | 2 +- main/src/cgeo/geocaching/connector/IConnector.java | 10 +--------- main/src/cgeo/geocaching/connector/UnknownConnector.java | 2 +- main/src/cgeo/geocaching/connector/WaymarkingConnector.java | 2 +- main/src/cgeo/geocaching/connector/ec/ECConnector.java | 4 ++-- main/src/cgeo/geocaching/connector/gc/GCConnector.java | 7 +------ main/src/cgeo/geocaching/connector/oc/OCApiConnector.java | 2 +- main/src/cgeo/geocaching/connector/oc/OCConnector.java | 2 +- main/src/cgeo/geocaching/connector/ox/OXConnector.java | 4 ++-- .../connector/trackable/AbstractTrackableConnector.java | 6 ------ .../cgeo/geocaching/connector/trackable/GeokretyConnector.java | 4 ++-- .../geocaching/connector/trackable/TrackableConnector.java | 4 +--- .../geocaching/connector/trackable/TravelBugConnector.java | 7 +------ .../connector/trackable/UnknownTrackableConnector.java | 2 +- main/src/cgeo/geocaching/export/GpxSerializer.java | 2 +- main/src/cgeo/geocaching/utils/LogTemplateProvider.java | 4 ++-- 23 files changed, 32 insertions(+), 69 deletions(-) (limited to 'main/src') diff --git a/main/src/cgeo/calendar/CalendarAddon.java b/main/src/cgeo/calendar/CalendarAddon.java index 5d6371d..4a672fa 100644 --- a/main/src/cgeo/calendar/CalendarAddon.java +++ b/main/src/cgeo/calendar/CalendarAddon.java @@ -35,7 +35,7 @@ public class CalendarAddon { ICalendar.PARAM_NAME, cache.getName(), ICalendar.PARAM_NOTE, StringUtils.defaultString(cache.getPersonalNote()), ICalendar.PARAM_HIDDEN_DATE, hiddenDate != null ? String.valueOf(hiddenDate.getTime()) : StringUtils.EMPTY, - ICalendar.PARAM_URL, StringUtils.defaultString(cache.getBrowserUrl()), + ICalendar.PARAM_URL, StringUtils.defaultString(cache.getUrl()), ICalendar.PARAM_COORDS, cache.getCoords() == null ? "" : cache.getCoords().format(GeopointFormatter.Format.LAT_LON_DECMINUTE_RAW), ICalendar.PARAM_LOCATION, StringUtils.defaultString(cache.getLocation()), ICalendar.PARAM_SHORT_DESC, StringUtils.defaultString(cache.getShortDescription()), diff --git a/main/src/cgeo/geocaching/CacheDetailActivity.java b/main/src/cgeo/geocaching/CacheDetailActivity.java index 42e06a2..8672847 100644 --- a/main/src/cgeo/geocaching/CacheDetailActivity.java +++ b/main/src/cgeo/geocaching/CacheDetailActivity.java @@ -1609,7 +1609,7 @@ public class CacheDetailActivity extends AbstractViewPagerActivity" + connector.getName() + "")); + final Spanned tableNote = Html.fromHtml(res.getString(R.string.cache_description_table_note, "" + connector.getName() + "")); ((Editable) description).append("\n\n").append(tableNote); ((Editable) description).setSpan(new StyleSpan(Typeface.ITALIC), startPos, description.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); } diff --git a/main/src/cgeo/geocaching/Geocache.java b/main/src/cgeo/geocaching/Geocache.java index 21de4ac..db36740 100644 --- a/main/src/cgeo/geocaching/Geocache.java +++ b/main/src/cgeo/geocaching/Geocache.java @@ -501,7 +501,7 @@ public class Geocache implements ICache, IWaypoint { } private String getCacheUrl() { - return getConnector().getCacheBrowserUrl(this); + return getConnector().getCacheUrl(this); } private String getBrowserCacheUrl() { @@ -722,17 +722,15 @@ public class Geocache implements ICache, IWaypoint { final Intent intent = new Intent(Intent.ACTION_SEND); intent.setType("text/plain"); intent.putExtra(Intent.EXTRA_SUBJECT, subject.toString()); - intent.putExtra(Intent.EXTRA_TEXT, getBrowserUrl()); + intent.putExtra(Intent.EXTRA_TEXT, getUrl()); return intent; } - public String getBrowserUrl() { - return getConnector().getCacheBrowserUrl(this); + public String getUrl() { + return getConnector().getCacheUrl(this); } - public String getCgeoUrl() { return getConnector().getCgeoCacheUrl(this); } - public boolean supportsGCVote() { return StringUtils.startsWithIgnoreCase(geocode, "GC"); } diff --git a/main/src/cgeo/geocaching/Trackable.java b/main/src/cgeo/geocaching/Trackable.java index 0fe580f..d532cda 100644 --- a/main/src/cgeo/geocaching/Trackable.java +++ b/main/src/cgeo/geocaching/Trackable.java @@ -38,12 +38,8 @@ public class Trackable implements ILogable { private List logs = new ArrayList(); private String trackingcode = null; - public String getBrowserUrl() { - return getConnector().getBrowserUrl(this); - } - - public String getCgeoUrl() { - return getConnector().getCgeoUrl(this); + public String getUrl() { + return getConnector().getUrl(this); } private TrackableConnector getConnector() { diff --git a/main/src/cgeo/geocaching/TrackableActivity.java b/main/src/cgeo/geocaching/TrackableActivity.java index ee45ba7..bc8582e 100644 --- a/main/src/cgeo/geocaching/TrackableActivity.java +++ b/main/src/cgeo/geocaching/TrackableActivity.java @@ -118,7 +118,7 @@ public class TrackableActivity extends AbstractViewPagerActivity" + getName() + ", CC BY-NC-ND 3.0, alle Logeinträge © jeweiliger Autor"; + return "© " + cache.getOwnerDisplayName() + ", " + getName() + ", CC BY-NC-ND 3.0, alle Logeinträge © jeweiliger Autor"; } @Override diff --git a/main/src/cgeo/geocaching/connector/gc/GCConnector.java b/main/src/cgeo/geocaching/connector/gc/GCConnector.java index 723d873..a38bad0 100644 --- a/main/src/cgeo/geocaching/connector/gc/GCConnector.java +++ b/main/src/cgeo/geocaching/connector/gc/GCConnector.java @@ -84,17 +84,12 @@ public class GCConnector extends AbstractConnector implements ISearchByGeocode, } @Override - public String getCgeoCacheUrl(@NonNull Geocache cache) { - return getLongCacheUrl(cache).replace("//", "/"); - } - - @Override public String getLongCacheUrl(@NonNull Geocache cache) { return CACHE_URL_LONG + cache.getGeocode(); } @Override - public String getCacheBrowserUrl(@NonNull Geocache cache) { + public String getCacheUrl(@NonNull Geocache cache) { return CACHE_URL_SHORT + cache.getGeocode(); } diff --git a/main/src/cgeo/geocaching/connector/oc/OCApiConnector.java b/main/src/cgeo/geocaching/connector/oc/OCApiConnector.java index 4357e79..284234e 100644 --- a/main/src/cgeo/geocaching/connector/oc/OCApiConnector.java +++ b/main/src/cgeo/geocaching/connector/oc/OCApiConnector.java @@ -45,7 +45,7 @@ public class OCApiConnector extends OCConnector implements ISearchByGeocode { @Override public String getLicenseText(final @NonNull Geocache cache) { // NOT TO BE TRANSLATED - return "© " + cache.getOwnerDisplayName() + ", " + getName() + ", " + licenseString; + return "© " + cache.getOwnerDisplayName() + ", " + getName() + ", " + licenseString; } @Override diff --git a/main/src/cgeo/geocaching/connector/oc/OCConnector.java b/main/src/cgeo/geocaching/connector/oc/OCConnector.java index 0131c73..1ba88d5 100644 --- a/main/src/cgeo/geocaching/connector/oc/OCConnector.java +++ b/main/src/cgeo/geocaching/connector/oc/OCConnector.java @@ -39,7 +39,7 @@ public class OCConnector extends AbstractConnector { } @Override - public String getCacheBrowserUrl(@NonNull Geocache cache) { + public String getCacheUrl(@NonNull Geocache cache) { return getCacheUrlPrefix() + cache.getGeocode(); } diff --git a/main/src/cgeo/geocaching/connector/ox/OXConnector.java b/main/src/cgeo/geocaching/connector/ox/OXConnector.java index b95a5b8..7d4cf7f 100644 --- a/main/src/cgeo/geocaching/connector/ox/OXConnector.java +++ b/main/src/cgeo/geocaching/connector/ox/OXConnector.java @@ -35,7 +35,7 @@ public class OXConnector extends AbstractConnector implements ISearchByCenter, I } @Override - public String getCacheBrowserUrl(@NonNull Geocache cache) { + public String getCacheUrl(@NonNull Geocache cache) { return getCacheUrlPrefix() + cache.getGeocode(); } @@ -52,7 +52,7 @@ public class OXConnector extends AbstractConnector implements ISearchByCenter, I @Override public String getLicenseText(@NonNull Geocache cache) { // NOT TO BE TRANSLATED - return "" + getName() + " data licensed under the Creative Commons CC-BY-SA 3.0 License"; + return "" + getName() + " data licensed under the Creative Commons CC-BY-SA 3.0 License"; } @Override diff --git a/main/src/cgeo/geocaching/connector/trackable/AbstractTrackableConnector.java b/main/src/cgeo/geocaching/connector/trackable/AbstractTrackableConnector.java index 15e32fb..fb554b9 100644 --- a/main/src/cgeo/geocaching/connector/trackable/AbstractTrackableConnector.java +++ b/main/src/cgeo/geocaching/connector/trackable/AbstractTrackableConnector.java @@ -1,6 +1,5 @@ package cgeo.geocaching.connector.trackable; -import cgeo.geocaching.Trackable; import cgeo.geocaching.connector.AbstractConnector; import cgeo.geocaching.connector.UserAction; @@ -23,11 +22,6 @@ public abstract class AbstractTrackableConnector implements TrackableConnector { } @Override - public String getCgeoUrl(Trackable trackable) { - return getBrowserUrl(trackable); - } - - @Override public @NonNull List getUserActions() { return AbstractConnector.getDefaultUserActions(); diff --git a/main/src/cgeo/geocaching/connector/trackable/GeokretyConnector.java b/main/src/cgeo/geocaching/connector/trackable/GeokretyConnector.java index 709ec70..03052f9 100644 --- a/main/src/cgeo/geocaching/connector/trackable/GeokretyConnector.java +++ b/main/src/cgeo/geocaching/connector/trackable/GeokretyConnector.java @@ -20,7 +20,7 @@ public class GeokretyConnector extends AbstractTrackableConnector { } @Override - public String getBrowserUrl(Trackable trackable) { + public String getUrl(Trackable trackable) { return "http://geokrety.org/konkret.php?id=" + getId(trackable.getGeocode()); } @@ -38,7 +38,7 @@ public class GeokretyConnector extends AbstractTrackableConnector { final String hex = geocode.substring(2); return Integer.parseInt(hex, 16); } catch (final NumberFormatException e) { - Log.e("Trackable.getBrowserUrl", e); + Log.e("Trackable.getUrl", e); } return -1; } diff --git a/main/src/cgeo/geocaching/connector/trackable/TrackableConnector.java b/main/src/cgeo/geocaching/connector/trackable/TrackableConnector.java index f91c4ba..6071b5f 100644 --- a/main/src/cgeo/geocaching/connector/trackable/TrackableConnector.java +++ b/main/src/cgeo/geocaching/connector/trackable/TrackableConnector.java @@ -16,9 +16,7 @@ public interface TrackableConnector { public boolean canHandleTrackable(final String geocode); - public String getBrowserUrl(final Trackable trackable); - - public String getCgeoUrl(final Trackable trackable); + public String getUrl(final Trackable trackable); public boolean isLoggable(); diff --git a/main/src/cgeo/geocaching/connector/trackable/TravelBugConnector.java b/main/src/cgeo/geocaching/connector/trackable/TravelBugConnector.java index 3b4077e..77848d7 100644 --- a/main/src/cgeo/geocaching/connector/trackable/TravelBugConnector.java +++ b/main/src/cgeo/geocaching/connector/trackable/TravelBugConnector.java @@ -25,12 +25,7 @@ public class TravelBugConnector extends AbstractTrackableConnector { } @Override - public String getCgeoUrl(Trackable trackable) { - return getBrowserUrl(trackable).replace("//", "/"); - } - - @Override - public String getBrowserUrl(Trackable trackable) { + public String getUrl(Trackable trackable) { return "http://www.geocaching.com//track/details.aspx?tracker=" + trackable.getGeocode(); } diff --git a/main/src/cgeo/geocaching/connector/trackable/UnknownTrackableConnector.java b/main/src/cgeo/geocaching/connector/trackable/UnknownTrackableConnector.java index ea1d0ae..0295927 100644 --- a/main/src/cgeo/geocaching/connector/trackable/UnknownTrackableConnector.java +++ b/main/src/cgeo/geocaching/connector/trackable/UnknownTrackableConnector.java @@ -12,7 +12,7 @@ public class UnknownTrackableConnector extends AbstractTrackableConnector { } @Override - public String getBrowserUrl(Trackable trackable) { + public String getUrl(Trackable trackable) { return StringUtils.EMPTY; } diff --git a/main/src/cgeo/geocaching/export/GpxSerializer.java b/main/src/cgeo/geocaching/export/GpxSerializer.java index 8e71c08..b2587aa 100644 --- a/main/src/cgeo/geocaching/export/GpxSerializer.java +++ b/main/src/cgeo/geocaching/export/GpxSerializer.java @@ -111,7 +111,7 @@ public final class GpxSerializer { XmlUtils.multipleTexts(gpx, PREFIX_GPX, "name", cache.getGeocode(), "desc", cache.getName(), - "url", cache.getCgeoUrl(), + "url", cache.getUrl(), "urlname", cache.getName(), "sym", cache.isFound() ? "Geocache Found" : "Geocache", "type", "Geocache|" + cache.getType().pattern); diff --git a/main/src/cgeo/geocaching/utils/LogTemplateProvider.java b/main/src/cgeo/geocaching/utils/LogTemplateProvider.java index 04433c3..5fa0982 100644 --- a/main/src/cgeo/geocaching/utils/LogTemplateProvider.java +++ b/main/src/cgeo/geocaching/utils/LogTemplateProvider.java @@ -202,11 +202,11 @@ public final class LogTemplateProvider { public String getValue(LogContext context) { Trackable trackable = context.getTrackable(); if (trackable != null) { - return trackable.getBrowserUrl(); + return trackable.getUrl(); } Geocache cache = context.getCache(); if (cache != null) { - return cache.getBrowserUrl(); + return cache.getUrl(); } return StringUtils.EMPTY; } -- cgit v1.1 From 2b2a2e19e1793ae79f80c8e520fb36a56e576e29 Mon Sep 17 00:00:00 2001 From: Arne Schwabe Date: Sat, 24 May 2014 12:39:05 +0200 Subject: Implement a small internal browser (using webview) and allow the user to pick the user to select an internal/external browser if c:geo is the default of the geocaching url --- main/src/cgeo/geocaching/Geocache.java | 22 ++++++++++++++++- main/src/cgeo/geocaching/Waypoint.java | 2 +- .../geocaching/activity/SimpleWebviewActivity.java | 28 ++++++++++++++++++++++ .../cgeo/geocaching/connector/gc/GCConnector.java | 2 +- 4 files changed, 51 insertions(+), 3 deletions(-) create mode 100644 main/src/cgeo/geocaching/activity/SimpleWebviewActivity.java (limited to 'main/src') diff --git a/main/src/cgeo/geocaching/Geocache.java b/main/src/cgeo/geocaching/Geocache.java index db36740..0000fcc 100644 --- a/main/src/cgeo/geocaching/Geocache.java +++ b/main/src/cgeo/geocaching/Geocache.java @@ -1,7 +1,9 @@ package cgeo.geocaching; +import android.os.Parcelable; import cgeo.geocaching.DataStore.StorageLocation; import cgeo.geocaching.activity.ActivityMixin; +import cgeo.geocaching.activity.SimpleWebviewActivity; import cgeo.geocaching.connector.ConnectorFactory; import cgeo.geocaching.connector.IConnector; import cgeo.geocaching.connector.ILoggingManager; @@ -497,9 +499,25 @@ public class Geocache implements ICache, IWaypoint { } public void openInBrowser(Activity fromActivity) { - fromActivity.startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(getBrowserCacheUrl()))); + Intent viewIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(getUrl())); + + // Check if cgeo is the default, show the chooser to let the user choose a browser + if (viewIntent.resolveActivity(fromActivity.getPackageManager()).getPackageName().equals(fromActivity.getPackageName())) { + Intent chooser = Intent.createChooser(viewIntent, fromActivity.getString(R.string.cache_menu_browser)); + + Intent internalBrowser = new Intent(fromActivity, SimpleWebviewActivity.class); + internalBrowser.setData(Uri.parse(getUrl())); + + chooser.putExtra(Intent.EXTRA_INITIAL_INTENTS, new Parcelable[] {internalBrowser}); + + + fromActivity.startActivity(chooser); + } + else + fromActivity.startActivity(viewIntent); } + private String getCacheUrl() { return getConnector().getCacheUrl(this); } @@ -731,6 +749,8 @@ public class Geocache implements ICache, IWaypoint { return getConnector().getCacheUrl(this); } + public String getCgeoUrl() { return getConnector().getCacheUrl(this); } + public boolean supportsGCVote() { return StringUtils.startsWithIgnoreCase(geocode, "GC"); } diff --git a/main/src/cgeo/geocaching/Waypoint.java b/main/src/cgeo/geocaching/Waypoint.java index efedff5..275882f 100644 --- a/main/src/cgeo/geocaching/Waypoint.java +++ b/main/src/cgeo/geocaching/Waypoint.java @@ -157,7 +157,7 @@ public class Waypoint implements IWaypoint { } public String getUrl() { - return "http://www.geocaching.com//seek/cache_details.aspx?wp=" + geocode; + return "http://www.geocaching.com/seek/cache_details.aspx?wp=" + geocode; } @Override diff --git a/main/src/cgeo/geocaching/activity/SimpleWebviewActivity.java b/main/src/cgeo/geocaching/activity/SimpleWebviewActivity.java new file mode 100644 index 0000000..54f3667 --- /dev/null +++ b/main/src/cgeo/geocaching/activity/SimpleWebviewActivity.java @@ -0,0 +1,28 @@ +package cgeo.geocaching.activity; + +import android.os.Bundle; +import android.webkit.WebView; +import android.webkit.WebViewClient; +import cgeo.geocaching.R; + +public class SimpleWebviewActivity extends AbstractActionBarActivity { + + private WebView webview; + + class SimplelWebviewClient extends WebViewClient { + @Override + public boolean shouldOverrideUrlLoading(WebView view, String url) { + webview.loadUrl(url); + return true; + } + } + @Override + public void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState, R.layout.internal_browser); + + webview = (WebView) findViewById(R.id.webview); + webview.getSettings().setJavaScriptEnabled(true); + webview.setWebViewClient(new SimplelWebviewClient()); + webview.loadUrl(String.valueOf(getIntent().getData())); + } +} diff --git a/main/src/cgeo/geocaching/connector/gc/GCConnector.java b/main/src/cgeo/geocaching/connector/gc/GCConnector.java index a38bad0..294e969 100644 --- a/main/src/cgeo/geocaching/connector/gc/GCConnector.java +++ b/main/src/cgeo/geocaching/connector/gc/GCConnector.java @@ -50,7 +50,7 @@ public class GCConnector extends AbstractConnector implements ISearchByGeocode, private static final String CACHE_URL_SHORT = "http://coord.info/"; // Double slash is used to force open in browser - private static final String CACHE_URL_LONG = "http://www.geocaching.com//seek/cache_details.aspx?wp="; + private static final String CACHE_URL_LONG = "http://www.geocaching.com/seek/cache_details.aspx?wp="; /** * Pocket queries downloaded from the website use a numeric prefix. The pocket query creator Android app adds a * verbatim "pocketquery" prefix. -- cgit v1.1