From 020502b397ecbc3f2be06fa9fc990eb6141bb23c Mon Sep 17 00:00:00 2001 From: Sandra Forberger Date: Fri, 1 Nov 2019 11:55:57 +0700 Subject: [PATCH 01/19] update to android sdk 29 --- android/KMAPro/build.gradle | 4 +-- .../gradle/wrapper/gradle-wrapper.properties | 2 +- android/KMAPro/kMAPro/build.gradle | 5 ++-- android/KMEA/app/build.gradle | 28 ++++++++++++------- android/KMEA/build.gradle | 2 +- android/KMEA/gradle.properties | 10 ++++++- .../gradle/wrapper/gradle-wrapper.properties | 2 +- 7 files changed, 35 insertions(+), 18 deletions(-) diff --git a/android/KMAPro/build.gradle b/android/KMAPro/build.gradle index 9f6728c04d..655bea022b 100644 --- a/android/KMAPro/build.gradle +++ b/android/KMAPro/build.gradle @@ -8,8 +8,8 @@ buildscript { } } dependencies { - classpath 'com.android.tools.build:gradle:3.4.1' - classpath 'com.google.gms:google-services:4.2.0' + classpath 'com.android.tools.build:gradle:3.5.1' + classpath 'com.google.gms:google-services:4.3.2' classpath 'io.fabric.tools:gradle:1.28.1' } } diff --git a/android/KMAPro/gradle/wrapper/gradle-wrapper.properties b/android/KMAPro/gradle/wrapper/gradle-wrapper.properties index 29126efb6c..7bb6f3826f 100644 --- a/android/KMAPro/gradle/wrapper/gradle-wrapper.properties +++ b/android/KMAPro/gradle/wrapper/gradle-wrapper.properties @@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-5.1.1-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-5.4.1-all.zip diff --git a/android/KMAPro/kMAPro/build.gradle b/android/KMAPro/kMAPro/build.gradle index 0ab3a071d2..4b4afd41be 100644 --- a/android/KMAPro/kMAPro/build.gradle +++ b/android/KMAPro/kMAPro/build.gradle @@ -5,12 +5,13 @@ plugins { } android { - compileSdkVersion 28 + compileSdkVersion 29 + buildToolsVersion "29.0.2" defaultConfig { applicationId "com.tavultesoft.kmapro" minSdkVersion 19 - targetSdkVersion 28 + targetSdkVersion 29 //println "===DUMPING PROPERTIES===" //dumpProperties(project) // Use this to dump all external properties for debugging TeamCity integration diff --git a/android/KMEA/app/build.gradle b/android/KMEA/app/build.gradle index eb271e91c0..cf3e1b525f 100644 --- a/android/KMEA/app/build.gradle +++ b/android/KMEA/app/build.gradle @@ -1,12 +1,12 @@ apply plugin: 'com.android.library' android { - compileSdkVersion 28 - buildToolsVersion "28.0.3" + compileSdkVersion 29 + buildToolsVersion "29.0.2" defaultConfig { minSdkVersion 16 - targetSdkVersion 28 + targetSdkVersion 29 String env_build_number = System.getenv("BUILD_NUMBER") //assigned by TeamCity, so all caps String env_build_counter = System.getenv("build_counter") @@ -42,25 +42,33 @@ android { //showStandardStreams = true // If we want test console log output to show during builds. } workingDir = "../" // Defaults to the `app` subdirectory, which is different from Android Studio's default. + //Avoid Warning: an illegal reflective access operation has occurred + //Change argument jdk.module.illegalAccess=warn for detailed information which module needs to be opened + jvmArgs ('-Djdk.module.illegalAccess=permit') + jvmArgs('--add-opens', 'java.base/java.lang=ALL-UNNAMED') + jvmArgs('--add-opens', 'java.base/java.lang.reflect=ALL-UNNAMED') } } } dependencies { - implementation 'androidx.appcompat:appcompat:1.0.2' + implementation 'androidx.appcompat:appcompat:1.1.0' implementation 'com.google.android.material:material:1.0.0' implementation 'commons-io:commons-io:2.6' - implementation 'org.apache.commons:commons-text:1.6' + implementation 'org.apache.commons:commons-text:1.8' // Robolectric - testImplementation 'androidx.test:core:1.1.0' - testImplementation 'androidx.test.ext:junit:1.1.0' - testImplementation 'org.robolectric:robolectric:4.2' + testImplementation 'androidx.test:core:1.2.0' + testImplementation 'androidx.test.ext:junit:1.1.1' + testImplementation 'org.robolectric:robolectric:4.3.1' /* We only want these Firebase Crashlytics dependencies for KMEA */ - implementation 'com.google.firebase:firebase-analytics:16.4.0' + implementation 'com.google.firebase:firebase-analytics:17.2.1' implementation 'com.google.firebase:firebase-crash:16.2.1' implementation('com.crashlytics.sdk.android:crashlytics:2.9.9@aar') { - transitive = true; + transitive = true } + + // Assign the annotation processor for tests. + testAnnotationProcessor 'com.google.auto.service:auto-service:1.0-rc4' } diff --git a/android/KMEA/build.gradle b/android/KMEA/build.gradle index 6ac36dd8dc..043e3571c5 100644 --- a/android/KMEA/build.gradle +++ b/android/KMEA/build.gradle @@ -5,7 +5,7 @@ buildscript { jcenter() } dependencies { - classpath 'com.android.tools.build:gradle:3.4.0' + classpath 'com.android.tools.build:gradle:3.5.1' } } diff --git a/android/KMEA/gradle.properties b/android/KMEA/gradle.properties index fc305f79fd..2138e9925c 100644 --- a/android/KMEA/gradle.properties +++ b/android/KMEA/gradle.properties @@ -1,3 +1,11 @@ android.enableJetifier=true android.useAndroidX=true -android.enableUnitTestBinaryResources=true \ No newline at end of file +android.enableUnitTestBinaryResources=true + +#Added because of warning in build process +#Gradle may disable incremental compilation as the following annotation processors are not incremental: auto-service-1.0-rc4.jar (com.google.auto.service:auto-service:1.0-rc4). +#Consider setting the experimental feature flag android.enableSeparateAnnotationProcessing=true in the gradle.properties file to run annotation processing in a separate task and make compilation incremental. +#Causes new warning: +#WARNING: The option setting 'android.enableSeparateAnnotationProcessing=true' is experimental and unsupported. +#The current default is 'false'. +android.enableSeparateAnnotationProcessing=true diff --git a/android/KMEA/gradle/wrapper/gradle-wrapper.properties b/android/KMEA/gradle/wrapper/gradle-wrapper.properties index 87bd64a1b9..5fe887f576 100644 --- a/android/KMEA/gradle/wrapper/gradle-wrapper.properties +++ b/android/KMEA/gradle/wrapper/gradle-wrapper.properties @@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-5.1.1-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-5.4.1-all.zip From 86fa2f19a552e18e907eb0307048ace1690d942c Mon Sep 17 00:00:00 2001 From: Sandra Forberger Date: Fri, 1 Nov 2019 12:03:19 +0700 Subject: [PATCH 02/19] docs[android]: update for openjdk 11 --- android/README.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/android/README.md b/android/README.md index bb97004ff7..da3657cd78 100644 --- a/android/README.md +++ b/android/README.md @@ -2,9 +2,13 @@ ## Prerequisites * Android Studio 3.3.2+ -* Java SE Development Kit 8 +* Java SE Development Kit 11 (Java 9 or newer) * [Node.js](https://nodejs.org/) 8.9+ (for building KeymanWeb) +Recommended to use openJDK because of license issues. +Tested with latest release for openJDK 11 +https://github.com/ojdkbuild/ojdkbuild + ## Minimum Android Requirements Keyman for Android has a minSdkVersion of 16 for [Android 4.1 Jelly Bean](https://developer.android.com/about/versions/android-4.1) From d3aed38b8976c2d6589c15bdd966a3bc788bcebf Mon Sep 17 00:00:00 2001 From: safolit <52272980+safolit@users.noreply.github.com> Date: Fri, 1 Nov 2019 13:02:32 +0700 Subject: [PATCH 03/19] Update README.md --- android/README.md | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/android/README.md b/android/README.md index da3657cd78..9394f56ce2 100644 --- a/android/README.md +++ b/android/README.md @@ -5,10 +5,13 @@ * Java SE Development Kit 11 (Java 9 or newer) * [Node.js](https://nodejs.org/) 8.9+ (for building KeymanWeb) -Recommended to use openJDK because of license issues. -Tested with latest release for openJDK 11 +## Install Java +It is recommended to use openJDK because of oracle license issues. +Tested with latest release for openJDK 11 from https://github.com/ojdkbuild/ojdkbuild +Aso set an environment variable for JAVA_HOME e.g C:\Program Files\Java\openjdk-11.0.5.10-1 + ## Minimum Android Requirements Keyman for Android has a minSdkVersion of 16 for [Android 4.1 Jelly Bean](https://developer.android.com/about/versions/android-4.1) From f17d96836a2a5c7a4a9b9aa3b7b6818e93c9d2db Mon Sep 17 00:00:00 2001 From: safolit <52272980+safolit@users.noreply.github.com> Date: Fri, 1 Nov 2019 13:14:12 +0700 Subject: [PATCH 04/19] Update README.md --- android/README.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/android/README.md b/android/README.md index 9394f56ce2..d5fd16191c 100644 --- a/android/README.md +++ b/android/README.md @@ -9,6 +9,12 @@ It is recommended to use openJDK because of oracle license issues. Tested with latest release for openJDK 11 from https://github.com/ojdkbuild/ojdkbuild +Download the zip archive, and unpack to c:\Program Files\Java. + +### Issue on windows: +When extracting the zip file an error message: Error 0x80010135 “Path Too Long” appears. + +Fix: Use default java directory to extract the zip archive C:\Program Files\Java Aso set an environment variable for JAVA_HOME e.g C:\Program Files\Java\openjdk-11.0.5.10-1 From 731ba7160e10709a21f1e295dca93b15bb34a0c0 Mon Sep 17 00:00:00 2001 From: safolit <52272980+safolit@users.noreply.github.com> Date: Fri, 1 Nov 2019 13:18:32 +0700 Subject: [PATCH 05/19] Update README.md --- android/README.md | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/android/README.md b/android/README.md index d5fd16191c..e106993daf 100644 --- a/android/README.md +++ b/android/README.md @@ -9,14 +9,10 @@ It is recommended to use openJDK because of oracle license issues. Tested with latest release for openJDK 11 from https://github.com/ojdkbuild/ojdkbuild -Download the zip archive, and unpack to c:\Program Files\Java. -### Issue on windows: -When extracting the zip file an error message: Error 0x80010135 “Path Too Long” appears. - -Fix: Use default java directory to extract the zip archive C:\Program Files\Java - -Aso set an environment variable for JAVA_HOME e.g C:\Program Files\Java\openjdk-11.0.5.10-1 +1. Download and unpack the zip archive +2. On on windows: use the default java path C:\Program Files\Java to avoid error message "Error 0x80010135 Path Too Long". +3. Aso set an environment variable for JAVA_HOME e.g C:\Program Files\Java\openjdk-11.0.5.10-1 ## Minimum Android Requirements Keyman for Android has a minSdkVersion of 16 for [Android 4.1 Jelly Bean](https://developer.android.com/about/versions/android-4.1) From 4198a2c3b602ebf184ed0e4c0d6928fbab58d4b3 Mon Sep 17 00:00:00 2001 From: Sandra Forberger Date: Fri, 1 Nov 2019 14:12:37 +0700 Subject: [PATCH 06/19] fix[android}: fix build warning in android studio for experimental key --- android/KMEA/gradle.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/android/KMEA/gradle.properties b/android/KMEA/gradle.properties index 2138e9925c..dd9c757897 100644 --- a/android/KMEA/gradle.properties +++ b/android/KMEA/gradle.properties @@ -8,4 +8,4 @@ android.enableUnitTestBinaryResources=true #Causes new warning: #WARNING: The option setting 'android.enableSeparateAnnotationProcessing=true' is experimental and unsupported. #The current default is 'false'. -android.enableSeparateAnnotationProcessing=true +#android.enableSeparateAnnotationProcessing=true From fc89bb95438effd07e57e90fbfb5a3907458d33b Mon Sep 17 00:00:00 2001 From: Sandra Forberger Date: Fri, 1 Nov 2019 15:31:48 +0700 Subject: [PATCH 07/19] fix[android]: add section to show compiler warnings --- android/KMEA/app/build.gradle | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/android/KMEA/app/build.gradle b/android/KMEA/app/build.gradle index cf3e1b525f..9dda84ec4c 100644 --- a/android/KMEA/app/build.gradle +++ b/android/KMEA/app/build.gradle @@ -72,3 +72,9 @@ dependencies { // Assign the annotation processor for tests. testAnnotationProcessor 'com.google.auto.service:auto-service:1.0-rc4' } + +allprojects { + tasks.withType(JavaCompile) { + options.compilerArgs << "-Xlint:deprecation" + } +} From fe1a32d44931692a9fea856428f4548778761459 Mon Sep 17 00:00:00 2001 From: Sandra Forberger Date: Fri, 1 Nov 2019 15:33:45 +0700 Subject: [PATCH 08/19] fix[android]: add comment, section optional --- android/KMEA/app/build.gradle | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/android/KMEA/app/build.gradle b/android/KMEA/app/build.gradle index 9dda84ec4c..ef8d112f36 100644 --- a/android/KMEA/app/build.gradle +++ b/android/KMEA/app/build.gradle @@ -72,9 +72,10 @@ dependencies { // Assign the annotation processor for tests. testAnnotationProcessor 'com.google.auto.service:auto-service:1.0-rc4' } - +//Show deprecation compiler warnings +/* allprojects { tasks.withType(JavaCompile) { options.compilerArgs << "-Xlint:deprecation" } -} +}*/ From 2859a1f95400125c7fd6938ee201d623d8df9a12 Mon Sep 17 00:00:00 2001 From: Sandra Forberger Date: Mon, 4 Nov 2019 11:40:59 +0700 Subject: [PATCH 09/19] fix[android]: allow build and tests with java8 --- android/KMEA/app/build.gradle | 10 +++++++--- .../com/tavultesoft/kmea/robolectric.properties | 1 + 2 files changed, 8 insertions(+), 3 deletions(-) create mode 100644 android/KMEA/app/src/test/resources/com/tavultesoft/kmea/robolectric.properties diff --git a/android/KMEA/app/build.gradle b/android/KMEA/app/build.gradle index ef8d112f36..efb393d526 100644 --- a/android/KMEA/app/build.gradle +++ b/android/KMEA/app/build.gradle @@ -42,11 +42,15 @@ android { //showStandardStreams = true // If we want test console log output to show during builds. } workingDir = "../" // Defaults to the `app` subdirectory, which is different from Android Studio's default. + //Avoid Warning: an illegal reflective access operation has occurred //Change argument jdk.module.illegalAccess=warn for detailed information which module needs to be opened - jvmArgs ('-Djdk.module.illegalAccess=permit') - jvmArgs('--add-opens', 'java.base/java.lang=ALL-UNNAMED') - jvmArgs('--add-opens', 'java.base/java.lang.reflect=ALL-UNNAMED') + if(JavaVersion.current().isJava9Compatible()){ + jvmArgs ('-Djdk.module.illegalAccess=permit') + jvmArgs('--add-opens', 'java.base/java.lang=ALL-UNNAMED') + jvmArgs('--add-opens', 'java.base/java.lang.reflect=ALL-UNNAMED') + } + } } } diff --git a/android/KMEA/app/src/test/resources/com/tavultesoft/kmea/robolectric.properties b/android/KMEA/app/src/test/resources/com/tavultesoft/kmea/robolectric.properties new file mode 100644 index 0000000000..89a6c8b4c2 --- /dev/null +++ b/android/KMEA/app/src/test/resources/com/tavultesoft/kmea/robolectric.properties @@ -0,0 +1 @@ +sdk=28 \ No newline at end of file From e567811fe6a87f6fd1c4fc96e366dd9ee47003ec Mon Sep 17 00:00:00 2001 From: Sandra Forberger Date: Mon, 4 Nov 2019 12:01:22 +0700 Subject: [PATCH 10/19] doc[android]: add robolectric issue --- android/KMEA/app/build.gradle | 1 + 1 file changed, 1 insertion(+) diff --git a/android/KMEA/app/build.gradle b/android/KMEA/app/build.gradle index efb393d526..d277387c4e 100644 --- a/android/KMEA/app/build.gradle +++ b/android/KMEA/app/build.gradle @@ -45,6 +45,7 @@ android { //Avoid Warning: an illegal reflective access operation has occurred //Change argument jdk.module.illegalAccess=warn for detailed information which module needs to be opened + //Problem is caused by robolectric: see https://github.com/robolectric/robolectric/issues/4776 if(JavaVersion.current().isJava9Compatible()){ jvmArgs ('-Djdk.module.illegalAccess=permit') jvmArgs('--add-opens', 'java.base/java.lang=ALL-UNNAMED') From 58c28210a67f1a892e11382cf2a6f4918c84dfe1 Mon Sep 17 00:00:00 2001 From: Sandra Forberger Date: Tue, 5 Nov 2019 17:11:03 +0700 Subject: [PATCH 11/19] fix[android]: update more dependencies --- android/KMAPro/build.gradle | 4 ++-- android/KMAPro/gradle/wrapper/gradle-wrapper.properties | 2 +- android/KMEA/app/build.gradle | 5 +++-- android/KMEA/build.gradle | 3 ++- android/KMEA/gradle/wrapper/gradle-wrapper.properties | 2 +- 5 files changed, 9 insertions(+), 7 deletions(-) diff --git a/android/KMAPro/build.gradle b/android/KMAPro/build.gradle index 655bea022b..790bcd42ef 100644 --- a/android/KMAPro/build.gradle +++ b/android/KMAPro/build.gradle @@ -8,9 +8,9 @@ buildscript { } } dependencies { - classpath 'com.android.tools.build:gradle:3.5.1' + classpath 'com.android.tools.build:gradle:3.5.2' classpath 'com.google.gms:google-services:4.3.2' - classpath 'io.fabric.tools:gradle:1.28.1' + classpath 'io.fabric.tools:gradle:1.31.2' } } diff --git a/android/KMAPro/gradle/wrapper/gradle-wrapper.properties b/android/KMAPro/gradle/wrapper/gradle-wrapper.properties index 7bb6f3826f..53d1d37d02 100644 --- a/android/KMAPro/gradle/wrapper/gradle-wrapper.properties +++ b/android/KMAPro/gradle/wrapper/gradle-wrapper.properties @@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-5.4.1-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-5.6.4-all.zip diff --git a/android/KMEA/app/build.gradle b/android/KMEA/app/build.gradle index d277387c4e..778d0701cb 100644 --- a/android/KMEA/app/build.gradle +++ b/android/KMEA/app/build.gradle @@ -1,3 +1,4 @@ +apply plugin: 'name.remal.default-plugins' apply plugin: 'com.android.library' android { @@ -70,12 +71,12 @@ dependencies { /* We only want these Firebase Crashlytics dependencies for KMEA */ implementation 'com.google.firebase:firebase-analytics:17.2.1' implementation 'com.google.firebase:firebase-crash:16.2.1' - implementation('com.crashlytics.sdk.android:crashlytics:2.9.9@aar') { + implementation('com.crashlytics.sdk.android:crashlytics:2.10.1@aar') { transitive = true } // Assign the annotation processor for tests. - testAnnotationProcessor 'com.google.auto.service:auto-service:1.0-rc4' + testAnnotationProcessor 'com.google.auto.service:auto-service:1.0-rc6' } //Show deprecation compiler warnings /* diff --git a/android/KMEA/build.gradle b/android/KMEA/build.gradle index 043e3571c5..5859f05968 100644 --- a/android/KMEA/build.gradle +++ b/android/KMEA/build.gradle @@ -5,7 +5,8 @@ buildscript { jcenter() } dependencies { - classpath 'com.android.tools.build:gradle:3.5.1' + classpath 'com.android.tools.build:gradle:3.5.2' + classpath "name.remal:gradle-plugins:1.0.157" } } diff --git a/android/KMEA/gradle/wrapper/gradle-wrapper.properties b/android/KMEA/gradle/wrapper/gradle-wrapper.properties index 5fe887f576..903f2b0357 100644 --- a/android/KMEA/gradle/wrapper/gradle-wrapper.properties +++ b/android/KMEA/gradle/wrapper/gradle-wrapper.properties @@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-5.4.1-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-5.6.4-all.zip From 172a1dc5733f4085dd315f83390a05b0f5833b42 Mon Sep 17 00:00:00 2001 From: Sandra Forberger Date: Tue, 5 Nov 2019 17:22:02 +0700 Subject: [PATCH 12/19] fix[android]: add dependency plugin and update --- android/KMAPro/build.gradle | 1 + android/KMAPro/kMAPro/build.gradle | 11 ++++++----- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/android/KMAPro/build.gradle b/android/KMAPro/build.gradle index 790bcd42ef..600c9f8063 100644 --- a/android/KMAPro/build.gradle +++ b/android/KMAPro/build.gradle @@ -11,6 +11,7 @@ buildscript { classpath 'com.android.tools.build:gradle:3.5.2' classpath 'com.google.gms:google-services:4.3.2' classpath 'io.fabric.tools:gradle:1.31.2' + classpath "name.remal:gradle-plugins:1.0.157" } } diff --git a/android/KMAPro/kMAPro/build.gradle b/android/KMAPro/kMAPro/build.gradle index 4b4afd41be..30e3c30cb2 100644 --- a/android/KMAPro/kMAPro/build.gradle +++ b/android/KMAPro/kMAPro/build.gradle @@ -1,7 +1,8 @@ plugins { id 'com.android.application' id 'io.fabric' - id 'com.github.triplet.play' version '2.1.0' apply false + id 'com.github.triplet.play' version '2.5.0' apply false + id 'name.remal.default-plugins' } android { @@ -116,15 +117,15 @@ repositories { dependencies { implementation fileTree(dir: 'libs', include: ['*.jar']) - implementation 'androidx.appcompat:appcompat:1.0.2' + implementation 'androidx.appcompat:appcompat:1.1.0' implementation 'com.google.android.material:material:1.0.0' api(name: 'keyman-engine', ext: 'aar') - implementation "com.google.firebase:firebase-core:16.0.8" + implementation "com.google.firebase:firebase-core:17.2.1" implementation "com.google.firebase:firebase-crash:16.2.1" - implementation('com.crashlytics.sdk.android:crashlytics:2.9.9@aar') { + implementation('com.crashlytics.sdk.android:crashlytics:2.10.1@aar') { transitive = true } - implementation 'androidx.preference:preference:1.1.0-alpha04' + implementation 'androidx.preference:preference:1.1.0' } /*def void dumpProperties(it){ From 062ec7cdca264906e0e7788ec65c185473289ebc Mon Sep 17 00:00:00 2001 From: Marc Durdin Date: Wed, 6 Nov 2019 06:37:17 +1100 Subject: [PATCH 13/19] fix(developer): crash when deleting selected platform in code view --- windows/src/developer/TIKE/xml/layoutbuilder/builder.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/windows/src/developer/TIKE/xml/layoutbuilder/builder.js b/windows/src/developer/TIKE/xml/layoutbuilder/builder.js index a7cb2b3737..97b605fa9e 100644 --- a/windows/src/developer/TIKE/xml/layoutbuilder/builder.js +++ b/windows/src/developer/TIKE/xml/layoutbuilder/builder.js @@ -2186,15 +2186,15 @@ $(function () { function(data) { builder.loadingState = false; if(typeof data === 'object') { - if(data.platform) { + if(data.platform && KVKL[data.platform]) { $('#selPlatform').val(data.platform); - builder.selectPlatform(); } - if(data.presentation) { + builder.selectPlatform(); + if(data.presentation && builder.presentations[data.presentation]) { $('#selPlatformPresentation').val(data.presentation); builder.prepareLayer(); } - if(data.layer) { + if(data.layer && KVKL[builder.lastPlatform][data.layer]) { $('#selLayer').val(data.layer); builder.selectLayer(); } From a36b6d3557519e312274f09d820ff2f9e8c4b75f Mon Sep 17 00:00:00 2001 From: Marc Durdin Date: Wed, 6 Nov 2019 07:00:03 +1100 Subject: [PATCH 14/19] fix(developer): nul in context caused incorrect deletion for 10.0 --- .../src/developer/TIKE/compile/CompileKeymanWeb.pas | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/windows/src/developer/TIKE/compile/CompileKeymanWeb.pas b/windows/src/developer/TIKE/compile/CompileKeymanWeb.pas index 2036b8041c..469c0b45dd 100644 --- a/windows/src/developer/TIKE/compile/CompileKeymanWeb.pas +++ b/windows/src/developer/TIKE/compile/CompileKeymanWeb.pas @@ -974,15 +974,14 @@ begin n := len; pwszContext := fkp.dpContext; - //CODE_IFOPT: // I3429 - //CODE_IFSYSTEMSTORE: // I3430 for i := 1 to n do begin rec := ExpandSentinel(pwszContext); - if rec.IsSentinel and (rec.Code in [CODE_IFOPT, CODE_IFSYSTEMSTORE]) then + if rec.IsSentinel and (rec.Code in [CODE_NUL, CODE_IFOPT, CODE_IFSYSTEMSTORE]) then Dec(len); pwszContext := incxstr(pwszContext); end; + end // KMW < 10.0 exclude all sentinel-based characters, including deadkeys, from direct context deletion. // Deadkeys have alternative special handling. @@ -992,10 +991,10 @@ begin len := -1; if IsKeyboardVersion10OrLater() and (pwsz^ <> #0) then - begin - Result := Result + nlt+Format('k.KDC(%d,t);', [ len ] ); // I3681 - len := -1; - end; + begin + Result := Result + nlt+Format('k.KDC(%d,t);', [ len ] ); // I3681 + len := -1; + end; while pwsz^ <> #0 do begin From cb143eabd3e2c997127669893e81f36122120a40 Mon Sep 17 00:00:00 2001 From: Sandra Forberger Date: Wed, 6 Nov 2019 10:42:02 +0700 Subject: [PATCH 15/19] fix[android]: change dependencies --- android/KMAPro/build.gradle | 2 +- android/KMEA/app/build.gradle | 8 +++++--- .../resources/com/tavultesoft/kmea/robolectric.properties | 2 ++ android/KMEA/build.gradle | 2 +- 4 files changed, 9 insertions(+), 5 deletions(-) diff --git a/android/KMAPro/build.gradle b/android/KMAPro/build.gradle index 600c9f8063..47a5bb35f6 100644 --- a/android/KMAPro/build.gradle +++ b/android/KMAPro/build.gradle @@ -11,7 +11,7 @@ buildscript { classpath 'com.android.tools.build:gradle:3.5.2' classpath 'com.google.gms:google-services:4.3.2' classpath 'io.fabric.tools:gradle:1.31.2' - classpath "name.remal:gradle-plugins:1.0.157" + classpath 'name.remal:gradle-plugins:1.0.157' } } diff --git a/android/KMEA/app/build.gradle b/android/KMEA/app/build.gradle index 778d0701cb..dd13f07074 100644 --- a/android/KMEA/app/build.gradle +++ b/android/KMEA/app/build.gradle @@ -1,5 +1,7 @@ -apply plugin: 'name.remal.default-plugins' -apply plugin: 'com.android.library' +plugins { + id 'name.remal.default-plugins' + id 'com.android.library' +} android { compileSdkVersion 29 @@ -76,7 +78,7 @@ dependencies { } // Assign the annotation processor for tests. - testAnnotationProcessor 'com.google.auto.service:auto-service:1.0-rc6' + testAnnotationProcessor 'com.google.auto.service:auto-service:1.0-rc4' } //Show deprecation compiler warnings /* diff --git a/android/KMEA/app/src/test/resources/com/tavultesoft/kmea/robolectric.properties b/android/KMEA/app/src/test/resources/com/tavultesoft/kmea/robolectric.properties index 89a6c8b4c2..1c3d9c523c 100644 --- a/android/KMEA/app/src/test/resources/com/tavultesoft/kmea/robolectric.properties +++ b/android/KMEA/app/src/test/resources/com/tavultesoft/kmea/robolectric.properties @@ -1 +1,3 @@ +#Android SDK 29 requires java 9. +#To execute the tests on during the automatic build process, we need to force robolectric to use an older sdk version for test sdk=28 \ No newline at end of file diff --git a/android/KMEA/build.gradle b/android/KMEA/build.gradle index 5859f05968..6de066ae49 100644 --- a/android/KMEA/build.gradle +++ b/android/KMEA/build.gradle @@ -6,7 +6,7 @@ buildscript { } dependencies { classpath 'com.android.tools.build:gradle:3.5.2' - classpath "name.remal:gradle-plugins:1.0.157" + classpath 'name.remal:gradle-plugins:1.0.157' } } From 346a8a8607f1ce0b545d1a733bfee47e60be6bc3 Mon Sep 17 00:00:00 2001 From: safolit <52272980+safolit@users.noreply.github.com> Date: Wed, 6 Nov 2019 10:51:42 +0700 Subject: [PATCH 16/19] Update README.md --- android/README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/android/README.md b/android/README.md index e106993daf..a9a56f37f4 100644 --- a/android/README.md +++ b/android/README.md @@ -2,17 +2,17 @@ ## Prerequisites * Android Studio 3.3.2+ -* Java SE Development Kit 11 (Java 9 or newer) +* Java SE Development Kit 8 * [Node.js](https://nodejs.org/) 8.9+ (for building KeymanWeb) ## Install Java It is recommended to use openJDK because of oracle license issues. -Tested with latest release for openJDK 11 from +Tested with latest release for openJDK 8 from https://github.com/ojdkbuild/ojdkbuild 1. Download and unpack the zip archive 2. On on windows: use the default java path C:\Program Files\Java to avoid error message "Error 0x80010135 Path Too Long". -3. Aso set an environment variable for JAVA_HOME e.g C:\Program Files\Java\openjdk-11.0.5.10-1 +3. Aso set an environment variable for JAVA_HOME e.g C:\Program Files\Java\openjdk-1.8.0.232-1 ## Minimum Android Requirements Keyman for Android has a minSdkVersion of 16 for [Android 4.1 Jelly Bean](https://developer.android.com/about/versions/android-4.1) From 67ca6343f743d5239910849630bd608de745c18e Mon Sep 17 00:00:00 2001 From: safolit <52272980+safolit@users.noreply.github.com> Date: Wed, 6 Nov 2019 13:19:39 +0700 Subject: [PATCH 17/19] Update history.md --- android/history.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/android/history.md b/android/history.md index 7d6221493d..68c381768a 100644 --- a/android/history.md +++ b/android/history.md @@ -2,6 +2,9 @@ ## 13.0 alpha * Start version 13.0 +* New Features: + * Adding a download manager to execute downloads in background (#2247) + * Improve custom package installation: Show readme.htm before starting installation process ## 2019-10-10 12.0.4201 stable * Bug Fix: From 76d01b18272837a44b78d9164ad57f7e50c58ee2 Mon Sep 17 00:00:00 2001 From: safolit <52272980+safolit@users.noreply.github.com> Date: Wed, 6 Nov 2019 13:21:54 +0700 Subject: [PATCH 18/19] Update history.md --- android/history.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/android/history.md b/android/history.md index 68c381768a..6f18d5e4af 100644 --- a/android/history.md +++ b/android/history.md @@ -3,8 +3,8 @@ ## 13.0 alpha * Start version 13.0 * New Features: - * Adding a download manager to execute downloads in background (#2247) - * Improve custom package installation: Show readme.htm before starting installation process + * Adding a download manager to execute downloads in background (#2247) + * Improve custom package installation: Show readme.htm before starting installation process ## 2019-10-10 12.0.4201 stable * Bug Fix: From c2073c290069d19d77d806ddcc5bb46e21f44326 Mon Sep 17 00:00:00 2001 From: safolit <52272980+safolit@users.noreply.github.com> Date: Wed, 6 Nov 2019 13:22:40 +0700 Subject: [PATCH 19/19] Update history.md --- android/history.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/android/history.md b/android/history.md index 6f18d5e4af..3ff29c8f6f 100644 --- a/android/history.md +++ b/android/history.md @@ -4,7 +4,7 @@ * Start version 13.0 * New Features: * Adding a download manager to execute downloads in background (#2247) - * Improve custom package installation: Show readme.htm before starting installation process + * Improve custom package installation: Show readme.htm before starting installation process (#2286) ## 2019-10-10 12.0.4201 stable * Bug Fix: