From c2ba4327bba026a1d38c183fb315201f93052efd Mon Sep 17 00:00:00 2001 From: "Joshua A. Horton" Date: Fri, 12 Apr 2024 08:04:50 +0700 Subject: [PATCH 1/3] chore(android): sets internal WebView inspectable --- .../KMEA/app/src/main/java/com/keyman/engine/KMKeyboard.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/android/KMEA/app/src/main/java/com/keyman/engine/KMKeyboard.java b/android/KMEA/app/src/main/java/com/keyman/engine/KMKeyboard.java index a356a20ad5..0858ce25e6 100644 --- a/android/KMEA/app/src/main/java/com/keyman/engine/KMKeyboard.java +++ b/android/KMEA/app/src/main/java/com/keyman/engine/KMKeyboard.java @@ -232,11 +232,11 @@ final class KMKeyboard extends WebView { getSettings().setUseWideViewPort(true); getSettings().setLoadWithOverviewMode(true); - if (0 != (context.getApplicationInfo().flags & ApplicationInfo.FLAG_DEBUGGABLE)) { + // if (0 != (context.getApplicationInfo().flags & ApplicationInfo.FLAG_DEBUGGABLE)) { // Enable debugging of WebView via adb. Not used during unit tests // Refer: https://developer.chrome.com/docs/devtools/remote-debugging/webviews/#configure_webviews_for_debugging setWebContentsDebuggingEnabled(true); - } + // } setWebChromeClient(new WebChromeClient() { public boolean onConsoleMessage(ConsoleMessage cm) { String msg = KMString.format("KMW JS Log: Line %d, %s:%s", cm.lineNumber(), cm.sourceId(), cm.message()); From 6f3c5e053db6570f82132ce275e46c7fb1e7c17d Mon Sep 17 00:00:00 2001 From: "Joshua A. Horton" Date: Fri, 12 Apr 2024 08:21:14 +0700 Subject: [PATCH 2/3] change(android): Android app for non-stable version to enable inspectability --- .../src/main/java/com/keyman/engine/KMKeyboard.java | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/android/KMEA/app/src/main/java/com/keyman/engine/KMKeyboard.java b/android/KMEA/app/src/main/java/com/keyman/engine/KMKeyboard.java index 0858ce25e6..a1bec70f20 100644 --- a/android/KMEA/app/src/main/java/com/keyman/engine/KMKeyboard.java +++ b/android/KMEA/app/src/main/java/com/keyman/engine/KMKeyboard.java @@ -232,11 +232,17 @@ final class KMKeyboard extends WebView { getSettings().setUseWideViewPort(true); getSettings().setLoadWithOverviewMode(true); - // if (0 != (context.getApplicationInfo().flags & ApplicationInfo.FLAG_DEBUGGABLE)) { + + // When `.isTestMode() == true`, the setWebContentsDebuggingEnabled method is not available + // and thus will trigger unit-test failures. + if (!KMManager.isTestMode() && ( + 0 != (context.getApplicationInfo().flags & ApplicationInfo.FLAG_DEBUGGABLE) + || KMManager.getTier(null) != KMManager.Tier.STABLE + )) { // Enable debugging of WebView via adb. Not used during unit tests // Refer: https://developer.chrome.com/docs/devtools/remote-debugging/webviews/#configure_webviews_for_debugging setWebContentsDebuggingEnabled(true); - // } + } setWebChromeClient(new WebChromeClient() { public boolean onConsoleMessage(ConsoleMessage cm) { String msg = KMString.format("KMW JS Log: Line %d, %s:%s", cm.lineNumber(), cm.sourceId(), cm.message()); From 9eca52c203c8084d913488982bef0023c5f93a0d Mon Sep 17 00:00:00 2001 From: Joshua Horton Date: Wed, 17 Apr 2024 11:19:27 +0700 Subject: [PATCH 3/3] chore(android): applies suggestions per review Co-authored-by: Marc Durdin --- .../KMEA/app/src/main/java/com/keyman/engine/KMKeyboard.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/android/KMEA/app/src/main/java/com/keyman/engine/KMKeyboard.java b/android/KMEA/app/src/main/java/com/keyman/engine/KMKeyboard.java index a1bec70f20..78c31f3275 100644 --- a/android/KMEA/app/src/main/java/com/keyman/engine/KMKeyboard.java +++ b/android/KMEA/app/src/main/java/com/keyman/engine/KMKeyboard.java @@ -236,8 +236,8 @@ final class KMKeyboard extends WebView { // When `.isTestMode() == true`, the setWebContentsDebuggingEnabled method is not available // and thus will trigger unit-test failures. if (!KMManager.isTestMode() && ( - 0 != (context.getApplicationInfo().flags & ApplicationInfo.FLAG_DEBUGGABLE) - || KMManager.getTier(null) != KMManager.Tier.STABLE + (context.getApplicationInfo().flags & ApplicationInfo.FLAG_DEBUGGABLE) != 0 || + KMManager.getTier(null) != KMManager.Tier.STABLE )) { // Enable debugging of WebView via adb. Not used during unit tests // Refer: https://developer.chrome.com/docs/devtools/remote-debugging/webviews/#configure_webviews_for_debugging