aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSamuel Tardieu <sam@rfc1149.net>2014-08-27 23:01:31 +0200
committerSamuel Tardieu <sam@rfc1149.net>2014-08-27 23:01:31 +0200
commitdf3bdbf0e29c4d50e67f9ef37bd9dd5b8c9a6fd5 (patch)
tree668e054c0378781535b7253b30fb0bb97a2debc3
parentf421a88ed7f8c11d1ab8632f2da40a0da08da694 (diff)
downloadcgeo-df3bdbf0e29c4d50e67f9ef37bd9dd5b8c9a6fd5.zip
cgeo-df3bdbf0e29c4d50e67f9ef37bd9dd5b8c9a6fd5.tar.gz
cgeo-df3bdbf0e29c4d50e67f9ef37bd9dd5b8c9a6fd5.tar.bz2
Correction for fix #4245: allow null uris
-rw-r--r--main/src/cgeo/geocaching/CacheDetailActivity.java15
-rw-r--r--main/src/cgeo/geocaching/TrackableActivity.java2
-rw-r--r--main/src/cgeo/geocaching/activity/AbstractActivity.java8
3 files changed, 13 insertions, 12 deletions
diff --git a/main/src/cgeo/geocaching/CacheDetailActivity.java b/main/src/cgeo/geocaching/CacheDetailActivity.java
index bebb63a..0fb9d14 100644
--- a/main/src/cgeo/geocaching/CacheDetailActivity.java
+++ b/main/src/cgeo/geocaching/CacheDetailActivity.java
@@ -5,6 +5,7 @@ import butterknife.InjectView;
import cgeo.calendar.CalendarAddon;
import cgeo.geocaching.activity.AbstractActivity;
+import cgeo.geocaching.activity.AbstractActivity.ActivitySharingInterface;
import cgeo.geocaching.activity.AbstractViewPagerActivity;
import cgeo.geocaching.activity.INavigationSource;
import cgeo.geocaching.activity.Progress;
@@ -131,7 +132,7 @@ import java.util.regex.Pattern;
*
* e.g. details, description, logs, waypoints, inventory...
*/
-public class CacheDetailActivity extends AbstractViewPagerActivity<CacheDetailActivity.Page> implements CacheMenuHandler.ActivityInterface, INavigationSource {
+public class CacheDetailActivity extends AbstractViewPagerActivity<CacheDetailActivity.Page> implements CacheMenuHandler.ActivityInterface, INavigationSource, ActivitySharingInterface {
private static final int MESSAGE_FAILED = -1;
private static final int MESSAGE_SUCCEEDED = 1;
@@ -307,12 +308,12 @@ public class CacheDetailActivity extends AbstractViewPagerActivity<CacheDetailAc
locationUpdater = new CacheDetailsGeoDirHandler(this);
// If we have a newer Android device setup Android Beam for easy cache sharing
- initializeAndroidBeam(new ActivitySharingInterface() {
- @Override
- public String getUri() {
- return cache != null ? cache.getCgeoUrl() : null;
- }
- });
+ initializeAndroidBeam(this);
+ }
+
+ @Override
+ public String getAndroidBeamUri() {
+ return cache != null ? cache.getCgeoUrl() : null;
}
@Override
diff --git a/main/src/cgeo/geocaching/TrackableActivity.java b/main/src/cgeo/geocaching/TrackableActivity.java
index cd34d7f..213aa96 100644
--- a/main/src/cgeo/geocaching/TrackableActivity.java
+++ b/main/src/cgeo/geocaching/TrackableActivity.java
@@ -120,7 +120,7 @@ public class TrackableActivity extends AbstractViewPagerActivity<TrackableActivi
initializeAndroidBeam(
new ActivitySharingInterface() {
@Override
- public String getUri() {
+ public String getAndroidBeamUri() {
return trackable.getUrl();
}
}
diff --git a/main/src/cgeo/geocaching/activity/AbstractActivity.java b/main/src/cgeo/geocaching/activity/AbstractActivity.java
index 4480f8f..313959a 100644
--- a/main/src/cgeo/geocaching/activity/AbstractActivity.java
+++ b/main/src/cgeo/geocaching/activity/AbstractActivity.java
@@ -211,8 +211,8 @@ public abstract class AbstractActivity extends ActionBarActivity implements IAbs
// these are so few that we don't want to deal with the older (non Android Beam) API
public interface ActivitySharingInterface {
- /** Return an URL that represent the current activity for sharing */
- public String getUri();
+ /** Return an URL that represent the current activity for sharing or null for no sharing. */
+ public String getAndroidBeamUri();
}
protected void initializeAndroidBeam(final ActivitySharingInterface sharingInterface) {
@@ -230,8 +230,8 @@ public abstract class AbstractActivity extends ActionBarActivity implements IAbs
nfcAdapter.setNdefPushMessageCallback(new NfcAdapter.CreateNdefMessageCallback() {
@Override
public NdefMessage createNdefMessage(final NfcEvent event) {
- final NdefRecord record = NdefRecord.createUri(sharingInterface.getUri());
- return new NdefMessage(new NdefRecord[]{record});
+ final String uri = sharingInterface.getAndroidBeamUri();
+ return uri != null ? new NdefMessage(new NdefRecord[]{NdefRecord.createUri(uri)}) : null;
}
}, this);