From ef8e8107af8e443699cc9630c10d2421e7ae5612 Mon Sep 17 00:00:00 2001 From: Meng-Heng Date: Thu, 12 Dec 2024 20:06:07 +0700 Subject: [PATCH 01/15] feat: display playable video on the website More on: #1712: --- developer/docs/help/guides/intro.md | 4 +++- mac/docs/help/start/install-keyboard.md | 4 +++- mac/docs/help/start/install-keyman.md | 4 +++- 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/developer/docs/help/guides/intro.md b/developer/docs/help/guides/intro.md index fd72c898f9..ae55d32739 100644 --- a/developer/docs/help/guides/intro.md +++ b/developer/docs/help/guides/intro.md @@ -13,7 +13,9 @@ There are two core applications included in Keyman Developer: the Keyman Developer IDE (formerly called TIKE), and the command line compiler kmc. [Watch a video](https://youtu.be/kwhgx_eX4Es) that highlights some of -the Keyman Developer features. +the Keyman Developer 14.0 features: + +:Keyman Developer 14.0 Webinar ## Keyman Developer IDE diff --git a/mac/docs/help/start/install-keyboard.md b/mac/docs/help/start/install-keyboard.md index c8f2aa025a..5656a100c5 100644 --- a/mac/docs/help/start/install-keyboard.md +++ b/mac/docs/help/start/install-keyboard.md @@ -8,7 +8,9 @@ You must have a Keyman keyboard installed to type with Keyman for macOS in your Here's how to download and install a Keyman keyboard within Keyman for macOS: -[![](../mac_images/video.png) Watch Video](https://youtu.be/VirHygx8iqg) for installing the Khmer Angkor keyboard for Keyman for macOS. +[![](../mac_images/video.png) Watch Video](https://youtu.be/VirHygx8iqg) for installing the Khmer Angkor keyboard for Keyman for macOS: + +:Tutorial: Install Khmer Angkor Keyboard on Keyman for macOS 1. Choose Keyman from the Input menu in the menu bar. 2. Open Keyman Configuration, from the Configuration link under Keyman in the Input menu. diff --git a/mac/docs/help/start/install-keyman.md b/mac/docs/help/start/install-keyman.md index a3bbdb0733..8a4f93aeab 100644 --- a/mac/docs/help/start/install-keyman.md +++ b/mac/docs/help/start/install-keyman.md @@ -5,7 +5,9 @@ title: Install Keyman for macOS *Keyman for macOS* is available for [download](https://keyman.com/mac/download) as a standard Apple Disk Image (.dmg) file. It should be installed according to the following instructions. -[![Play](../mac_images/video.png) Watch Video](https://youtu.be/7Ax71QeUNfo) +[![Play](../mac_images/video.png) Watch Video](https://youtu.be/7Ax71QeUNfo): + +:Tutorial: Install Keyman for macOS 1. Double click the DMG file to open it in Finder. 2. Double click the **Install Keyman** icon to open the Keyman installer. From 1bd3aa7cd2a1e688fe7ae545f3900bbd70bed8de Mon Sep 17 00:00:00 2001 From: MengHeng <90595388+Meng-Heng@users.noreply.github.com> Date: Mon, 16 Dec 2024 13:22:24 +0700 Subject: [PATCH 02/15] Apply suggestions from code review --- mac/docs/help/start/install-keyboard.md | 2 +- mac/docs/help/start/install-keyman.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/mac/docs/help/start/install-keyboard.md b/mac/docs/help/start/install-keyboard.md index 5656a100c5..bf9310c8bb 100644 --- a/mac/docs/help/start/install-keyboard.md +++ b/mac/docs/help/start/install-keyboard.md @@ -8,7 +8,7 @@ You must have a Keyman keyboard installed to type with Keyman for macOS in your Here's how to download and install a Keyman keyboard within Keyman for macOS: -[![](../mac_images/video.png) Watch Video](https://youtu.be/VirHygx8iqg) for installing the Khmer Angkor keyboard for Keyman for macOS: +![](../mac_images/video.png) Watch this video for installing the Khmer Angkor keyboard for Keyman for macOS (0:51) :Tutorial: Install Khmer Angkor Keyboard on Keyman for macOS diff --git a/mac/docs/help/start/install-keyman.md b/mac/docs/help/start/install-keyman.md index 8a4f93aeab..b8aaa3a19d 100644 --- a/mac/docs/help/start/install-keyman.md +++ b/mac/docs/help/start/install-keyman.md @@ -5,7 +5,7 @@ title: Install Keyman for macOS *Keyman for macOS* is available for [download](https://keyman.com/mac/download) as a standard Apple Disk Image (.dmg) file. It should be installed according to the following instructions. -[![Play](../mac_images/video.png) Watch Video](https://youtu.be/7Ax71QeUNfo): +![Play](../mac_images/video.png) Watch Video (0:33) :Tutorial: Install Keyman for macOS From 8e7d920d433b31242bbadaf95c13e69c112a6179 Mon Sep 17 00:00:00 2001 From: Meng-Heng Date: Mon, 16 Dec 2024 13:27:54 +0700 Subject: [PATCH 03/15] fix: modifies video's description in docs and adds duration --- developer/docs/help/guides/intro.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/developer/docs/help/guides/intro.md b/developer/docs/help/guides/intro.md index ae55d32739..d9d6fa116c 100644 --- a/developer/docs/help/guides/intro.md +++ b/developer/docs/help/guides/intro.md @@ -12,8 +12,7 @@ Linux. There are two core applications included in Keyman Developer: the Keyman Developer IDE (formerly called TIKE), and the command line compiler kmc. -[Watch a video](https://youtu.be/kwhgx_eX4Es) that highlights some of -the Keyman Developer 14.0 features: +Watch a video that highlights some of the Keyman Developer 14.0 features (57:23) :Keyman Developer 14.0 Webinar From 7b5f69be57c93f15b9239cc6c3fed6188cd0d9e1 Mon Sep 17 00:00:00 2001 From: rc-swag <58423624+rc-swag@users.noreply.github.com> Date: Fri, 20 Dec 2024 14:42:19 +1000 Subject: [PATCH 04/15] chore(windows): add bcp47 code and tips to diagnostic Add HKCU\Control Panel\International to diagnosit report the xml was already there. I just needed to modify the xlst to display the information. --- windows/src/engine/tsysinfo/si_language.xslt | 65 ++++++++++++++++++-- 1 file changed, 59 insertions(+), 6 deletions(-) diff --git a/windows/src/engine/tsysinfo/si_language.xslt b/windows/src/engine/tsysinfo/si_language.xslt index c3015aec98..2b4973c962 100644 --- a/windows/src/engine/tsysinfo/si_language.xslt +++ b/windows/src/engine/tsysinfo/si_language.xslt @@ -34,6 +34,38 @@ +

