diff options
| author | Po Lu | 2024-03-26 10:11:26 +0800 |
|---|---|---|
| committer | Po Lu | 2024-03-26 10:11:26 +0800 |
| commit | 728bf2c9e5353e68b16808ae455223549c16efc6 (patch) | |
| tree | ce2a4aaf1081bab52fb7b4f2e6b7a312ce9da5ba /java | |
| parent | 7fba25cf5344f5c3507aedf59e6ae099e7662508 (diff) | |
| download | emacs-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.java | 7 | ||||
| -rw-r--r-- | java/org/gnu/emacs/EmacsView.java | 9 |
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]; |