* changes:
Fixing crash when focusing tasks.
Minor tweaks to layout and visuals.
Improving transition from paging to stack.
Fixing issue with persistent screenshot notification
Updating task description when activity is visible.
Calling into TelephonyManager each of hundreds of apps to check
if the app is carrier privileged was very expensive, especially
when there aren't even any carrier access rules specified. This
change fetches all the carrier privileged apps in one call,
reducing the number of IPC calls to the radio process and checks
the package names locally.
If the carrier rules change or packages are modified, the list
will be computed and fetched again.
Other optimizations in Telephony help speed up the individual calls
to check if a package is privileged, as well.
Bug: 27271861
Change-Id: I5a77b6da4f2cdc603d2a73bd8569c5c38f06b42d
BackupManagerService has the null check, but it doesn't work
because passed BackupObserver object is wrapped into
this BackupObserverWrapper.
This was found during GTS testing.
Bug: 27334738
Change-Id: I16dc0230824b326d3fae1f8489f58b0c0d4e1c7c
If 'requestAccess' is true, the caller (either profile/device owner or a
designated certificate installer) will be granted usage of the keypair
on successful installation.
This has no security implications for a profile/device owner which would
already be able to self-grant. Delegated certificate installers did not
have this ability before.
This is only allowed at install-time- not afterward.
Bug: 24746231
Change-Id: Ia0ec290bb0bcde1d8137c188e2667cb7718dbfd7
First, we need to make the job scheduler prioritize jobs for
foreground apps over background apps (so we will degrade well
when we are limiting the number of concurrent jobs).
So now the job scheduler keeps track of the process state of
each uid, and uses that to bump up the priority of jobs
associated with foreground uids. Added constants for priorities
since we have different places specifying priorities.
Also cleaned up a bit of the reporting of "wrapped" jobs from
the sync manager -- there is a new tag argument that can be supplied,
to have the name and tag used in various places be based on that
instead of the useless internal class name.
Change-Id: I8781750ddfac1472a98e1873fc38c014425db3d6
Not all code paths for FragmentManager were checking that the
container view had a valid view id. As we can't correctly restore a
fragment with a container without one, throw a more descriptive
exception earlier.
Bug 27290033
Change-Id: I86e41d2f9b5197e058a7ce154c682cbcc2f9c6eb
These APIs are used by the SUW. To go with the convention that all SUW
APIs should be SystemApi, adding it to these ones.
Bug: 25858670
Change-Id: Icffc9cdc13fa87da3543d92308f87dd0c9764c81
Which really means, make background check much more
strict, with an option to revert to the more lenient
behavior.
In this strict version, an app can't have services
started or receive broadcasts at any point when it is
not foreground. Also, it doesn't matter the importance
of a caller trying to start a service, it only depends
on the state of the app whose service is being started.
A new activity shell command allows you to control
whether to use the strict or lenient behavior.
Change-Id: I7f5a50b52881b5c8f9d8b6c8c622d3652a769fd7
Add a new API to allow a wallpaper bitmap to be obtained for
a specific user.
Without this API, using only getWallpaperFile(..., userId), one
can't get a default wallpaper bitmap if the wallpaper is not set.
Bug: 25185253
Change-Id: Ibe1e9a49d22bee08fd4bed415573c1ee28526aea
The commit 6f06ad7df1
fixed a way to load native library for NativeActivity
by using classloader logic to find the library; which
also fixed the problem of native activity not working
when library is supposed to be opened directly from
the apk.
As a side effect it introduced regression - apps without
java code did not have correctly initialized classloader.
This change fixes this by constructing classloader with
empty dexpath but valid nativeLibrarySearchPath.
Bug: http://b/26015561
Bug: http://b/27250344
Change-Id: I50f1119f0976a95edd75d88efb9fcdedc57efbc3
Custom media notifications can now also be decorated by the system
instead of going fully custom.
Bug: 26961842
Change-Id: I1d85a652b93f10988939b471a14b372671acfaf1
This allows decorated custom remote views to be properly
showing with a large image.
Bug: 24866646
Change-Id: Ie355e503437f19ace2503d42f44bee4bd22f03c8
Add a separate system service RecoverySystemService to handle recovery
related requests (calling uncrypt to de-encrypt the OTA package on the
/data partition, setting up bootloader control block (aka BCB) and etc).
We used to trigger uncrypt in ShutdownThread before rebooting into
recovery. Now we expose new SystemApi (RecoverySystem.processPackage())
to allow the caller (e.g. GmsCore) to call that upfront before
initiating a reboot. This will reduce the reboot time and get rid of the
progress bar ("processing update package"). However, we need to reserve
the functionality in ShutdownThread to optionally call uncrypt if
finding that's still needed.
In order to support the update-on-boot feature, we also add new
SystemApis scheduleUpdateOnBoot() and cancelScheduledUpdate() into
android.os.RecoverySystem. They allow the caller (e.g. GmsCore) to
schedule / cancel an update by setting up the BCB, which will be read by
the bootloader and the recovery image. With the new SystemApis, an
update package can be processed (uncrypt'd) in the background and
scheduled to be installed at the next boot.
Bug: 26830925
Change-Id: Ic606fcf5b31c54ce54f0ab12c1768fef0fa64560
Add HardwarePropertiesManagerService which call native methods to
get CPU, GPU, battery temperatures, CPU usage info, fan speeds.
Restrict hardware properties retrieval only for device and profile
owners.
Bug: 26945055
Change-Id: I4d6b30b78e575532d5e9cfa59ef6cd81355439d4
Shared prefrences loads thir content from disk on a separate
thread to improve performance, however it holds the lock
the whole time while reading from disk which as a result blocks
operations that don't rely on reading data from being performed
intil load completes, e.g. reguistering a prefernces change
listener does not depend on having the data loaded.
bug:5254577
Change-Id: I5ad67b285631c34d5aadac7138ba8bfaa728cf94