diff options
author | Tobrun Van Nuland <tobrun.van.nuland@gmail.com> | 2016-06-01 08:57:23 +0200 |
---|---|---|
committer | Brad Leege <bleege@gmail.com> | 2016-06-02 17:21:20 -0500 |
commit | 3d2cc051219f6b3a2f7ef108d780522fd194897f (patch) | |
tree | aafa7408ed9b34fae7cdc317c3c0f66e21acc63e /platform | |
parent | 163ee916e5a868e6273641977bf413da2d233db8 (diff) | |
download | qtlocation-mapboxgl-3d2cc051219f6b3a2f7ef108d780522fd194897f.tar.gz |
[android] #4929 - MyLocationView now requires less drawables to configure, reuses the foreground instead.
Diffstat (limited to 'platform')
3 files changed, 25 insertions, 2 deletions
diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapboxMapOptions.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapboxMapOptions.java index 17593129e7..25f1a255e8 100644 --- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapboxMapOptions.java +++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapboxMapOptions.java @@ -463,6 +463,16 @@ public class MapboxMapOptions implements Parcelable { } /** + * + * @param myLocationForegroundDrawable + * @return This + */ + public MapboxMapOptions myLocationForegroundDrawable(Drawable myLocationForegroundDrawable) { + this.myLocationForegroundDrawable = myLocationForegroundDrawable; + return this; + } + + /** * @param myLocationBackgroundDrawable * @return This */ diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/widgets/MyLocationView.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/widgets/MyLocationView.java index 20513224f8..a730160ff1 100644 --- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/widgets/MyLocationView.java +++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/widgets/MyLocationView.java @@ -129,9 +129,22 @@ public class MyLocationView extends View { } public final void setForegroundDrawables(Drawable defaultDrawable, Drawable bearingDrawable) { - if (defaultDrawable == null || bearingDrawable == null) { + if (defaultDrawable == null) { return; } + + if (bearingDrawable == null) { + // if user only provided one resource + // use same for bearing mode + bearingDrawable = defaultDrawable; + } + + if (backgroundDrawable == null) { + // if the user didn't provide a background resource we will use the foreground resource instead, + // we need to create a new drawable to handle tinting correctly + backgroundDrawable = defaultDrawable.getConstantState().newDrawable(); + } + if (defaultDrawable.getIntrinsicWidth() != bearingDrawable.getIntrinsicWidth() || defaultDrawable.getIntrinsicHeight() != bearingDrawable.getIntrinsicHeight()) { throw new RuntimeException("The dimensions from location and bearing drawables should be match"); } diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/values/strings.xml b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/values/strings.xml index a84035aa58..c8a9b3c9b0 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/values/strings.xml +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/values/strings.xml @@ -38,7 +38,7 @@ <string name="activity_double_map">Double Map Activity</string> <string name="activity_snapshot">Snapshot Activity</string> <string name="activity_user_tracking_mode">User tracking mode</string> - <string name="activity_user_tracking_customization">User location customization</string> + <string name="activity_user_tracking_customization">User location drawable</string> <string name="activity_user_dot_color">User location tint color</string> <string name="activity_user_location_toggle">User location toggle</string> <string name="activity_custom_layer">Custom Layer</string> |