History log of /frameworks/base/core/java/com/android/internal/policy/PipSnapAlgorithm.java
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
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/core/java/com/android/internal/policy/PipSnapAlgorithm.java
89dc00a3adccddeb09a379067ca8ff4938d3404e 08-Mar-2017 Mady Mellor <madym@google.com> PIP should only move along long edges when on phone

Phone portrait: restrict movement to left / right edges
Phone landscape: restrict movement to top / bottom edges

Tablet: allow PIP on all edges regardless of orientation

Test: manual - have PIP try to move along top / bottom edge
in phone portrait, and left / right edge in phone landscape
Fixes: 35358644
Change-Id: Ie50ae220782936942d1bcd8d9251d7275832a47f
/frameworks/base/core/java/com/android/internal/policy/PipSnapAlgorithm.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/core/java/com/android/internal/policy/PipSnapAlgorithm.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/core/java/com/android/internal/policy/PipSnapAlgorithm.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/core/java/com/android/internal/policy/PipSnapAlgorithm.java
3b10dcd2cae2c61a8d39d3e562c76c4070e94822 23-Jan-2017 Mady Mellor <madym@google.com> Update PIP minimize to edge gesture

Updates gesture to match prototype:
- If you fling towards the current edge the PIP is on it is minimized
- Dragging far enough to left or right edge minimizes PIP

Test: manual
Change-Id: I56664e16505b461ad37b181cbb89ee4c6e371aa2
/frameworks/base/core/java/com/android/internal/policy/PipSnapAlgorithm.java
e7c8aeefb449ea4cf810d5bdcd94ebe3de7541f4 26-Jan-2017 Mady Mellor <madym@google.com> Merge "Adjustments to PIP heuristics to snapping along edges of screen"
199ba1cb272daa147510c3be27ad129b5beb5b4e 18-Jan-2017 Mady Mellor <madym@google.com> Adjustments to PIP heuristics to snapping along edges of screen

Updating to match prototype
— PIP will snap to corners if within a certain distance from them
- PIP can be placed freely along edges of screen otherwise

Test: manual
Change-Id: Ief5337c5fcfc2a19088bb947486634712ec6ca5d
/frameworks/base/core/java/com/android/internal/policy/PipSnapAlgorithm.java
114aeea51677345daca89c392adaef84d4499bd9 10-Jan-2017 Winson Chung <winsonc@google.com> Ensure we account for insets in minimized state.

- When dragging slightly offscreen to minimize the PIP,
ensure that the bounds take the insets into account so
that the user can still interact with the PIP.

Test: Enter PIP in landscape, try to minimize it.

Change-Id: I093a37ba600722d44e50cc68dac77365a2ba062e
/frameworks/base/core/java/com/android/internal/policy/PipSnapAlgorithm.java
a5acf18dfedaf38d7a66a828a5be918c7e160253 06-Jan-2017 Winson Chung <winsonc@google.com> Updating PIP to match UX

- Updating menu actions to match design, fixing issue where
the actions background would still be visible if there were
no actions
- Enabling tap-to-show-menu, minimizing, snap-to-edge by default,
and removing swipe to dismiss option.
- Making the visible size a fixed value instead of a fraction of
the PIP size

Test: android.server.cts.ActivityManagerPinnedStackTests
Change-Id: Ib767df497ca7bc901c553d35168080f3b737033a
Signed-off-by: Winson Chung <winsonc@google.com>
/frameworks/base/core/java/com/android/internal/policy/PipSnapAlgorithm.java
d5a01599f7c90db0cc9bb11e18883a18660a2a45 12-Nov-2016 Winson Chung <winsonc@google.com> Fixing issue where PIP did not stay minimized after rotation.

- Ensure that we reapply the minimized offset after applying the snap
fraction to the rotated bounds
- Fixing small issue where we weren't bottom aligning the PIP when the
visible IME changes size (but is not made invisible)
- Also fixing an issue where the touch gesture continually allowed
swiping offscreen even after dragging the PIP a distance. Now, if no
gesture handles the drag, then the default gesture will disallow
offscreen dragging once it handles the move.
- Shrinking PIP slightly to fit proportions of screen.

