summaryrefslogtreecommitdiff
path: root/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/location
diff options
context:
space:
mode:
Diffstat (limited to 'platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/location')
-rw-r--r--platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/location/LocationFragmentActivity.kt25
-rw-r--r--platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/location/LocationModesActivity.java62
-rw-r--r--platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/location/ManualLocationUpdatesActivity.java59
3 files changed, 82 insertions, 64 deletions
diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/location/LocationFragmentActivity.kt b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/location/LocationFragmentActivity.kt
index 035ad67e12..98fe13e8eb 100644
--- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/location/LocationFragmentActivity.kt
+++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/location/LocationFragmentActivity.kt
@@ -10,7 +10,10 @@ import android.view.View
import android.view.ViewGroup
import android.widget.TextView
import android.widget.Toast
-import com.mapbox.android.core.location.LocationEngineListener
+import com.mapbox.android.core.location.LocationEngine
+import com.mapbox.android.core.location.LocationEngineCallback
+import com.mapbox.android.core.location.LocationEngineProvider
+import com.mapbox.android.core.location.LocationEngineResult
import com.mapbox.android.core.permissions.PermissionsListener
import com.mapbox.android.core.permissions.PermissionsManager
import com.mapbox.mapboxsdk.camera.CameraUpdateFactory
@@ -20,6 +23,7 @@ import com.mapbox.mapboxsdk.maps.MapboxMap
import com.mapbox.mapboxsdk.location.LocationComponent
import com.mapbox.mapboxsdk.testapp.R
import kotlinx.android.synthetic.main.activity_location_layer_fragment.*
+import java.lang.Exception
class LocationFragmentActivity : AppCompatActivity() {
private lateinit var permissionsManager: PermissionsManager
@@ -78,7 +82,7 @@ class LocationFragmentActivity : AppCompatActivity() {
permissionsManager.onRequestPermissionsResult(requestCode, permissions, grantResults)
}
- class LocationFragment : Fragment(), LocationEngineListener {
+ class LocationFragment : Fragment(), LocationEngineCallback<LocationEngineResult> {
companion object {
const val TAG = "LFragment"
fun newInstance(): LocationFragment {
@@ -101,21 +105,19 @@ class LocationFragmentActivity : AppCompatActivity() {
mapView.getMapAsync {
mapboxMap = it
component = mapboxMap.locationComponent
- component?.activateLocationComponent(activity)
+ component?.activateLocationComponent(activity,
+ LocationEngineProvider.getBestLocationEngine(activity, false))
component?.isLocationComponentEnabled = true
- component?.locationEngine?.addLocationEngineListener(this)
+ component?.locationEngine?.getLastLocation(this)
}
}
- override fun onLocationChanged(location: Location?) {
- if (location != null) {
- mapboxMap.animateCamera(CameraUpdateFactory.newLatLngZoom(LatLng(location), 12.0))
- component?.locationEngine?.removeLocationEngineListener(this)
- }
+ override fun onSuccess(result: LocationEngineResult?) {
+ mapboxMap.animateCamera(CameraUpdateFactory.newLatLngZoom(LatLng(result?.lastLocation), 12.0))
}
- override fun onConnected() {
- // no impl
+ override fun onFailure(exception: Exception) {
+ //noop
}
override fun onStart() {
@@ -151,7 +153,6 @@ class LocationFragmentActivity : AppCompatActivity() {
override fun onDestroyView() {
super.onDestroyView()
mapView.onDestroy()
- component?.locationEngine?.removeLocationEngineListener(this)
}
}
diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/location/LocationModesActivity.java b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/location/LocationModesActivity.java
index c3de31cdca..078b5c7ab5 100644
--- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/location/LocationModesActivity.java
+++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/location/LocationModesActivity.java
@@ -4,6 +4,7 @@ import android.annotation.SuppressLint;
import android.content.res.Configuration;
import android.location.Location;
import android.os.Bundle;
+import android.os.Looper;
import android.support.annotation.NonNull;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.ListPopupWindow;
@@ -15,9 +16,10 @@ import android.widget.Button;
import android.widget.Toast;
import com.mapbox.android.core.location.LocationEngine;
-import com.mapbox.android.core.location.LocationEngineListener;
-import com.mapbox.android.core.location.LocationEnginePriority;
+import com.mapbox.android.core.location.LocationEngineCallback;
import com.mapbox.android.core.location.LocationEngineProvider;
+import com.mapbox.android.core.location.LocationEngineRequest;
+import com.mapbox.android.core.location.LocationEngineResult;
import com.mapbox.android.core.permissions.PermissionsListener;
import com.mapbox.android.core.permissions.PermissionsManager;
import com.mapbox.mapboxsdk.camera.CameraUpdateFactory;
@@ -37,7 +39,10 @@ import java.util.ArrayList;
import java.util.List;
public class LocationModesActivity extends AppCompatActivity implements OnMapReadyCallback,
- LocationEngineListener, OnLocationClickListener, OnCameraTrackingChangedListener {
+ OnLocationClickListener, OnCameraTrackingChangedListener {
+
+ private static final long DEFAULT_INTERVAL_MILLIS = 1000;
+ private static final long DEFAULT_FASTEST_INTERVAL_MILLIS = 1000;
private MapView mapView;
private Button locationModeBtn;
@@ -62,6 +67,8 @@ public class LocationModesActivity extends AppCompatActivity implements OnMapRea
private Location lastLocation;
+ private LocationEngineCallback<LocationEngineResult> locationEngineCallback;
+
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
@@ -134,11 +141,19 @@ public class LocationModesActivity extends AppCompatActivity implements OnMapRea
public void onMapReady(@NonNull MapboxMap mapboxMap) {
this.mapboxMap = mapboxMap;
- locationEngine = new LocationEngineProvider(this).obtainBestLocationEngineAvailable();
- locationEngine.setPriority(LocationEnginePriority.HIGH_ACCURACY);
- locationEngine.setFastestInterval(1000);
- locationEngine.addLocationEngineListener(this);
- locationEngine.activate();
+ locationEngine = LocationEngineProvider.getBestLocationEngine(getApplicationContext(),
+ false);
+ locationEngineCallback = new LocationEngineCallback<LocationEngineResult>() {
+ @Override
+ public void onSuccess(LocationEngineResult result) {
+ // noop
+ }
+
+ @Override
+ public void onFailure(@NonNull Exception exception) {
+ // noop
+ }
+ };
int[] padding;
if (getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT) {
@@ -230,16 +245,15 @@ public class LocationModesActivity extends AppCompatActivity implements OnMapRea
}
@Override
- @SuppressWarnings( {"MissingPermission"})
protected void onStart() {
super.onStart();
mapView.onStart();
if (locationEngine != null) {
- locationEngine.addLocationEngineListener(this);
- if (locationEngine.isConnected()) {
- locationEngine.requestLocationUpdates();
- } else {
- locationEngine.activate();
+ try {
+ locationEngine.requestLocationUpdates(getLocationRequst(DEFAULT_INTERVAL_MILLIS),
+ locationEngineCallback, Looper.getMainLooper());
+ } catch (SecurityException se) {
+ se.printStackTrace();
}
}
}
@@ -261,8 +275,7 @@ public class LocationModesActivity extends AppCompatActivity implements OnMapRea
super.onStop();
mapView.onStop();
if (locationEngine != null) {
- locationEngine.removeLocationEngineListener(this);
- locationEngine.removeLocationUpdates();
+ locationEngine.removeLocationUpdates(locationEngineCallback);
}
}
@@ -282,9 +295,6 @@ public class LocationModesActivity extends AppCompatActivity implements OnMapRea
protected void onDestroy() {
super.onDestroy();
mapView.onDestroy();
- if (locationEngine != null) {
- locationEngine.deactivate();
- }
}
@Override
@@ -293,15 +303,11 @@ public class LocationModesActivity extends AppCompatActivity implements OnMapRea
mapView.onLowMemory();
}
- @Override
- @SuppressWarnings( {"MissingPermission"})
- public void onConnected() {
- locationEngine.requestLocationUpdates();
- }
-
- @Override
- public void onLocationChanged(Location location) {
- // no impl
+ private static LocationEngineRequest getLocationRequst(long interval) {
+ return new LocationEngineRequest.Builder(interval)
+ .setFastestInterval(DEFAULT_FASTEST_INTERVAL_MILLIS)
+ .setPriority(LocationEngineRequest.PRIORITY_HIGH_ACCURACY)
+ .build();
}
@Override
diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/location/ManualLocationUpdatesActivity.java b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/location/ManualLocationUpdatesActivity.java
index c7926364dc..ee65b97570 100644
--- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/location/ManualLocationUpdatesActivity.java
+++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/location/ManualLocationUpdatesActivity.java
@@ -2,6 +2,7 @@ package com.mapbox.mapboxsdk.testapp.activity.location;
import android.location.Location;
import android.os.Bundle;
+import android.os.Looper;
import android.support.annotation.NonNull;
import android.support.design.widget.FloatingActionButton;
import android.support.v7.app.AppCompatActivity;
@@ -9,9 +10,10 @@ import android.view.View;
import android.widget.Toast;
import com.mapbox.android.core.location.LocationEngine;
-import com.mapbox.android.core.location.LocationEngineListener;
-import com.mapbox.android.core.location.LocationEnginePriority;
+import com.mapbox.android.core.location.LocationEngineCallback;
import com.mapbox.android.core.location.LocationEngineProvider;
+import com.mapbox.android.core.location.LocationEngineRequest;
+import com.mapbox.android.core.location.LocationEngineResult;
import com.mapbox.android.core.permissions.PermissionsListener;
import com.mapbox.android.core.permissions.PermissionsManager;
import com.mapbox.mapboxsdk.geometry.LatLngBounds;
@@ -27,7 +29,10 @@ import java.util.List;
import timber.log.Timber;
public class ManualLocationUpdatesActivity extends AppCompatActivity implements OnMapReadyCallback,
- LocationEngineListener {
+ LocationEngineCallback<LocationEngineResult> {
+
+ private static final long DEFAULT_INTERVAL_MILLIS = 1000;
+ private static final long DEFAULT_FASTEST_INTERVAL_MILLIS = 1000;
private MapView mapView;
private LocationComponent locationComponent;
@@ -116,35 +121,32 @@ public class ManualLocationUpdatesActivity extends AppCompatActivity implements
@Override
public void onMapReady(@NonNull MapboxMap mapboxMap) {
- locationEngine = new LocationEngineProvider(this).obtainBestLocationEngineAvailable();
- locationEngine.addLocationEngineListener(this);
- locationEngine.setPriority(LocationEnginePriority.HIGH_ACCURACY);
- locationEngine.activate();
+ locationEngine = LocationEngineProvider.getBestLocationEngine(getApplicationContext(),
+ false);
locationComponent = mapboxMap.getLocationComponent();
locationComponent.activateLocationComponent(this, locationEngine);
locationComponent.setLocationComponentEnabled(true);
locationComponent.setRenderMode(RenderMode.COMPASS);
}
- @Override
- @SuppressWarnings( {"MissingPermission"})
- public void onConnected() {
- locationEngine.requestLocationUpdates();
- }
-
- @Override
- public void onLocationChanged(Location location) {
- Timber.d("Location change occurred: %s", location.toString());
+ private static LocationEngineRequest getLocationRequst(long interval) {
+ return new LocationEngineRequest.Builder(interval)
+ .setFastestInterval(DEFAULT_FASTEST_INTERVAL_MILLIS)
+ .setPriority(LocationEngineRequest.PRIORITY_HIGH_ACCURACY)
+ .build();
}
@Override
- @SuppressWarnings( {"MissingPermission"})
protected void onStart() {
super.onStart();
mapView.onStart();
if (locationEngine != null) {
- locationEngine.requestLocationUpdates();
- locationEngine.addLocationEngineListener(this);
+ try {
+ locationEngine.requestLocationUpdates(getLocationRequst(DEFAULT_INTERVAL_MILLIS),
+ this, Looper.getMainLooper());
+ } catch (SecurityException se) {
+ se.printStackTrace();
+ }
}
}
@@ -165,8 +167,7 @@ public class ManualLocationUpdatesActivity extends AppCompatActivity implements
super.onStop();
mapView.onStop();
if (locationEngine != null) {
- locationEngine.removeLocationEngineListener(this);
- locationEngine.removeLocationUpdates();
+ locationEngine.removeLocationUpdates(this);
}
}
@@ -180,9 +181,6 @@ public class ManualLocationUpdatesActivity extends AppCompatActivity implements
protected void onDestroy() {
super.onDestroy();
mapView.onDestroy();
- if (locationEngine != null) {
- locationEngine.deactivate();
- }
}
@Override
@@ -190,4 +188,17 @@ public class ManualLocationUpdatesActivity extends AppCompatActivity implements
super.onLowMemory();
mapView.onLowMemory();
}
+
+ @Override
+ public void onSuccess(LocationEngineResult result) {
+ Location location = result.getLastLocation();
+ if (location != null) {
+ Timber.d("Location change occurred: %s", location.toString());
+ }
+ }
+
+ @Override
+ public void onFailure(@NonNull Exception exception) {
+ Timber.d("Location engine error occurred: %s", exception.getMessage());
+ }
} \ No newline at end of file