In order to avoid layering violation, LocaleList needs to be moved from
android.util package to android.os package [1]. This CL follows up that
package change.
No behavior change is intended.
[1]: Ia8de2ee9df3dd0a42b1fe84574439519b680fe18
Bug: 28819696
Change-Id: Ibd7934b30062046830d63f33d1c6febef32da976
Bug: 26946312
Fixed in the following screens:
Apps > Gear > Special Access > Modify system settings
Apps > Gear > Special Access > Draw over other apps
Apps > Gear > Special Access > Apps with usage access
Language & input > Personal dictionary
Wireless & networks (More) > Android Beam
Change-Id: I0b9bd6c19f710302625dd87989e9d4ce3c96a9a2
In this situation onLoadFinished callback is triggered before the
loader ids list is updated. Updated the loader ids list before
triggering the loader.
Bug: 28182232
Change-Id: I1e4035f4dcff33e6b9a42d448303e962bd87c14b
With a Framework-side change [1],
InputManager#{get, set}KeyboardLayoutForInputDevice() are now able to
deal with null InputMethodSubtype as a valid input. With this CL, we no
longer filter out IMEs that do not support subtypes in
PhysicalKeyboardFragment.
[1]: Ia013784a594ad3beaf30976d047f5ac0fa8185be
Bug: 28182650
Change-Id: I46b9c5b018f08e3eaa4614a0893db0be91652f3c
Without this CL, preference for enabling spell checking is disabled
when spell checking is disabled.
This issue makes it impossible to re-enable spell checking from the
settings UI.
This was introduced in I0ed71bbb580e3547d97e321799ac2b77b1f284a3
that fixes Bug: 26685795.
Bug: 28157871
Change-Id: I386baf2dd79347c1202f885a3f749aea3fb6a58d
With this CL, AvailableVirtualKeyboardFragment searches icon resource in
the following order, which makes it easier to find a certain IME when
one APK contains multiple IMEs.
1. Service Logo
2. Service Icon
3. Application Logo
4. Application Icon
Bug: 28204635
Change-Id: I406ccc0d53e6ec69793c2fc8be8c6c1c90b34811
"Use system languages" is always displayed independent from the
selected value.
This happens due to inverted if-condition that has been introduced in
I0ed71bbb580e3547d97e321799ac2b77b1f284a3
Bug: 28204608
Change-Id: I9f0390242cb5ed4960c06eb3d0a4ade7a66143a5
This patch loads all physical keyboards at once and only updates the
screen after that returns. Previously, each keyboard's data was
loaded individually and the screen was updated for each keyboard
when the data was received.
Bug: 27549590
Change-Id: I05d80d74df14fb7bfaa0ce76a1f8919889865108
The root cause of crash bug #27749932 is that the state mismatch between
when a Loader is created and when the Loader object finishes background
task. We can easily reproduce this crash by:
1. Pair two hardware keyboard A and B.
2. Open Physical Keyboard settings.
3. Press the power button to turn off the display.
4. Move keyboard A far away so that it is unpaired.
5. Press the power button to turn on the display.
6. Unlock the device.
One of the reasons PhysicalKeyboardFragment was unstable is that loader
ID reuse. PhysicalKeyboardFragment starts background data loading
because of many events such as #onResume() and #onInputDeviceAdded() but
there are chances that loader ID was reused because we specified
hardware keyboard device index as the loader ID. This was dangerous
also because device index can change when a device is added and removed.
With his CL each loader object has an unique ID and
PhysicalKeyboardFragment keeps tracking the list of active Loader IDs
only from which PhysicalKeyboardFragment should accept data.
Also, this CL removes dependencies on PhysicalKeyboardFragment from each
loader object so that we can have a clear boundary of responsibility
between data loader and data consumer.
Bug: 27749932
Change-Id: I53fcb2426d028a492c775bb2b4ec6a5419e33bb4
InputMethodAndSubtypeUtil#saveInputMethodSubtypeList() has a bug that
it saves implicitly enabled subtypes when "Use system languages" is
checked. Implicitly enabled subtypes are transient data and the system
should have only a null data (0) in the persistent strage. The root
cause of this bug is that the method in question has not checked whether
the preference item is in enabled (not grayed-out). If it is
grayed-out, its checked state does not mean that the user manually
checked that subtype but it is just an indicator for the user.
The strange UI jank when dismissing InputMethodAndSubtypeEnabler is one
of the victim of the above bug because we have worked around it by
actually changing checked state before calling the method in question.
With this CL we no longer need to update preference items in
InputMethodAndSubtypeEnabler#onPause().
Bug: 27867966
Change-Id: Ifc291d77ea41a988438765b9ba16bc5d18a15e1b
Per comment from UX, we do not show gear icons on InputMethodPreference
because there is no difference between tapping the item itself and
tapping the gear icon.
Bug: 27543291
Change-Id: Ieea9a13a4b7af9c90c3a2a8f365bd318663998b1
This is a follow up CL to my previous CL [1], which added a new
constructor to InputMethodSettings to support File-Based
Encryption (FBE).
Settings app is the only remaining package that depends on the previous
constructor. To completely deprecate the previous one, this CL lets the
caller switch to the new constructor.
Note that this CL does not change the initial parameters of
InputMethodSettings. In other words this is a mechanical code
clean-up.
[1] I9c6f9bb3d51174198e5f73588637f87ea0d90e11
5db2f16f15549c490c9541602a96f42bef984acb
Bug: 26279466
Change-Id: I09cba4066b95c4a9e89a3e4f83d75b97882502dc
This follows up to a previous CL [1] that fixed Bug 26685795 that the
Settings app crashes when no spell checker is selected, but introduced
another Bug 26686710 that the user cannot re-select the spell checker
once the device has fallen into that state because the button to select
new spell checker is disabled.
This CL tries to deal with such a case more carefully and gracefully, by
adding more null checking and by showing a meaningful text
("Not selected" for English) to users when no spell checker is currently
selected.
[1]: I65e6d269572e064aa6897807b6611ef947d90211
093a646772
Bug: 26108333
Bug: 26685795
Bug: 26686710
Change-Id: I0ed71bbb580e3547d97e321799ac2b77b1f284a3
And when adding accounts if only one account type is possible and
it is disabled by admin, show the admin support dialog.
Bug: 26897250
Bug: 26767564
Change-Id: I5cca64491a100efc34307c45aa35c14412f043cd
Implements selection of keyboard layouts using the new InputManager
methods that associate keyboard layouts to
device/InputMethodInfo/InputMethodSubtype
See: Ie88ce1ab77dbfe03ab51d89c1dc9e0a7ddbb3216
Bug: 25752812
Change-Id: Ib76880d66391ca37978054de80f4b3b5147cecc3
1. Introduces new UI components as per the new flow
2. Temporarily disables components in the old flow that are to be
replaced by the new flow. This is done so we can neatly revert
to the old flow if there are issues with the new flow
3. AvailableVirtualKeyboardActivity now responds to
android.settings.INPUT_METHOD_SETTINGS intents instead of
InputMethodAndLanguageSettingsActivity
Bug: 25752812
Change-Id: I728d7ee185827ed328c16cb7abce244557a26518
When a user clicks on the physical keyboard in order to select a
layout, rather than showing them a dialog with an empty list of
layouts, send them straight to the screen where they can pick which
layouts to enable.
Also, only request keyboard layouts that are appropriate for the
input device we're in the process of configuring.
Bug: 25062009
Change-Id: I4483dfc89afc8d148b2cfa7c6a5f66d2a02f712a