Skip to content
This repository has been archived by the owner on Aug 8, 2023. It is now read-only.

Merge release-ios-v3.6.0-android-v5.1.0 to master #9170

Merged
merged 64 commits into from
Jun 2, 2017
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
64 commits
Select commit Hold shift + click to select a range
08916f2
[android] Update release script to support CircleCI builds (#8950)
zugaldia May 11, 2017
db370a0
[core] When a layer is added, reload its source's tiles
jfirebaugh May 11, 2017
ad46d67
[android] - keep observer when timeout occurs, make observer param nu…
tobrun May 11, 2017
850b008
[android] - avoid crashing when deleting already deleted region (#8920)
tobrun May 11, 2017
e681f69
[android] - update LOST to 2.3.0 (#8872)
tobrun May 12, 2017
cb73736
[android] - update proguard config, allow debug mimification, update …
tobrun May 12, 2017
0ef1293
[core, android, ios, macos, qt] v10 default styles
1ec5 Sep 9, 2016
d85471b
[ios, macos] Updated documented default style version
1ec5 Sep 9, 2016
c5ee41a
[ios, macos] Undeprecated unversioned style URL factory methods
1ec5 Apr 26, 2017
886bf25
[core, android, ios, macos] Added Traffic Day/Night to default styles
1ec5 May 9, 2017
a68788a
[android] Release android-v5.1.0-beta.2 (#8976)
tobrun May 12, 2017
5944216
[android] - MarkerView deselect events with OnMarkerViewClickListener…
tobrun May 15, 2017
627455c
[android] - publish SNAPSHOT from release 5.1.0 branch (#8995)
tobrun May 15, 2017
c7acb55
[ios, macos] edited identity interpolation mode documentation (#8657)
jmkiley May 15, 2017
30b9191
[ios, macos] Factored out tile URL template guide
1ec5 May 10, 2017
4f90d7a
[ios] Telemetry button in modal view controllers (#9027)
jmkiley May 17, 2017
eb83c72
[android] - bump tools and support lib version due to SNAPSHOT depend…
tobrun May 19, 2017
f0b0167
[core] Make destructor virtual to avoid object splicing during destru…
kkaefer May 18, 2017
b52e171
[core] add error for non-virtual destructor deletes + add virtual dtors
kkaefer May 18, 2017
f4f587f
[android] - remove marker from selected markers when removing marker…
tobrun May 19, 2017
3b109c8
Observe layout guides (#7716)
frederoni May 19, 2017
7612e23
[ios, macos] Change == to = in style function initializers
boundsj May 17, 2017
554b1cf
[ios] Add annotation view initializer with annotation and reuse id (#…
boundsj May 19, 2017
b9d3ccc
[ios] Remove annotation view from container view when annotation remo…
boundsj May 19, 2017
4d8625b
[android] - correct bearing conversion when animating the map with ju…
tobrun May 19, 2017
13dee80
[ios, macos] Updated `maximumZoomLevel` description, cherry-picked #8…
jmkiley May 1, 2017
ade7b0e
[ios] Updated podspecs and changelog for v3.5.3 (#8870)
jmkiley May 2, 2017
9ae7371
[ios] Update podspecs and changelog for iOS v3.5.4
boundsj May 9, 2017
e630e8c
[ios, macos] Updated changelogs
1ec5 May 19, 2017
a19fd81
[ios, macos] changed TRUE -> 'true' (#9059) fixes #9056
jmkiley May 19, 2017
e52249c
[ios, macos] Light property implementation in MGLStyle (#9043)
fabian-guerra May 23, 2017
71b6865
[android] - horizontally rotated in snapshot (#9083)
tobrun May 23, 2017
fe17f7e
Cherry-pick arabic text to release branch v3.6.0 (#9071)
fabian-guerra May 23, 2017
a57e9bc
[ios,macos] multipolygon coordinate (#8713)
fabian-guerra May 23, 2017
c9de6cd
[ios, macos] More robust Streets localization
1ec5 May 21, 2017
9b11bb9
[ios] Fallback to Mapbox.bundle as the framework bundle (#9074)
friedbunny May 23, 2017
d90c172
[ios] Move image resources to an asset catalog & switch to PDFs
friedbunny May 19, 2017
bf000c7
[ios, macos] Updated changelogs
1ec5 May 23, 2017
091d3d1
[ios] Update pods spec for iOS v3.6.0-beta.1
fabian-guerra May 23, 2017
8c73cb1
[macos] Enable View ‣ Traffic Night
1ec5 May 23, 2017
3c35bf1
[android] - stop location updates when toggle MyLocationView state (#…
tobrun May 24, 2017
8199315
[android] - LatLngBounds bearing default value (#9102)
tobrun May 24, 2017
e1431f9
[ios, macos] Fix MGLLight.achor to accept style functions
fabian-guerra May 24, 2017
fce7747
[ios] Fix annotation initializers for subclasses of MGLAnnotationView…
boundsj May 25, 2017
35f548a
[ios] Moved `MGLLight` in jazzy table of contents (#9111)
jmkiley May 26, 2017
c392c67
[android] - logo placement for creating a Mapview programatically (#9…
tobrun May 26, 2017
5716bd3
[android] - add binding support for Light (#9013)
tobrun May 26, 2017
82a3a7e
[android] Update Lost to final version 3.0.0 (#9112)
Guardiola31337 May 26, 2017
bc5b147
[android] - convert dp to pixels when getting meters per pixel at. (#…
tobrun May 26, 2017
40a73b3
Release Android v5.1.0-beta.3 (#9115)
tobrun May 26, 2017
fc495de
[android] - harden orientation changes (#9128)
tobrun May 30, 2017
7b85bcc
[ios] Remove filter of single metric event
boundsj May 30, 2017
608fd66
[ios] remove layout guide observers
frederoni May 25, 2017
a39116a
Migrate to GL JS–powered feedback form (#9078)
1ec5 May 30, 2017
83df8a8
[android] - javadoc update for 5.1.0 release (#9138)
tobrun May 31, 2017
b6a4f12
[android] fix missing access token variable issue (#9151)
Guardiola31337 May 31, 2017
af25477
[ios] Update pods spec for iOS v3.6.0-beta.2
fabian-guerra May 31, 2017
52eba42
[android] Cherry picking 9133 (#9145)
Guardiola31337 Jun 1, 2017
b2f277a
add null check in custom location engine activity to prevent null poi…
Guardiola31337 Jun 1, 2017
0d171db
[core] Make TransformState LatLngBounds optional
brunoabinader May 31, 2017
012e88c
[ios] Make annotation view rotation alignment configurable (#9147)
boundsj Jun 1, 2017
3b837d9
Merge branch 'release-ios-v3.6.0-android-v5.1.0' of github.com:mapbox…
fabian-guerra Jun 1, 2017
da53200
[android] - validate if gestures should execute (#9173)
tobrun Jun 2, 2017
3ab4cbc
Merge branch 'release-ios-v3.6.0-android-v5.1.0'
tobrun Jun 2, 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
42 changes: 41 additions & 1 deletion platform/android/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,51 @@
Mapbox welcomes participation and contributions from everyone. If you'd like to do so please see the [`Contributing Guide`](https://github.com/mapbox/mapbox-gl-native/blob/master/CONTRIBUTING.md) first to get started.

## 5.1.0 - TBA
* Fix tracking mode + camera race condition [#9133](https://github.com/mapbox/mapbox-gl-native/pull/9133)
* Harden orientation changes [#9128](https://github.com/mapbox/mapbox-gl-native/pull/9128)

## 5.1.0-beta.3 - May 26, 2017

* Add binding support for Light [#9013](https://github.com/mapbox/mapbox-gl-native/pull/9013)
* Update attribution with new Mapbox wordmark [#8774](https://github.com/mapbox/mapbox-gl-native/pull/8774)
* LatLngBounds bearing default value [#9102](https://github.com/mapbox/mapbox-gl-native/pull/9102)
* Stop location updates when toggling MyLocationView [#9099](https://github.com/mapbox/mapbox-gl-native/pull/9099)
* Horizontally rotated in snapshot [#9083](https://github.com/mapbox/mapbox-gl-native/pull/9083)
* Disable letter spacing for Arabic text [#9071](https://github.com/mapbox/mapbox-gl-native/pull/9071)
* Correct bearing conversion when animating the map [#9050](https://github.com/mapbox/mapbox-gl-native/pull/9050)
* Don't leak selected markers when removing [#9047](https://github.com/mapbox/mapbox-gl-native/pull/9047)
* Bump tools and support lib version [#9046](https://github.com/mapbox/mapbox-gl-native/pull/9046)
* MarkerView deselect events with OnMarkerViewClickListener [#9047](https://github.com/mapbox/mapbox-gl-native/pull/9047)
* LOST update to v3.0.0 [#9112](https://github.com/mapbox/mapbox-gl-native/pull/9112)
* Convert dp to pixels for meters per pixel at latitude [#9048](https://github.com/mapbox/mapbox-gl-native/pull/9048)

## 5.1.0-beta.2 - May 12, 2017

5.1.0-beta.2 builds further on 5.1.0-beta.1 and adds:

* When a layer is added, reload its source's tiles [#8963](https://github.com/mapbox/mapbox-gl-native/pull/8963)
* Update release script to support CircleCI builds [#8950](https://github.com/mapbox/mapbox-gl-native/pull/8950)
* URL getter on Sources [#8959](https://github.com/mapbox/mapbox-gl-native/pull/8959)
* Build SNAPSHOT from release branch CI configuration [#8958](https://github.com/mapbox/mapbox-gl-native/pull/8958)
* Fix UI test filter in Makefile [#8960](https://github.com/mapbox/mapbox-gl-native/pull/8960)
* Bump & fixup dependencies [#8921](https://github.com/mapbox/mapbox-gl-native/pull/8921)
* Ignore already deleted region [#8920](https://github.com/mapbox/mapbox-gl-native/pull/8920)
* Keep offline observer when timeout occurs [#8919](https://github.com/mapbox/mapbox-gl-native/pull/8919)
* Show error message when no browser installed [#8920](https://github.com/mapbox/mapbox-gl-native/pull/8920)
* Reset observers of removed Sources and Layers [#8900](https://github.com/mapbox/mapbox-gl-native/pull/8900)
* Only build custom layer .so for debug builds [#8885](https://github.com/mapbox/mapbox-gl-native/pull/8885)
* Update localizations [#8883](https://github.com/mapbox/mapbox-gl-native/pull/8883)
* Reset observers of removed Sources and Layers [#8862](https://github.com/mapbox/mapbox-gl-native/pull/8862)
* Remove force style cascade [#8866](https://github.com/mapbox/mapbox-gl-native/pull/8866)
* Update proguard config [#8944](https://github.com/mapbox/mapbox-gl-native/pull/8944)
* Update LOST to 2.3.0-SNAPSHOT [#8872](https://github.com/mapbox/mapbox-gl-native/pull/8872)
* Update logo [#8774](https://github.com/mapbox/mapbox-gl-native/pull/8774)
* Camera change listener v2.0 [#8644](https://github.com/mapbox/mapbox-gl-native/pull/8644)
* Allow filesource url transform reset [#8957](https://github.com/mapbox/mapbox-gl-native/pull/8957)

## 5.1.0-beta.1 - May 2, 2017

5.1.0 builds further on 5.0.2 and adds:
5.1.0-beta.1 builds further on 5.0.2 and adds:

* Support for FillExtrusionLayer [#8431](https://github.com/mapbox/mapbox-gl-native/pull/8431)
* Limit Viewport [#8622](https://github.com/mapbox/mapbox-gl-native/pull/8622)
Expand Down
4 changes: 3 additions & 1 deletion platform/android/MapboxGLAndroidSDK/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -95,6 +95,9 @@ android {
}
}
}

// proguard config for .aar
consumerProguardFiles 'proguard-rules.pro'
}

// avoid naming conflicts, force usage of prefix
Expand Down Expand Up @@ -126,7 +129,6 @@ android {

release {
// aar proguard configuration
consumerProguardFiles 'proguard-rules.pro'
jniDebuggable false
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ task checkstyle(type: Checkstyle) {
exclude '**/style/layers/Property.java'
exclude '**/style/layers/PropertyFactory.java'
exclude '**/style/layers/*Layer.java'
exclude '**/style/light/Light.java'
classpath = files()
ignoreFailures = false
}
89 changes: 4 additions & 85 deletions platform/android/MapboxGLAndroidSDK/proguard-rules.pro
Original file line number Diff line number Diff line change
Expand Up @@ -2,89 +2,8 @@
# in ../sdk/tools/proguard/proguard-android.txt,
# contents of this file will be appended into proguard-android.txt
-keepattributes Signature, *Annotation*, EnclosingMethod

# Square okio, ignoring warnings,
# see https://github.com/square/okio/issues/60
-dontwarn okhttp3.**
-dontwarn okio.**

# Gesture package
-keep class almeros.android.multitouch.gesturedetectors.** { *; }

# Package annotations
-keep class com.mapbox.mapboxsdk.annotations.** { *; }

# Package camera
-keep class com.mapbox.mapboxsdk.camera.** { *; }

# Package geometry
-keep class com.mapbox.mapboxsdk.geometry.** { *; }

# Package http
-keep class com.mapbox.mapboxsdk.http.** { *; }

# Package maps
-keep class com.mapbox.mapboxsdk.maps.** { *; }

# Package net
-keep class com.mapbox.mapboxsdk.net.** { *; }

# Package offline
-keep class com.mapbox.mapboxsdk.offline.** { *; }

# Package storage
-keep class com.mapbox.mapboxsdk.storage.** { *; }

# Package style
-keep class com.mapbox.mapboxsdk.style.layers.** { *; }
-keep class com.mapbox.mapboxsdk.style.sources.** { *; }
-keep class com.mapbox.mapboxsdk.style.functions.** { *; }

# Package telemetry
-keep class com.mapbox.mapboxsdk.telemetry.** { *; }

#
# Mapbox-java Proguard rules
# We include these rules since libjava is a Jar file not AAR
#

# Retrofit 2
# Platform calls Class.forName on types which do not exist on Android to determine platform.
-dontnote retrofit2.Platform
# Platform used when running on RoboVM on iOS. Will not be used at runtime.
-dontnote retrofit2.Platform$IOS$MainThreadExecutor
# Platform used when running on Java 8 VMs. Will not be used at runtime.
-dontwarn retrofit2.Platform$Java8
# Retain generic type information for use by reflection by converters and adapters.
-keepattributes Signature
# Retain declared checked exceptions for use by a Proxy instance.
-keepattributes Exceptions

# For using GSON @Expose annotation
-keepattributes *Annotation*
# Gson specific classes
-dontwarn sun.misc.**

# Prevent proguard from stripping interface information from TypeAdapterFactory,
# JsonSerializer, JsonDeserializer instances (so they can be used in @JsonAdapter)
-keep class * implements com.google.gson.TypeAdapterFactory
-keep class * implements com.google.gson.JsonSerializer
-keep class * implements com.google.gson.JsonDeserializer

# MAS Data Models
-keep class com.mapbox.services.commons.geojson.** { *; }
-keep class com.mapbox.services.mapmatching.v4.models.** { *; }
-keep class com.mapbox.services.distance.v1.models.** { *; }
-keep class com.mapbox.services.directions.v4.models.** { *; }
-keep class com.mapbox.services.directions.v5.models.** { *; }
-keep class com.mapbox.services.geocoding.v5.models.** { *; }

-dontwarn javax.annotation.**

-keepclassmembers class rx.internal.util.unsafe.** {
long producerIndex;
long consumerIndex;
}

-keep class com.google.** { *; }
-dontwarn com.google.**
-keep class com.mapbox.mapboxsdk.** { *; }
-keep interface com.mapbox.mapboxsdk.** { *; }
-keep class com.mapbox.services.android.telemetry.** { *; }
-keep class com.mapbox.services.commons.** { *;}
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package com.mapbox.mapboxsdk;

import android.app.Application;
import android.content.Context;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
Expand All @@ -15,6 +16,14 @@
import com.mapbox.services.android.telemetry.location.LocationEngine;
import com.mapbox.services.android.telemetry.location.LocationEnginePriority;

/**
* The entry point of the Mapbox Android SDK.
* <p>
* Obtain a reference by calling {@link #getInstance(Context, String)}. Usually this class is configured in
* {@link Application#onCreate()} and is responsible for the active access token, application context, and
* connectivity state.
* </p>
*/
public final class Mapbox {

private static Mapbox INSTANCE;
Expand All @@ -25,7 +34,7 @@ public final class Mapbox {
/**
* Get an instance of Mapbox.
* <p>
* This class manages the active access token, application context and connectivity state.
* This class manages the active access token, application context, and connectivity state.
* </p>
*
* @param context Android context which holds or is an application context
Expand All @@ -52,9 +61,9 @@ public static synchronized Mapbox getInstance(@NonNull Context context, @NonNull
}

/**
* Access Token for this application.
* Access token for this application.
*
* @return Mapbox Access Token
* @return Mapbox access token
*/
public static String getAccessToken() {
validateMapbox();
Expand All @@ -72,7 +81,7 @@ private static void validateMapbox() throws MapboxConfigurationException {
}

/**
* Runtime validation of Access Token.
* Runtime validation of access token.
*
* @throws MapboxConfigurationException exception thrown when not using a valid accessToken
*/
Expand All @@ -92,22 +101,22 @@ public static Context getApplicationContext() {
}

/**
* Manually sets the connectivity state of the app. This is useful for apps that control their
* Manually sets the connectivity state of the app. This is useful for apps which control their
* own connectivity state and want to bypass any checks to the ConnectivityManager.
*
* @param connected flag to determine the connectivity state, true for connected, false for
* disconnected, null for ConnectivityManager to determine.
* disconnected, and null for ConnectivityManager to determine.
*/
public static synchronized void setConnected(Boolean connected) {
// Connectivity state overridden by app
INSTANCE.connected = connected;
}

/**
* Determines whether we have an Internet connection available. Please do not rely on this
* method in your apps, this method is used internally by the SDK.
* Determines whether we have an internet connection available. Please do not rely on this
* method in your apps. This method is used internally by the SDK.
*
* @return true if there is an Internet connection, false otherwise
* @return true if there is an internet connection, false otherwise
*/
public static synchronized Boolean isConnected() {
if (INSTANCE.connected != null) {
Expand All @@ -119,4 +128,4 @@ public static synchronized Boolean isConnected() {
NetworkInfo activeNetwork = cm.getActiveNetworkInfo();
return (activeNetwork != null && activeNetwork.isConnected());
}
}
}
Original file line number Diff line number Diff line change
@@ -1,15 +1,18 @@
package com.mapbox.mapboxsdk.annotations;

import android.graphics.Bitmap;
import android.util.DisplayMetrics;

import com.mapbox.mapboxsdk.maps.MapView;
import java.nio.ByteBuffer;

/**
* Icon is the visual representation of a {@link Marker} on a {@link MapView}.
* Icon is the visual representation of a Marker on a MapView.
*
* @see Marker
* @see IconFactory
*/
public class Icon {

private Bitmap mBitmap;
private String mId;

Expand All @@ -19,29 +22,67 @@ public class Icon {
}

/**
* {@link String} identifier for this {@link Icon}.
* String identifier for this icon.
*
* @return {@link String} identifier for this {@link Icon}.
* @return String identifier for this icon.
*/
public String getId() {
return mId;
}

/**
* Get the {@link Bitmap} being used for this {@link Icon}.
* Get the bitmap being used for this icon.
*
* @return The {@link Bitmap} being used for the {@link Icon}.
* @return The bitmap being used for the icon.
*/
public Bitmap getBitmap() {
if (mBitmap.getConfig() != Bitmap.Config.ARGB_8888) {
mBitmap = mBitmap.copy(Bitmap.Config.ARGB_8888, false);
}
return mBitmap;
}

/**
* Compares this {@link Icon} object with another {@link Icon} and determines if they match.
* Get the icon bitmap scale.
* <p>
* Requires the bitmap to be set before calling this method.
* </p>
*
* @return the scale of the bitmap
*/
public float getScale() {
if (mBitmap == null) {
throw new IllegalStateException("Required to set a Icon before calling getScale");
}
float density = mBitmap.getDensity();
if (density == Bitmap.DENSITY_NONE) {
density = DisplayMetrics.DENSITY_DEFAULT;
}
return density / DisplayMetrics.DENSITY_DEFAULT;
}

/**
* Get the icon bitmap bytes.
* <p>
* Requires the bitmap to be set before calling this method.
* </p>
*
* @param object Another {@link Icon} to compare with this object.
* @return True if the {@link Icon} being passed in matches this {@link Icon} object. Else,
* false.
* @return the bytes of the bitmap
*/
public byte[] toBytes() {
if (mBitmap == null) {
throw new IllegalStateException("Required to set a Icon before calling toBytes");
}
ByteBuffer buffer = ByteBuffer.allocate(mBitmap.getRowBytes() * mBitmap.getHeight());
mBitmap.copyPixelsToBuffer(buffer);
return buffer.array();
}

/**
* Compares this icon object with another icon and determines if they match.
*
* @param object Another iconi to compare with this object.
* @return True if the icon being passed in matches this icon object. Else, false.
*/
@Override
public boolean equals(Object object) {
Expand All @@ -53,11 +94,7 @@ public boolean equals(Object object) {
}

Icon icon = (Icon) object;

if (!mBitmap.equals(icon.mBitmap)) {
return false;
}
return mId.equals(icon.mId);
return mBitmap.equals(icon.mBitmap) && mId.equals(icon.mId);
}

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
import android.support.annotation.FloatRange;
import android.support.annotation.Nullable;

import com.mapbox.mapboxsdk.Mapbox;
import com.mapbox.mapboxsdk.constants.MapboxConstants;
import com.mapbox.mapboxsdk.geometry.LatLng;
import com.mapbox.mapboxsdk.maps.MapboxMap;
Expand Down Expand Up @@ -361,6 +362,9 @@ void setSelected(boolean selected) {
*/
@Override
public Icon getIcon() {
if (markerViewIcon == null) {
setIcon(IconFactory.getInstance(Mapbox.getApplicationContext()).defaultMarkerView());
}
return markerViewIcon;
}

Expand Down
Loading