summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorŁukasz Paczos <lukasz.paczos@mapbox.com>2019-01-18 13:44:06 +0100
committerŁukasz Paczos <lukasz.paczos@mapbox.com>2019-01-18 13:44:06 +0100
commita2408943631bbce8bee1a50639cfca36d43f4806 (patch)
treea094455362e81defb6f2f9517835378006e1cea7
parentb83030aa9bb1a8d9f14ae8160698c1ee4d5a4c72 (diff)
downloadqtlocation-mapboxgl-upstream/lp-bring-back-16718b0.tar.gz
Bring back "[android] - add library loading to peer objects" and required unit test setupupstream/lp-bring-back-16718b0
-rw-r--r--platform/android/MapboxGLAndroidSDK/build.gradle1
-rw-r--r--platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/style/layers/Layer.java5
-rw-r--r--platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/style/sources/Source.java6
-rw-r--r--platform/android/gradle/gradle-tests-staticblockremover.gradle66
4 files changed, 78 insertions, 0 deletions
diff --git a/platform/android/MapboxGLAndroidSDK/build.gradle b/platform/android/MapboxGLAndroidSDK/build.gradle
index 25008de919..ae81203fc3 100644
--- a/platform/android/MapboxGLAndroidSDK/build.gradle
+++ b/platform/android/MapboxGLAndroidSDK/build.gradle
@@ -164,4 +164,5 @@ configurations {
apply from: "${rootDir}/gradle/gradle-javadoc.gradle"
apply from: "${rootDir}/gradle/gradle-publish.gradle"
apply from: "${rootDir}/gradle/gradle-checkstyle.gradle"
+apply from: "${rootDir}/gradle/gradle-tests-staticblockremover.gradle"
apply from: "${rootDir}/gradle/gradle-dependencies-graph.gradle" \ No newline at end of file
diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/style/layers/Layer.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/style/layers/Layer.java
index 75388ec32c..d290c093a7 100644
--- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/style/layers/Layer.java
+++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/style/layers/Layer.java
@@ -5,6 +5,7 @@ import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import com.google.gson.JsonElement;
+import com.mapbox.mapboxsdk.LibraryLoader;
import com.mapbox.mapboxsdk.style.expressions.Expression;
import com.mapbox.mapboxsdk.style.types.Formatted;
import com.mapbox.mapboxsdk.utils.ThreadUtils;
@@ -20,6 +21,10 @@ public abstract class Layer {
private boolean invalidated;
private boolean detached;
+ static {
+ LibraryLoader.load();
+ }
+
@Keep
protected Layer(long nativePtr) {
checkThread();
diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/style/sources/Source.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/style/sources/Source.java
index 6e8c521a78..9667a33e09 100644
--- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/style/sources/Source.java
+++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/style/sources/Source.java
@@ -3,6 +3,8 @@ package com.mapbox.mapboxsdk.style.sources;
import android.support.annotation.Keep;
import android.support.annotation.NonNull;
+
+import com.mapbox.mapboxsdk.LibraryLoader;
import com.mapbox.mapboxsdk.utils.ThreadUtils;
/**
@@ -15,6 +17,10 @@ public abstract class Source {
protected boolean detached;
+ static {
+ LibraryLoader.load();
+ }
+
/**
* Internal use
*
diff --git a/platform/android/gradle/gradle-tests-staticblockremover.gradle b/platform/android/gradle/gradle-tests-staticblockremover.gradle
new file mode 100644
index 0000000000..b29ec3b0e7
--- /dev/null
+++ b/platform/android/gradle/gradle-tests-staticblockremover.gradle
@@ -0,0 +1,66 @@
+buildscript {
+ repositories {
+ mavenCentral()
+ mavenLocal()
+ }
+
+ dependencies {
+ classpath 'com.darylteo.gradle:javassist-plugin:0.4.1'
+ }
+}
+
+import com.darylteo.gradle.javassist.tasks.TransformationTask
+import com.darylteo.gradle.javassist.transformers.ClassTransformer
+import javassist.CtClass
+import javassist.CtConstructor
+
+class StaticBlockRemover extends ClassTransformer {
+
+ private static final SOURCE = "com.mapbox.mapboxsdk.style.sources.Source";
+ private static final LAYER = "com.mapbox.mapboxsdk.style.layers.Layer";
+ private static
+ final NATIVE_CONNECTIVITY_LISTENER = "com.mapbox.mapboxsdk.net.NativeConnectivityListener";
+ private static final OFFLINE_MANAGER = "com.mapbox.mapboxsdk.offline.OfflineManager";
+ private static final OFFLINE_REGION = "com.mapbox.mapboxsdk.offline.OfflineRegion";
+ private static final List<String> excludes = new ArrayList<>();
+
+ static {
+ excludes.add(SOURCE)
+ excludes.add(LAYER)
+ excludes.add(NATIVE_CONNECTIVITY_LISTENER)
+ excludes.add(OFFLINE_MANAGER)
+ excludes.add(OFFLINE_REGION)
+ }
+
+ public void applyTransformations(CtClass clazz) throws Exception {
+ if (shouldFilter(clazz)) {
+ CtConstructor constructor = clazz.getClassInitializer()
+ if (constructor != null) {
+ clazz.removeConstructor(constructor)
+ }
+ }
+ }
+
+ public boolean shouldFilter(CtClass clazz) {
+ return hasAStaticBlock(clazz);
+ }
+
+ private boolean hasAStaticBlock(CtClass clazz) {
+ String name = clazz.getName();
+ return excludes.contains(name);
+ }
+}
+
+task removeStatic(type: TransformationTask) {
+ // TODO Find a better way to get output classes path
+ String fromToDirPath = buildDir.getAbsolutePath() + "/intermediates/classes/debug"
+ from fromToDirPath
+ transformation = new StaticBlockRemover()
+ into fromToDirPath
+}
+
+afterEvaluate {
+ compileDebugUnitTestJavaWithJavac.doLast {
+ tasks.removeStatic.execute()
+ }
+} \ No newline at end of file