diff options
Diffstat (limited to 'main/src/cgeo/geocaching/TrackableActivity.java')
-rw-r--r-- | main/src/cgeo/geocaching/TrackableActivity.java | 34 |
1 files changed, 8 insertions, 26 deletions
diff --git a/main/src/cgeo/geocaching/TrackableActivity.java b/main/src/cgeo/geocaching/TrackableActivity.java index 139b136..e04fe9f 100644 --- a/main/src/cgeo/geocaching/TrackableActivity.java +++ b/main/src/cgeo/geocaching/TrackableActivity.java @@ -4,13 +4,13 @@ import butterknife.ButterKnife; import butterknife.InjectView; import cgeo.geocaching.activity.AbstractActivity; -import cgeo.geocaching.activity.AbstractActivity.ActivitySharingInterface; import cgeo.geocaching.activity.AbstractViewPagerActivity; import cgeo.geocaching.connector.ConnectorFactory; import cgeo.geocaching.connector.trackable.TrackableConnector; import cgeo.geocaching.connector.trackable.TravelBugConnector; import cgeo.geocaching.enumerations.LogType; import cgeo.geocaching.location.Units; +import cgeo.geocaching.network.AndroidBeam; import cgeo.geocaching.network.HtmlImage; import cgeo.geocaching.ui.AbstractCachingPageViewCreator; import cgeo.geocaching.ui.AnchorAwareLinkMovementMethod; @@ -26,10 +26,10 @@ import cgeo.geocaching.utils.RxUtils; import cgeo.geocaching.utils.UnknownTagsHandler; import org.apache.commons.collections4.CollectionUtils; -import org.apache.commons.io.Charsets; import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.tuple.ImmutablePair; import org.apache.commons.lang3.tuple.Pair; +import org.eclipse.jdt.annotation.Nullable; import rx.Observable; import rx.android.app.AppObservable; @@ -43,8 +43,6 @@ import android.app.ProgressDialog; import android.content.Intent; import android.graphics.drawable.BitmapDrawable; import android.net.Uri; -import android.nfc.NdefMessage; -import android.nfc.NfcAdapter; import android.os.Bundle; import android.support.v7.app.ActionBar; import android.support.v7.view.ActionMode; @@ -65,7 +63,7 @@ import java.util.ArrayList; import java.util.List; import java.util.Locale; -public class TrackableActivity extends AbstractViewPagerActivity<TrackableActivity.Page> implements ActivitySharingInterface { +public class TrackableActivity extends AbstractViewPagerActivity<TrackableActivity.Page> implements AndroidBeam.ActivitySharingInterface { private CompositeSubscription createSubscriptions; @@ -107,19 +105,13 @@ public class TrackableActivity extends AbstractViewPagerActivity<TrackableActivi // get parameters final Bundle extras = getIntent().getExtras(); - final Uri uri; - if (NfcAdapter.ACTION_NDEF_DISCOVERED.equals(getIntent().getAction())) { - final NdefMessage msg = (NdefMessage) extras.getParcelableArray(NfcAdapter.EXTRA_NDEF_MESSAGES)[0]; - uri = Uri.parse("http://" + new String(msg.getRecords()[0].getPayload(), Charsets.UTF_8)); - } else if (extras != null) { + final Uri uri = AndroidBeam.getUri(getIntent()); + if (extras != null) { // try to get data from extras geocode = extras.getString(Intents.EXTRA_GEOCODE); name = extras.getString(Intents.EXTRA_NAME); guid = extras.getString(Intents.EXTRA_GUID); id = extras.getString(Intents.EXTRA_ID); - uri = getIntent().getData(); - } else { - uri = null; } // try to get data from URI @@ -127,7 +119,7 @@ public class TrackableActivity extends AbstractViewPagerActivity<TrackableActivi geocode = ConnectorFactory.getTrackableFromURL(uri.toString()); final String uriHost = uri.getHost().toLowerCase(Locale.US); - if (uriHost.contains("geocaching.com")) { + if (uriHost.endsWith("geocaching.com")) { geocode = uri.getQueryParameter("tracker"); guid = uri.getQueryParameter("guid"); id = uri.getQueryParameter("id"); @@ -149,17 +141,6 @@ public class TrackableActivity extends AbstractViewPagerActivity<TrackableActivi finish(); return; } - } else if (uriHost.contains("coord.info")) { - final String uriPath = uri.getPath().toLowerCase(Locale.US); - if (StringUtils.startsWith(uriPath, "/tb")) { - geocode = uriPath.substring(1).toUpperCase(Locale.US); - guid = null; - id = null; - } else { - showToast(res.getString(R.string.err_tb_details_open)); - finish(); - return; - } } } @@ -180,7 +161,7 @@ public class TrackableActivity extends AbstractViewPagerActivity<TrackableActivi } // If we have a newer Android device setup Android Beam for easy cache sharing - initializeAndroidBeam(this); + AndroidBeam.enable(this, this); createViewPager(0, new OnPageSelectedListener() { @Override @@ -201,6 +182,7 @@ public class TrackableActivity extends AbstractViewPagerActivity<TrackableActivi })); } + @Nullable @Override public String getAndroidBeamUri() { return trackable != null ? trackable.getUrl() : null; |