From 0c78fe5f1256489129e0f447ed5d87d4be308257 Mon Sep 17 00:00:00 2001
From: Aleksandras Kostarevas <aleks076@protonmail.com>
Date: Wed, 28 Aug 2024 20:09:36 +0300
Subject: [PATCH] Fix hints and outputText

---
 java/src/org/futo/inputmethod/keyboard/Key.kt          | 10 +++++++++-
 .../org/futo/inputmethod/v2keyboard/LayoutEngine.kt    |  4 +++-
 .../org/futo/inputmethod/v2keyboard/TemplateKeys.kt    |  2 +-
 3 files changed, 13 insertions(+), 3 deletions(-)

diff --git a/java/src/org/futo/inputmethod/keyboard/Key.kt b/java/src/org/futo/inputmethod/keyboard/Key.kt
index ed8c5dd43..3d92ce087 100644
--- a/java/src/org/futo/inputmethod/keyboard/Key.kt
+++ b/java/src/org/futo/inputmethod/keyboard/Key.kt
@@ -129,7 +129,7 @@ data class Key(
     val hintLabel: String? = null,
 
     /** Hint icon to display instead of hint label. Icon takes precedence over a label  */
-    val hintIconId: String? = null,
+    val hintIconId: String? = if(hintLabel?.isNotEmpty() == true) { "" } else { null },
 
     /** Flags of the label  */
     val labelFlags: Int,
@@ -190,6 +190,14 @@ data class Key(
     /** Key is enabled and responds on press  */
     val isEnabled: Boolean = code != Constants.CODE_UNSPECIFIED,
 ) {
+    /** Validation */
+    init {
+        assert((code == Constants.CODE_OUTPUT_TEXT && outputText != null) ||
+                (code != Constants.CODE_OUTPUT_TEXT && outputText == null)) {
+            "Output text validation failed: $code $outputText"
+        }
+    }
+
     /** The current pressed state of this key  */
     private var mPressed = false
 
diff --git a/java/src/org/futo/inputmethod/v2keyboard/LayoutEngine.kt b/java/src/org/futo/inputmethod/v2keyboard/LayoutEngine.kt
index 8e455f6f9..bb6780850 100644
--- a/java/src/org/futo/inputmethod/v2keyboard/LayoutEngine.kt
+++ b/java/src/org/futo/inputmethod/v2keyboard/LayoutEngine.kt
@@ -503,7 +503,9 @@ data class LayoutEngine(
             labelFlags = data.labelFlags,
             moreKeys = data.moreKeys,
             moreKeysColumnAndFlags = data.moreKeyFlags,
-            visualStyle = data.style
+            visualStyle = data.style,
+            outputText = data.outputText,
+            hintLabel = data.hint.ifEmpty { null }
         )
 
         params.onAddKey(key)
diff --git a/java/src/org/futo/inputmethod/v2keyboard/TemplateKeys.kt b/java/src/org/futo/inputmethod/v2keyboard/TemplateKeys.kt
index a95851393..5d4a2f35e 100644
--- a/java/src/org/futo/inputmethod/v2keyboard/TemplateKeys.kt
+++ b/java/src/org/futo/inputmethod/v2keyboard/TemplateKeys.kt
@@ -159,7 +159,7 @@ data class EnterKey(
             repeatable            = false,
             moreKeyFlags          = moreKeyFlags,
             countsToKeyCoordinate = false,
-            hint                  = "",
+            hint                  = " ",
             labelFlags            = 0
         )
     }
-- 
GitLab