aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSamuel Tardieu <sam@rfc1149.net>2014-08-27 17:42:19 +0200
committerSamuel Tardieu <sam@rfc1149.net>2014-08-27 17:42:19 +0200
commit0c41d8816abcc54466afeb5f3db834152c79e2b6 (patch)
tree4e62054609481bea73d89f3d8dd9d094da4b0bf4
parenta2745024d321049f66447add3b4687611fcc8951 (diff)
parentfcb9a4d3922ae539262b89188640ac59c81a6e69 (diff)
downloadcgeo-0c41d8816abcc54466afeb5f3db834152c79e2b6.zip
cgeo-0c41d8816abcc54466afeb5f3db834152c79e2b6.tar.gz
cgeo-0c41d8816abcc54466afeb5f3db834152c79e2b6.tar.bz2
Merge branch 'release' into upstream
-rw-r--r--main/src/cgeo/geocaching/Image.java14
-rw-r--r--main/src/cgeo/geocaching/connector/gc/GCConnector.java9
-rw-r--r--main/src/cgeo/geocaching/settings/SettingsActivity.java5
3 files changed, 21 insertions, 7 deletions
diff --git a/main/src/cgeo/geocaching/Image.java b/main/src/cgeo/geocaching/Image.java
index 50ea80e..f592fc1 100644
--- a/main/src/cgeo/geocaching/Image.java
+++ b/main/src/cgeo/geocaching/Image.java
@@ -1,10 +1,13 @@
package cgeo.geocaching;
+import cgeo.geocaching.activity.ActivityMixin;
import cgeo.geocaching.utils.FileUtils;
+import cgeo.geocaching.utils.Log;
import org.apache.commons.lang3.StringUtils;
-import android.content.Context;
+import android.app.Activity;
+import android.content.ActivityNotFoundException;
import android.content.Intent;
import android.net.Uri;
import android.os.Parcel;
@@ -73,12 +76,17 @@ public class Image implements Parcelable {
return description;
}
- public void openInBrowser(final Context fromActivity) {
+ public void openInBrowser(final Activity fromActivity) {
if (StringUtils.isBlank(url)) {
return;
}
final Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
- fromActivity.startActivity(browserIntent);
+ try {
+ fromActivity.startActivity(browserIntent);
+ } catch (final ActivityNotFoundException e) {
+ Log.e("Cannot find suitable activity", e);
+ ActivityMixin.showToast(fromActivity, R.string.err_application_no);
+ }
}
@Override
diff --git a/main/src/cgeo/geocaching/connector/gc/GCConnector.java b/main/src/cgeo/geocaching/connector/gc/GCConnector.java
index 495718b..2a3d7b0 100644
--- a/main/src/cgeo/geocaching/connector/gc/GCConnector.java
+++ b/main/src/cgeo/geocaching/connector/gc/GCConnector.java
@@ -7,6 +7,7 @@ import cgeo.geocaching.ICache;
import cgeo.geocaching.LogCacheActivity;
import cgeo.geocaching.R;
import cgeo.geocaching.SearchResult;
+import cgeo.geocaching.activity.ActivityMixin;
import cgeo.geocaching.connector.AbstractConnector;
import cgeo.geocaching.connector.ILoggingManager;
import cgeo.geocaching.connector.UserAction;
@@ -37,6 +38,7 @@ import org.eclipse.jdt.annotation.Nullable;
import rx.functions.Action1;
+import android.content.ActivityNotFoundException;
import android.content.Context;
import android.content.Intent;
import android.net.Uri;
@@ -414,7 +416,12 @@ public class GCConnector extends AbstractConnector implements ISearchByGeocode,
@Override
public void call(cgeo.geocaching.connector.UserAction.Context context) {
- context.activity.startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("http://www.geocaching.com/email/?u=" + Network.encode(context.userName))));
+ try {
+ context.activity.startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("http://www.geocaching.com/email/?u=" + Network.encode(context.userName))));
+ } catch (final ActivityNotFoundException e) {
+ Log.e("Cannot find suitable activity", e);
+ ActivityMixin.showToast(context.activity, R.string.err_application_no);
+ }
}
}));
return actions;
diff --git a/main/src/cgeo/geocaching/settings/SettingsActivity.java b/main/src/cgeo/geocaching/settings/SettingsActivity.java
index 3742966..707a530 100644
--- a/main/src/cgeo/geocaching/settings/SettingsActivity.java
+++ b/main/src/cgeo/geocaching/settings/SettingsActivity.java
@@ -189,9 +189,8 @@ public class SettingsActivity extends PreferenceActivity {
try {
startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("http://" + host)));
} catch (final ActivityNotFoundException e) {
- // Those cases are rare enough (no web browser installed) and the use case so untypical
- // that we do not need to report anything to the user.
- Log.e("Cannot browse host " + host, e);
+ Log.e("Cannot find suitable activity", e);
+ ActivityMixin.showToast(SettingsActivity.this, R.string.err_application_no);
}
return true;
}