Display toast when a non-resizeable task is put into side-by-side mode.
Scroll the task upon a two-finger scroll gesture.
bug: 25433902
Change-Id: I69967056a564cfe7773afb80aa7e7ea7167a791a
When dismissing the docked stack, we animate the divider to position
-12dp, so the full-screen stack is exactly full-screen when the dismiss
animation is done. Previously, this was prevented by window manager.
Allow it to fix the animation.
Change-Id: Iee4505023dc3f6907d56851965b156235f9f97f2
Also includes bunch of small refactorings:
* destroying surfaces is now fully contained within
WindowManagerServices and mDestroySurface can be privatized;
* WMS.isDockedStackResizingLocked can be removed;
* mScreenCaptureDisabled changes from being SparseArray<Boolean> to
SparseBooleanArray, which not only avoids boxing but also makes code
simpler (no need to check for null)
Bug: 25844096
Change-Id: I0e5462760ffbc947ce6dc52ef429fa270ffc6786
Add an optional parameter in moveTaskToDockedStack to supply an
initial rect to be used when creating the dockeds tack. Pass in
the adjusted rect when dragging up from the navbar so it doesn't
flicker anymore.
Change-Id: Ieb3c8c73b9e2a769a2ec6270bd76a713201a2aed
- Previously on MNC, they would return the same result regardless who
the calling user is.
- Now they properly take DO user-id into account. Meaning, they'll
always return false and null respectively, if the calling user doesn't
run device owner.
- Note isDeviceOwnerApp() is a public API and getDeviceOwner() is
a system API. Meaning we're changing the behavior or non-private
APIs.
- Also cleaned up hidden APIs, and gave them explicit suffixes
to avoid confusion. Bundled code should prefer them for clarity.
Now we have:
* APIs that work cross-users: They all require MANAGE_USERS.
boolean isDeviceOwnerAppOnAnyUser(String packageName)
ComponentName getDeviceOwnerComponentOnAnyUser()
int getDeviceOwnerUserId()
boolean isDeviceOwnedByDeviceOwner()
String getDeviceOwnerNameOnAnyUser()
* APIs that work within user. No permissions are required.
boolean isDeviceOwnerAppOnCallingUser(String packageName)
ComponentName getDeviceOwnerComponentOnCallingUser()
Bug 24676413
Change-Id: I751a907c7aaf7b019335d67065d183236effaa80
Sometimes I still see an old recents animation when the transition
failed before. I believe this is because we don't clear the future
when clearing the transition.
Change-Id: Ia9415fa68c8e472c15fabccaf788762186d2d35e
If a direct listener alarm attempts to match a regular
PendingIntent alarm, it will attempt to fetch the binder of the
regular alarm's direct listener, which is null, and crash the
system with an NPE.
Bug: 25823676
Change-Id: I85fb98b43436930a2513274dc5ab408f7d41d97f
- Adding “focused” stack state to support paging
- Changing the paging to match UX spec (only auto-page after the first
tap)
- Removing old header focus animation
Change-Id: Id72825b8a1b1c0a2238ee184a6695b13c1d8cb1c
On systems where primary user is different from the system user,
the message "Switching to Owner..." is displayed while logging out
from any user. Changing it to "Logging out <username>".
Bug: b/25749937
Change-Id: Id519bbd444c6b3f951511d6e566c503d06c510a1
Remove dead code related to media button event receiver and
remote control display, now handled by MediaSession*
Change-Id: I4bd621240ddddf4df079df8d551c72b232c3301d
SettingsProvider used to prevent any changes to certain settings
when the corresponding user restriction is set, which isn't really what
these restrictions mean.
Even if a user restriction is set, it should still changing in the more
restricting direction.
Also stop setting "" to LOCATION_PROVIDERS_ALLOWED, which will simply
be ignored.
Bug 25614198
Change-Id: Ifa8edc2927e21e6c6174620c8c874c86c1dc0f75
Now that we don't have UM.setUserRestriction*s*() that could remove
all existing restrictions, there's almost no point handling
DISALLOW_RECORD_AUDIO differently.
Now DISALLOW_RECORD_AUDIO is handled just like other restrictions,
except we don't persist it.
Bug 24954662
Change-Id: I27875b4a74dd95a3ce6bb774081eeaf718eaec15
Separate WindowState.isFullscreen into two methods, isFrameFullscreen()
that returns whether the window frame is fullscreen, and
isObscuringFullscreen(), which returns whether the window is actually
covering fullscreen.
In case of a docking task that's non-resizeable, the window frame is
fullscreen but since the stack is not fullscreen, the window is cropped
to stack bounds and is not obsuring the screen.
bug: 25433902
Change-Id: I7cd80381601fdc1fe87d04608b6a453806920590
Make sure that touch events do not affect the drag shadow
while it is being animated at the end of an unconsumed drop.
Change-Id: I4ead3148f5e67db8fb312b9f9b0383815f8b2809
If the drop has not been consumed (DragState.mDragResult is false)
the drag shadow surface is not immediately destroyed, but animated
back into the position where the drag started.
The current animation is an OK placeholder, still waiting for the
final word from UX.
Bug: 24415573
Change-Id: Ia30135ce1e85655c8ba16e28dc69f0ebf9b36239
View.cancelDragAndDrop cancels a drag operation initiated by
View.startDragAndDrop.
It has to be called on a View in the same window (under the
same ViewRootImpl) that the view which started the drag.
Bug: 24415683
Change-Id: If9a265fd8cc4d26b207d582d0d02d5c9ae78eba1
This policy allows DO to specify a list of apps to cache even without being
installed on any user.
Bug: 23938464
Change-Id: I2eeab7f148409739fc23a5c44e955ad12b63fd04
This was causing upto 2 seconds in user switching delay.
Also switched to using Log.wtf for the timeout message to
track any regressions in this due to new clients.
Bug: 25813588
Change-Id: Icf23b021f134a8ccfa2dae470af02b2da7454acc