summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authortobrun <tobrun.van.nuland@gmail.com>2019-01-24 20:28:06 +0100
committertobrun <tobrun.van.nuland@gmail.com>2019-01-24 20:28:06 +0100
commita7972d29b5833f17f7ae1cbd798518c8170caf0f (patch)
tree95f2b99b048179b542df18d587eb9c85e96afe86
parent78729b334d53348b31b95b85016ffa54973a5eb4 (diff)
downloadqtlocation-mapboxgl-upstream/tvn-drawable-style.tar.gz
[android] - add drawable overload to addImage, bring back tests for imageupstream/tvn-drawable-style
-rw-r--r--platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/Style.java1
-rw-r--r--platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/utils/BitmapUtils.java22
-rw-r--r--platform/android/MapboxGLAndroidSDK/src/test/java/com/mapbox/mapboxsdk/maps/StyleBuilderTest.kt18
-rw-r--r--platform/android/MapboxGLAndroidSDK/src/test/java/com/mapbox/mapboxsdk/maps/StyleTest.kt27
4 files changed, 65 insertions, 3 deletions
diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/Style.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/Style.java
index 0390ee82ec..567f0fc768 100644
--- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/Style.java
+++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/Style.java
@@ -9,7 +9,6 @@ import android.support.annotation.Nullable;
import android.support.annotation.StringDef;
import android.util.DisplayMetrics;
-import com.mapbox.geojson.Polygon;
import com.mapbox.mapboxsdk.constants.MapboxConstants;
import com.mapbox.mapboxsdk.style.layers.Layer;
import com.mapbox.mapboxsdk.style.layers.TransitionOptions;
diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/utils/BitmapUtils.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/utils/BitmapUtils.java
index 5584a6eb58..f14e49cb6a 100644
--- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/utils/BitmapUtils.java
+++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/utils/BitmapUtils.java
@@ -8,9 +8,12 @@ import android.graphics.drawable.BitmapDrawable;
import android.graphics.drawable.Drawable;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
+import android.support.annotation.VisibleForTesting;
import android.view.View;
import java.io.ByteArrayOutputStream;
+import java.nio.ByteBuffer;
+import java.util.Arrays;
/**
* Utility class for creating bitmaps
@@ -121,4 +124,23 @@ public class BitmapUtils {
return new BitmapDrawable(context.getResources(), compass);
}
+
+ /**
+ * Validates if the bytes of a bitmap matches another
+ *
+ * @param bitmap the bitmap to be compared against
+ * @param other the bitmap to compare with
+ * @return true if equal
+ */
+ @VisibleForTesting
+ public static boolean equals(Bitmap bitmap, Bitmap other) {
+ ByteBuffer buffer = ByteBuffer.allocate(bitmap.getHeight() * bitmap.getRowBytes());
+ bitmap.copyPixelsToBuffer(buffer);
+
+ ByteBuffer bufferOther = ByteBuffer.allocate(other.getHeight() * other.getRowBytes());
+ other.copyPixelsToBuffer(bufferOther);
+
+ return Arrays.equals(buffer.array(), bufferOther.array());
+ }
+
}
diff --git a/platform/android/MapboxGLAndroidSDK/src/test/java/com/mapbox/mapboxsdk/maps/StyleBuilderTest.kt b/platform/android/MapboxGLAndroidSDK/src/test/java/com/mapbox/mapboxsdk/maps/StyleBuilderTest.kt
index cb42b0b33d..2dd6b55e28 100644
--- a/platform/android/MapboxGLAndroidSDK/src/test/java/com/mapbox/mapboxsdk/maps/StyleBuilderTest.kt
+++ b/platform/android/MapboxGLAndroidSDK/src/test/java/com/mapbox/mapboxsdk/maps/StyleBuilderTest.kt
@@ -1,11 +1,14 @@
package com.mapbox.mapboxsdk.maps
import android.graphics.Bitmap
+import android.graphics.drawable.ShapeDrawable
import com.mapbox.mapboxsdk.style.layers.SymbolLayer
import com.mapbox.mapboxsdk.style.layers.TransitionOptions
import com.mapbox.mapboxsdk.style.sources.GeoJsonSource
+import com.mapbox.mapboxsdk.utils.BitmapUtils
import io.mockk.mockk
import org.junit.Assert.assertEquals
+import org.junit.Assert.assertTrue
import org.junit.Test
import org.junit.runner.RunWith
import org.robolectric.RobolectricTestRunner
@@ -96,6 +99,21 @@ class StyleBuilderTest {
}
@Test
+ fun testWithImageDrawable() {
+ val drawable = ShapeDrawable()
+ drawable.intrinsicWidth = 1
+ drawable.intrinsicHeight = 1
+ val builder = Style.Builder()
+ builder.withImage("id", drawable, true)
+ assertTrue(BitmapUtils.equals(
+ BitmapUtils.getBitmapFromDrawable(drawable)!!,
+ builder.images[0].bitmap)
+ )
+ assertEquals("id", builder.images[0].id)
+ assertEquals(true, builder.images[0].sdf)
+ }
+
+ @Test
fun testWithTransitionOptions() {
val transitionOptions = TransitionOptions(100, 200)
val builder = Style.Builder()
diff --git a/platform/android/MapboxGLAndroidSDK/src/test/java/com/mapbox/mapboxsdk/maps/StyleTest.kt b/platform/android/MapboxGLAndroidSDK/src/test/java/com/mapbox/mapboxsdk/maps/StyleTest.kt
index 83769914ef..58aac9cc78 100644
--- a/platform/android/MapboxGLAndroidSDK/src/test/java/com/mapbox/mapboxsdk/maps/StyleTest.kt
+++ b/platform/android/MapboxGLAndroidSDK/src/test/java/com/mapbox/mapboxsdk/maps/StyleTest.kt
@@ -1,6 +1,7 @@
package com.mapbox.mapboxsdk.maps
import android.graphics.Bitmap
+import android.graphics.drawable.ShapeDrawable
import com.mapbox.mapboxsdk.constants.MapboxConstants
import com.mapbox.mapboxsdk.style.layers.SymbolLayer
import com.mapbox.mapboxsdk.style.layers.TransitionOptions
@@ -14,7 +15,6 @@ import org.junit.Before
import org.junit.Test
import org.junit.runner.RunWith
import org.robolectric.RobolectricTestRunner
-import java.lang.IllegalStateException
@RunWith(RobolectricTestRunner::class)
class StyleTest {
@@ -277,4 +277,27 @@ class StyleTest {
style!!.addLayer(mockk<SymbolLayer>())
}
-} \ No newline at end of file
+ @Test
+ fun testAddImage() {
+ val bitmap = Bitmap.createBitmap(1, 1, Bitmap.Config.ARGB_8888)
+ val builder = Style.Builder().fromUrl(Style.SATELLITE).withImage("id", bitmap)
+ mapboxMap.setStyle(builder)
+ verify(exactly = 1) { nativeMapView.styleUrl = Style.SATELLITE }
+ verify(exactly = 0) { nativeMapView.addImages(any()) }
+ mapboxMap.notifyStyleLoaded()
+ verify(exactly = 1) { nativeMapView.addImages(any()) }
+ }
+
+ @Test
+ fun testAddDrawable() {
+ val drawable = ShapeDrawable()
+ drawable.intrinsicHeight = 10
+ drawable.intrinsicWidth = 10
+ val builder = Style.Builder().fromUrl(Style.SATELLITE).withImage("id", drawable)
+ mapboxMap.setStyle(builder)
+ verify(exactly = 1) { nativeMapView.styleUrl = Style.SATELLITE }
+ verify(exactly = 0) { nativeMapView.addImages(any()) }
+ mapboxMap.notifyStyleLoaded()
+ verify(exactly = 1) { nativeMapView.addImages(any()) }
+ }
+}