Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
28 commits
Select commit Hold shift + click to select a range
61f592b
Marked style URL as untranslatable
1ec5 Sep 11, 2017
31a2e90
[WIP] Add roundaboutExits param to MapboxDirections (#562)
osanchik Sep 14, 2017
d089d50
add new user agent api (#568)
Guardiola31337 Sep 19, 2017
4af1718
add missing device attribute to navigation events (#565)
Guardiola31337 Sep 19, 2017
59a9fc9
Omit null optional fields in Nav events (#566)
Guardiola31337 Sep 19, 2017
0624cc5
added missing events (#569)
Sep 20, 2017
a14b1e6
bumped nav version (#570)
Sep 20, 2017
a58b53b
fix missing device attribute for navigation events (#571)
Guardiola31337 Sep 21, 2017
f1cbd9b
Add sdkIdentifier + sdkversion (#574)
electrostat Sep 27, 2017
e1de98d
Release 2.2.5 (#578)
Guardiola31337 Sep 29, 2017
0038b42
add navigation reroute events support (#581)
Guardiola31337 Oct 5, 2017
2137263
Make location provider optional (#502)
Guardiola31337 Oct 5, 2017
14852c6
fix typo (#584)
Guardiola31337 Oct 5, 2017
14fdda3
fix location engines activation calling on connected method if the lo…
Guardiola31337 Oct 6, 2017
77b3777
NULL Checks (#590)
electrostat Oct 6, 2017
2a4e87a
location serializer added (#591)
Oct 6, 2017
176cca6
Return JSON (#592)
electrostat Oct 6, 2017
464c42f
Fixed source and destination formatting from DirectionsMatrix request…
jvretamero Oct 6, 2017
4d28502
placed things back to their original location to not break API (#593)
Oct 6, 2017
5a61882
Make lost dependency provided (#595)
Guardiola31337 Oct 6, 2017
11e9aed
Reverted lost to 1.1 (#596)
Oct 7, 2017
53c5e35
Release 2.2.6 (#597)
Oct 7, 2017
0715db7
Null check for batteryStatus (#602)
electrostat Oct 13, 2017
d3bb6dc
Public flushEventsQueue (#601)
electrostat Oct 13, 2017
b094745
Switch from system volume to media volume (#600)
electrostat Oct 13, 2017
537152d
Fixes https://github.com/mapbox/mapbox-java/issues/451
SourceNode Oct 14, 2017
2dfe04b
add telem current location engine being used track support (#605)
Guardiola31337 Oct 19, 2017
dc5b3f7
Merge branch 'master' into master
SourceNode Oct 22, 2017
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 19 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,25 @@

Mapbox welcomes participation and contributions from everyone.

### v2.2.6

- Fix for Matrix source and destination returning null rather than the true value [#588](https://github.com/mapbox/mapbox-java/pull/588)
- Add optional locationEngine dependencies [#502](https://github.com/mapbox/mapbox-java/pull/502)

### v2.2.5

- set sdkIdentifier and sdkVersion when pushing turnstile event [#574](https://github.com/mapbox/mapbox-java/pull/574)

### v2.2.4

- Bumped Navigation Events `EVENT_VERSION` variable to version 3 [#570](https://github.com/mapbox/mapbox-java/pull/570)
- Adds missing event parameters to the NavigationEvent methods [#569](https://github.com/mapbox/mapbox-java/pull/569)
- Adds newUserAgent to telemetry [#568](https://github.com/mapbox/mapbox-java/pull/568)
- Fixes arrival timestamp formatting [#567](https://github.com/mapbox/mapbox-java/pull/567)
- Omit null optional fields in Nav events [#566](https://github.com/mapbox/mapbox-java/pull/566)
- Adds missing device attribute to Navigation events [#565](https://github.com/mapbox/mapbox-java/pull/565)
- Adds roundaboutExits param to MapboxDirections [#562](https://github.com/mapbox/mapbox-java/pull/562)

### v2.2.3

- Introduce setDebugLoggingEnabled API [#549](https://github.com/mapbox/mapbox-java/pull/549)
Expand Down
4 changes: 4 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -112,6 +112,10 @@ directions-fixtures:
curl "https://api.mapbox.com/directions/v5/mapbox/driving-traffic/-122.416667,37.783333;-121.900000,37.333333?geometries=polyline&steps=true&access_token=$(MAPBOX_ACCESS_TOKEN)" \
-o mapbox/libjava-services/src/test/fixtures/directions_v5_traffic.json

# Directions: allow roundabout exits
curl "https://api.mapbox.com/directions/v5/mapbox/driving-traffic/-77.04014240930304,38.91313201360546;-77.04573453985853,38.90725177816208.json?steps=true&overview=full&geometries=polyline&roundabout_exits=true&access_token=$(MAPBOX_ACCESS_TOKEN)" \
-o mapbox/libjava-services/src/test/fixtures/directions_v5_roundabout_exits.json

mapmatching-fixtures:
curl "https://api.mapbox.com/matching/v5/mapbox/driving/$(MAP_MATCHING_COORDINATES)?geometries=polyline&language=sv&steps=true&access_token=$(MAPBOX_ACCESS_TOKEN)" \
-o mapbox/libjava-services/src/test/fixtures/mapmatching_v5_polyline.json
Expand Down
5 changes: 5 additions & 0 deletions mapbox/app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,11 @@ dependencies {
// Google Play Services
compile rootProject.ext.dep.gmsLocation

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

// Picasso (Static Image)
compile rootProject.ext.dep.picasso

Expand Down
27 changes: 16 additions & 11 deletions mapbox/app/gradle-config.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -3,20 +3,25 @@
//

task accessToken {
def tokenFile = new File("${projectDir}/src/main/res/values/developer-config.xml")
if (!tokenFile.exists()) {
String tokenFileContents = "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n" +
"<resources>\n" +
" <string name=\"mapbox_access_token\">" + "$System.env.MAPBOX_ACCESS_TOKEN" + "</string>\n" +
"</resources>"
def tokenFile = new File("${projectDir}/src/main/res/values/developer-config.xml")
if (!tokenFile.exists()) {
String mapboxAccessToken = "$System.env.MAPBOX_ACCESS_TOKEN"

if (tokenFileContents == null) {
throw new InvalidUserDataException("You must set the MAPBOX_ACCESS_TOKEN environment variable.")
if (mapboxAccessToken == "null") {
logger.error("warning: MAPBOX_ACCESS_TOKEN environment variable is not set.")
logger.error("Note: It is recommended to edit the value in res/values/developer-config.xml file.")
mapboxAccessToken = "YOUR_MAPBOX_ACCESS_TOKEN_GOES_HERE";
}

String tokenFileContents = "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n" +
"<resources>\n" +
" <string name=\"mapbox_access_token\">" + mapboxAccessToken + "</string>\n" +
"</resources>"

tokenFile.write(tokenFileContents)
}
tokenFile.write(tokenFileContents)
}
}

gradle.projectsEvaluated {
preBuild.dependsOn('accessToken')
preBuild.dependsOn('accessToken')
}
Original file line number Diff line number Diff line change
Expand Up @@ -14,9 +14,9 @@
import android.widget.Toast;

import com.mapbox.services.android.geocoder.AndroidGeocoder;
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.LocationEngineProvider;
import com.mapbox.services.android.testapp.R;
import com.mapbox.services.android.testapp.geocoding.service.Constants;
import com.mapbox.services.android.testapp.geocoding.service.FetchAddressIntentService;
Expand Down Expand Up @@ -122,10 +122,14 @@ private void updateValuesFromBundle(Bundle savedInstanceState) {
}

/**
* Builds Android location engine
* Builds location engine
*/
private synchronized void buildAndroidLocationEngine() {
locationEngine = AndroidLocationEngine.getLocationEngine(this);
private void buildAndroidLocationEngine() {
LocationEngineProvider locationEngineProvider = new LocationEngineProvider(this);
locationEngine = locationEngineProvider.obtainLocationEngineBy(LocationEngine.Type.GOOGLE_PLAY_SERVICES);
if (locationEngine == null) {
locationEngine = locationEngineProvider.obtainBestLocationEngineAvailable();
}
locationEngine.addLocationEngineListener(this);
locationEngine.activate();
}
Expand Down Expand Up @@ -264,8 +268,8 @@ private static class AddressResultReceiver extends ResultReceiver {
private final WeakReference<ProgressBar> progressBarReference;
private final WeakReference<Button> fetchAddressButtonReference;

public AddressResultReceiver(Handler handler, Context context, TextView resultTextView, ProgressBar progressBar,
Button fetchAddressButton) {
AddressResultReceiver(Handler handler, Context context, TextView resultTextView, ProgressBar progressBar,
Button fetchAddressButton) {
super(handler);
this.contextReference = new WeakReference<>(context);
this.textViewReference = new WeakReference<>(resultTextView);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,9 +13,9 @@
import com.mapbox.mapboxsdk.maps.MapView;
import com.mapbox.mapboxsdk.maps.MapboxMap;
import com.mapbox.mapboxsdk.maps.OnMapReadyCallback;
import com.mapbox.services.android.location.LostLocationEngine;
import com.mapbox.services.android.telemetry.location.LocationEngine;
import com.mapbox.services.android.telemetry.location.LocationEngineListener;
import com.mapbox.services.android.telemetry.location.LocationEngineProvider;
import com.mapbox.services.android.testapp.R;
import com.mapbox.services.android.testapp.Utils;
import com.mapbox.services.android.ui.geocoder.GeocoderAutoCompleteView;
Expand Down Expand Up @@ -63,7 +63,11 @@ public void onMapReady(MapboxMap mapboxMapReady) {
});

// Set up location services to improve accuracy
locationEngine = LostLocationEngine.getLocationEngine(this);
LocationEngineProvider locationEngineProvider = new LocationEngineProvider(this);
locationEngine = locationEngineProvider.obtainLocationEngineBy(LocationEngine.Type.LOST);
if (locationEngine == null) {
locationEngine = locationEngineProvider.obtainLocationEngineBy(LocationEngine.Type.ANDROID);
}
locationEngine.addLocationEngineListener(this);
locationEngine.activate();
}
Expand All @@ -77,7 +81,7 @@ public void onConnected() {
@Override
public void onLocationChanged(Location location) {
if (location != null) {
Log.d(LOG_TAG, "New LOST location: " + location.toString());
Log.d(LOG_TAG, "New location: " + location.toString());
autocomplete.setProximity(Position.fromCoordinates(
location.getLongitude(), location.getLatitude()));
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,15 +10,19 @@
import android.widget.Spinner;
import android.widget.TextView;

import com.mapbox.services.android.location.LostLocationEngine;
import com.mapbox.services.android.location.MockLocationEngine;
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.telemetry.location.LocationEngineProvider;
import com.mapbox.services.android.testapp.R;
import com.mapbox.services.commons.models.Position;

import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import timber.log.Timber;

public class LocationEngineActivity extends AppCompatActivity
Expand All @@ -28,13 +32,17 @@ public class LocationEngineActivity extends AppCompatActivity

private TextView textLocation;
private LocationEngine locationEngine;
private String[] locationEngines;
private LocationEngineProvider locationEngineProvider;
private Map<String, LocationEngine.Type> locationEngineDictionary;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_location_engine);
textLocation = (TextView) findViewById(R.id.text_location);
setupSpinner();
setupLocationEngines();
}

@Override
Expand All @@ -55,38 +63,22 @@ protected void onPause() {
}
}

private void setupSpinner() {
Spinner spinner = (Spinner) findViewById(R.id.spinner_engine);

ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this,
R.array.location_engines, android.R.layout.simple_spinner_item);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner.setAdapter(adapter);

spinner.setOnItemSelectedListener(this);
}

@Override
public void onItemSelected(AdapterView<?> parent, View view, int pos, long id) {
String engineName = (String) parent.getItemAtPosition(pos);
Log.d(LOG_TAG, "Engine selected: " + engineName);
setNoEngine();

String[] locationEngines = getResources().getStringArray(R.array.location_engines);
if (engineName.equals(locationEngines[1])) {
// Mock
locationEngine = new MockLocationEngine();
((MockLocationEngine) locationEngine).setLastLocation(Position.fromLngLat(-87.62877, 41.87827));
((MockLocationEngine) locationEngine).moveToLocation(Position.fromLngLat(-87.6633, 41.8850));
} else if (engineName.equals(locationEngines[2])) {
// Android
locationEngine = AndroidLocationEngine.getLocationEngine(this);
} else if (engineName.equals(locationEngines[3])) {
// Lost
locationEngine = LostLocationEngine.getLocationEngine(this);
} else if (engineName.equals(locationEngines[4])) {
// Google Play Services
locationEngine = GoogleLocationEngine.getLocationEngine(this);
} else if (!engineName.equals(locationEngines[0])) {
locationEngine = locationEngineProvider.obtainLocationEngineBy(locationEngineDictionary.get(engineName));
if (locationEngine == null) {
locationEngine = locationEngineProvider.obtainLocationEngineBy(LocationEngine.Type.ANDROID);
}
}

if (!engineName.equals(locationEngines[0]) && locationEngine != null) {
Expand All @@ -104,17 +96,6 @@ public void onNothingSelected(AdapterView<?> adapterView) {
setNoEngine();
}

private void setNoEngine() {
if (locationEngine != null) {
locationEngine.removeLocationUpdates();
locationEngine.removeLocationEngineListener(this);
locationEngine.deactivate();
}

textLocation.setText("No location updates, yet.");
locationEngine = null;
}

@Override
public void onConnected() {
Log.d(LOG_TAG, "Connected to engine, we can now request updates.");
Expand All @@ -128,4 +109,48 @@ public void onLocationChanged(Location location) {
textLocation.setText(location.toString());
}
}

private void setupSpinner() {
Spinner spinner = (Spinner) findViewById(R.id.spinner_engine);

ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this,
R.array.location_engines, android.R.layout.simple_spinner_item);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner.setAdapter(adapter);

spinner.setOnItemSelectedListener(this);
}

private void setupLocationEngines() {
locationEngines = getResources().getStringArray(R.array.location_engines);
locationEngineProvider = new LocationEngineProvider(this);
locationEngineDictionary = obtainLocationEngineDictionary(locationEngines);
}

private Map<String, LocationEngine.Type> obtainLocationEngineDictionary(String[] locationEngines) {
List<LocationEngine.Type> values = Arrays.asList(LocationEngine.Type.values());
int mockLocationEngineAlreadyIncluded = 1;
int size = values.size() - mockLocationEngineAlreadyIncluded;
Map<String, LocationEngine.Type> dictionary = new HashMap<>(size);
for (int i = 2; i < locationEngines.length; i++) {
for (LocationEngine.Type type : values) {
if (locationEngines[i].equalsIgnoreCase(type.name())) {
dictionary.put(locationEngines[i], type);
break;
}
}
}
return dictionary;
}

private void setNoEngine() {
if (locationEngine != null) {
locationEngine.removeLocationUpdates();
locationEngine.removeLocationEngineListener(this);
locationEngine.deactivate();
}

textLocation.setText("No location updates, yet.");
locationEngine = null;
}
}
4 changes: 2 additions & 2 deletions mapbox/app/src/main/res/values/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
<string name="app_name">Mapbox Android Services</string>
<string name="action_settings">Settings</string>

<string name="default_style">mapbox://styles/mapbox/streets-v9</string>
<string name="default_style" translatable="false">mapbox://styles/mapbox/streets-v9</string>

<string name="category">category</string>
<string name="category_directions">Directions</string>
Expand Down Expand Up @@ -90,7 +90,7 @@
<item>Mock</item>
<item>Android</item>
<item>Lost</item>
<item>Google Play Services</item>
<item>Google_Play_Services</item>
</string-array>

</resources>
14 changes: 7 additions & 7 deletions mapbox/dependencies.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -6,18 +6,18 @@ ext {
minSdkVersion = 15
targetSdkVersion = 25
compileSdkVersion = 25
buildToolsVersion = "25.0.2"
buildToolsVersion = "25.0.3"

dep = [
// Support
supportAppcompat : 'com.android.support:appcompat-v7:25.1.0',
supportCompat : 'com.android.support:support-compat:25.1.0',
supportDesign : 'com.android.support:design:25.1.0',
supportRecyclerview : 'com.android.support:recyclerview-v7:25.1.0',
supportCardView : 'com.android.support:cardview-v7:25.1.0',
supportAppcompat : 'com.android.support:appcompat-v7:25.3.1',
supportCompat : 'com.android.support:support-compat:25.3.1',
supportDesign : 'com.android.support:design:25.3.1',
supportRecyclerview : 'com.android.support:recyclerview-v7:25.3.1',
supportCardView : 'com.android.support:cardview-v7:25.3.1',

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

// gson
gson : 'com.google.code.gson:gson:2.8.0',
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,8 @@ public class Constants {
@Experimental public static final String STEP_MANEUVER_TYPE_ROUNDABOUT = "roundabout";
@Experimental public static final String STEP_MANEUVER_TYPE_ROTARY = "rotary";
@Experimental public static final String STEP_MANEUVER_TYPE_ROUNDABOUT_TURN = "roundabout turn";
@Experimental public static final String STEP_MANEUVER_TYPE_EXIT_ROUNDABOUT = "exit roundabout";
@Experimental public static final String STEP_MANEUVER_TYPE_EXIT_ROTARY = "exit rotary";
@Experimental public static final String STEP_MANEUVER_TYPE_NOTIFICATION = "notification";
}

Original file line number Diff line number Diff line change
Expand Up @@ -124,6 +124,11 @@ public void requestLocationUpdates() {
}
}

@Override
public Type obtainType() {
return Type.LOST;
}

/**
* Dismiss ongoing location update to the location provider.
*/
Expand All @@ -145,5 +150,4 @@ public void onLocationChanged(Location location) {
listener.onLocationChanged(location);
}
}
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -179,6 +179,11 @@ public void removeLocationUpdates() {
}
}

@Override
public Type obtainType() {
return Type.MOCK;
}

/*
* Logic methods for getting the user positions.
*/
Expand Down
Loading