Commit Graph

6825 Commits

Author SHA1 Message Date
Filip Gruszczynski
92e432c30e Refactor and improve window layering.
This CL moves layer calculation into a separate class, so the whole
logic can be encapsulated. It also extracts special cases from the
general loop and instead applies them at the end. This simplifies the
logic in the main algorithm and makes it clearer what needs to happen
for special cases.

Bug: 26144888

Change-Id: I87347bf0198bd0d3cd09e4231b4652ab979f2456
2015-12-17 08:55:50 -08:00
Esteban Talavera
f3378a29e9 Merge "Device or profile owner can let another app manage app restrictions" 2015-12-17 10:59:16 +00:00
Mahaver Chopra
699d537d1b Merge "Adding DPM.reboot" 2015-12-17 10:59:01 +00:00
Esteban Talavera
bf60f728cc Device or profile owner can let another app manage app restrictions
The device or profile owner can allow another
package to set app restrictions for any app in that user

Similar to the way it can give permission to access
CA certificate related APIs from M.

Bug: 22541936
Change-Id: I0c1b0804ad300dfa4fbdc1c7721c5d8653d77861
2015-12-17 10:57:09 +00:00
Wale Ogunwale
9c604c7c1d API for an Activity to enter picture-in-picture mode.
Bug: 25580820
Change-Id: I5c1bf17dd5dd92622458a61517bc9941e4ee5277
2015-12-16 11:01:46 -08:00
Andrei Stingaceanu
1e2839188f Wire call to suspend a package
Adds APIs in DevicePolicyManager and PackageManager for allowing
a device admin to suspend a package. PackageManagerService sets
or unsets a new PackageUserState 'suspended' setting. Terminal
command to suspend/unsuspend has been added via
PackageManagerShellCommand (as root).

Next steps:
* use the new 'suspended' setting for denying access to start app
(probably in ActivityStackSupervisor)
* broadcast a PACKAGE_(UN)SUSPENDED intent for launchers to pick up
* remove app from recents (go further and kill it if it is running)
* erase existing notifications for this app

Bug: 22776576
Change-Id: I718b3498f6a53cc0c6fdfb6d15031e53ddca4353
2015-12-16 18:14:14 +00:00
Mahaver Chopra
1ce53bc571 Adding DPM.reboot
Adding new policy in DPM to trigger reboot on the device.
Requirement: Device owner can reboot the device if it is stuck or is
not useable due to some unresponsive UI.

Bug: 25304994
Change-Id: I7a6d5c8ad611de9c1cf6619378e492a306b41626
2015-12-16 17:55:54 +00:00
Wale Ogunwale
2336f716c8 Merge "Only persist task bounds for freeform tasks." 2015-12-16 15:32:27 +00:00
Christopher Tate
ffa6a88658 Add crop hint and backup-eligible info to wallpaper API
The OS will not distinguish between the physical underlying wallpaper
image and the target displayable subrect of that image.  This will enable
more pleasing conveyance of backed-up wallpaper imagery between dissimilar
devices.  The allow-backup hint is a way for wallpaper sources to ensure
that the OS doesn't back up imagery that should not be propagated across
devices.

(NB: the backing implementation isn't in place yet; this is just to
permit forward-looking work on client apps in the interim.)

Bug 25454501
Bug 25453848

Change-Id: Id014d552ae509f659992d57b915ef95c5d4b8d1a
2015-12-15 17:43:35 -08:00
Wale Ogunwale
807d8826b1 Only persist task bounds for freeform tasks.
Bug: 26216628
Change-Id: Ibe28d7f988675086e233da371baf526eb7254fa7
2015-12-15 17:05:09 -08:00
Jeff Davidson
40e2ce37d3 Merge "Relax permissions around NetworkStatsManager APIs." 2015-12-15 19:04:25 +00:00
Wale Ogunwale
eb6722c0bc Fixed bug with caption not showing for some apps that handle config changes
We currently decide when to show the decor caption onConfigurationChanged
However, if the app handles configuration changes or the threshold isn't
big enough for the configuration change to be reported to the app, we don't
display the caption in some cases when transitioning from fullscreen mode
to freeform mode.
We now also use the onMultiWindowModeChanged call to also determine if
the caption should be visible.

Change-Id: I237437f04ad90f904912ebac0253245f547b0e3e
2015-12-15 09:01:45 -08:00
Clara Bayarri
b3987bd7e9 Make ConfirmCredentials take user into account when creating intent
The existing implementation returned null if the device was not locked,
but when using ConfirmCredentials for the Work Profile we need to take into
account the user we want to confirm credentials for, given that the device
user might not have a lock but the work profile will.

