From d25df2c4dea4bccc97044b1baa38f70681cc932b Mon Sep 17 00:00:00 2001 From: Helium314 Date: Sun, 5 Jan 2025 22:21:26 +0100 Subject: [PATCH] remove popup label when the popup key is removed --- app/src/main/java/helium314/keyboard/keyboard/Key.java | 2 +- .../main/java/helium314/keyboard/keyboard/PopopUtil.kt | 9 +++++++++ 2 files changed, 10 insertions(+), 1 deletion(-) create mode 100644 app/src/main/java/helium314/keyboard/keyboard/PopopUtil.kt diff --git a/app/src/main/java/helium314/keyboard/keyboard/Key.java b/app/src/main/java/helium314/keyboard/keyboard/Key.java index edfd089d..3d091797 100644 --- a/app/src/main/java/helium314/keyboard/keyboard/Key.java +++ b/app/src/main/java/helium314/keyboard/keyboard/Key.java @@ -327,7 +327,7 @@ public class Key implements Comparable { // Final attributes. mCode = key.mCode; mLabel = key.mLabel; - mHintLabel = key.mHintLabel; + mHintLabel = PopopUtilKt.findPopupHintLabel(popupKeys, key.mHintLabel); mLabelFlags = key.mLabelFlags; mIconName = key.mIconName; mWidth = key.mWidth; diff --git a/app/src/main/java/helium314/keyboard/keyboard/PopopUtil.kt b/app/src/main/java/helium314/keyboard/keyboard/PopopUtil.kt new file mode 100644 index 00000000..f5cbf138 --- /dev/null +++ b/app/src/main/java/helium314/keyboard/keyboard/PopopUtil.kt @@ -0,0 +1,9 @@ +package helium314.keyboard.keyboard + +import helium314.keyboard.keyboard.internal.PopupKeySpec + +fun findPopupHintLabel(popupKeys: Array?, oldHintLabel: String?): String? { + if (popupKeys == null || oldHintLabel == null) return null + if (popupKeys.any { it.mLabel == oldHintLabel }) return oldHintLabel + return popupKeys.firstOrNull { it.mLabel != null }?.mLabel +} \ No newline at end of file