If any /data/system_[c|d]e folders were not erased
when the user was removed (maybe due to a reboot),
make sure they're cleaned up on restart as well
as when the userId is recycled later.
Mark the users' system folders with the correct
serial number for later verification.
AccountManager shouldn't be querying accounts of
partially created/destroyed users.
Change-Id: I4313756b7464f34cd5ce4fb296d61daa50b41fcb
Fixes: 29285673
This method was broken, but it was returning light theme on N preview
builds, so we'll keep it consistent as we move into N release.
Bug: 29192690
Change-Id: I0d16abbe48756070dcd653c39d0da4124ea66b28
When ejecting a storage device, the system process needs to rapidly
release any open FDs to prevent itself from being killed by vold.
This change examines all ResourceImpls cached inside the system
process and evicts any that reference the storage device being
ejected. (ResourcesManager will gladly recreate any evicted entries
when asked again in the future.)
Also replace broken use of WeakHashMap, since we want the values to
be weak references, not the keys.
Bug: 28867548
Change-Id: Ib9cfc66497149b6d3f8d49213e9779408a331d2a
In override config for task we set Configuration#screenLayout field based on
initial global config + shrink to fit the area on screen given for this task.
However this field also contains information (like layout direction) that we
do not intend to override and it can be changed in global config separately.
In this case we need to update the override config with changes from global
config.
Bug: 28616488
Change-Id: I22673257621b3f9ae7933b37bd0fb9446c6042ea
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
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
Always use the packages' derived instruction sets.
This fixes a bug where otas and background dexopt would only
look at one instruction set.
bug:28994818
Change-Id: I730b59d24943c71de30adb485a823fd79c6806a6
We allow each individual Resources object to select the best
Locale for the given APK. This allows one update to the configuration
instead of multiple updates, once the locale is chosen.
The Java locale is selected from the app context's locale.
Bug:28625993
Bug:27325465
Change-Id: I99e1e53f522e560f3b80bbd1e1c605f552dbdff0
Calling Configuration.setLocales with emtpy LocaleList may change the
layout direction to LTR. To clear the locales in Configuration without
layout direction change, introduce hidden API to Configuration.
Bug: 28695661
Change-Id: I47c339dffb83099bd329ddb60237dab27b05f593
Originally we went with the meta-data approach to make unbundling
easier, however with the amount of platform changes that the config
ended up relying on it would be better to focus on exposing it through
the platform.
Bug:28763009
Change-Id: Iaf80001b1980220cd2e1e05faf2dc86af41700e1
If <uses-sdk> tag is below <application> in AndroidManifest.xml then,
when activity is parsed, targetSdkVersion param is not yet set correctly.
Because of that we're defaulting to RESIZE_MODE_FORCE_RESIZEABLE and the
param resizeableActivity will be ignored.
This CL checks if resizeableActivity was set explicitly when targetSdkVersion
is less than N (or not set).
Bug: 28020462
Change-Id: I099f6c00dd50547ddea873e47dbb447869d0be6f
Since LocaleList needs to depend on android.os.Parcelable, we cannot let
that class belong to "android.util" package, which causes layering
violation.
Bug: 28819696
Change-Id: Ia8de2ee9df3dd0a42b1fe84574439519b680fe18
Rename WindowLayout#minimalWidth and #minimalHeight to #minWidth
and #minHeight to be consistent with other APIs.
Bug: 28775586
Change-Id: Ib7dc26318c4391693ef23f908b4d6090138dd0d7
We need to make IIntentSender oneway... but when the system is
calling that for itself, it needs to be able to return a result code.
Solution: instead of directly calling the interface, we have a new
IPC through the activity manager. If the thing being used is the
activity manager impl, it can do the synchronous send and return
the result directly in place. If not, you only get asynchronous
sending and thus never a failure result back (too bad for you!).
Change-Id: I4096e5b00063e8dba66230585a2dfe67e35e8092
Correct and clarify the documentation for ContentValues.
Signed-off-by: Steve Pomeroy <steve@staticfree.info>
(cherry picked from commit 1276b5f29e)
Change-Id: Id6f4e93dcca64dd41daeb4066d804ff173f4747b