We're building an exception message string, but by explicitly invoking
.toString() we're accidentally triggering an NPE rather than the typed
exception we want to throw. Build the string in a way that will be
safe and sensical even if the CharSequence is null.
Bug 29009255
Change-Id: I1813260f0b36fd44506b8327f997dd20c2d6c8bf
am: f97a0f5c9c
* commit 'f97a0f5c9c501bc7e39c779ebb2e009e1ea496cd':
Add more doc for Object animators defined with a single value
Change-Id: I14cfe5e0a80832b57a270b5b34164d7e4232feeb
am: c5fc6c602c
* commit 'c5fc6c602c16f0e985d8f8ba7f94075229e52320':
Close IME when attaching dock stack
Change-Id: I7921bf88bb49134d1fbde752d5fa963786ec1d46
am: efa291a860
* commit 'efa291a8605e91d775faf46ada349ec7f81fcdb9':
Allow apps to bypass Power Save restrictions when launched from a Notification's PendingIntent.
Change-Id: Ibd09b082140b66d25bd8583040761581bb20af76
am: 92d0316d28
* commit '92d0316d2837baceffb22e1a7eb0e5da50f0a025':
Set StaticLayout.maxLines only when ellipsize is set
Change-Id: I17934afae1d5e8b7fe3b3ad8b4286dd43f68393e
This scenario typically happens when the device is on Doze Mode and a
notification action is triggered from a Wear device.
In a nutshell, the workflow is:
- ProcessRecord has a flag telling whether a process has "whitelist
management" privileges.
- When NotificationManager binds a new NotificationListenerService, it
sets the BIND_ALLOW_WHITELIST_MANAGEMENT flag.
- On bind(), ActiveService asserts that only system apps can set that
flag.
- On computeOomAdjLocked(), ActivityManagerService sets the
ProcessRecord flag if necessary.
- Upon creating a notification, NotificationManager calls AM to mark its
PendingIntents as coming from a notification.
- When PendingIntentRecord sends it to the target, it checks if it's
from a notification and if so calls AM to do the temp whitelist.
- On unbind(), ActiveService removes the ProcessRecord flag if necessary.
Fixes: 28818704
Change-Id: I00d46036a2cbb73f7f733fd35bf0b743a02807a1
am: 38b5946fae
* commit '38b5946fae50d4e9e8f32c985983d03a4437910d':
Fixed the relative time spoken with accessibility
Change-Id: I51bbe71d2b86cfb8f050882b072092a015573fdb
am: e78ba24c17
* commit 'e78ba24c176fd6a0c54eaf7e52be545952ba1ab7':
Update the light center when the root view's layout changed
Change-Id: Ic973b9b47df6550c5170c2248c7e0f2ab25c6a57
A partial revert for the CL I5dbc48a6c7f0f4ac4c693d5c95f0a99b989e07f4.
The mentioned CL tried to always set the maxLines attribute of
StaticLayout. However this caused regressions at certain points.
Bug: 28885989
Bug: 28468120
Change-Id: Ic09cb194c8811a06b5d53de50bfb77938b91b88d
Use BluetoothAdapter#getState() instead of
BluetoothAdapter#isEnabled() when checking if Bluetooth has turned
off, as isEnabled() is set to false early in the shutdown process
and getState() provides a better indication of the state of BT.
Bug: 27354612
Change-Id: Ic7828f0726491d49c9a14ba5d654b24f66743662
The one-line non-group version of MessagingStyle causes
a bug with the action bar and generally looks bad because
it is too short. To fix, show this variant like a BigText
notification.
Change-Id: I8af9e9da8286599b81ccb7c4637471ac01795366
Fixes: 28767094
Bug 28610520
isTopOfTask() was returns false in onResume always because
it wasn't being made visible until after onResume. The visibility
of the window is not important for this method (older versions
didn't check it at all), so that was removed.
Change-Id: I45e506e72356cc3808e2e9340739726c99da7d97