aboutsummaryrefslogtreecommitdiffstats
path: root/main/src/cgeo/geocaching/TrackableActivity.java
diff options
context:
space:
mode:
Diffstat (limited to 'main/src/cgeo/geocaching/TrackableActivity.java')
-rw-r--r--main/src/cgeo/geocaching/TrackableActivity.java34
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;