History log of /frameworks/base/packages/SystemUI/src/com/android/systemui/pip/phone/PipMotionHelper.java
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
4a526c124554e75dc4bc11a682645a73bd47d501 16-May-2017 Winson Chung <winsonc@google.com> Ensure that we use SF Vsync Choreographer for the PiP transition.

- Move the bounds animation onto the animation thread
- Remove existing code referencing the old sf-vsync choreographer
- Add ability for ValueAnimator subclasses to reference a different
AnimationHandler, which uses a different FrameCallbackProvider with the
sf-vsync choreographer in the animations that require it
- Ensure that PiP touch events are batched and sent aligned with the
sf-vsync
- Move GC onto its own thread to not block other BackgroundThread calls

Bug: 36371375
Test: android.server.cts.ActivityManagerPinnedStackTests
Test: bit FrameworksServicesTests:com.android.server.wm.BoundsAnimationControllerTests
Test: go/wm-smoke

Change-Id: I6a41b35a4e4d4d6dbea82c2673452825fe3ffa58
/frameworks/base/packages/SystemUI/src/com/android/systemui/pip/phone/PipMotionHelper.java
bb23376439a369d2a4f94abcda6a46dea673a74c 15-May-2017 Winson Chung <winsonc@google.com> Fixing issue with double tapping PiP.

- If a user taps the PiP quickly multiple times, you can hit a case where
you expand the PIP, which triggers the re-registration of the
InputConsumer, but doesn't disable touches until the pinned stack
animation starts. If the user taps in between that time, it can trigger
a resizing of the stack what aborts the expand animation
- Also adding additional debugging logs

Bug: 37657050
Test: Quickly tap the PiP

Change-Id: Ib0088a3aa8e917aca3214c289a0787bdf7e66199
/frameworks/base/packages/SystemUI/src/com/android/systemui/pip/phone/PipMotionHelper.java
79f852e7a784a6c1721fcea0936d98098f9359b9 05-May-2017 Winson Chung <winsonc@google.com> Ensure that we hide the menu without resizing when expanding.

- This should be done when expanding/dismissing from the menu activity,
otherwise the menu state change can cause a stack-resize animation that
clobbers the expand or dismiss animation.

Bug: 37650245
Test: Launch Duo in PIP, end call from notification tray
Change-Id: Ie880715ae7be28a4fe2dd0d294e369b62e776c35
/frameworks/base/packages/SystemUI/src/com/android/systemui/pip/phone/PipMotionHelper.java
e6385a23d7d7e0628544c9751c59507d1df7885c 03-May-2017 Winson Chung <winsonc@google.com> Workaround launching PiP task with CLEAR_TASK & NEW_TASK flag.

- When launching an activity with CLEAR_TASK and NEW_TASK, the result code
of the start is START_SUCCESS, but we still need to notify SystemUI to
expand the PiP. However, because the PiP transition now waits for the
first draw, this can cause severe jank and delay if the original activity
is a trampoline activity. As a workaround, we immediately move the task
to the fullscreen stack when clearing and restarting the task to ensure
that the new task shows without delay.

Bug: 37501224
Test: Open YT in PIP, launch sub-shortcut from Home

Change-Id: I16bebf19b082f30695e99da1d93bc4adf5e9df0c
/frameworks/base/packages/SystemUI/src/com/android/systemui/pip/phone/PipMotionHelper.java
47ba140cbf9faa8c391fc85f4254ade0b4d23357 05-Apr-2017 Mady Mellor <madym@google.com> Add ability to fling to dismiss PIP from anywhere

This is by default turned off and is behind a tuner flag.

Allows the PIP to be dismissed if it is flung towards the bottom center
of the screen and the finger is released within the bottom area of the
screen.

Test: Manual - enable tuner setting, have a PIP, position it at top of
screen, long- fling it towards bottom center of screen, it dismisses.
Bug: 35358628
Change-Id: I2d3d50093f6523c7bb321e0486dab360095a398e
/frameworks/base/packages/SystemUI/src/com/android/systemui/pip/phone/PipMotionHelper.java
c2627353c44f00c751f77b4e45a124f4988f61d9 18-Apr-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Tightening up rotation behavior for PIP (3/3)" into oc-dev
ef4dc81d508a44b321581db7c2098701da53494d 11-Apr-2017 Winson Chung <winsonc@google.com> Tightening up rotation behavior for PIP (3/3)

