Skip to content

Commit e77c820

Browse files
committed
Merge branch 'master' of https://github.com/NativeScript/android-runtime into vmutafov/kotlin-extension-functions
2 parents 1f4be27 + c2ee6e7 commit e77c820

34 files changed

+594
-94
lines changed

build.gradle

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -298,6 +298,10 @@ task copyFilesToProjectTemeplate {
298298
from "$TEST_APP_PATH/app/gradle-helpers/CustomExecutionLogger.gradle"
299299
into "$DIST_FRAMEWORK_PATH/app/gradle-helpers"
300300
}
301+
copy {
302+
from "$TEST_APP_PATH/app/gradle-helpers/AnalyticsCollector.gradle"
303+
into "$DIST_FRAMEWORK_PATH/app/gradle-helpers"
304+
}
301305
copy {
302306
from "$TEST_APP_PATH/app/gradle-helpers/BuildToolTask.gradle"
303307
into "$DIST_FRAMEWORK_PATH/app/gradle-helpers"

test-app/app/build.gradle

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ import static org.gradle.internal.logging.text.StyledTextOutput.Style
3333
apply plugin: "com.android.application"
3434
apply from: "gradle-helpers/BuildToolTask.gradle"
3535
apply from: "gradle-helpers/CustomExecutionLogger.gradle"
36+
apply from: "gradle-helpers/AnalyticsCollector.gradle"
3637

3738
def enableKotlin = (project.hasProperty("useKotlin") && project.useKotlin == "true")
3839

@@ -82,6 +83,14 @@ def computeBuildToolsVersion = { ->
8283
project.hasProperty("buildToolsVersion") ? buildToolsVersion : "29.0.2"
8384
}
8485

86+
def enableAnalytics = (project.hasProperty("gatherAnalyticsData") && project.gatherAnalyticsData == "true")
87+
def analyticsFilePath = "$rootDir/analytics/build-statistics.json"
88+
def analyticsCollector = project.ext.AnalyticsCollector.withOutputPath(analyticsFilePath)
89+
if (enableKotlin && enableAnalytics) {
90+
analyticsCollector.markHasUseKotlinPropertyInApp()
91+
analyticsCollector.writeAnalyticsFile()
92+
}
93+
8594
project.ext.selectedBuildType = project.hasProperty("release") ? "release" : "debug"
8695

8796
buildscript {
@@ -308,7 +317,7 @@ android {
308317
task = variant.getMergeAssets()
309318
}
310319
for (File file : task.getOutputs().getFiles()) {
311-
if (!file.getPath().contains("/incremental/")) {
320+
if (!file.getPath().contains("${File.separator}incremental${File.separator}")) {
312321
project.ext.mergedAssetsOutputPath = file.getPath()
313322
break;
314323
}
@@ -800,7 +809,14 @@ task buildMetadata(type: BuildToolTask) {
800809

801810
setOutputs outLogger
802811

803-
args "android-metadata-generator.jar"
812+
def paramz = new ArrayList<String>()
813+
paramz.add("android-metadata-generator.jar")
814+
815+
if(enableAnalytics){
816+
paramz.add("analyticsFilePath=$analyticsFilePath")
817+
}
818+
819+
args paramz.toArray()
804820
}
805821
}
806822

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
import groovy.json.JsonBuilder
2+
3+
import java.nio.charset.StandardCharsets
4+
import java.nio.file.Files
5+
import java.nio.file.Paths
6+
import java.nio.file.Path
7+
8+
class AnalyticsCollector{
9+
10+
private final String analyticsFilePath
11+
private boolean hasUseKotlinPropertyInApp = false
12+
private boolean hasKotlinRuntimeClasses = false
13+
14+
private AnalyticsCollector(String analyticsFilePath){
15+
this.analyticsFilePath = analyticsFilePath
16+
}
17+
18+
static AnalyticsCollector withOutputPath(String analyticsFilePath){
19+
return new AnalyticsCollector(analyticsFilePath)
20+
}
21+
22+
void markHasUseKotlinPropertyInApp() {
23+
hasUseKotlinPropertyInApp = true
24+
}
25+
26+
void writeAnalyticsFile() {
27+
def jsonBuilder = new JsonBuilder()
28+
def kotlinUsageData = new Object()
29+
kotlinUsageData.metaClass.hasUseKotlinPropertyInApp = hasUseKotlinPropertyInApp
30+
kotlinUsageData.metaClass.hasKotlinRuntimeClasses = hasKotlinRuntimeClasses
31+
jsonBuilder(kotlinUsage: kotlinUsageData)
32+
def prettyJson = jsonBuilder.toPrettyString()
33+
34+
35+
36+
Path statisticsFilePath = Paths.get(analyticsFilePath)
37+
38+
if (Files.notExists(statisticsFilePath)) {
39+
Files.createDirectories(statisticsFilePath.getParent())
40+
Files.createFile(statisticsFilePath)
41+
}
42+
43+
Files.write(statisticsFilePath, prettyJson.getBytes(StandardCharsets.UTF_8))
44+
45+
}
46+
}
47+
48+
ext.AnalyticsCollector = AnalyticsCollector

test-app/app/src/main/assets/app/mainpage.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,7 @@ require("./tests/testInterfaceImplementation");
5454
require("./tests/testRuntimeImplementedAPIs");
5555
require("./tests/testsInstanceOfOperator");
5656
require("./tests/testReleaseNativeCounterpart");
57+
require("./tests/testJSONObjects");
5758
require("./tests/kotlin/companions/testCompanionObjectsSupport");
5859
require("./tests/kotlin/properties/testPropertiesSupport");
5960
require("./tests/kotlin/delegation/testDelegationSupport");

0 commit comments

Comments
 (0)