summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTobrun <tobrun@mapbox.com>2017-03-31 13:48:47 +0200
committerGitHub <noreply@github.com>2017-03-31 13:48:47 +0200
commit8e538b4d06b12a8b0649b6b98386acca5fb5eeef (patch)
tree90ec77a67b0fbfe3db18870f1488f73022d37d91
parenta46d91f7c5cbcdd9343d1a3dfba17e375a466e2a (diff)
downloadqtlocation-mapboxgl-8e538b4d06b12a8b0649b6b98386acca5fb5eeef.tar.gz
Cherry pick v5.0.2 changes (#8586)
* [android] execute resource transform callback on the right thread * [android] allow resetting of resource transform callback * update CHANGELOG for v5.0.2 * [android] - correct anchoring when Icon is updated (#8519)
-rw-r--r--platform/android/CHANGELOG.md8
-rw-r--r--platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/annotations/MarkerView.java9
-rw-r--r--platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/annotations/MarkerViewManager.java1
-rw-r--r--platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/storage/FileSource.java4
-rw-r--r--platform/android/src/file_source.cpp6
5 files changed, 23 insertions, 5 deletions
diff --git a/platform/android/CHANGELOG.md b/platform/android/CHANGELOG.md
index 5c6b8d57b0..01d7b1ab5b 100644
--- a/platform/android/CHANGELOG.md
+++ b/platform/android/CHANGELOG.md
@@ -2,6 +2,14 @@
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.0.2 - April 3, 2017
+
+5.0.2 is a patch release that contains the following changes:
+
+* Fix resource transform callback [#8582](https://github.com/mapbox/mapbox-gl-native/pull/8582)
+* Restore onTouch behaviour to 4.x version [#8585](https://github.com/mapbox/mapbox-gl-native/pull/8585)
+* Restore anchoring after updating MarkerView Icon [#8519](https://github.com/mapbox/mapbox-gl-native/pull/8519)
+
## 5.0.1 - March 22nd, 2017
5.0.1 is a patch release that addresses a shader precision issue that created a rendering problem on some devices.
diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/annotations/MarkerView.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/annotations/MarkerView.java
index 220d3322cb..30336d4ebd 100644
--- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/annotations/MarkerView.java
+++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/annotations/MarkerView.java
@@ -390,6 +390,15 @@ public class MarkerView extends Marker {
}
/**
+ * Invalidates the MarkerView resulting in remeasuring the View.
+ */
+ void invalidate() {
+ width = height = 0;
+ offsetX = offsetY = MapboxConstants.UNMEASURED;
+ markerViewManager.invalidateViewMarkersInVisibleRegion();
+ }
+
+ /**
* Get the String representation of a MarkerView.
*
* @return the String representation.
diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/annotations/MarkerViewManager.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/annotations/MarkerViewManager.java
index 315e12d280..bb51f3bfc2 100644
--- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/annotations/MarkerViewManager.java
+++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/annotations/MarkerViewManager.java
@@ -232,6 +232,7 @@ public class MarkerViewManager implements MapView.OnMapChangedListener {
View convertView = markerViewMap.get(markerView);
if (convertView != null && convertView instanceof ImageView) {
((ImageView) convertView).setImageBitmap(markerView.getIcon().getBitmap());
+ markerView.invalidate();
}
}
diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/storage/FileSource.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/storage/FileSource.java
index 8681777023..a12d8f9954 100644
--- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/storage/FileSource.java
+++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/storage/FileSource.java
@@ -123,9 +123,9 @@ public class FileSource {
* The callback will be executed on the main thread once for every requested URL.
* </p>
*
- * @param callback the callback to be invoked
+ * @param callback the callback to be invoked or null to reset
*/
- public native void setResourceTransform(@NonNull final ResourceTransformCallback callback);
+ public native void setResourceTransform(final ResourceTransformCallback callback);
private native void initialize(String accessToken, String cachePath, String apkPath);
diff --git a/platform/android/src/file_source.cpp b/platform/android/src/file_source.cpp
index 30e1ff50fe..20715bf920 100644
--- a/platform/android/src/file_source.cpp
+++ b/platform/android/src/file_source.cpp
@@ -46,10 +46,10 @@ void FileSource::setResourceTransform(jni::JNIEnv& env, jni::Object<FileSource::
// a subsequent call.
// Note: we're converting it to shared_ptr because this lambda is converted to a std::function,
// which requires copyability of its captured variables.
- callback = std::shared_ptr<jni::jobject>(transformCallback.NewGlobalRef(env).release()->Get(), GenericGlobalRefDeleter()),
- env
+ callback = std::shared_ptr<jni::jobject>(transformCallback.NewGlobalRef(env).release()->Get(), GenericGlobalRefDeleter())
](mbgl::Resource::Kind kind, std::string&& url_) {
- return FileSource::ResourceTransformCallback::onURL(const_cast<jni::JNIEnv&>(env), jni::Object<FileSource::ResourceTransformCallback>(*callback), int(kind), url_);
+ android::UniqueEnv _env = android::AttachEnv();
+ return FileSource::ResourceTransformCallback::onURL(*_env, jni::Object<FileSource::ResourceTransformCallback>(*callback), int(kind), url_);
});
} else {
// Reset the callback