aboutsummaryrefslogtreecommitdiffstats
path: root/main/src
diff options
context:
space:
mode:
Diffstat (limited to 'main/src')
-rw-r--r--main/src/cgeo/geocaching/Geocache.java22
-rw-r--r--main/src/cgeo/geocaching/Waypoint.java2
-rw-r--r--main/src/cgeo/geocaching/activity/SimpleWebviewActivity.java28
-rw-r--r--main/src/cgeo/geocaching/connector/gc/GCConnector.java2
4 files changed, 51 insertions, 3 deletions
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.