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
am: 44193d5
* commit '44193d50361e945982189928005cb517dd73531f':
Fixes graybar as status bar and unshifts header view.
Change-Id: Iefc222d7a63738a71d50502ce8b8d03a9aee919e
am: a2dda41
* commit 'a2dda4122bb73f49fcd118a712c1aa61a303c11b':
Fixes graybar as status bar and unshifts header view.
Change-Id: I29cc18ed77ea763385a9a96281da302d4d6c0185
am: 9f7d237
* commit '9f7d2375806bcfc7dc873e51b228e69e57e093b8':
Prevents users from being added if device is not provisioned
Change-Id: I255f6f284aafc68f66d3a8956c5f9a8ba85525a3
am: e20deea
* commit 'e20deea7112a17ac4799f6924cddc27b4678f791':
Prevents users from being added if device is not provisioned
Change-Id: Ieb663a2741bce75cd9cebed08f36801a36958e83
am: d0ba082
* commit 'd0ba082ca732b0effe15067d93b22e292a96237c':
Use same task for Settings>Users and EmergencyInfo
Change-Id: Idbb6fc5505039055825f8118cad1277966c29ae3
am: 5cffb81
* commit '5cffb81f567009e589e2bbc8ccd3dcae15147f13':
Show notification when failing to turn on always-on vpn
Change-Id: I2446bb50b8981800e400faf4a04f291b416afd58
All settings preferences related to credentials of any kind should be
stopped by this user restriction.
Bug: 26879958
Change-Id: I983c6e58081bd4022bb006942499cba4b74954e7
am: 6d6ea3f
* commit '6d6ea3fe0a9aae6159b3eda197cd1d660135c413':
Use same task for Settings>Users and EmergencyInfo
Change-Id: Ifc596101c4392bb76f2d6038c364560ebc42fefa
am: b1d7142
* commit 'b1d7142cb21de23ec9c1dddb824405bf252bffed':
Show notification when failing to turn on always-on vpn
Change-Id: I76c5ad7c545294edfeb533148ba85cdcdc41dc58
am: d09508b
* commit 'd09508b8fc2c6fd917ab2f69e1014fa96edf2e1d':
Fix categeries being read out on settings dashboard
Change-Id: I3ffd285de257ed9171a5b0d9f11f61305f22f4bf
am: e0ec32c
* commit 'e0ec32c26e580b5dca8c1968f20949021d37211f':
Fix cell data preference in single sim case
Change-Id: I317173dde03aac9d5b5ac0ec9805347a069a6086
am: 69446e8
* commit '69446e80ab95f7d01b7612a02ae35e75d9b5c609':
Fix categeries being read out on settings dashboard
Change-Id: Ifd3c3ad560969b58557acd86a98eb299d65a4385
am: 04f10a5
* commit '04f10a5eb53bb1ed3d70574102b94b17e075132d':
Fix cell data preference in single sim case
Change-Id: I08d74e06819a2d0487149af5bfa40a6124b3100c
- Notification icon is Settings icon
- VpnName is obtained as the same way as AppPreference
- Post notification as the current user with PendingIntent to VpnSettings to parent user
- Auto-cancel when user taps on the notification
- This implementation posts notification only when the failure happens sychronously
(Assume ConnectivityService only unset always-on package immediately after calling setAlwaysOnVpnPackageForUser)
Bug:27374485
Change-Id: I0aee38498c8cc300dd8eb9687adcae5f9dc4f8af