aboutsummaryrefslogtreecommitdiffstats
path: root/java
diff options
context:
space:
mode:
authorPo Lu2024-03-26 10:11:26 +0800
committerPo Lu2024-03-26 10:11:26 +0800
commit728bf2c9e5353e68b16808ae455223549c16efc6 (patch)
treece2a4aaf1081bab52fb7b4f2e6b7a312ce9da5ba /java
parent7fba25cf5344f5c3507aedf59e6ae099e7662508 (diff)
downloademacs-728bf2c9e5353e68b16808ae455223549c16efc6.tar.gz
emacs-728bf2c9e5353e68b16808ae455223549c16efc6.zip
Prevent passwords from being recorded during text conversion
* doc/lispref/commands.texi (Misc Events): Document new value of text-conversion-style. * java/org/gnu/emacs/EmacsService.java (EmacsService) <IC_MODE_PASSWORD>: New constant. * java/org/gnu/emacs/EmacsView.java (onCreateInputConnection): Set TYPE_TEXT_VARIATION_PASSWORD and IME_FLAG_FORCE_ASII if mode is IC_MODE_PASSWORD. * lisp/subr.el (read-passwd): Set text-conversion-style to `password'. * src/androidgui.h (enum android_ic_mode): New value ANDROID_IC_MODE_PASSWORD. * src/androidterm.c (android_reset_conversion): Handle `password'. * src/buffer.c (syms_of_buffer) <&BVAR (current_buffer, text_conversion_style)>: Update doc string. * src/textconv.c (syms_of_textconv) <Qpassword>: New DEFSYM. <Vtext_conversion_edits>: Fix typos in doc string.
Diffstat (limited to 'java')
-rw-r--r--java/org/gnu/emacs/EmacsService.java7
-rw-r--r--java/org/gnu/emacs/EmacsView.java9
2 files changed, 12 insertions, 4 deletions
diff --git a/java/org/gnu/emacs/EmacsService.java b/java/org/gnu/emacs/EmacsService.java
index 4e863c750d3..446cd26a3dd 100644
--- a/java/org/gnu/emacs/EmacsService.java
+++ b/java/org/gnu/emacs/EmacsService.java
@@ -114,9 +114,10 @@ public final class EmacsService extends Service
114 private ContentResolver resolver; 114 private ContentResolver resolver;
115 115
116 /* Keep this in synch with androidgui.h. */ 116 /* Keep this in synch with androidgui.h. */
117 public static final int IC_MODE_NULL = 0; 117 public static final int IC_MODE_NULL = 0;
118 public static final int IC_MODE_ACTION = 1; 118 public static final int IC_MODE_ACTION = 1;
119 public static final int IC_MODE_TEXT = 2; 119 public static final int IC_MODE_TEXT = 2;
120 public static final int IC_MODE_PASSWORD = 3;
120 121
121 /* Display metrics used by font backends. */ 122 /* Display metrics used by font backends. */
122 public DisplayMetrics metrics; 123 public DisplayMetrics metrics;
diff --git a/java/org/gnu/emacs/EmacsView.java b/java/org/gnu/emacs/EmacsView.java
index 8398e4b784c..5b922212c0b 100644
--- a/java/org/gnu/emacs/EmacsView.java
+++ b/java/org/gnu/emacs/EmacsView.java
@@ -838,9 +838,16 @@ public final class EmacsView extends ViewGroup
838 EmacsNative.requestSelectionUpdate (window.handle); 838 EmacsNative.requestSelectionUpdate (window.handle);
839 } 839 }
840 840
841 if (mode == EmacsService.IC_MODE_ACTION) 841 if (mode == EmacsService.IC_MODE_ACTION
842 || mode == EmacsService.IC_MODE_PASSWORD)
842 info.imeOptions |= EditorInfo.IME_ACTION_DONE; 843 info.imeOptions |= EditorInfo.IME_ACTION_DONE;
843 844
845 if (mode == EmacsService.IC_MODE_PASSWORD)
846 {
847 info.imeOptions |= EditorInfo.IME_FLAG_FORCE_ASCII;
848 info.inputType |= InputType.TYPE_TEXT_VARIATION_PASSWORD;
849 }
850
844 /* Set the initial selection fields. */ 851 /* Set the initial selection fields. */
845 info.initialSelStart = selection[0]; 852 info.initialSelStart = selection[0];
846 info.initialSelEnd = selection[1]; 853 info.initialSelEnd = selection[1];