diff options
author | Tobrun <tobrun.van.nuland@gmail.com> | 2018-01-10 19:39:47 +0100 |
---|---|---|
committer | Tobrun <tobrun.van.nuland@gmail.com> | 2018-01-11 08:35:21 +0100 |
commit | bca3ac657f507c77525e9e899d037805179080b2 (patch) | |
tree | e424d44d6bba5ff0e9f98a35260d0a1ae9dc1ad1 /platform/android/gradle/gradle-tests-staticblockremover.gradle | |
parent | 3d6c80c1aeda0902dc77604ee5d84f83a00f8297 (diff) | |
download | qtlocation-mapboxgl-bca3ac657f507c77525e9e899d037805179080b2.tar.gz |
[android] - move gradle files to dedicated folderupstream/tvn-gradle-cleanup
Diffstat (limited to 'platform/android/gradle/gradle-tests-staticblockremover.gradle')
-rw-r--r-- | platform/android/gradle/gradle-tests-staticblockremover.gradle | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/platform/android/gradle/gradle-tests-staticblockremover.gradle b/platform/android/gradle/gradle-tests-staticblockremover.gradle new file mode 100644 index 0000000000..523dc99dd1 --- /dev/null +++ b/platform/android/gradle/gradle-tests-staticblockremover.gradle @@ -0,0 +1,59 @@ +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 NATIVE_MAP_VIEW = "com.mapbox.mapboxsdk.maps.NativeMapView"; + 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"; + + 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(); + boolean isNativeMapView = name.equals(NATIVE_MAP_VIEW); + boolean isNativeConnectivityListener = name.equals(NATIVE_CONNECTIVITY_LISTENER); + boolean isOfflineManager = name.equals(OFFLINE_MANAGER); + boolean isOfflineRegion = name.equals(OFFLINE_REGION); + + return isNativeMapView || isNativeConnectivityListener || isOfflineManager || isOfflineRegion; + } +} + +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 { + compileDebugUnitTestSources.dependsOn(removeStatic) +}
\ No newline at end of file |