Change-Id: Ifb5882846b0a62c73ac7cc04d90d1a4d9b103e63
2015-12-15 10:45:13 +00:00
Jeff Davidson
1efb133581 Relax permissions around NetworkStatsManager APIs.
Currently, access to network usage history and statistics requires a
signature|privileged permission, an AppOps bit (associated with the
PACKAGE_USAGE_STATS permission), or device/profile ownership. Once
access is granted via one of these mechanisms, it generally applies to
any UID running in the same user as the caller.

This CL expands access as follows:

-Any app can access its own usage history with no extra requirements.
-Carrier-privileged applications can access usage history for the
entire device.
-Device owners can access per-UID breakdowns for usage. Previously
they could access the summary for the whole device, but not the
individual breakdowns.

We simplify the permission model by defining three access levels -
DEFAULT (own app only), USER (all apps in the same user), and DEVICE
(all apps on the device), and propagate these levels throughout.

Finally, this CL fixes an apparent bug in
NetworkStatsSerice#hasAppOpsPermissions - if the AppOp bit was in
MODE_DEFAULT, hasAppOpsPermission would always return false instead of
falling back to the PackageManager permission check.

Bug: 25812859
Bug: 25813856
Change-Id: Ic96e0776e2a4215a400163872acea1ededfaced9
2015-12-14 17:16:37 -08:00
Wale Ogunwale
5144d154b5 Merge "Still save config on client side when not reporting to activity." 2015-12-15 00:06:02 +00:00
Wale Ogunwale
14e811f5d9 Still save config on client side when not reporting to activity.
On the client side we have additional protection not to save new
configuration reported by activity manager if the app isn't handling
any of the configuration change that occurred. This is done because
the activity is expected to relaunch for any configuration it doesn't
handle. However, with multi-window support the activity manager doesn't
relaunch an activity if the configuration change doesn't cross a resource
threshold.
We now save the configuration on the client side when activity manager
tells us not to report the changes to the app (i.e. configuration
changed, but wasn't big enough for relaunch)

Bug: 23904868
Change-Id: I54f65cad65c1b8ed5da1165a8b2816adbea41d4b
2015-12-14 15:04:22 -08:00
Jason Monk
ded2b10520 Merge "Support dnd condition in Settings" 2015-12-14 15:39:55 +00:00
Gustav Sennton
88b3b57341 Merge "Add functionality for changing WebView provider." 2015-12-14 14:33:56 +00:00
Jason Monk
a9927325ed Support dnd condition in Settings
- Add way to open QS detail panels directly
 - Add internal broadcast that can launch apps when dnd mode changes

Change-Id: If2b6350dc31623f3bf2f64c7eb141cff5d3d4e89
2015-12-13 16:22:37 -05:00
Makoto Onuki
248808e3b2 Merge "Avoid using the term "current" to mean "calling"" 2015-12-11 22:51:31 +00:00
Makoto Onuki
32b3057e8a Avoid using the term "current" to mean "calling"
Bug 25715749

Change-Id: I98b28f1990d976c46b0eca2a2c15b7edbdda64ea
2015-12-11 14:34:13 -08:00
Dmitriy Ivanov
048a0db7b5 Use nativeloader to load NativeActivity
System apps are the exception and they can
access internal platform libraries (this
is needed for bundled apps to work correctly).

Also fix the way NativeActivity loads the native
library to correspond to the way BaseDexClassloader
does it.

Bug: http://b/22548808
Bub: http://b/25777936
Change-Id: Idc94cdded182ea2cb1cbebc76c336cc3394c7ebe
(cherry picked from commit 6f06ad7df1)
2015-12-11 13:18:42 -08:00
Makoto Onuki
714391771f Merge "Clean up DPM/DPMS to reduce code size." 2015-12-11 18:13:05 +00:00
Filip Gruszczynski
ee15241aaf Merge "Move tasks to fullscreen stack when dismissing docked stack." 2015-12-11 16:05:04 +00:00
Filip Gruszczynski
b3da834a91 Move tasks to fullscreen stack when dismissing docked stack.
When we dismissing a docked stack we don't want to get rid of it,
but instead make it available in the full screen stack. We need to
make sure that it goes into the bottom of the stack and prevent it
from taking focus or running any animation, so the operation is
invisible to the user.

Bug: 25840497
Bug: 25823213
Change-Id: Ibd08d7b723a2847d98c435f79541d5eb43587064
2015-12-11 08:03:13 -08:00
Gustav Sennton
6258dcd7ea Add functionality for changing WebView provider.
Make it possible to change WebView provider (through a Developer
setting) and kill all apps using the old provider.
This includes checking the signatures of the WebView providers to make
sure they are valid.

Now that we can change WebView provider through a setting it is possible
to change provider while some provider is being updated. Because of this
we now keep track of which provider should be in use in
WebViewUpdateService to make sure we use the correct provider at all
times.

We now also read WebView package meta data (name, package name, and
signature) from a separate xml file.

Main bug: crbug.com/546185

Bug: 25338573

Change-Id: I660fd1a40a5388f6569a06a7f0d029e8ff65945a
2015-12-11 14:29:44 +00:00
Adrian Roos
245aa87f3f Even more Inline Reply goodness
- Removed action icon processing
- Correct color for action label
- Change default notification color to Gray 600
- Handle different states in RemoteInputView
- Handle updates to Notifications with active remote input

Bug: 22452379
Change-Id: I30a0cd917dbf814f156ab5a106e018a245d99b67
2015-12-10 17:04:32 -08:00
Makoto Onuki
55c46f291d Clean up DPM/DPMS to reduce code size.
Change-Id: Id6c1666ef4cdba795e3b6e4ddcb9c32e6ee90665
2015-12-10 15:38:32 -08:00
Dianne Hackborn
0c6cc308cf Merge "Add new target SDK filtering feature to BroadcastOptions." 2015-12-10 20:13:29 +00:00
Dianne Hackborn
e0e413e2b1 Add new target SDK filtering feature to BroadcastOptions.
You can now control the range of target SDKs that receivers
will be need to have in order to receive your broadcast.

Use this for CONNECTIVITY_ACTION to not allow N+ applications
to receive these broadcasts through their manifest.

Also tweak the broadcast debug output code to now include the
disposition of each receiver in the list.  This is becoming
important as skipping receivers is becoming a more common
thing to have happen.

Change-Id: I251daf68575c07cbb447536286ab4e68b7015148
2015-12-10 12:12:00 -08:00
Daniel Sandler
0a6ff35a8b Merge "Remove more extras during notification lightening." 2015-12-10 17:59:43 +00:00
Dan Sandler
5012853de2 Remove more extras during notification lightening.
Basically anything Parcelable needs to go since it might be
quite large. Note that this includes additional extras such as
those contributed by WearableExtender.

Bug: 26038546
Change-Id: I85a20173158717c866a36dacd6a04391c2a33376
2015-12-10 16:25:20 +00:00
Jeff Sharkey
98cb23dccf Merge "Slight API renaming, better behavior." 2015-12-09 22:51:43 +00:00
Jeff Sharkey
e13529a4ad Slight API renaming, better behavior.
Rename APIs to reflect that they're storage-related.  Also move
credential-storage APIs to be system API.

Return a null Context when device-encrypted storage isn't
supported.  This is the easiest way to keep legacy apps working when
upgrading from M to N.

Reduce strictness of path checking so we don't crash when working
with special packages like "android".

Bug: 22358539, 26104027
Change-Id: I38c24fc003488186210a6ae3b64270f86e1efe56
2015-12-09 15:22:54 -07:00
Selim Cinek
7b83639c34 Changed the appearance of the notification children
Some further tuning to the layout

Change-Id: Ifb3797e9982d718a30954adb9e1901eb2a1fa75d
2015-12-08 16:25:00 -08:00
Selim Cinek
bde0d4fe35 Removed the devider above the actions
The templates had a divider line above
the actions. this is now gone.

Change-Id: I85e8c773c4c49d9eaeceb20915cc98941d537ee6
2015-12-08 16:25:00 -08:00
Selim Cinek
ea4bef7386 Removed duplicate content from group notification header
Previously the headers all had duplicate content, which is
now optimized to look visually more appealing.

Change-Id: I38ed8db1985fd8a9470888e1b7e1e6b0f2e23b19
2015-12-08 16:25:00 -08:00
Jeff Sharkey
103d61b9f7 Merge "Shift around encryption public APIs." 2015-12-08 22:29:52 +00:00
Jeff Sharkey
7a30a30ebe Shift around encryption public APIs.
There are far too many Context APIs with special directory paths
to replicate device-encryption versions of them all.  Instead, add
methods to clone a Context that explicitly stores its data in either
credential- or device-encrypted storage.

Methods to test the behavior of a given Context.

Bug: 22358539
Change-Id: I6a6290a9b282605ce9a1f82742fc2c4c50536754
2015-12-08 15:24:29 -07:00
Svet Ganov
2acf063da0 Ephemeral cookie API
Add APIs for an ephemeral app to set a cookie which is a small
peice of data cached longer than the app itself. This is useful
for avoiding the user to login every time they use the ephemeral
app. The cookie is stored after an ephemeral app is uninstalled.
Normal apps or ephemeral apps upgraded to full apps can also use
these APIs with the difference that once they are uninstalled
the cookie is deleted.

The cookie size defaults to 16KB and is configurable by a global
settings which can be adjusted via gservices. Also eviction policy
is time based with a default of one month and is configurable by
a global setting which can be adjusted via gservices. If the cert
of the app cahnges (when ephemeral is installed, uninstalled and
installed again) the cooke is wiped to prevent data leaks.

This cahange also adds an API for apps to know whether they run in
an ephemeral mode since it this mode some APIs will not be available.
Another API exposed by this change is private for the system and
exposes all ephemeral apps - installed and uninstalled. Only the
system can call this API. When an ephemeral app is uninstalled the
system stores its name, icon, and permissions. When the app is
reinstalled or a full version is installed the permissions are
propagated.

Change-Id: Id4a73a7750bfbabda0bfcb9bf9018d2062e94367
2015-12-08 19:17:15 +00:00
Robin Lee
fbc65644b9 DevicePolicy API to remove an installed KeyPair
The keypair is specified by alias and removed via a call to the
KeyChainService, which will have installed the pair in the first place.

Bug: 22541933
Change-Id: I37317e7c22e89816156e6e9a7abf4c5a59e8440a
2015-12-08 16:40:56 +00:00
Filip Gruszczynski
d6d5f8f045 Merge "Fix freeform to recents animating window being cuttoff." 2015-12-08 02:40:40 +00:00
Filip Gruszczynski
f34a04cca9 Fix freeform to recents animating window being cuttoff.
The window will appear cutoff during the animation if the window was
cropped due to stack or decor bounds before the animation started. We
need to disable the cropping (both from decor and from stack bounds)
for the duration of the animation.

Unfortunately, by disabling cropping of a freeform window to the stack
bounds, we will make it appear above the docked window during the
animation (because the animation will lift the layer). To fix this, we
need to treat the docked stack like the pinned stack and assume it's
always on top for the layering purposes.

CL also includes refactoring of mSystemDecorRect and
mLastSystemDecorRect which can be moved from WindowState to
WindowStateAnimator and made private there.

Bug: 24913782
Change-Id: Idbea99ba04e9449d0563d0c02636f8b4b63087f7
2015-12-07 18:32:02 -08:00
Jeff Sharkey
6a6cdafaec APIs to obtain SharedPreferences paths.
Needed for apps that want to migrate SharedPreferences from CE to DE
storage.  Note that a device will only ever enter a CE mode with a
factory reset, so apps should only be using these APIs when they
want to migrate files to a consistent location on non-FBE devices
for simplicity.

Bug: 25503089
Change-Id: Ic846215da1617d116a048e036415ac7ad523b770
2015-12-07 19:25:25 -07:00
Fyodor Kupolov
79aeb92f4d Merge "Added SynchronousUserSwitchObserver" 2015-12-07 18:55:09 +00:00
Felipe Leme
21d4b20f23 Merge "Changed ActivityManager.requestBugreport() to take a 'progress' parameter." 2015-12-07 18:02:40 +00:00
Wale Ogunwale
5f986095be APIs for activity to know when its windowing/pip modes change
Added APIs that allow activities to ask the system if they are currently
in multi-window or picture-in-picture mode and also get notified when
their modes change.

Bug: 25509834
Bug: 25683717
Change-Id: I4b8c316a49940bd6a8b31a93b345f9fd725a4721
2015-12-07 07:40:56 -08:00
Filip Gruszczynski
3696301ada Merge "Update client configuration when resizing without crossing size threshold." 2015-12-07 02:17:47 +00:00
Felipe Leme
4cc863338d Changed ActivityManager.requestBugreport() to take a 'progress' parameter.
When progress is set to 'true', it calls the new, enhanced
'bugreportplus' service, while when 'false' it calls the regular
'bugreport' service.

'bugreportplus' is more user-friendly (it shows a system notification
with the progress, allow user to cancel, etc...), at the cost of
consuming more resources. As such, the "Take Bug Report" UI will be
changed to offer the user a combo with these 2 options, but for now it's
always going to be 'bugreportplus'

BUG: 26034608
Change-Id: I21a6b5b092a85614e91d523b8f4df1fb00e49b3b
2015-12-05 10:30:18 -08:00
Filip Gruszczynski
ca66481244 Update client configuration when resizing without crossing size threshold.
Even though the activity won't be relaunched and won't receive a
callback about the resize, we still need to update it's configuration.
Otherwise when the application queries for it, it will receive wrong
data.

Bug: 23904868
Change-Id: I601e91b8e71691c1cb5edb2734894441c4fde8e2
2015-12-04 17:14:52 -08:00