From 304c201698eb82d1c085bc8b3515552cb72d0af5 Mon Sep 17 00:00:00 2001 From: Alexander Gavrishev Date: Thu, 23 Mar 2023 19:02:34 +0200 Subject: [PATCH 1/2] Android, upgrade room and test deps, cleanup not required --- lib/android_build/app/build.gradle | 91 +++++++++---------- .../app/src/main/cpp/native-lib.cpp | 11 --- .../events/maesdktest/MaeUnitLogger.java | 3 - .../events/maesdktest/MainActivity.java | 80 ++++++++-------- .../app/src/main/res/layout/activity_main.xml | 12 +-- .../app/src/main/res/values/colors.xml | 6 -- .../app/src/main/res/values/styles.xml | 7 +- lib/android_build/build.gradle | 12 +-- lib/android_build/maesdk/build.gradle | 14 ++- .../events}/HttpClientRequestTest.java | 2 +- 10 files changed, 95 insertions(+), 143 deletions(-) delete mode 100644 lib/android_build/app/src/main/res/values/colors.xml rename lib/android_build/{app/src/test/java/com/microsoft/applications/events/maesdktest => maesdk/src/test/java/com/microsoft/applications/events}/HttpClientRequestTest.java (95%) diff --git a/lib/android_build/app/build.gradle b/lib/android_build/app/build.gradle index 9ea52e535..d41cc5f7a 100644 --- a/lib/android_build/app/build.gradle +++ b/lib/android_build/app/build.gradle @@ -1,47 +1,44 @@ -apply plugin: 'com.android.application' - -apply from: "$rootProject.projectDir/tools.gradle" - -android { - defaultConfig { - applicationId "com.microsoft.applications.events.maesdktest" - versionCode 1 - versionName "1.0" - testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" - externalNativeBuild { - cmake { - // Passes optional arguments to CMake. - arguments "-DANDROID_STL=c++_shared", "-DUSE_ROOM=1" - } - } - } - buildTypes { - release { - minifyEnabled true - proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' - } - debug { - minifyEnabled false - } - } - externalNativeBuild { - cmake { - path "src/main/cpp/CMakeLists.txt" - version "3.10.2" - } - } - compileOptions { - sourceCompatibility JavaVersion.VERSION_1_8 - targetCompatibility JavaVersion.VERSION_1_8 - } -} - -dependencies { - implementation fileTree(dir: 'libs', include: ['*.jar']) - implementation project(':maesdk') - implementation 'androidx.appcompat:appcompat:1.2.0' - implementation 'androidx.constraintlayout:constraintlayout:2.0.4' - testImplementation 'junit:junit:4.13.1' - androidTestImplementation 'androidx.test.ext:junit:1.1.2' - androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0' -} +apply plugin: 'com.android.application' + +apply from: "$rootProject.projectDir/tools.gradle" + +android { + defaultConfig { + applicationId "com.microsoft.applications.events.maesdktest" + versionCode 1 + versionName "1.0" + testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" + externalNativeBuild { + cmake { + // Passes optional arguments to CMake. + arguments "-DANDROID_STL=c++_shared", "-DUSE_ROOM=1" + } + } + } + buildTypes { + release { + minifyEnabled true + proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' + } + debug { + minifyEnabled false + } + } + externalNativeBuild { + cmake { + path "src/main/cpp/CMakeLists.txt" + version "3.10.2" + } + } + compileOptions { + sourceCompatibility JavaVersion.VERSION_1_8 + targetCompatibility JavaVersion.VERSION_1_8 + } +} + +dependencies { + implementation fileTree(dir: 'libs', include: ['*.jar']) + implementation project(':maesdk') + androidTestImplementation 'androidx.test.ext:junit:1.1.5' + androidTestImplementation 'androidx.test.espresso:espresso-core:3.5.1' +} diff --git a/lib/android_build/app/src/main/cpp/native-lib.cpp b/lib/android_build/app/src/main/cpp/native-lib.cpp index c261a8712..1cffaa805 100644 --- a/lib/android_build/app/src/main/cpp/native-lib.cpp +++ b/lib/android_build/app/src/main/cpp/native-lib.cpp @@ -124,17 +124,6 @@ int RunTests::run_all_tests(JNIEnv* env, jobject java_logger) return RUN_ALL_TESTS(); } -extern "C" JNIEXPORT jstring JNICALL -Java_com_microsoft_applications_events_maesdktest_MainActivity_stringFromJNI( - JNIEnv* env, - jobject /* this */, - jstring path) -{ - auto result = RunTests::run_all_tests(env, path); - std::string hello = std::to_string(result); - return env->NewStringUTF(hello.c_str()); -} - extern "C" JNIEXPORT jint JNICALL Java_com_microsoft_applications_events_maesdktest_TestStub_runNativeTests( diff --git a/lib/android_build/app/src/main/java/com/microsoft/applications/events/maesdktest/MaeUnitLogger.java b/lib/android_build/app/src/main/java/com/microsoft/applications/events/maesdktest/MaeUnitLogger.java index 6980eb417..f669117fc 100644 --- a/lib/android_build/app/src/main/java/com/microsoft/applications/events/maesdktest/MaeUnitLogger.java +++ b/lib/android_build/app/src/main/java/com/microsoft/applications/events/maesdktest/MaeUnitLogger.java @@ -4,9 +4,6 @@ // package com.microsoft.applications.events.maesdktest; -import androidx.annotation.Keep; - -@Keep public abstract class MaeUnitLogger { abstract void log_failure(String filename, int line, String summary); } diff --git a/lib/android_build/app/src/main/java/com/microsoft/applications/events/maesdktest/MainActivity.java b/lib/android_build/app/src/main/java/com/microsoft/applications/events/maesdktest/MainActivity.java index fe374b7fb..4a3c77c10 100644 --- a/lib/android_build/app/src/main/java/com/microsoft/applications/events/maesdktest/MainActivity.java +++ b/lib/android_build/app/src/main/java/com/microsoft/applications/events/maesdktest/MainActivity.java @@ -4,58 +4,54 @@ // package com.microsoft.applications.events.maesdktest; +import android.annotation.SuppressLint; +import android.app.Activity; import android.os.Bundle; import android.util.Log; import android.widget.TextView; -import androidx.appcompat.app.AppCompatActivity; + import com.microsoft.applications.events.HttpClient; import com.microsoft.applications.events.OfflineRoom; -import java.util.concurrent.ExecutionException; -public class MainActivity extends AppCompatActivity { - class DummyLogger extends MaeUnitLogger { +import java.util.Locale; +import java.util.concurrent.ExecutionException; - @Override - void log_failure(String filename, int line, String summary) { - Log.e("MAE", String.format("Uh oh %s: %s", filename, summary)); +public class MainActivity extends Activity { + static class DummyLogger extends MaeUnitLogger { + @Override + void log_failure(String filename, int line, String summary) { + Log.e("MAE", String.format("Uh oh %s: %s", filename, summary)); + } } - } - - // Used to load the 'native-lib' library on application startup. - static { - System.loadLibrary("native-lib"); - System.loadLibrary("maesdk"); - } - - @Override - protected void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - setContentView(R.layout.activity_main); - - m_client = new HttpClient(getApplicationContext()); - OfflineRoom.connectContext(getApplicationContext()); - TestStub testStub = new TestStub(); - DummyLogger dummyLogger = new DummyLogger(); - // Example of a call to a native method - TextView tv = findViewById(R.id.sample_text); - try { - Integer result = testStub.executorRun(dummyLogger); - tv.setText(String.format("Tests returned %d", result)); - } - catch(ExecutionException e) { - tv.setText("Woopsy"); - } - catch(InterruptedException e) { - tv.setText("Interrupted!"); + + // Used to load the 'native-lib' library on application startup. + static { + System.loadLibrary("native-lib"); + System.loadLibrary("maesdk"); } - } - /** - * A native method that is implemented by the 'native-lib' native library, which is packaged with - * this application. - */ - public native String stringFromJNI(String path); + HttpClient m_client; - HttpClient m_client; + @SuppressLint("SetTextI18n") + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_main); + + m_client = new HttpClient(getApplicationContext()); + OfflineRoom.connectContext(getApplicationContext()); + TestStub testStub = new TestStub(); + DummyLogger dummyLogger = new DummyLogger(); + // Example of a call to a native method + TextView tv = findViewById(R.id.sample_text); + try { + Integer result = testStub.executorRun(dummyLogger); + tv.setText(String.format(Locale.ROOT, "Tests returned %d", result)); + } catch (ExecutionException e) { + tv.setText("Woopsy"); + } catch (InterruptedException e) { + tv.setText("Interrupted!"); + } + } } diff --git a/lib/android_build/app/src/main/res/layout/activity_main.xml b/lib/android_build/app/src/main/res/layout/activity_main.xml index a4e8d403b..42464babb 100644 --- a/lib/android_build/app/src/main/res/layout/activity_main.xml +++ b/lib/android_build/app/src/main/res/layout/activity_main.xml @@ -1,19 +1,15 @@ - + android:text="Hello World!"/> - \ No newline at end of file + \ No newline at end of file diff --git a/lib/android_build/app/src/main/res/values/colors.xml b/lib/android_build/app/src/main/res/values/colors.xml deleted file mode 100644 index 69b22338c..000000000 --- a/lib/android_build/app/src/main/res/values/colors.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - #008577 - #00574B - #D81B60 - diff --git a/lib/android_build/app/src/main/res/values/styles.xml b/lib/android_build/app/src/main/res/values/styles.xml index 5885930df..9bb9ac0b4 100644 --- a/lib/android_build/app/src/main/res/values/styles.xml +++ b/lib/android_build/app/src/main/res/values/styles.xml @@ -1,11 +1,6 @@ - - diff --git a/lib/android_build/build.gradle b/lib/android_build/build.gradle index 261d87c57..c389dcc00 100644 --- a/lib/android_build/build.gradle +++ b/lib/android_build/build.gradle @@ -5,11 +5,6 @@ buildscript { repositories { google() // to fetch com.android.tools.build:gradle mavenCentral() - maven { url 'https://maven.google.com' } - jcenter() - maven { url "https://jitpack.io" } - maven { url "https://jcenter.bintray.com" } - mavenCentral() } dependencies { classpath 'com.android.tools.build:gradle:4.0.1' @@ -22,14 +17,9 @@ allprojects { repositories { google() // to fetch com.android.tools.build:gradle mavenCentral() - maven { url 'https://maven.google.com' } - jcenter() - maven { url "https://jitpack.io" } - maven { url "https://jcenter.bintray.com" } - mavenCentral() } } task clean(type: Delete) { delete rootProject.buildDir -} +} \ No newline at end of file diff --git a/lib/android_build/maesdk/build.gradle b/lib/android_build/maesdk/build.gradle index 65c2125b6..67e68fc08 100644 --- a/lib/android_build/maesdk/build.gradle +++ b/lib/android_build/maesdk/build.gradle @@ -5,12 +5,10 @@ plugins { apply plugin: 'com.android.library' -apply from: "$rootProject.projectDir/tools.gradle" +apply from: "$projectDir/../tools.gradle" android { defaultConfig { - versionCode 1 - versionName "1.0" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" consumerProguardFiles 'consumer-rules.pro' @@ -60,14 +58,14 @@ android { dependencies { implementation fileTree(dir: 'libs', include: ['*.jar']) - def room_version = '2.2.6' + def room_version = '2.4.3' implementation "androidx.room:room-runtime:$room_version" annotationProcessor "androidx.room:room-compiler:$room_version" - testImplementation 'junit:junit:4.13.1' + testImplementation 'junit:junit:4.13.2' testImplementation 'org.mockito:mockito-inline:3.2.4' testImplementation "androidx.room:room-testing:$room_version" - androidTestImplementation 'androidx.test.ext:junit:1.1.2' - androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0' -} + androidTestImplementation 'androidx.test.ext:junit:1.1.5' + androidTestImplementation 'androidx.test.espresso:espresso-core:3.5.1' +} \ No newline at end of file diff --git a/lib/android_build/app/src/test/java/com/microsoft/applications/events/maesdktest/HttpClientRequestTest.java b/lib/android_build/maesdk/src/test/java/com/microsoft/applications/events/HttpClientRequestTest.java similarity index 95% rename from lib/android_build/app/src/test/java/com/microsoft/applications/events/maesdktest/HttpClientRequestTest.java rename to lib/android_build/maesdk/src/test/java/com/microsoft/applications/events/HttpClientRequestTest.java index 136b096a2..523bcc9f3 100644 --- a/lib/android_build/app/src/test/java/com/microsoft/applications/events/maesdktest/HttpClientRequestTest.java +++ b/lib/android_build/maesdk/src/test/java/com/microsoft/applications/events/HttpClientRequestTest.java @@ -2,7 +2,7 @@ // Copyright (c) Microsoft Corporation. All rights reserved. // SPDX-License-Identifier: Apache-2.0 // -package com.microsoft.applications.events.maesdktest; +package com.microsoft.applications.events; import com.microsoft.applications.events.HttpClientRequest; From 1058d4d8390fea9caac05413687905e5a4815ff0 Mon Sep 17 00:00:00 2001 From: Alexander Gavrishev Date: Fri, 24 Mar 2023 12:32:56 +0200 Subject: [PATCH 2/2] Revert room upgrade due to java 1.8 incompability --- lib/android_build/maesdk/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/android_build/maesdk/build.gradle b/lib/android_build/maesdk/build.gradle index 67e68fc08..9be9cd51e 100644 --- a/lib/android_build/maesdk/build.gradle +++ b/lib/android_build/maesdk/build.gradle @@ -58,7 +58,7 @@ android { dependencies { implementation fileTree(dir: 'libs', include: ['*.jar']) - def room_version = '2.4.3' + def room_version = '2.2.6' implementation "androidx.room:room-runtime:$room_version" annotationProcessor "androidx.room:room-compiler:$room_version"