diff options
| author | Samuel Tardieu <sam@rfc1149.net> | 2014-08-27 23:01:31 +0200 |
|---|---|---|
| committer | Samuel Tardieu <sam@rfc1149.net> | 2014-08-27 23:01:31 +0200 |
| commit | df3bdbf0e29c4d50e67f9ef37bd9dd5b8c9a6fd5 (patch) | |
| tree | 668e054c0378781535b7253b30fb0bb97a2debc3 | |
| parent | f421a88ed7f8c11d1ab8632f2da40a0da08da694 (diff) | |
| download | cgeo-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.java | 15 | ||||
| -rw-r--r-- | main/src/cgeo/geocaching/TrackableActivity.java | 2 | ||||
| -rw-r--r-- | main/src/cgeo/geocaching/activity/AbstractActivity.java | 8 |
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); |
