Skip to content

Commit

Permalink
downgrade LOST to v1.1.1 (#493)
Browse files Browse the repository at this point in the history
* downgrade LOST to v1.1.1

* bump to Maps SDK snapshot version to test integration

* javadoc typo

* bump firebase dep
  • Loading branch information
tobrun authored Jun 30, 2017
1 parent 5a097d8 commit 0aef149
Show file tree
Hide file tree
Showing 7 changed files with 62 additions and 42 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,6 @@
import com.mapbox.services.android.telemetry.location.LocationEngine;
import com.mapbox.services.android.telemetry.location.LocationEngineListener;
import com.mapbox.services.android.telemetry.location.LocationEnginePriority;
import com.mapbox.services.android.telemetry.permissions.PermissionsManager;

import java.lang.ref.WeakReference;

Expand Down Expand Up @@ -88,7 +87,7 @@ public void onConnectionFailed(@NonNull ConnectionResult connectionResult) {

@Override
public Location getLastLocation() {
if (googleApiClient.isConnected() && PermissionsManager.areLocationPermissionsGranted(context.get())) {
if (googleApiClient.isConnected()) {
//noinspection MissingPermission
return LocationServices.FusedLocationApi.getLastLocation(googleApiClient);
}
Expand All @@ -114,7 +113,7 @@ public void requestLocationUpdates() {
request.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY);
}

if (googleApiClient.isConnected() && PermissionsManager.areLocationPermissionsGranted(context.get())) {
if (googleApiClient.isConnected()) {
//noinspection MissingPermission
LocationServices.FusedLocationApi.requestLocationUpdates(googleApiClient, request, this);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,9 +15,12 @@
import com.mapbox.services.android.telemetry.location.AndroidLocationEngine;
import com.mapbox.services.android.telemetry.location.LocationEngine;
import com.mapbox.services.android.telemetry.location.LocationEngineListener;
import com.mapbox.services.android.telemetry.location.LocationEnginePriority;
import com.mapbox.services.android.testapp.R;
import com.mapbox.services.commons.models.Position;

import timber.log.Timber;

public class LocationEngineActivity extends AppCompatActivity
implements AdapterView.OnItemSelectedListener, LocationEngineListener {

Expand Down Expand Up @@ -88,6 +91,8 @@ public void onItemSelected(AdapterView<?> parent, View view, int pos, long id) {

if (!engineName.equals(locationEngines[0]) && locationEngine != null) {
// Not None
Timber.e("Last known location: %s", locationEngine.getLastLocation());
locationEngine.setPriority(LocationEnginePriority.HIGH_ACCURACY);
locationEngine.addLocationEngineListener(this);
locationEngine.activate();
}
Expand Down
4 changes: 2 additions & 2 deletions mapbox/dependencies.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ ext {
supportCardView : 'com.android.support:cardview-v7:25.1.0',

// mapbox
mapbox : 'com.mapbox.mapboxsdk:mapbox-android-sdk:5.0.2@aar',
mapbox : 'com.mapbox.mapboxsdk:mapbox-android-sdk:5.1.0-SNAPSHOT@aar',

// gson
gson : 'com.google.code.gson:gson:2.8.0',
Expand All @@ -36,7 +36,7 @@ ext {
okhttp3Mockwebserver : 'com.squareup.okhttp3:mockwebserver:3.6.0',

// lost
lost : 'com.mapzen.android:lost:3.0.1',
lost : 'com.mapzen.android:lost:1.1.1',

// play services
gmsLocation : 'com.google.android.gms:play-services-location:10.2.0',
Expand Down
4 changes: 3 additions & 1 deletion mapbox/libandroid-services/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,9 @@ dependencies {
compile rootProject.ext.dep.timber

// LOST
compile rootProject.ext.dep.lost
compile(rootProject.ext.dep.lost) {
exclude group: 'com.google.guava'
}

// Testing
testCompile rootProject.ext.dep.mockito
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,11 @@

import android.content.Context;
import android.location.Location;
import android.util.Log;
import android.support.annotation.Nullable;

import com.mapbox.services.android.telemetry.location.LocationEngine;
import com.mapbox.services.android.telemetry.location.LocationEngineListener;
import com.mapbox.services.android.telemetry.location.LocationEnginePriority;
import com.mapbox.services.android.telemetry.permissions.PermissionsManager;
import com.mapzen.android.lost.api.LocationListener;
import com.mapzen.android.lost.api.LocationRequest;
import com.mapzen.android.lost.api.LocationServices;
Expand All @@ -18,10 +17,7 @@
/**
* Sample LocationEngine using the Open Source Lost library
*/
public class LostLocationEngine extends LocationEngine implements
LostApiClient.ConnectionCallbacks, LocationListener {

private static final String LOG_TAG = LostLocationEngine.class.getSimpleName();
public class LostLocationEngine extends LocationEngine implements LocationListener {

private static LocationEngine instance;

Expand All @@ -31,9 +27,7 @@ public class LostLocationEngine extends LocationEngine implements
public LostLocationEngine(Context context) {
super();
this.context = new WeakReference<>(context);
lostApiClient = new LostApiClient.Builder(this.context.get())
.addConnectionCallbacks(this)
.build();
lostApiClient = new LostApiClient.Builder(this.context.get()).build();
}

public static synchronized LocationEngine getLocationEngine(Context context) {
Expand All @@ -44,50 +38,63 @@ public static synchronized LocationEngine getLocationEngine(Context context) {
return instance;
}

/**
* Activate the location engine which will connect whichever location provider you are using. You'll need to call
* this before requesting user location updates using {@link LocationEngine#requestLocationUpdates()}.
*/
@Override
public void activate() {
if (lostApiClient != null && !lostApiClient.isConnected()) {
if (!lostApiClient.isConnected()) {
lostApiClient.connect();
}
for (LocationEngineListener listener : locationListeners) {
listener.onConnected();
}
}

/**
* Disconnect the location engine which is useful when you no longer need location updates or requesting the users
* {@link LocationEngine#getLastLocation()}. Before deactivating, you'll need to stop request user location updates
* using {@link LocationEngine#removeLocationUpdates()}.
*/
@Override
public void deactivate() {
if (lostApiClient != null && lostApiClient.isConnected()) {
if (lostApiClient.isConnected()) {
lostApiClient.disconnect();
}
}

/**
* Check if your location provider has been activated/connected. This is mainly used internally but is also useful in
* the rare case when you'd like to know if your location engine is connected or not.
*
* @return boolean true if the location engine has been activated/connected, else false.
*/
@Override
public boolean isConnected() {
return lostApiClient.isConnected();
}

/**
* Returns the Last known location if the location provider is connected and location permissions are granted.
*
* @return the last known location
*/
@Override
public void onConnected() {
for (LocationEngineListener listener : locationListeners) {
listener.onConnected();
}
}

@Override
public void onConnectionSuspended() {
Log.d(LOG_TAG, "Connection suspended.");
}

@Override
@Nullable
public Location getLastLocation() {
if (lostApiClient.isConnected() && PermissionsManager.areLocationPermissionsGranted(context.get())) {
if (lostApiClient.isConnected()) {
//noinspection MissingPermission
return LocationServices.FusedLocationApi.getLastLocation(lostApiClient);
return LocationServices.FusedLocationApi.getLastLocation();
}

return null;
}

/**
* Request location updates to the location provider.
*/
@Override
public void requestLocationUpdates() {
// Common params
LocationRequest request = LocationRequest.create();

if (interval != null) {
Expand All @@ -111,23 +118,32 @@ public void requestLocationUpdates() {
request.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY);
}

if (lostApiClient.isConnected() && PermissionsManager.areLocationPermissionsGranted(context.get())) {
if (lostApiClient.isConnected()) {
//noinspection MissingPermission
LocationServices.FusedLocationApi.requestLocationUpdates(lostApiClient, request, this);
LocationServices.FusedLocationApi.requestLocationUpdates(request, this);
}
}

/**
* Dismiss ongoing location update to the location provider.
*/
@Override
public void removeLocationUpdates() {
if (lostApiClient.isConnected()) {
LocationServices.FusedLocationApi.removeLocationUpdates(lostApiClient, this);
LocationServices.FusedLocationApi.removeLocationUpdates(this);
}
}

/**
* Invoked when the Location has changed.
*
* @param location the new location
*/
@Override
public void onLocationChanged(Location location) {
for (LocationEngineListener listener : locationListeners) {
listener.onLocationChanged(location);
}
}
}

Original file line number Diff line number Diff line change
Expand Up @@ -70,8 +70,7 @@ public boolean isConnected() {

@Override
public Location getLastLocation() {
if (!TextUtils.isEmpty(currentProvider)
&& PermissionsManager.areLocationPermissionsGranted(context.get())) {
if (!TextUtils.isEmpty(currentProvider)) {
//noinspection MissingPermission
return locationManager.getLastKnownLocation(currentProvider);
}
Expand All @@ -81,8 +80,7 @@ public Location getLastLocation() {

@Override
public void requestLocationUpdates() {
if (!TextUtils.isEmpty(currentProvider)
&& PermissionsManager.areLocationPermissionsGranted(context.get())) {
if (!TextUtils.isEmpty(currentProvider)) {
//noinspection MissingPermission
locationManager.requestLocationUpdates(currentProvider, DEFAULT_MIN_TIME, DEFAULT_MIN_DISTANCE, this);
}
Expand Down
4 changes: 2 additions & 2 deletions scripts/bitrise.yml
Original file line number Diff line number Diff line change
Expand Up @@ -115,8 +115,8 @@ workflows:
#!/bin/bash
echo "Run Robo tests on firebase:"
gcloud auth activate-service-account --key-file secret.json --project mapbox-java
gcloud beta test android devices list
gcloud beta test android run --type robo --app mapbox/app/build/outputs/apk/app-debug.apk --device-ids shamu --os-version-ids 22 --locales en --orientations portrait --timeout 10m
gcloud firebase test android devices list
gcloud firebase test android run --type robo --app mapbox/app/build/outputs/apk/app-debug.apk --device-ids shamu --os-version-ids 22 --locales en --orientations portrait --timeout 10m
- slack:
inputs:
- webhook_url: "$SLACK_HOOK_URL"
Expand Down

0 comments on commit 0aef149

Please sign in to comment.