[android] Extract telemetry into MAS

* [android] add the mapbox-android-telemetry module dependency.

* update javadoc
This commit is contained in:
Antonio Zugaldia
2017-02-03 15:12:13 -05:00
committed by GitHub
parent e5c9db4793
commit c97ec3be03
29 changed files with 283 additions and 1736 deletions

View File

@@ -16,7 +16,7 @@ import com.mapbox.mapboxsdk.camera.CameraUpdateFactory;
import com.mapbox.mapboxsdk.constants.MyBearingTracking;
import com.mapbox.mapboxsdk.constants.MyLocationTracking;
import com.mapbox.mapboxsdk.geometry.LatLng;
import com.mapbox.mapboxsdk.location.LocationServices;
import com.mapbox.mapboxsdk.location.LocationSource;
import com.mapbox.mapboxsdk.maps.MapboxMap;
import com.mapbox.mapboxsdk.maps.widgets.MyLocationView;
import com.mapbox.mapboxsdk.testapp.R;
@@ -123,7 +123,7 @@ public class MyLocationViewTest {
mapboxMap.moveCamera(
CameraUpdateFactory.newCameraPosition(
new CameraPosition.Builder()
.target(new LatLng(LocationServices.getLocationServices(view.getContext()).getLastLocation()))
.target(new LatLng(LocationSource.getLocationEngine(view.getContext()).getLastLocation()))
.build()
)
);

View File

@@ -596,7 +596,7 @@
<!-- android:name="com.mapbox.SetStorageExternal" -->
<!-- android:value="true" /> -->
<service android:name="com.mapbox.mapboxsdk.telemetry.TelemetryService"/>
<service android:name="com.mapbox.services.android.telemetry.service.TelemetryService"/>
</application>
</manifest>

View File

@@ -16,15 +16,15 @@ import android.view.ViewGroup;
import com.mapbox.mapboxsdk.camera.CameraUpdateFactory;
import com.mapbox.mapboxsdk.constants.Style;
import com.mapbox.mapboxsdk.geometry.LatLng;
import com.mapbox.mapboxsdk.location.LocationListener;
import com.mapbox.mapboxsdk.location.LocationServices;
import com.mapbox.mapboxsdk.location.LocationSource;
import com.mapbox.mapboxsdk.maps.MapView;
import com.mapbox.mapboxsdk.maps.MapboxMap;
import com.mapbox.mapboxsdk.maps.MapboxMapOptions;
import com.mapbox.mapboxsdk.maps.OnMapReadyCallback;
import com.mapbox.mapboxsdk.testapp.R;
import com.mapbox.services.android.telemetry.location.LocationEngineListener;
public class MyLocationDrawableActivity extends AppCompatActivity implements LocationListener {
public class MyLocationDrawableActivity extends AppCompatActivity implements LocationEngineListener {
private static final int PERMISSIONS_LOCATION = 0;
@@ -92,7 +92,7 @@ public class MyLocationDrawableActivity extends AppCompatActivity implements Loc
if (location != null) {
onLocationChanged(location);
} else {
LocationServices.getLocationServices(this).addLocationListener(this);
LocationSource.getLocationEngine(this).addLocationEngineListener(this);
}
} else {
mapboxMap.setMyLocationEnabled(false);
@@ -108,6 +108,11 @@ public class MyLocationDrawableActivity extends AppCompatActivity implements Loc
}
}
@Override
public void onConnected() {
// Nothing
}
@Override
public void onLocationChanged(Location location) {
if (mapboxMap != null) {

View File

@@ -18,16 +18,16 @@ import android.view.View;
import com.mapbox.mapboxsdk.camera.CameraUpdateFactory;
import com.mapbox.mapboxsdk.constants.MyLocationTracking;
import com.mapbox.mapboxsdk.geometry.LatLng;
import com.mapbox.mapboxsdk.location.LocationListener;
import com.mapbox.mapboxsdk.location.LocationServices;
import com.mapbox.mapboxsdk.location.LocationSource;
import com.mapbox.mapboxsdk.maps.MapView;
import com.mapbox.mapboxsdk.maps.MapboxMap;
import com.mapbox.mapboxsdk.maps.OnMapReadyCallback;
import com.mapbox.mapboxsdk.maps.TrackingSettings;
import com.mapbox.mapboxsdk.maps.widgets.MyLocationViewSettings;
import com.mapbox.mapboxsdk.testapp.R;
import com.mapbox.services.android.telemetry.location.LocationEngineListener;
public class MyLocationTintActivity extends AppCompatActivity implements LocationListener {
public class MyLocationTintActivity extends AppCompatActivity implements LocationEngineListener {
private MapView mapView;
private MapboxMap mapboxMap;
@@ -120,6 +120,11 @@ public class MyLocationTintActivity extends AppCompatActivity implements Locatio
}
@Override
public void onConnected() {
// Nothing
}
@Override
public void onLocationChanged(Location location) {
if (mapboxMap != null && firstRun) {
@@ -132,7 +137,7 @@ public class MyLocationTintActivity extends AppCompatActivity implements Locatio
protected void onStart() {
super.onStart();
mapView.onStart();
LocationServices.getLocationServices(this).addLocationListener(this);
LocationSource.getLocationEngine(this).addLocationEngineListener(this);
}
@Override
@@ -150,7 +155,7 @@ public class MyLocationTintActivity extends AppCompatActivity implements Locatio
@Override
protected void onStop() {
super.onStop();
LocationServices.getLocationServices(this).removeLocationListener(this);
LocationSource.getLocationEngine(this).removeLocationEngineListener(this);
mapView.onStop();
}

View File

@@ -13,12 +13,14 @@ import android.view.View;
import com.mapbox.mapboxsdk.camera.CameraUpdateFactory;
import com.mapbox.mapboxsdk.geometry.LatLng;
import com.mapbox.mapboxsdk.location.LocationListener;
import com.mapbox.mapboxsdk.location.LocationServices;
import com.mapbox.mapboxsdk.location.LocationSource;
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 com.mapbox.services.android.telemetry.location.LocationEngine;
import com.mapbox.services.android.telemetry.location.LocationEngineListener;
import com.mapbox.services.android.telemetry.permissions.PermissionsManager;
public class MyLocationToggleActivity extends AppCompatActivity {
@@ -26,8 +28,8 @@ public class MyLocationToggleActivity extends AppCompatActivity {
private MapboxMap mapboxMap;
private FloatingActionButton locationToggleFab;
private LocationServices locationServices;
private LocationListener locationListener;
private LocationEngine locationServices;
private LocationEngineListener locationListener;
private static final int PERMISSIONS_LOCATION = 0;
@@ -36,7 +38,7 @@ public class MyLocationToggleActivity extends AppCompatActivity {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_my_location_toggle);
locationServices = LocationServices.getLocationServices(MyLocationToggleActivity.this);
locationServices = LocationSource.getLocationEngine(this);
mapView = (MapView) findViewById(R.id.mapView);
mapView.onCreate(savedInstanceState);
@@ -95,7 +97,7 @@ public class MyLocationToggleActivity extends AppCompatActivity {
// Ensure no memory leak occurs if we register the location listener but the call hasn't
// been made yet.
if (locationListener != null) {
locationServices.removeLocationListener(locationListener);
locationServices.removeLocationEngineListener(locationListener);
}
}
@@ -108,7 +110,7 @@ public class MyLocationToggleActivity extends AppCompatActivity {
@UiThread
public void toggleGps(boolean enableGps) {
if (enableGps) {
if (!LocationServices.getLocationServices(MyLocationToggleActivity.this).areLocationPermissionsGranted()) {
if (!PermissionsManager.areLocationPermissionsGranted(this)) {
ActivityCompat.requestPermissions(this, new String[] {Manifest.permission.ACCESS_COARSE_LOCATION,
Manifest.permission.ACCESS_FINE_LOCATION}, PERMISSIONS_LOCATION);
} else {
@@ -123,7 +125,7 @@ public class MyLocationToggleActivity extends AppCompatActivity {
if (enabled) {
// To move the camera instantly, we attempt to get the last known location and either
// ease or animate the camera to that position depending on the zoom level.
Location lastLocation = LocationServices.getLocationServices(this).getLastLocation();
Location lastLocation = LocationSource.getLocationEngine(this).getLastLocation();
if (lastLocation != null) {
if (mapboxMap.getCameraPosition().zoom > 15.99) {
@@ -132,16 +134,21 @@ public class MyLocationToggleActivity extends AppCompatActivity {
mapboxMap.animateCamera(CameraUpdateFactory.newLatLngZoom(new LatLng(lastLocation), 16), 1000);
}
} else {
locationListener = new LocationListener() {
locationListener = new LocationEngineListener() {
@Override
public void onConnected() {
// Nothing
}
@Override
public void onLocationChanged(Location location) {
if (location != null) {
mapboxMap.moveCamera(CameraUpdateFactory.newLatLngZoom(new LatLng(location), 16));
locationServices.removeLocationListener(this);
locationServices.removeLocationEngineListener(this);
}
}
};
locationServices.addLocationListener(locationListener);
locationServices.addLocationEngineListener(locationListener);
}
locationToggleFab.setImageResource(R.drawable.ic_location_disabled_24dp);
} else {

View File

@@ -1,19 +0,0 @@
package com.mapbox.mapboxsdk.telemetry;
import org.junit.Test;
import static junit.framework.Assert.assertEquals;
public class ExponentialBackOffTest {
@Test
public void testExponentialBackOff() {
MapboxEventManager.ExponentialBackoffCounter counter = new MapboxEventManager.ExponentialBackoffCounter();
assertEquals(30000, counter.getNextCount());
assertEquals(60000, counter.getNextCount());
assertEquals(90000, counter.getNextCount());
assertEquals(120000, counter.getNextCount());
assertEquals(150000, counter.getNextCount());
assertEquals(180000, counter.getNextCount());
}
}