- Fixing up edge case when SysUI resizing conflicts with updating the
display rotation bounds. When an interaction causes both a display
rotation and a resize from SystemUI, we should defer the resize animation
until the rotation has been propagated to SystemUI, otherwise the bounds
used will be incorrect.

Bug: 36879891
Test: android.server.cts.ActivityManagerPinnedStackTests
Change-Id: Ife1b7ab0c2f1f11f33cbc9614778ff49a28c79f6
/frameworks/base/packages/SystemUI/src/com/android/systemui/pip/phone/PipMotionHelper.java
487737b876b5a2d2ffc2f3a875243efdbe0fb48b 05-Apr-2017 Winson Chung <winsonc@google.com> Use vsync choreographer when moving PIP.

Bug: 36371375
Test: Enter PIP, move PIP
Change-Id: I5956a3ed9e92a4cdd4bf0a55723b9f1574c1a86f
/frameworks/base/packages/SystemUI/src/com/android/systemui/pip/phone/PipMotionHelper.java
87e5d55e98857bd43984c2395660d88ae20efcfc 05-Apr-2017 Winson Chung <winsonc@google.com> Workaround for input ANR, always finish PiP menu activity.

- Always finish the PiP menu activity when the interaction is complete
(either the menu is hidden after showing, or when the user stops
interacting with it and it was shown for the dismiss overlay)
- Fix issue with bounds animation callback not working due to the app
window being removed and not updating the app transition that its
animation "finished"
- Add additional logging throughout to trace PiP animation

Bug: 36877782
Test: Enter PIP, tap to show menu, wait for it to hide, and then use
wired headset button

Change-Id: Ie88ba107d7fffdd182a4063ef4f324b58669d0ad
/frameworks/base/packages/SystemUI/src/com/android/systemui/pip/phone/PipMotionHelper.java
60421c9d451afa85abc6621fe97828857012a054 30-Mar-2017 Mady Mellor <madym@google.com> Update PIP dismiss to show scrim + info text at the bottom of the screen

- Rather than testing how far off screen the PIP is, instead tests how far
past the nav bar / on screen bars the PIP is to determine if it is a
dismiss
- When dragging PIP around screen, display info text + scrim at bottom
these are above the PIP in z-order
- On lift up or when PIP is dismissed, info text + scrim also hide
- Alters dismiss animation to use end point on trajectory of finger and
use FlingAnimationUtils when flinging

Test: Drag PIP around screen, notice dismiss scrim + text appear, dismiss
PIP and scrim / text also disappear
Bug: 35358628
Change-Id: Ibc0f6a884903f7d1b3ca2fd5c20647b4acf15a71
/frameworks/base/packages/SystemUI/src/com/android/systemui/pip/phone/PipMotionHelper.java
81d406104a1661658eba8755de59bf1df575e4c7 11-Mar-2017 Mady Mellor <madym@google.com> Enables drag to dismiss for PiP and adds a dark scrim when dismissing

- Adds a scrim that fades in as the PiP is dragged past the bottom movement
bounds.
- Tweaks the values for minimizing the PiP and dismissing the PiP
- Fixes an issue where the PiP could be minimized in the bottom corners
of the screen

Test: Manual - drag PiP to bottom of screen to dismiss or swipe down on
PiP when it's at the bottom of the screen
Bug: 35358768
Bug: 35358628
Change-Id: Ib4ad5ed7094fef76ea979b46ea7e03d746625d00
/frameworks/base/packages/SystemUI/src/com/android/systemui/pip/phone/PipMotionHelper.java
57d2255cc983b614be61cab86ea8d5cafc03fdec 10-Mar-2017 Mady Mellor <madym@google.com> Add drag down to dismiss pip as a dismiss option

If enabled via flag, when the user drags the PIP past
a threshold at the bottom of the screen, the PIP will
be dismissed. If the PIP is sitting near the bottom
edge and the user flings downwards the PIP will be
dismissed.

Unifies logic to identify for “fling towards edge” for
minimize and dismiss gesture — adds additional logic
to check that the start of the fling gesture was near
that edge. This stops you from accidentally minimizing
or dismissing on a “long fling”.

