This command is useful for testing during development, but at some
point we will decide if allowing configuration changes during resizing
is okay or merge in http://ag/759766 to suppress configuration changes
during resizing and deliver the new config. to the app.
This functionality will be reverted once we decide.
Bug: 24380097
Change-Id: I223c08bc939e564a78e70994b599770be9d4730d
This reverts commit 3b0fc3cf24.
It breaks the build. I had missed other places that extend PackageManager.
Change-Id: Iff012ed4ec8d2d32821586eca85fce55ae67f5b5
- Now all services that DPMS uses are injectable.
- Introduce some wrappers to make static methods and final class mockable.
(e.g. for Binder.getCallingUid())
- In unit tests we replace those with Mockito mocks, except we use a partial
mock for PackageManager, because we use way too many methods of this and
most of them are okay to use directly.
- To install a partial mock to PackageManager, I needed to make
ApplicationPackageManager @hide public non-final.
- For a starter, added tests for DPM.setAmin().
Bug 24061108
Change-Id: I2afd51d8bc0038992d5f9be38c686260be775b75
Add methods installPackageAsUser and installExistingPackageAsUser
and deletePackageAsUser and getPackageInfoAsUser.
Change-Id: I9a3ff96f968b4f8d21a57cc7760679628d35c1a9
BUG:23516394
This changes application code behavior when the activity relaunches due
to configuration change. It only applies to scenarios, where the
configuration change was triggered by a user generated resize of an
activity (i.e. user drags a corner of an activity and thus changes its
size).
Preserving a window means that we will keep the decor view and non
client decor view around, but remove all children views when the
activity gets destroyed. When the activity gets created again, it will
attach its new content to the preserved view hierarchy. Mind, we
actually recreate application side Window object, since some of its
features might changed, but we retain its elevation (to not trigger
relayout with new layout params).
Preserving the window also means that we don't call the window manager
service to remove and later add the window. Instead, we continue using a
single window state throughout the resize operation.
Change-Id: Ie3d2878ed09c99ff343044bfe7a29a0ba07a265e
- add a startMoving API to initiate a window move from app, once
the move starts WindowManager will take over the event handling.
- detect touch events along window's outside border and start
a resize if necessary
Change-Id: Ic7e8baba34e0aa27a43173e044ffb46e93e219e0
We cannot pull the "retain loader" state from the Activity; an Activity may
not always be hosting a Fragment. Instead, save the "retain loader" state
inside the individual fragments.
Bug: 23838271
Change-Id: I8358183a7689b5a571ea7be03d769186b2812600
Bug 23693301
An enter or exit transition targeting an ID, name, or similar
would match by the given criteria. This disreguarded that the
exiting view should not match against the entering views, even
if they have the matching criteria.
This excludes the exiting and shared elements from participating in
the enter transition and the enter and shared elements from
participating in the exit transition.
Change-Id: I4007699d2546416008f7a9fcfdb87ff504316577
This change modifies the Notification.Action constructor
to populate the deprecated "icon" field based on the provided icon.
This field is still used by NotificationCompatApi20
to create a NotificationCompatBase.Action from a Notification.Action.
Bug: 23348968
Bug: 22591778
Change-Id: I3576038384d2baa12c4c75bc4124e3859aacbd13
Bug 23764120
Window features are set in PhoneWindow.installDecor. The Activity
Transition feature is checked after onCreate. If the developer
hasn't accessed the decor View in onCreate, the Activity Transition
feature will not have been set prior to checking it. To correct
this, the decor View will be forced to be created prior to
checking the Activity Transition feature state.
Change-Id: I2c756b6736ae7f3a346f4f9bcef6936371ff03c5
For each runtime permission we have an app op to toggle the
permission for legacy apps as they cannot handle permission
revocations. We were lacking an app op for get_accounts
which prevented the user from controlling access to accounts
regardelss that they change the state of the permission
toggle in the UI. Even worse the permission UI is written
with the assumption that every runtime permission has an
app op and as a result revoking the contacts group (if the
app requests the get_accounts permission) is reset back to
allowed in the UI.
bug:23854618
Change-Id: I12b83dfd22974d130e5b8e7a195421120813e2db
For each runtime permission we have an app op to toggle the
permission for legacy apps as they cannot handle permission
revocations. We were lacking an app op for get_accounts
which prevented the user from controlling access to accounts
regardelss that they change the state of the permission
toggle in the UI. Even worse the permission UI is written
with the assumption that every runtime permission has an
app op and as a result revoking the contacts group (if the
app requests the get_accounts permission) is reset back to
allowed in the UI.
bug:23854618
Change-Id: I9e3f9bfeb320bed561d718db99ee285915d5701b
- setDeviceOwner() now takes a user ID. (We can infer it from Binder, but
we still need it for the dpm command.)
- Change broadcast target UID for DO to the DO user
- Start the DO user on boot complete.
TODO Investigate whether this is actually the good timing.
TODO Prevent the DO user from being killed
Bug 23827706
Change-Id: I227dbd444f1f4e94d98c317489d151554fe79d91
We finally get a UX decision for the Shelf.
Shelf won't have 2 parts - pinned and recents; it will have only 1 list where
all pinned and recent activities of the same kind are grouped under a single icon.
Clicking at that icon activates the latest running activity if it's present, or
starts a new one otherwise.
The above part is implemented in this CL. I removed stuff related to the separate
Recents pane, and moved surviving code to NavigationBarApps.
Later, we'll have menus popping up from the icon, which will allow pinning and unpinning,
and choosing a concrete activity to activate.
Bug: 20024603
Change-Id: Ia08fe62939f92c7ee4f102c07a31e7168a11f010
Ensures views that manage drawables follow the contract set forth in
the Drawable.setState() documentation.
Bug: 23792020
Change-Id: I4e5a449cd6535487873fd8443da50555c38e8ed9
Pass in bounds via ActivityOptions for moveTaskToFront and
startActivityFromRecents. Allow bounds to be overriden by rects
in starting intents.
Set bounds to null in RecentsView for full screen layout.
Change-Id: I0ff79fd75068f4ba82d5e2c0a21881fabebdadb8
The application context needs instrumentation data to be in place
prior to construction so that the class loader is initialized using
the correct paths.
Removes unnecessary clearClassLoader() workaround that was previously
added to fix instrumentation tests.
Bug: 22627299
Change-Id: Ibf8e69e037189a9a563f0b68cfe333461726b71d