diff options
author | Łukasz Paczos <lukas.paczos@gmail.com> | 2018-11-12 17:11:51 +0100 |
---|---|---|
committer | Łukasz Paczos <lukasz.paczos@mapbox.com> | 2018-11-29 19:26:21 +0100 |
commit | 216b0d8a936c4d3f3ff221ff3a2bd52f6d4d1964 (patch) | |
tree | 89eef40ed7027804709be7faa1a25d3f8c626c23 /platform/android/MapboxGLAndroidSDKTestApp/src/main/java | |
parent | 2c70f4b6dc7d9c9c67f7a78e4290335f137392d9 (diff) | |
download | qtlocation-mapboxgl-216b0d8a936c4d3f3ff221ff3a2bd52f6d4d1964.tar.gz |
[android] refactor LocationComponent to utilize LocationEngineRequest
Diffstat (limited to 'platform/android/MapboxGLAndroidSDKTestApp/src/main/java')
3 files changed, 60 insertions, 146 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 98fe13e8eb..5626b82ccc 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 @@ -105,8 +105,7 @@ class LocationFragmentActivity : AppCompatActivity() { mapView.getMapAsync { mapboxMap = it component = mapboxMap.locationComponent - component?.activateLocationComponent(activity, - LocationEngineProvider.getBestLocationEngine(activity, false)) + component?.activateLocationComponent(activity) component?.isLocationComponentEnabled = true component?.locationEngine?.getLastLocation(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 078b5c7ab5..25d87c32c7 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,45 +4,36 @@ 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; import android.view.Menu; import android.view.MenuItem; -import android.view.View; import android.widget.ArrayAdapter; import android.widget.Button; import android.widget.Toast; -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.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; import com.mapbox.mapboxsdk.constants.Style; -import com.mapbox.mapboxsdk.location.OnLocationClickListener; -import com.mapbox.mapboxsdk.maps.MapView; -import com.mapbox.mapboxsdk.maps.MapboxMap; -import com.mapbox.mapboxsdk.maps.OnMapReadyCallback; -import com.mapbox.mapboxsdk.location.LocationComponentOptions; import com.mapbox.mapboxsdk.location.LocationComponent; +import com.mapbox.mapboxsdk.location.LocationComponentOptions; import com.mapbox.mapboxsdk.location.OnCameraTrackingChangedListener; +import com.mapbox.mapboxsdk.location.OnLocationClickListener; import com.mapbox.mapboxsdk.location.modes.CameraMode; import com.mapbox.mapboxsdk.location.modes.RenderMode; +import com.mapbox.mapboxsdk.maps.MapView; +import com.mapbox.mapboxsdk.maps.MapboxMap; +import com.mapbox.mapboxsdk.maps.OnMapReadyCallback; import com.mapbox.mapboxsdk.testapp.R; import java.util.ArrayList; import java.util.List; public class LocationModesActivity extends AppCompatActivity implements OnMapReadyCallback, - OnLocationClickListener, OnCameraTrackingChangedListener { - - private static final long DEFAULT_INTERVAL_MILLIS = 1000; - private static final long DEFAULT_FASTEST_INTERVAL_MILLIS = 1000; + OnLocationClickListener, OnCameraTrackingChangedListener { private MapView mapView; private Button locationModeBtn; @@ -51,7 +42,6 @@ public class LocationModesActivity extends AppCompatActivity implements OnMapRea private PermissionsManager permissionsManager; private LocationComponent locationComponent; - private LocationEngine locationEngine; private MapboxMap mapboxMap; private boolean customStyle; @@ -67,8 +57,6 @@ public class LocationModesActivity extends AppCompatActivity implements OnMapRea private Location lastLocation; - private LocationEngineCallback<LocationEngineResult> locationEngineCallback; - @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); @@ -77,25 +65,19 @@ public class LocationModesActivity extends AppCompatActivity implements OnMapRea mapView = findViewById(R.id.mapView); locationModeBtn = findViewById(R.id.button_location_mode); - locationModeBtn.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - if (locationComponent == null) { - return; - } - showModeListDialog(); + locationModeBtn.setOnClickListener(v -> { + if (locationComponent == null) { + return; } + showModeListDialog(); }); locationTrackingBtn = findViewById(R.id.button_location_tracking); - locationTrackingBtn.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - if (locationComponent == null) { - return; - } - showTrackingListDialog(); + locationTrackingBtn.setOnClickListener(v -> { + if (locationComponent == null) { + return; } + showTrackingListDialog(); }); @@ -141,20 +123,6 @@ public class LocationModesActivity extends AppCompatActivity implements OnMapRea public void onMapReady(@NonNull MapboxMap mapboxMap) { this.mapboxMap = mapboxMap; - 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) { padding = new int[] {0, 750, 0, 0}; @@ -168,7 +136,13 @@ public class LocationModesActivity extends AppCompatActivity implements OnMapRea .build(); locationComponent = mapboxMap.getLocationComponent(); - locationComponent.activateLocationComponent(this, locationEngine, options); + locationComponent.activateLocationComponent(this, true, + new LocationEngineRequest.Builder(750) + .setFastestInterval(750) + .setPriority(LocationEngineRequest.PRIORITY_HIGH_ACCURACY) + .build() + ); + locationComponent.applyStyle(options); locationComponent.setLocationComponentEnabled(true); locationComponent.addOnLocationClickListener(this); locationComponent.addOnCameraTrackingChangedListener(this); @@ -248,14 +222,6 @@ public class LocationModesActivity extends AppCompatActivity implements OnMapRea protected void onStart() { super.onStart(); mapView.onStart(); - if (locationEngine != null) { - try { - locationEngine.requestLocationUpdates(getLocationRequst(DEFAULT_INTERVAL_MILLIS), - locationEngineCallback, Looper.getMainLooper()); - } catch (SecurityException se) { - se.printStackTrace(); - } - } } @Override @@ -274,9 +240,6 @@ public class LocationModesActivity extends AppCompatActivity implements OnMapRea protected void onStop() { super.onStop(); mapView.onStop(); - if (locationEngine != null) { - locationEngine.removeLocationUpdates(locationEngineCallback); - } } @SuppressLint("MissingPermission") @@ -303,13 +266,6 @@ public class LocationModesActivity extends AppCompatActivity implements OnMapRea mapView.onLowMemory(); } - private static LocationEngineRequest getLocationRequst(long interval) { - return new LocationEngineRequest.Builder(interval) - .setFastestInterval(DEFAULT_FASTEST_INTERVAL_MILLIS) - .setPriority(LocationEngineRequest.PRIORITY_HIGH_ACCURACY) - .build(); - } - @Override public void onLocationComponentClick() { Toast.makeText(this, "OnLocationComponentClick", Toast.LENGTH_LONG).show(); 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 ee65b97570..50f86efbbd 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 @@ -1,38 +1,28 @@ package com.mapbox.mapboxsdk.testapp.activity.location; -import android.location.Location; +import android.annotation.SuppressLint; 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; -import android.view.View; import android.widget.Toast; 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.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; +import com.mapbox.mapboxsdk.location.LocationComponent; +import com.mapbox.mapboxsdk.location.modes.RenderMode; import com.mapbox.mapboxsdk.maps.MapView; import com.mapbox.mapboxsdk.maps.MapboxMap; import com.mapbox.mapboxsdk.maps.OnMapReadyCallback; -import com.mapbox.mapboxsdk.location.LocationComponent; -import com.mapbox.mapboxsdk.location.modes.RenderMode; import com.mapbox.mapboxsdk.testapp.R; import java.util.List; -import timber.log.Timber; - -public class ManualLocationUpdatesActivity extends AppCompatActivity implements OnMapReadyCallback, - LocationEngineCallback<LocationEngineResult> { - - private static final long DEFAULT_INTERVAL_MILLIS = 1000; - private static final long DEFAULT_FASTEST_INTERVAL_MILLIS = 1000; +public class ManualLocationUpdatesActivity extends AppCompatActivity implements OnMapReadyCallback { private MapView mapView; private LocationComponent locationComponent; @@ -44,43 +34,38 @@ public class ManualLocationUpdatesActivity extends AppCompatActivity implements super.onCreate(savedInstanceState); setContentView(R.layout.activity_location_manual_update); + locationEngine = LocationEngineProvider.getBestLocationEngine(this, false); + FloatingActionButton fabManualUpdate = findViewById(R.id.fabManualLocationChange); - fabManualUpdate.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - if (locationComponent != null && locationComponent.getLocationEngine() == null) { - locationComponent.forceLocationUpdate( - Utils.getRandomLocation(LatLngBounds.from(60, 25, 40, -5))); - } + fabManualUpdate.setOnClickListener(v -> { + if (locationComponent != null && locationComponent.getLocationEngine() == null) { + locationComponent.forceLocationUpdate( + Utils.getRandomLocation(LatLngBounds.from(60, 25, 40, -5))); } }); fabManualUpdate.setEnabled(false); FloatingActionButton fabToggle = findViewById(R.id.fabToggleManualLocation); - fabToggle.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - if (locationComponent != null) { - locationComponent.setLocationEngine(locationComponent.getLocationEngine() == null ? locationEngine : - null); - - if (locationComponent.getLocationEngine() == null) { - fabToggle.setImageResource(R.drawable.ic_layers_clear); - fabManualUpdate.setEnabled(true); - fabManualUpdate.setAlpha(1f); - Toast.makeText( - ManualLocationUpdatesActivity.this.getApplicationContext(), - "LocationEngine disable, use manual updates", - Toast.LENGTH_SHORT).show(); - } else { - fabToggle.setImageResource(R.drawable.ic_layers); - fabManualUpdate.setEnabled(false); - fabManualUpdate.setAlpha(0.5f); - Toast.makeText( - ManualLocationUpdatesActivity.this.getApplicationContext(), - "LocationEngine enabled", - Toast.LENGTH_SHORT).show(); - } + fabToggle.setOnClickListener(v -> { + if (locationComponent != null) { + locationComponent.setLocationEngine(locationComponent.getLocationEngine() == null ? locationEngine : null); + + if (locationComponent.getLocationEngine() == null) { + fabToggle.setImageResource(R.drawable.ic_layers_clear); + fabManualUpdate.setEnabled(true); + fabManualUpdate.setAlpha(1f); + Toast.makeText( + ManualLocationUpdatesActivity.this.getApplicationContext(), + "LocationEngine disabled, use manual updates", + Toast.LENGTH_SHORT).show(); + } else { + fabToggle.setImageResource(R.drawable.ic_layers); + fabManualUpdate.setEnabled(false); + fabManualUpdate.setAlpha(0.5f); + Toast.makeText( + ManualLocationUpdatesActivity.this.getApplicationContext(), + "LocationEngine enabled", + Toast.LENGTH_SHORT).show(); } } }); @@ -119,35 +104,25 @@ public class ManualLocationUpdatesActivity extends AppCompatActivity implements permissionsManager.onRequestPermissionsResult(requestCode, permissions, grantResults); } + @SuppressLint("MissingPermission") @Override public void onMapReady(@NonNull MapboxMap mapboxMap) { - locationEngine = LocationEngineProvider.getBestLocationEngine(getApplicationContext(), - false); locationComponent = mapboxMap.getLocationComponent(); - locationComponent.activateLocationComponent(this, locationEngine); + locationComponent.activateLocationComponent( + this, + locationEngine, + new LocationEngineRequest.Builder(500) + .setFastestInterval(500) + .setPriority(LocationEngineRequest.PRIORITY_HIGH_ACCURACY) + .build()); locationComponent.setLocationComponentEnabled(true); locationComponent.setRenderMode(RenderMode.COMPASS); } - private static LocationEngineRequest getLocationRequst(long interval) { - return new LocationEngineRequest.Builder(interval) - .setFastestInterval(DEFAULT_FASTEST_INTERVAL_MILLIS) - .setPriority(LocationEngineRequest.PRIORITY_HIGH_ACCURACY) - .build(); - } - @Override protected void onStart() { super.onStart(); mapView.onStart(); - if (locationEngine != null) { - try { - locationEngine.requestLocationUpdates(getLocationRequst(DEFAULT_INTERVAL_MILLIS), - this, Looper.getMainLooper()); - } catch (SecurityException se) { - se.printStackTrace(); - } - } } @Override @@ -166,9 +141,6 @@ public class ManualLocationUpdatesActivity extends AppCompatActivity implements protected void onStop() { super.onStop(); mapView.onStop(); - if (locationEngine != null) { - locationEngine.removeLocationUpdates(this); - } } @Override @@ -188,17 +160,4 @@ 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 |