Skip to content

Commit 0aef149

Browse files
authored
downgrade LOST to v1.1.1 (#493)
* downgrade LOST to v1.1.1 * bump to Maps SDK snapshot version to test integration * javadoc typo * bump firebase dep
1 parent 5a097d8 commit 0aef149

File tree

7 files changed

+62
-42
lines changed

7 files changed

+62
-42
lines changed

mapbox/app/src/main/java/com/mapbox/services/android/testapp/location/GoogleLocationEngine.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@
1515
import com.mapbox.services.android.telemetry.location.LocationEngine;
1616
import com.mapbox.services.android.telemetry.location.LocationEngineListener;
1717
import com.mapbox.services.android.telemetry.location.LocationEnginePriority;
18-
import com.mapbox.services.android.telemetry.permissions.PermissionsManager;
1918

2019
import java.lang.ref.WeakReference;
2120

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

8988
@Override
9089
public Location getLastLocation() {
91-
if (googleApiClient.isConnected() && PermissionsManager.areLocationPermissionsGranted(context.get())) {
90+
if (googleApiClient.isConnected()) {
9291
//noinspection MissingPermission
9392
return LocationServices.FusedLocationApi.getLastLocation(googleApiClient);
9493
}
@@ -114,7 +113,7 @@ public void requestLocationUpdates() {
114113
request.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY);
115114
}
116115

117-
if (googleApiClient.isConnected() && PermissionsManager.areLocationPermissionsGranted(context.get())) {
116+
if (googleApiClient.isConnected()) {
118117
//noinspection MissingPermission
119118
LocationServices.FusedLocationApi.requestLocationUpdates(googleApiClient, request, this);
120119
}

mapbox/app/src/main/java/com/mapbox/services/android/testapp/location/LocationEngineActivity.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,9 +15,12 @@
1515
import com.mapbox.services.android.telemetry.location.AndroidLocationEngine;
1616
import com.mapbox.services.android.telemetry.location.LocationEngine;
1717
import com.mapbox.services.android.telemetry.location.LocationEngineListener;
18+
import com.mapbox.services.android.telemetry.location.LocationEnginePriority;
1819
import com.mapbox.services.android.testapp.R;
1920
import com.mapbox.services.commons.models.Position;
2021

22+
import timber.log.Timber;
23+
2124
public class LocationEngineActivity extends AppCompatActivity
2225
implements AdapterView.OnItemSelectedListener, LocationEngineListener {
2326

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

8992
if (!engineName.equals(locationEngines[0]) && locationEngine != null) {
9093
// Not None
94+
Timber.e("Last known location: %s", locationEngine.getLastLocation());
95+
locationEngine.setPriority(LocationEnginePriority.HIGH_ACCURACY);
9196
locationEngine.addLocationEngineListener(this);
9297
locationEngine.activate();
9398
}

mapbox/dependencies.gradle

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ ext {
1717
supportCardView : 'com.android.support:cardview-v7:25.1.0',
1818

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

2222
// gson
2323
gson : 'com.google.code.gson:gson:2.8.0',
@@ -36,7 +36,7 @@ ext {
3636
okhttp3Mockwebserver : 'com.squareup.okhttp3:mockwebserver:3.6.0',
3737

3838
// lost
39-
lost : 'com.mapzen.android:lost:3.0.1',
39+
lost : 'com.mapzen.android:lost:1.1.1',
4040

4141
// play services
4242
gmsLocation : 'com.google.android.gms:play-services-location:10.2.0',

mapbox/libandroid-services/build.gradle

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,9 @@ dependencies {
4343
compile rootProject.ext.dep.timber
4444

4545
// LOST
46-
compile rootProject.ext.dep.lost
46+
compile(rootProject.ext.dep.lost) {
47+
exclude group: 'com.google.guava'
48+
}
4749

4850
// Testing
4951
testCompile rootProject.ext.dep.mockito

mapbox/libandroid-services/src/main/java/com/mapbox/services/android/location/LostLocationEngine.java

Lines changed: 46 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,11 @@
22

33
import android.content.Context;
44
import android.location.Location;
5-
import android.util.Log;
5+
import android.support.annotation.Nullable;
66

77
import com.mapbox.services.android.telemetry.location.LocationEngine;
88
import com.mapbox.services.android.telemetry.location.LocationEngineListener;
99
import com.mapbox.services.android.telemetry.location.LocationEnginePriority;
10-
import com.mapbox.services.android.telemetry.permissions.PermissionsManager;
1110
import com.mapzen.android.lost.api.LocationListener;
1211
import com.mapzen.android.lost.api.LocationRequest;
1312
import com.mapzen.android.lost.api.LocationServices;
@@ -18,10 +17,7 @@
1817
/**
1918
* Sample LocationEngine using the Open Source Lost library
2019
*/
21-
public class LostLocationEngine extends LocationEngine implements
22-
LostApiClient.ConnectionCallbacks, LocationListener {
23-
24-
private static final String LOG_TAG = LostLocationEngine.class.getSimpleName();
20+
public class LostLocationEngine extends LocationEngine implements LocationListener {
2521

2622
private static LocationEngine instance;
2723

@@ -31,9 +27,7 @@ public class LostLocationEngine extends LocationEngine implements
3127
public LostLocationEngine(Context context) {
3228
super();
3329
this.context = new WeakReference<>(context);
34-
lostApiClient = new LostApiClient.Builder(this.context.get())
35-
.addConnectionCallbacks(this)
36-
.build();
30+
lostApiClient = new LostApiClient.Builder(this.context.get()).build();
3731
}
3832

3933
public static synchronized LocationEngine getLocationEngine(Context context) {
@@ -44,50 +38,63 @@ public static synchronized LocationEngine getLocationEngine(Context context) {
4438
return instance;
4539
}
4640

41+
/**
42+
* Activate the location engine which will connect whichever location provider you are using. You'll need to call
43+
* this before requesting user location updates using {@link LocationEngine#requestLocationUpdates()}.
44+
*/
4745
@Override
4846
public void activate() {
49-
if (lostApiClient != null && !lostApiClient.isConnected()) {
47+
if (!lostApiClient.isConnected()) {
5048
lostApiClient.connect();
5149
}
50+
for (LocationEngineListener listener : locationListeners) {
51+
listener.onConnected();
52+
}
5253
}
5354

55+
/**
56+
* Disconnect the location engine which is useful when you no longer need location updates or requesting the users
57+
* {@link LocationEngine#getLastLocation()}. Before deactivating, you'll need to stop request user location updates
58+
* using {@link LocationEngine#removeLocationUpdates()}.
59+
*/
5460
@Override
5561
public void deactivate() {
56-
if (lostApiClient != null && lostApiClient.isConnected()) {
62+
if (lostApiClient.isConnected()) {
5763
lostApiClient.disconnect();
5864
}
5965
}
6066

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

78+
/**
79+
* Returns the Last known location if the location provider is connected and location permissions are granted.
80+
*
81+
* @return the last known location
82+
*/
6683
@Override
67-
public void onConnected() {
68-
for (LocationEngineListener listener : locationListeners) {
69-
listener.onConnected();
70-
}
71-
}
72-
73-
@Override
74-
public void onConnectionSuspended() {
75-
Log.d(LOG_TAG, "Connection suspended.");
76-
}
77-
78-
@Override
84+
@Nullable
7985
public Location getLastLocation() {
80-
if (lostApiClient.isConnected() && PermissionsManager.areLocationPermissionsGranted(context.get())) {
86+
if (lostApiClient.isConnected()) {
8187
//noinspection MissingPermission
82-
return LocationServices.FusedLocationApi.getLastLocation(lostApiClient);
88+
return LocationServices.FusedLocationApi.getLastLocation();
8389
}
84-
8590
return null;
8691
}
8792

93+
/**
94+
* Request location updates to the location provider.
95+
*/
8896
@Override
8997
public void requestLocationUpdates() {
90-
// Common params
9198
LocationRequest request = LocationRequest.create();
9299

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

114-
if (lostApiClient.isConnected() && PermissionsManager.areLocationPermissionsGranted(context.get())) {
121+
if (lostApiClient.isConnected()) {
115122
//noinspection MissingPermission
116-
LocationServices.FusedLocationApi.requestLocationUpdates(lostApiClient, request, this);
123+
LocationServices.FusedLocationApi.requestLocationUpdates(request, this);
117124
}
118125
}
119126

127+
/**
128+
* Dismiss ongoing location update to the location provider.
129+
*/
120130
@Override
121131
public void removeLocationUpdates() {
122132
if (lostApiClient.isConnected()) {
123-
LocationServices.FusedLocationApi.removeLocationUpdates(lostApiClient, this);
133+
LocationServices.FusedLocationApi.removeLocationUpdates(this);
124134
}
125135
}
126136

137+
/**
138+
* Invoked when the Location has changed.
139+
*
140+
* @param location the new location
141+
*/
127142
@Override
128143
public void onLocationChanged(Location location) {
129144
for (LocationEngineListener listener : locationListeners) {
130145
listener.onLocationChanged(location);
131146
}
132147
}
133148
}
149+

mapbox/libandroid-telemetry/src/main/java/com/mapbox/services/android/telemetry/location/AndroidLocationEngine.java

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -70,8 +70,7 @@ public boolean isConnected() {
7070

7171
@Override
7272
public Location getLastLocation() {
73-
if (!TextUtils.isEmpty(currentProvider)
74-
&& PermissionsManager.areLocationPermissionsGranted(context.get())) {
73+
if (!TextUtils.isEmpty(currentProvider)) {
7574
//noinspection MissingPermission
7675
return locationManager.getLastKnownLocation(currentProvider);
7776
}
@@ -81,8 +80,7 @@ public Location getLastLocation() {
8180

8281
@Override
8382
public void requestLocationUpdates() {
84-
if (!TextUtils.isEmpty(currentProvider)
85-
&& PermissionsManager.areLocationPermissionsGranted(context.get())) {
83+
if (!TextUtils.isEmpty(currentProvider)) {
8684
//noinspection MissingPermission
8785
locationManager.requestLocationUpdates(currentProvider, DEFAULT_MIN_TIME, DEFAULT_MIN_DISTANCE, this);
8886
}

scripts/bitrise.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -115,8 +115,8 @@ workflows:
115115
#!/bin/bash
116116
echo "Run Robo tests on firebase:"
117117
gcloud auth activate-service-account --key-file secret.json --project mapbox-java
118-
gcloud beta test android devices list
119-
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
118+
gcloud firebase test android devices list
119+
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
120120
- slack:
121121
inputs:
122122
- webhook_url: "$SLACK_HOOK_URL"

0 commit comments

Comments
 (0)