Test: manual - enable flag, and drag pip to bottom of
screen to dismiss
Bug: 35358628
Change-Id: Iddd66ed2720964d431cddea6173767eb5565b991
/frameworks/base/packages/SystemUI/src/com/android/systemui/pip/phone/PipMotionHelper.java
baa7b721dc8ee22f8e5f8c373fe6ab1630446f0f 04-Mar-2017 Winson Chung <winsonc@google.com> Small fixes and tweaks to PiP transition.

- Fixing case where default bounds did not account for ime height
- Ensuring that we using the animating/target bounds when calculating
the new ime-offset bounds
- Tweaking transition interpolators and durations

Bug: 35396882
Test: android.server.cts.ActivityManagerPinnedStackTests
Change-Id: Ia22ea0008d834c47a3f26bf2e1f484c72fae8736
/frameworks/base/packages/SystemUI/src/com/android/systemui/pip/phone/PipMotionHelper.java
a7f69740b5b4d74cd0736b05220d2c8633b07a63 03-Feb-2017 Mady Mellor <madym@google.com> Update how PIP size is determined

- minSize = 108dp
- defaultSmallestEdge = max(23% of screen width, minSize)
- the shortest edge of the PIP should be minSize and the rest scales
according to the aspect ratio
- rather than a default PIP size, use default aspect ratio
- adding expand button
- fitting actions to spec

Fixes: 35358504
Test: manually used test app to try different aspect ratios
Change-Id: Ib6890fb7824889b9edeea7efb5b9771e64fc1514
Signed-off-by: Winson Chung <winsonc@google.com>
/frameworks/base/packages/SystemUI/src/com/android/systemui/pip/phone/PipMotionHelper.java
d2d909778c3dd67ccbccd5134ef7624059994ca9 28-Feb-2017 Winson Chung <winsonc@google.com> Initial changes to support expanded PiP

- Prior to this CL, the input consumer and size of the PiP was tightly
coupled with the visibility of the menu, but with the expanded state,
the PiP should still move while the menu is visible.

Bug: 35358488
Test: Click on the PiP to expand it

Change-Id: If52208f19af516b2455bde26855c80f44bc9021a
/frameworks/base/packages/SystemUI/src/com/android/systemui/pip/phone/PipMotionHelper.java
29a786590f273b123efa4bb669c4ae51dd055a00 10-Feb-2017 Winson Chung <winsonc@google.com> Adding PipManager dumps.

Test: adb shell dumpsys activity service com.android.systemui
Change-Id: Id647833f1b4dcb6226517c058d17d1812f022671
/frameworks/base/packages/SystemUI/src/com/android/systemui/pip/phone/PipMotionHelper.java
db2ad5d974f56a0e7693d7cd2059249565bb6254 08-Feb-2017 Winson Chung <winsonc@google.com> Fixing crash when fetching stack bounds.

Bug: 35115909
Bug: 35112703
Test: Manual
Change-Id: I708501f2d94682e5e945e2ade52c5c53c2fb8067
/frameworks/base/packages/SystemUI/src/com/android/systemui/pip/phone/PipMotionHelper.java
2a82fe587b850061ace024d2025047554987c10d 02-Feb-2017 Winson Chung <winsonc@google.com> Refactor PiP logic in preparation for expanded state.

- #1: Move logic for handling IME size changes into SysUI, and only rely
on PinnedStackController to provide bounds when first entering
PiP and on rotation
- #2: Doing #1 allows us to move PipMotionHelper to SysUI completely, which
lets us aggregate the animation calls out of PipTouchHandler
- #3: Add proper callbacks to the listeners when the movement bounds
changed from config change, ime change, or aspect ratio change. This
allows SysUI to calculate the associated movement bounds for the
expanded state, and we can then remove the corresponding WM call.
It also means that SysUI is the only thing that needs to know about
the expanded state.
- #4: Fix issue where TV was getting the default bounds, not taking the
aspect ratio when the PiP was entered into account. Doing #3
allows us to report the right bounds.
- #5: Remove dead code related to edge snapping/minimizing now that they
are on by default and associated tuner setting, and controller
callbacks

Test: android.server.cts.ActivityManagerPinnedStackTests (all existing tests pass)

Change-Id: I3ef361bdf8d44094b4c0a11c70ba4db7d697fdec
Signed-off-by: Winson Chung <winsonc@google.com>
/frameworks/base/packages/SystemUI/src/com/android/systemui/pip/phone/PipMotionHelper.java