diff options
author | Andrey Li <andrey.li@mapbox.com> | 2018-10-26 09:08:24 -0700 |
---|---|---|
committer | Łukasz Paczos <lukasz.paczos@mapbox.com> | 2018-11-29 19:26:21 +0100 |
commit | 2c70f4b6dc7d9c9c67f7a78e4290335f137392d9 (patch) | |
tree | 11a10449edc98e736bc205007e66126eda704d4e /platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk | |
parent | c9add3646ea80654a3e2a2e81d750a92f7c8e999 (diff) | |
download | qtlocation-mapboxgl-2c70f4b6dc7d9c9c67f7a78e4290335f137392d9.tar.gz |
[android] Initial integration with liblocation 1.0.0 and telemetry 4.0.0, bumped gms to 16.0.0
Diffstat (limited to 'platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk')
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 |