ApplicationInfo is mutable and unfortunately some apps do actually
modify the flags. Due to the lazy loading nature of the network security
config this may lead to issues. Instead cache the needed flags and
resources at application startup.
Bug: 29063413
(cherry picked from commit 276ee969be)
Change-Id: If638a716fd903b4e9dbabcbecb38bd4e26fef08c
In M we would bubble up a NameNotFoundException when failing
to load an assetmanager from another application. We switched
to throwing an IllegalArgumentException, which isn't something
anyone should handle.
This change has ResourcesManager throw Resources.NotFoundException,
which callers like ApplicationPackageManager can catch and rethrow
with the appropriate checked exception. This adds more detail to
errors than we had in M.
Bug:28876344
Change-Id: I250aeef8a4ccfd90c6abef2243edc1c5337ebde9
Bug: 29091742
This reverts commit 563df3b328.
This also fixes the problems experienced by b/29128683.
Change-Id: I8e3d485cb818ea9e03ca475cba88934f6f903f11
dumpDbInfo() uses an async task when dumping from the system thread, but
then the file descriptor is closed by the time the task is executed. As
such, the system databases are not dumped.
BUG: 29123428
Change-Id: Ibb8bbe503aa03c3ca13b2b1789f0ead0b869e9d5
Adjust test wallpaper to use these attributes.
Also fix some issues where wallpaper got laid out differently in the preview
mode.
Bug: 28770685
Change-Id: I259f3884f5f2c0b723a6a5ce012d45170f64c4c7
29091742
A new internal API has been created for use by assistant
to launch an Activity Transition from a non-Activity.
The ActivityOptions are also passed along when using
a spring board Activity so that the shared elements
can be properly synchronized.
This also fixes TransitionManager.endTransition so
that it forces Transitions to end the animations.
Change-Id: Id18d9765bfc0c7b438e17966455aa66d3fa3aeda
am: 33d03a9e43
* commit '33d03a9e435eb474e3bdd3e958943e0057866477':
OP_ACTIVATE_VPN should not map to DISALLOW_CONFIG_VPN
Change-Id: I2de02ec6febdc58ff9a79562059cc11e7d617be5
They are two different things.
OP_ACTIVATE_VPN means can we allow a vpn app to establish without user
interaction while DISALLOW_CONFIG_VPN means can the user modify vpn
config.
Testing:
1. Turn on DISALLOW_CONFIG_VPN, user cannot modify vpn config through
setting
2. Turn on DISALLOW_CONFIG_VPN, Dpm.setAlwaysOnVpn works.
3. Reboot after 2, vpn established automatically.
Bug: 29086229
Change-Id: I24899d6c7f0dd62bf441a44c6ee66fee35973a11
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
We now have a new settings key that provides all of the existing
tuning parameters, plus some newly redone ones for dealing with
different memory levels.
Changed the minimum batching for overall jobs from 2 to 1, so
we will never get in the way of immediately scheduling jobs
when the developer asks for this. We should now be able to rely
on the doze modes to do better batching of jobs for us when it
is really important.
Also work on issue #28981330: Excessive JobScheduler wakeup alarms.
Use a work source with scheduled alarms to blame them on the app
whose job they are being scheduled for, and add a check for whether
a job's timing constraint has been satisfied before considering it
a possible candidate for the next alarm. (If it is satisified,
the time is in the past, so we should not schedule an alarm for it.)
Finally clean up a bunch of the dumpsys output to make it easier
to understand.
Change-Id: I06cf2c1310448f47cf386f393e9b267335fabaeb
am: cd0aa9cda8
* commit 'cd0aa9cda8e57c224b473198a345fb008fe30b5a':
Don't bother with WeakHashMap for direct alarm bookkeeping
Change-Id: I3b28a8c03cee7fe6f85540f1f679de10de09923c
Call cancel() explicitly before dropping local references to your
callback objects; they won't just quietly go away.
Bug 28987260
Change-Id: Id9da66ed86a46b4fb38127e2ddd7a7d84fd2313a
Bug 28347277
When an activity calls startActivity with makeSceneTransitionAnimation
and then calls finishAfterTransition, it should not do any transition
and just finish.
Change-Id: I00e537638fa6f24c95605f09bbafd843b569bb4d
Generates an appropriate title and text for MessagingStyle
Notifications, such that SystemUI can generate the appropriate
oneline representation.
Bug: 28934989
Change-Id: Ic23ed18bb9c4af21ad59626ca161ca7abb25a4e9
am: efa291a860
* commit 'efa291a8605e91d775faf46ada349ec7f81fcdb9':
Allow apps to bypass Power Save restrictions when launched from a Notification's PendingIntent.
Change-Id: Ibd09b082140b66d25bd8583040761581bb20af76
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