User Profile Options

+ + + + + + + + + + + + + + +
LanguagesShowAutoCorrectionShowTextPredictionShowCasingShowShiftLockInputMethodOverride
+ +

BCP47 Codes

+ + + + + + + + + + + + +
BCP47 CodeTransient LangIdCached Language Name{LangID}:{Keyboard Layout ID}
+

Windows Keyboard Hotkeys

@@ -88,7 +120,7 @@ - + @@ -96,9 +128,9 @@ - + - + @@ -114,6 +146,27 @@ + + + + + + + + + + + + + + + + 0000 @@ -125,7 +178,7 @@ - + @@ -166,7 +219,7 @@ No - + - + From 436a47351c8d6a1e2eb86a8ea1bd68c17268a9e5 Mon Sep 17 00:00:00 2001 From: rc-swag <58423624+rc-swag@users.noreply.github.com> Date: Mon, 6 Jan 2025 15:51:21 +1000 Subject: [PATCH 05/15] fix(windows): add language btn inside pop-window The add languages and close button remain inside the pop-up window when the main configuration window has been resized to be different from the default. --- windows/src/desktop/kmshell/xml/config.css | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/windows/src/desktop/kmshell/xml/config.css b/windows/src/desktop/kmshell/xml/config.css index 851964112b..84096c0d30 100644 --- a/windows/src/desktop/kmshell/xml/config.css +++ b/windows/src/desktop/kmshell/xml/config.css @@ -1199,10 +1199,7 @@ th } .list_languages_add { - padding-top: 10px; - position: fixed; - top: 223px; /* Have to use fixed position can't use flex or grid inside a fixed child */ - right: 281px; + padding: 110px 0px 0px 180px; } .modify .keyboard_language { From dd43935a133f9c37c341218bc19e2ffc0bbd605b Mon Sep 17 00:00:00 2001 From: Eberhard Beilharz Date: Mon, 6 Jan 2025 16:09:15 +0100 Subject: [PATCH 06/15] docs: clarify that sections in KMX file might not be aligned See: #12844 --- docs/file-formats/kmx-file-format.md | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/docs/file-formats/kmx-file-format.md b/docs/file-formats/kmx-file-format.md index 67288bc123..e13575ae4a 100644 --- a/docs/file-formats/kmx-file-format.md +++ b/docs/file-formats/kmx-file-format.md @@ -18,11 +18,14 @@ source files. zeroed. Note that `COMP_KEYBOARD_KMXPLUS` must follow immediately after `COMP_KEYBOARD` with no empty space (that is at byte offset 64). -A .kmx file is essentially a 32-bit memory mapped file. In a 32-bit process, the +A .kmx file is essentially a 32-bit memory mapped file, however there is +no guarantee that all sections start at a 32-bit boundary. +In a 32-bit process on architectures that use flexible alignment, the file can be loaded into a memory buffer, and (assuming the file is valid), all offset values in the file can be rewritten into pointers by adding the base of -the memory buffer to them. (In a 64-bit process, a fixup is needed to make space -for 64-bit pointers.) +the memory buffer to them. (In a 64-bit process or on architectures that +use strict alignment (like emscripten), a fixup is needed to make space +for aligned pointers.) ## `COMP_KEYBOARD`: KMX header From 94cf821a4d8db30c7a14a21ffd5198547133bee8 Mon Sep 17 00:00:00 2001 From: Eberhard Beilharz Date: Mon, 6 Jan 2025 17:41:22 +0100 Subject: [PATCH 07/15] feat(web): add KeymanWeb API for auto-correct Part-of: #12203 --- android/KMEA/app/src/main/assets/android-host.js | 4 ++-- web/src/engine/main/src/headless/languageProcessor.ts | 9 +++++++++ 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/android/KMEA/app/src/main/assets/android-host.js b/android/KMEA/app/src/main/assets/android-host.js index 21f783ffc5..5a25367223 100644 --- a/android/KMEA/app/src/main/assets/android-host.js +++ b/android/KMEA/app/src/main/assets/android-host.js @@ -241,11 +241,11 @@ function enableSuggestions(model, suggestionType) { [true, true, false], // 2 = SuggestionType.PREDICTIONS_WITH_CORRECTIONS [true, true, true], // 3 = SuggestionType.PREDICTIONS_WITH_AUTO_CORRECT ]; - const t = suggestionSettings[suggestionType] + const t = suggestionSettings[suggestionType] ? suggestionSettings[suggestionType] : suggestionSettings[0]; keyman.core.languageProcessor.mayPredict = t[0]; keyman.core.languageProcessor.maySuggest = t[1]; - // keyman.core.languageProcessor.mayAutoCorrect = t[2]; + keyman.core.languageProcessor.mayAutoCorrect = t[2]; registerModel(model); } diff --git a/web/src/engine/main/src/headless/languageProcessor.ts b/web/src/engine/main/src/headless/languageProcessor.ts index 9cb73def58..82c9a0392c 100644 --- a/web/src/engine/main/src/headless/languageProcessor.ts +++ b/web/src/engine/main/src/headless/languageProcessor.ts @@ -21,6 +21,7 @@ export class LanguageProcessor extends EventEmitter { private _mayPredict: boolean = true; private _mayCorrect: boolean = true; + private _mayAutoCorrect: boolean = false; // initialized to false - #12767 private _state: StateChangeEnum = 'inactive'; @@ -402,6 +403,14 @@ export class LanguageProcessor extends EventEmitter { this._mayCorrect = flag; } + public get mayAutoCorrect() { + return this._mayAutoCorrect; + } + + public set mayAutoCorrect(flag: boolean) { + this._mayAutoCorrect = flag; + } + public get wordbreaksAfterSuggestions() { return this.configuration.wordbreaksAfterSuggestions; } From 2b9d4e6c421b6102a2f7a56595ea4dce1929717d Mon Sep 17 00:00:00 2001 From: Eberhard Beilharz Date: Mon, 6 Jan 2025 17:42:24 +0100 Subject: [PATCH 08/15] chore(web): disable auto-correct Fixes: #12767 --- .../interfaces/src/prediction/languageProcessor.interface.ts | 2 ++ web/src/engine/interfaces/src/prediction/predictionContext.ts | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/web/src/engine/interfaces/src/prediction/languageProcessor.interface.ts b/web/src/engine/interfaces/src/prediction/languageProcessor.interface.ts index b26125982e..eafdac2d39 100644 --- a/web/src/engine/interfaces/src/prediction/languageProcessor.interface.ts +++ b/web/src/engine/interfaces/src/prediction/languageProcessor.interface.ts @@ -71,4 +71,6 @@ export interface LanguageProcessorSpec extends EventEmitter; get wordbreaksAfterSuggestions(): boolean; + + get mayAutoCorrect(): boolean; } diff --git a/web/src/engine/interfaces/src/prediction/predictionContext.ts b/web/src/engine/interfaces/src/prediction/predictionContext.ts index b131752d96..ec632a5058 100644 --- a/web/src/engine/interfaces/src/prediction/predictionContext.ts +++ b/web/src/engine/interfaces/src/prediction/predictionContext.ts @@ -324,7 +324,7 @@ export default class PredictionContext extends EventEmitter Date: Mon, 6 Jan 2025 13:13:35 -0500 Subject: [PATCH 09/15] auto: increment master version to 18.0.164 --- HISTORY.md | 4 ++++ VERSION.md | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/HISTORY.md b/HISTORY.md index 899cc2a5df..b4fd597130 100644 --- a/HISTORY.md +++ b/HISTORY.md @@ -1,5 +1,9 @@ # Keyman Version History +## 18.0.163 alpha 2025-01-06 + +* docs: clarify that sections in KMX file might not be aligned (#12856) + ## 18.0.162 alpha 2024-12-19 * fix(mac): standardize interaction between OSK and physical keyboard (#12836) diff --git a/VERSION.md b/VERSION.md index 99025bb930..70d8e6a0b1 100644 --- a/VERSION.md +++ b/VERSION.md @@ -1 +1 @@ -18.0.163 \ No newline at end of file +18.0.164 \ No newline at end of file From 2e1acd478aaa68bcf86437101a8c67ce82176b93 Mon Sep 17 00:00:00 2001 From: rc-swag <58423624+rc-swag@users.noreply.github.com> Date: Tue, 7 Jan 2025 12:18:31 +1000 Subject: [PATCH 10/15] fix(windows): add flex-grow to control div It turns out flex-grow was the better way to insure the buttons are placed at the correct spot on the pop-up. --- .../Keyman.System.InstallKeyboards.pas | 34 +++++++++++++++++++ windows/src/desktop/kmshell/xml/config.css | 9 ++++- .../kmshell/xml/keyman_keyboardlist.xsl | 2 +- 3 files changed, 43 insertions(+), 2 deletions(-) create mode 100644 windows/src/desktop/kmshell/install/Keyman.System.InstallKeyboards.pas diff --git a/windows/src/desktop/kmshell/install/Keyman.System.InstallKeyboards.pas b/windows/src/desktop/kmshell/install/Keyman.System.InstallKeyboards.pas new file mode 100644 index 0000000000..bc7306f9ea --- /dev/null +++ b/windows/src/desktop/kmshell/install/Keyman.System.InstallKeyboards.pas @@ -0,0 +1,34 @@ +unit Keyman.System.InstallKeyboards; + +interface + +implementation + +uses + System.WideStrUtils, + Vcl.Dialogs, + Winapi.ShellApi, + Winapi.Windows, + Winapi.WinINet, + + GlobalProxySettings, + KLog, + keymanapi_TLB; + + + function TOnlineUpdateCheck.DoInstallPackage(Package: TOnlineUpdateCheckParamsPackage): Boolean; +var + FPackage: IKeymanPackageFile2; +begin + Result := True; + + FPackage := kmcom.Packages.GetPackageFromFile(Package.SavePath) as IKeymanPackageFile2; + FPackage.Install2(True); // Force overwrites existing package and leaves most settings for it intact + FPackage := nil; + + kmcom.Refresh; + kmcom.Apply; + System.SysUtils.DeleteFile(Package.SavePath); +end; + +end. diff --git a/windows/src/desktop/kmshell/xml/config.css b/windows/src/desktop/kmshell/xml/config.css index 84096c0d30..ac9ddcee0c 100644 --- a/windows/src/desktop/kmshell/xml/config.css +++ b/windows/src/desktop/kmshell/xml/config.css @@ -614,6 +614,7 @@ table tr { display: flex; flex-direction: column; + height: 200px; gap: 4px; } .list_languages_title @@ -622,6 +623,11 @@ table tr } /* keyboard languages */ +.keyboard_language_list +{ + flex-grow:1 +} + .keyboard_language { display: flex; @@ -1199,7 +1205,8 @@ th } .list_languages_add { - padding: 110px 0px 0px 180px; + padding-bottom: 10px; + align-self: flex-end; } .modify .keyboard_language { diff --git a/windows/src/desktop/kmshell/xml/keyman_keyboardlist.xsl b/windows/src/desktop/kmshell/xml/keyman_keyboardlist.xsl index f61c1b3f7f..5f15a88d0a 100644 --- a/windows/src/desktop/kmshell/xml/keyman_keyboardlist.xsl +++ b/windows/src/desktop/kmshell/xml/keyman_keyboardlist.xsl @@ -394,7 +394,7 @@
-
+
1 From 438aac58872182031569ff6a8b7b0233f6801417 Mon Sep 17 00:00:00 2001 From: rc-swag <58423624+rc-swag@users.noreply.github.com> Date: Tue, 7 Jan 2025 12:48:08 +1000 Subject: [PATCH 11/15] fix(windows): revert accidental file addition --- .../Keyman.System.InstallKeyboards.pas | 34 ------------------- 1 file changed, 34 deletions(-) delete mode 100644 windows/src/desktop/kmshell/install/Keyman.System.InstallKeyboards.pas diff --git a/windows/src/desktop/kmshell/install/Keyman.System.InstallKeyboards.pas b/windows/src/desktop/kmshell/install/Keyman.System.InstallKeyboards.pas deleted file mode 100644 index bc7306f9ea..0000000000 --- a/windows/src/desktop/kmshell/install/Keyman.System.InstallKeyboards.pas +++ /dev/null @@ -1,34 +0,0 @@ -unit Keyman.System.InstallKeyboards; - -interface - -implementation - -uses - System.WideStrUtils, - Vcl.Dialogs, - Winapi.ShellApi, - Winapi.Windows, - Winapi.WinINet, - - GlobalProxySettings, - KLog, - keymanapi_TLB; - - - function TOnlineUpdateCheck.DoInstallPackage(Package: TOnlineUpdateCheckParamsPackage): Boolean; -var - FPackage: IKeymanPackageFile2; -begin - Result := True; - - FPackage := kmcom.Packages.GetPackageFromFile(Package.SavePath) as IKeymanPackageFile2; - FPackage.Install2(True); // Force overwrites existing package and leaves most settings for it intact - FPackage := nil; - - kmcom.Refresh; - kmcom.Apply; - System.SysUtils.DeleteFile(Package.SavePath); -end; - -end. From 9e41c1dd463c0a902d30373e5e0aebb8fa48b332 Mon Sep 17 00:00:00 2001 From: Darcy Wong Date: Tue, 7 Jan 2025 10:07:31 +0700 Subject: [PATCH 12/15] fix(android/engine): Cleanup deprecated keys Remove deprecated keys no longer used from #4462 during Keyman 14.0 --- .../app/src/main/java/com/keyman/engine/KMManager.java | 7 +------ .../app/src/test/java/com/keyman/engine/KMManagerTest.java | 1 - 2 files changed, 1 insertion(+), 7 deletions(-) diff --git a/android/KMEA/app/src/main/java/com/keyman/engine/KMManager.java b/android/KMEA/app/src/main/java/com/keyman/engine/KMManager.java index e776476aff..bc02ea25aa 100644 --- a/android/KMEA/app/src/main/java/com/keyman/engine/KMManager.java +++ b/android/KMEA/app/src/main/java/com/keyman/engine/KMManager.java @@ -249,7 +249,7 @@ public final class KMManager { public final static String predictionPrefSuffix = ".mayPredict"; public final static String correctionPrefSuffix = ".mayCorrect"; - public final static String autoCorrectionPrefSuffix = ".mayAutoCorect"; + public final static String autoCorrectionPrefSuffix = ".mayAutoCorrect"; // Special override for when the keyboard may have haptic feedback when typing. // haptic feedback disabled for hardware keystrokes @@ -305,11 +305,6 @@ public final class KMManager { public static final String KMKey_LexicalModelVersion = "lmVersion"; public static final String KMKey_LexicalModelPackageFilename = "kmpPackageFilename"; - // DEPRECATED keys - public static final String KMKey_CustomKeyboard = "CustomKeyboard"; - public static final String KMKey_CustomModel = "CustomModel"; - public static final String KMKey_HelpLink = "helpLink"; - // Keyman internal keys protected static final String KMKey_ShouldShowHelpBubble = "ShouldShowHelpBubble"; diff --git a/android/KMEA/app/src/test/java/com/keyman/engine/KMManagerTest.java b/android/KMEA/app/src/test/java/com/keyman/engine/KMManagerTest.java index 59a0237b37..91fc7dd370 100644 --- a/android/KMEA/app/src/test/java/com/keyman/engine/KMManagerTest.java +++ b/android/KMEA/app/src/test/java/com/keyman/engine/KMManagerTest.java @@ -126,7 +126,6 @@ public class KMManagerTest { HashMap kmInfo = new HashMap(); kmInfo.put(KMManager.KMKey_PackageID, "khmer_angkor"); kmInfo.put(KMManager.KMKey_KeyboardID, "khmer_angkor"); - kmInfo.put(KMManager.KMKey_CustomKeyboard, "Y"); kmInfo.put(KMManager.KMKey_LanguageID, "km"); kmInfo.put(KMManager.KMKey_KeyboardName, "Khmer Angkor"); kmInfo.put(KMManager.KMKey_LanguageName, "Central Khmer"); From 1d86a0d2174b17f2514690ef13618105beb71ebb Mon Sep 17 00:00:00 2001 From: Darcy Wong Date: Tue, 7 Jan 2025 10:44:00 +0700 Subject: [PATCH 13/15] fix(android/engine): Remove deprecated addKeyboard call --- .../java/com/keyman/engine/KMManager.java | 20 ------------------- 1 file changed, 20 deletions(-) diff --git a/android/KMEA/app/src/main/java/com/keyman/engine/KMManager.java b/android/KMEA/app/src/main/java/com/keyman/engine/KMManager.java index bc02ea25aa..cc12b36dca 100644 --- a/android/KMEA/app/src/main/java/com/keyman/engine/KMManager.java +++ b/android/KMEA/app/src/main/java/com/keyman/engine/KMManager.java @@ -1709,26 +1709,6 @@ public final class KMManager { return KeyboardPickerActivity.addKeyboard(context, keyboardInfo); } - // Intend to deprecate in Keyman 15.0 - public static boolean addKeyboard(Context context, HashMap keyboardInfo) { - String packageID = keyboardInfo.get(KMManager.KMKey_PackageID); - String keyboardID = keyboardInfo.get(KMManager.KMKey_KeyboardID); - String keyboardName = keyboardInfo.get(KMManager.KMKey_KeyboardName); - String languageID = keyboardInfo.get(KMManager.KMKey_LanguageID); - String languageName = keyboardInfo.get(KMManager.KMKey_LanguageName); - String version = keyboardInfo.get(KMManager.KMKey_KeyboardVersion); - String helpLink = keyboardInfo.get(KMManager.KMKey_CustomHelpLink); - String kmpLink = MapCompat.getOrDefault(keyboardInfo, KMManager.KMKey_KMPLink, ""); - String font = keyboardInfo.get(KMManager.KMKey_Font); - String oskFont = keyboardInfo.get(KMManager.KMKey_OskFont); - boolean isNewKeyboard = true; - - Keyboard k = new Keyboard(packageID, keyboardID, keyboardName, - languageID, languageName, version, helpLink, kmpLink, - isNewKeyboard, font, oskFont); - return addKeyboard(context, k); - } - public static boolean removeKeyboard(Context context, int position) { return KeyboardPickerActivity.removeKeyboard(context, position); } From 2454be9f5feeab2b2650fbbb0f5b80b366097c93 Mon Sep 17 00:00:00 2001 From: Darcy Wong Date: Tue, 7 Jan 2025 14:22:02 +0700 Subject: [PATCH 14/15] fix(android/engine): Update usage in FunctionalTestHelper --- .../keyman/engine/view/FunctionalTestHelper.java | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/android/KMEA/app/src/test/java/com/keyman/engine/view/FunctionalTestHelper.java b/android/KMEA/app/src/test/java/com/keyman/engine/view/FunctionalTestHelper.java index b56a4063eb..0d4b7c81de 100644 --- a/android/KMEA/app/src/test/java/com/keyman/engine/view/FunctionalTestHelper.java +++ b/android/KMEA/app/src/test/java/com/keyman/engine/view/FunctionalTestHelper.java @@ -66,7 +66,21 @@ public class FunctionalTestHelper { Assert.assertEquals(installedKbds.size(),1); - KMManager.addKeyboard(ApplicationProvider.getApplicationContext(),(HashMap) installedKbds.get(0)); + HashMap map = (HashMap)installedKbds.get(0); + Keyboard keyboard = new Keyboard( + map.get(KMManager.KMKey_PackageID), + map.get(KMManager.KMKey_KeyboardID), + map.get(KMManager.KMKey_KeyboardName), + map.get(KMManager.KMKey_LanguageID), + map.get(KMManager.KMKey_LanguageName), + map.get(KMManager.KMKey_KeyboardVersion), + map.get(KMManager.KMKey_CustomHelpLink), + map.get(KMManager.KMKey_KMPLink), + true, + null, + null + ); + KMManager.addKeyboard(ApplicationProvider.getApplicationContext(), keyboard); } From ad14da7029235106e4aa389eea17a49360156da6 Mon Sep 17 00:00:00 2001 From: Keyman Build Agent Date: Wed, 8 Jan 2025 13:03:27 -0500 Subject: [PATCH 15/15] auto: increment master version to 18.0.165 --- HISTORY.md | 7 +++++++ VERSION.md | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/HISTORY.md b/HISTORY.md index b4fd597130..4e973c3864 100644 --- a/HISTORY.md +++ b/HISTORY.md @@ -1,5 +1,12 @@ # Keyman Version History +## 18.0.164 alpha 2025-01-08 + +* fix(windows): add language and close button fit inside pop-window (#12855) +* chore(windows): add bcp47 code and tips to diagnostic (#12843) +* fix(android/engine): Cleanup KMManager API keys and calls (#12861) +* docs(developer,mac): add playable video links to the help documentation (#12828) + ## 18.0.163 alpha 2025-01-06 * docs: clarify that sections in KMX file might not be aligned (#12856) diff --git a/VERSION.md b/VERSION.md index 70d8e6a0b1..6a2a803540 100644 --- a/VERSION.md +++ b/VERSION.md @@ -1 +1 @@ -18.0.164 \ No newline at end of file +18.0.165 \ No newline at end of file
Keyman system shadow keyboard
+ + + , + +