Test: Enable minimization in SysUI tuner, put PIP into minimized state,
rotate the screen. This is not final UX and the CTS tests will
be updated to reflect this behavior once it is final.

Change-Id: I15c851a0bcf5f867289bc5ad50d298f82a103308
/frameworks/base/core/java/com/android/internal/policy/PipSnapAlgorithm.java
fa7053789f6f874ea1f950826d2471d910114f6e 09-Nov-2016 Winson Chung <winsonc@google.com> Adding experiment for minimized pinned stack.

- Also refactoring the PIP touch handling to be independent gestures

Test: Enable the setting in SystemUI tuner, then drag the PIP slightly
offscreen. This is only experimental behaviour, and
android.server.cts.ActivityManagerPinnedStackTests will be updated
accordingly if we keep this behavior.

Change-Id: I5834971fcbbb127526339e764e7d76b5d22d4707
/frameworks/base/core/java/com/android/internal/policy/PipSnapAlgorithm.java
dff5c08bfd5c15f11b71ce953282ed519ff1b290 03-Nov-2016 Winson Chung <winsonc@google.com> Experiment for snapping PIP to closest edge.

Test: Enable in SysUI tuner, drag PIP. This is only experimental to help
figure out what UX we want to keep.

Change-Id: I0d6f2f0c5909d6a76aae4a8fb84c5076f6996fdd
/frameworks/base/core/java/com/android/internal/policy/PipSnapAlgorithm.java
14fefc26d337ac23b6ae8cf0511f94239e1dd875 02-Nov-2016 Winson Chung <winsonc@google.com> Fixing issue with PIP while IME is showing.

- Unifying logic to ensure that the PIP is moved consistently as its
movement bounds are shifted. This is done by adding a snap fraction
which is a fraction relative to one set of movement bounds, and applied
to a new movement bounds. This is flexible to work with all of the
current snap modes being tested.
- Fixing issue where you can drag out of bounds when touching the PIP
before the IME shows.

Test: android.server.cts.ActivityManagerPinnedStackTests
Test: #testPinnedStackOffsetForIME
Change-Id: Ie68c1ca599f6196726b8224585974a0972b93701
Signed-off-by: Winson Chung <winsonc@google.com>
/frameworks/base/core/java/com/android/internal/policy/PipSnapAlgorithm.java
34c5c1386c6f6b206631928bf959990f1c7af9a1 31-Oct-2016 Winson Chung <winsonc@google.com> Fixing rebase problem.

Test: Manual, Build fix.
Change-Id: Ibf72fea690f368220e76c5856a906bb1787ee000
/frameworks/base/core/java/com/android/internal/policy/PipSnapAlgorithm.java
655332c641ccb12ee1ae3ce89135ca847fba1abf 31-Oct-2016 Winson Chung <winsonc@google.com> Creating PinnedStackController.

- Creating a PinnedStackController to keep track of the state of the PIP
to prevent changes in the system (ie. IME showing) and user interaction
from clobbering each other.
- Refactoring calls in AM into WM/controller

Test: android.server.cts.ActivityManagerPinnedStackTests

Change-Id: Ie59dfd45d5c54764ba69a589b3b8148845e92cc3
Signed-off-by: Winson Chung <winsonc@google.com>
/frameworks/base/core/java/com/android/internal/policy/PipSnapAlgorithm.java
cd1ff64683cf9664d52a153d98863953591d44f8 26-Oct-2016 Winson Chung <winsonc@google.com> Ensure PIP retains bounds on device rotation.

- When device rotates, ensure that the PIP continues to show in the
same aspect ratio, snapped to the same logical snap point.
- Move common snapping code to policy so that it can be shared between
SystemUI and the framework.

Test: android.server.cts.ActivityManagerPinnedStackTests
Test: #testPinnedStackInBoundsAfterRotation

Change-Id: I2d9f1a2dc077a55c39acc1ccba982c255e2ff3a4
/frameworks/base/core/java/com/android/internal/policy/PipSnapAlgorithm.java