Commit Graph

13 Commits

Author SHA1 Message Date
Kevin Chyn
1895f8b5f2 Move ImeAwareTextEdit to android.widget
Allows it to be used in more projects

Bug: 154161590

Test: Manually opened each setting that was impacted
Change-Id: Ife59074e5f8ffa76c2c81cca4022ca200bb59526
2020-04-28 15:57:40 -07:00
Yohei Yukawa
e2a7bddbe1 Set flagForceAscii for device password entries
Since the beginning [1], ChooseLockPassword#validatePassword() has never
accepted non-ASCII characters [2].  Hence we can safely specify
EditorInfo#IME_FLAG_FORCE_ASCII so that IMEs can optimize their UX based
on this flag.  Note that EditorInfo#IME_FLAG_FORCE_ASCII is just a hint
for the IME so there should be no behavior change in the system side.

Note also that EditorInfo#IME_FLAG_FORCE_ASCII has been used in KeyGuard
(keyguard_password_view.xml) since JB MR-1 [3] so this flag is considered
to be well tested.

 [1]: 00d2476d8f
 [2]: Only character c where 32 <= c <= 126 is accepted
 [3]: Id75286113771ca1407e9db182172b580f870b612

Test: Run `adb shell dumpsys input_method` when the password entry
      field is focused to make sure that 'imeOptions' parameter
      has 0x80000000 bit. Tested the following scenarios:
       - PIN on a direct-boot disabled device
       - PIN on a direct-boot enabled device
       - Password on a direct-boot disabled device
       - Password on a direct-boot enabled device
Fixes: 27858858
Change-Id: I3075e24c6dac4d49f4d0e56a0d4d8434a323754d
2017-03-28 16:42:17 +00:00
Yohei Yukawa
f6af093e2d Deprecate IMM#showSoftInputUnchecked() part 2
This is the 2nd attempt to have CryptKeeper stop depending on
InputMethodManager#showSoftInputUnchecked() do avoid non-deterministic
behaviors.  Note that the original one [1] was reverted [2] due to
ClassCastException as crypt_keeper_pin_field.xml was not updated to
use ImeAwareEditText.

We have been receiving more and more strange bug reports regarding
the initial IME visibility on CryptKeeper (Bug 31915865, Bug 35198715,
and Bug 36148078).  Most likely we have introduced more bugs before
fixing previous bugs.

As the first step to disentangle multiple problems, this CL addresses
a long standing issue that CryptKeeper relies on @hide internal API
InputMethodManager#showSoftInputUnchecked().  As explained in
Bug 36015425, IMM#showSoftInputUnchecked() is considered harmful in
terms of bypassing standard IME focus handling flows, which prevents
us from taking advantage of historical debugging mechanism that we
have added recently in Bug 35079353.

 [1]: I3cffeec286d9372ff05e85a49b82287cb1add8a2
      4ae46cd1ad
 [2]: I776ad2e6ba0eabacb3d6be6de23ba37fe5ce7bc7
      cf026ead80

Test: Manually verified that Bug 31915865 is still broken but this CL
      does not make it worse.
      1. Flash an image into a non direct-boot device.
      2. Set up a device boot password.
      3. adb reboot
      After the step 3, the software keyboard shows up automatically
      then suddenly disappears (Bug 35198715). Do the same test for
      device boot PIN instead of password.
Bug: 36015425
Change-Id: I182b05d3ff59fb3b4732d60d0d5a464f0e0e0235
2017-03-21 12:38:44 -07:00
Tom Cherry
cf026ead80 Revert "Make IME handling deterministic in CryptKeeper"
This reverts commit 4ae46cd1ad.

Bug: 36148078

Change-Id: I776ad2e6ba0eabacb3d6be6de23ba37fe5ce7bc7
2017-03-15 01:15:49 +00:00
Yohei Yukawa
4ae46cd1ad Make IME handling deterministic in CryptKeeper
We have been receiving more and more strange bug reports regarding
the initial IME visibility on CryptKeeper (Bug 31915865, Bug 35198715,
and Bug 36148078).  Most likely we have introduced more bugs before
fixing previous bugs.

As the first step to disentangle multiple problems, this CL addresses
a long standing issue that CryptKeeper relies on @hide internal API
InputMethodManager#showSoftInputUnchecked().  As explained in
Bug 36015425, IMM#showSoftInputUnchecked() is considered harmful in
terms of bypassing standard IME focus handling flows, which prevents
us from taking advantage of historical debugging mechanism that we
have added recently in Bug 35079353.

Test: Manually verified that Bug 31915865 is still broken but this CL
      does not make it worse.
      1. Flash an image into a non direct-boot device.
      2. Set up a device boot password.
      3. adb reboot
      After the step 3, the software keyboard shows up automatically
      then suddenly disappears (Bug 35198715).
Bug: 36015425
Change-Id: I3cffeec286d9372ff05e85a49b82287cb1add8a2
2017-03-13 22:00:15 +00:00
Paul Lawrence
44985b9ccd Stop long passwords crashing CryptKeeper
Bug: 24017705
Change-Id: Ida157f96f350486d9ec0189c68fff314dc4a90f2
2015-09-16 15:29:57 -07:00
Paul Lawrence
33c4f7b4c7 Set font sizes of typed passwords and pins to match keyguard
Bug: 17887105
Change-Id: I598c6224b501078e9a99c9e73aa1411b430847a9
2015-01-15 15:49:40 -08:00
Sami Tolvanen
d64d05a540 Refactor the duplicate Switch IME button to an include
Move duplicate code for switching input method from crypt_keeper_*_field.xml to an include.

Bug: 16375532
Change-Id: I0f9000d4a8c4bc8751b8cefd98fe429cbb02c37a
2014-10-15 16:53:14 +01:00
Paul Lawrence
aa05738cd2 Final touches to material theme for phones
Fix layout
Improve text color/size
Improve edit box look
Hide status bar at top

Bug: 15328359
Change-Id: Ia0ea75c74b352963ccf47db0ff7c9684adc1f2a3
2014-07-17 13:29:23 -07:00
Paul Lawrence
89c7570dd4 Make crypt dialogs material
White on black material theme
Center text
Remove fade to black task
Fix emergency call button

Note - does not implement all requirements of frames in the defect. More
to follow.

Bug: 15328359
Change-Id: I878e59dccffff366ba2484bb77482e168cbd2b81
2014-07-16 08:07:35 -07:00
alanv
0aa7c4f141 Fixed all Accessibility lint warnings in Settings app.
Change-Id: Ida98444f8942d3618d84c0a6f78cc3653ea4ad24
2012-05-21 17:55:19 -07:00
Tadashi G. Takaoka
faee5f4bdf Use EditorInfo.IME_FLAG_FORCE_ASCII instead of privateImeOptions
This change overrides Id40a164c.

Bug: 5850605
Change-Id: Id14aa2ebdf4087c88412ed82de75442785396b84
2012-01-17 15:04:00 +09:00
Ben Komalo
9fcb6a7fac Misc fixes to CryptKeeper
- use standard IME, but force it into ASCII if it's the default IME
- provide an IME switcher if there are multiple IME's, in case the
ASCII-capable one is a different one
- make the IME shown by default

Bug: 5004456
Bug: 4698473
Change-Id: Id40a164cfe599bfdb67b81f60d4ab8a52208de88
2011-08-29 15:14:18 -07:00