abouttreesummaryrefslogcommitdiff
path: root/srcs/juloo.keyboard2/Utils.java
diff options
context:
space:
mode:
authorJules Aguillon2023-12-30 00:56:55 +0100
committerJules Aguillon2023-12-30 00:56:55 +0100
commit51a41ec90af505b153cc7a016de3c1e8a18dc427 (patch)
treed8e0464eadb3032c36192c483370d5c720fe43ae /srcs/juloo.keyboard2/Utils.java
parent7e7a5e4425a7825a9b0d899d6d13710acae82600 (diff)
downloadunexpected-keyboard-51a41ec90af505b153cc7a016de3c1e8a18dc427.tar.gz
unexpected-keyboard-51a41ec90af505b153cc7a016de3c1e8a18dc427.zip
Voice IME chooser popup
Bring a popup for choosing the voice IME when the voice key is pressed for the first time or the list of voice IMEs installed on the device change. A preference stores the last selected IME and the last seen list of IMEs.
Diffstat (limited to 'srcs/juloo.keyboard2/Utils.java')
-rw-r--r--srcs/juloo.keyboard2/Utils.java30
1 files changed, 30 insertions, 0 deletions
diff --git a/srcs/juloo.keyboard2/Utils.java b/srcs/juloo.keyboard2/Utils.java
new file mode 100644
index 0000000..cd28dfa
--- /dev/null
+++ b/srcs/juloo.keyboard2/Utils.java
@@ -0,0 +1,30 @@
+package juloo.keyboard2;
+
+import android.app.AlertDialog;
+import android.os.IBinder;
+import android.view.Window;
+import android.view.WindowManager;
+
+class Utils
+{
+ /** Turn the first letter of a string uppercase. */
+ public static String capitalize_string(String s)
+ {
+ // Make sure not to cut a code point in half
+ int i = s.offsetByCodePoints(0, 1);
+ return s.substring(0, i).toUpperCase() + s.substring(i);
+ }
+
+ /** Like [dialog.show()] but properly configure layout params when called
+ from an IME. [token] is the input view's [getWindowToken()]. */
+ public static void show_dialog_on_ime(AlertDialog dialog, IBinder token)
+ {
+ Window win = dialog.getWindow();
+ WindowManager.LayoutParams lp = win.getAttributes();
+ lp.token = token;
+ lp.type = WindowManager.LayoutParams.TYPE_APPLICATION_ATTACHED_DIALOG;
+ win.setAttributes(lp);
+ win.addFlags(WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM);
+ dialog.show();
+ }
+}