History log of /frameworks/base/packages/SystemUI/src/com/android/systemui/stackdivider/DividerView.java
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
60fa64742776632de647e8e85373c887c6e96728 13-Jun-2017 Winson Chung <winsonc@google.com> Minimal change to ensure events are propagated to the right DividerView.

- The RecentsDrawnEvent sent when Recents is first drawn can be racey, if
it is sent before the configuration change in Divider is dispatched, then
it will be posted for the old DividerView, which prior to ag/2363241 was
still sending the correct resize calls (the animation is independent of
the view). For now, we register the event handler in Divider, and
instead proxy it to the current view when it is posted.

Bug: 62528361
Test: go/wm-smoke
Test: Play a movie in Play Movies, ensure the activity is resized

Change-Id: I665b0c6af55dea0db1916f5b041589bf72da3baf
/frameworks/base/packages/SystemUI/src/com/android/systemui/stackdivider/DividerView.java
15ba1515a8df437355e013ee9d4421e5862ced2c 06-Jun-2017 Wale Ogunwale <ogunwale@google.com> Don't allow removed DividerView to resize stack

If a divider view is removed or in the process of been removed, then it
should no longer have any influence on the size of stacks.

Fixes: 62273599
Test: go/wm-smoke
Test: enter split-screen and make sure recents is visible, lock and
unlock the device and verify things look fine.

Change-Id: I79aca82be8a7013328b78e82f508c4ed9fa48a4a
/frameworks/base/packages/SystemUI/src/com/android/systemui/stackdivider/DividerView.java
ddd5458092fe18723f42df68ca27525aacc1f8c1 31-May-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Do not set the divider pos during adjust ime and minimized interaction" into oc-dev
f3589c7a2231194094af1572e91ded7b1342fce0 23-May-2017 Matthew Ng <ngmatthew@google.com> Do not set the divider pos during adjust ime and minimized interaction

When launching an app in splitscreen with while ime is up will trigger
an animation that is trying to minimize the docked stack (this bug is
tracked in b/36603383) with the end result in incorrect bounds for the
docked and fullscreen tasks (leaving visual glitches in their apps).
This was caused by setting the divider position while there was
interaction with the minimized state. Therefore ignore setting divider
while adjusting for ime and minimized interaction for the tasks to end
with the correct bounds.

Fixes: 38428386
Test: manual - dock something in split screen, use the launcher search
to bring up ime, launch any app (like gmail)
Change-Id: Ic3547b02a39f40698db07d1c0946e0991b69f5d3
/frameworks/base/packages/SystemUI/src/com/android/systemui/stackdivider/DividerView.java
9c4b6d3bff287cc7f209a1d7be3d7481dc9dfbcd 27-May-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "DividerView choreographer set earlier to avoid null exception" into oc-dev
a10a9db792fc1c619f5331c251742e1c86bf87b0 24-May-2017 Matthew Ng <ngmatthew@google.com> DividerView choreographer set earlier to avoid null exception

DividerView sometimes gets attached (after created) after minimized mode
has triggered and therefore causes choreographer to trigger a null
exception. So put it in the constructor to avoid this issue.

Change-Id: Iad32fa42ab2bc60bde4ac0be8f8eac8b55de40ae
Fixes: 38017227
Test: manual - hard to repro, keep rotating screen while minimized
/frameworks/base/packages/SystemUI/src/com/android/systemui/stackdivider/DividerView.java
5b49464dc6cae55c240edf794d5b0da988774151 23-May-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Fixed unminimizing during battery saving mode" into oc-dev
04f34304fb174a6285ea4d4a212d05c7753d377f 28-Apr-2017 Matthew Ng <ngmatthew@google.com> Fixed unminimizing during battery saving mode

Added code to restore docked stack to the position before minimized
state when no animation duration is specified. Battery mode skips
animations and therefore it provides no animation duration.

Change-Id: Ica4e4497b90d6b99c9c2c78b5e27365fe35b37ce
Test: manual
Fixes: 36768431
/frameworks/base/packages/SystemUI/src/com/android/systemui/stackdivider/DividerView.java
ef496ea80dfcc468bd051b9379f61e8fe141814d 13-May-2017 Jorim Jaggi <jjaggi@google.com> Optimize App -> Recents

- Use same strategy to draw thumbnail bitmap by moving
startActivity off from the main thread and start caching the future
when AM is busy executing startActivity.
- Move some binder calls off the main thread.
- Add some trace points for better analysis in the future.
- Make toggleRecentApps asynchronous so we don't have to wait on
the next app-vsync - it's totally not needed.

Test: com.android.apptransition.tests.LatencyTests

Fixes: 32668632
Change-Id: Id6483e26e9d6c1e319bceaa8268da976cedfbca3
Merged-In: I15db41f2e821779972ab3b430033c70aa1dfd907
/frameworks/base/packages/SystemUI/src/com/android/systemui/stackdivider/DividerView.java
8902bbe4e3d4d291d71d341889dc7fa8a5a181f6 13-May-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge changes I7b5504d0,I10c263dc into oc-dev

* changes:
Get rid of a lot of binder calls
Fix recents entry delay
ddb449efd9671f4c89470d645acd0b84e6a6ff15 12-May-2017 Jorim Jaggi <jjaggi@google.com> Get rid of a lot of binder calls

Lead to delays when entering recents.

Test: Open recents
Bug: 32668632
Change-Id: I7b5504d0c11208d9c4d55de2eace6407d186f25c
/frameworks/base/packages/SystemUI/src/com/android/systemui/stackdivider/DividerView.java
f9989e2304ed33cdcac531cb200cb770fca809b4 25-Apr-2017 Matthew Ng <ngmatthew@google.com> Fixes divider position after minimizing and unminimizing with ime open

Minimizing with the ime would cause visual glitches with the divider and
unminiming after would set the wrong position leaving graphical errors.
Record the position before minimizing when adjusting for ime and do not
set that position when the ime is still adjusted. Also added animation
for the divider when adjusting for ime.

Bug: 36603383
Test: manual
Change-Id: I456f3a726c62d130dce6c58c2245982e7f46454c
/frameworks/base/packages/SystemUI/src/com/android/systemui/stackdivider/DividerView.java
678d8577a7b7e5a80688cd3b006757b80ff3d50b 28-Apr-2017 Matthew Ng <ngmatthew@google.com> Toggling minimized state with overview moves divider to correct position

When docking any app with overview on the bottom and continuously press
the overview button would not cause the position before minimized
variable to record an incorrect position. Instead only record when not
animating so that the original position is kept. Then after unminimizing
the docked stack, it will return back to the original position that was
recorded.

Change-Id: Ia9da24dcb2a5be1f10be3797007e02b1a1425345
Fixes: 35642296
Test: manual
/frameworks/base/packages/SystemUI/src/com/android/systemui/stackdivider/DividerView.java
51efddbd3bb304de2dd47fa8cd1114ac555958bb 05-Apr-2017 Alan Viverette <alanv@google.com> Remove unnecessary casts on calls to findViewById

Just frameworks/ this time. More paths to come.

Bug: 24137209
Test: make -j32
Change-Id: Iff27abd26fa43296ac2fff8f534fc6742d2ae80c
/frameworks/base/packages/SystemUI/src/com/android/systemui/stackdivider/DividerView.java
ed7993b5d147a6741d26fe0b16cc9fa5e34ceaee 28-Mar-2017 Jorim Jaggi <jjaggi@google.com> Introduce android.anim thread in system_server

We create a new thread on which everything is running that
directly impacts window animations, i.e. layout, anim tick and
starting window creation. This is such that any work on
android.display can not lead to jank in the window animation,
specifically lock contention on activity manager lock that blocks
callbacks from android.display into AM can not lead to window
animation jank.

Test: Run animation, take systrace, make sure animation is on
android.anim
Test: AppWindowContainerControllerTestTest: AppWindowContainerControllerTestss
Fixes: 36792959

Change-Id: I5d41419a709b7984724e7053a3afdcc1ffe1aaa2
/frameworks/base/packages/SystemUI/src/com/android/systemui/stackdivider/DividerView.java
d6d6de6da4c7c32babd65c23804d9fdc6eeed740 31-Mar-2017 Jorim Jaggi <jjaggi@google.com> Schedule window animations at vsync-sf

Test: Run window animation, make sure it's smooth
Test: Take systrace, make sure it runs at vsync-tick
Test: Move divider, make sure it's still smooth

Change-Id: I1600618e074be811134fe4ccb1dfbd5034820c71
Fixes: 36583867
/frameworks/base/packages/SystemUI/src/com/android/systemui/stackdivider/DividerView.java
aa2b620cb76cb8a710c3c4500bc5f6975ddc7a84 10-Feb-2017 Matthew Ng <ngmatthew@google.com> Fixes minimized state to match task and stack bounds for cts test

Fixes minimized state for its task and stack bounds to always match
inline with the cts test that was failing.

This also fixes multiple state issues related to splitting home and
recents into different stacks when recents incorrectly reads home stack
bounds to determine bounds for recents.

Test: cts/hostsidetests/services/activityandwindowmanager/util/run-test
CtsServicesHostTestCases
android.server.cts.ActivityManagerActivityVisibilityTests or
ActivityManagerDockedStackTests
Fixes: 35351074, 35145587
Change-Id: I6417a567e937c647818ff26dc08df463e6ef4257
/frameworks/base/packages/SystemUI/src/com/android/systemui/stackdivider/DividerView.java
fb692acb647b19b078a95fab8f186f1ca1469250 02-Feb-2017 Matthew Ng <ngmatthew@google.com> Longpress overview in minimized mode only for resizable launches (1/2)

Since resizable launchers in minimized mode shows more of the docked
stack than in non-resizable launchers, it will play the same
functionality as split screen where long press overview button will
exit split screen into fullscreen mode.

Test: test was written - adb shell am instrument -w -e class
com.android.androidbvt.SysUIMultiWindowTests
com.android.androidbvt/android.support.test.runner.AndroidJUnitRunner
Fixes: 34892561
Change-Id: I9f957dada1b325b36068d59fa9b2d1fa4912b804
/frameworks/base/packages/SystemUI/src/com/android/systemui/stackdivider/DividerView.java
e15352e516fb6ecde12866f0eb27c32470ddbded 21-Dec-2016 Matthew Ng <ngmatthew@google.com> Splitscreen for minimized state that works with resizable launchers

If a launcher is resizable, going to minimized mode (dock task and then
press home) would show a cropped height of the task at the top in a
minimized state and the fullscreen stack would show the home launcher
which takes the rest of the remaining height. If the launcher is not
resizable, it will default the original behavior.

To enable this in a launcher, add android:resizeableActivity="true" in
the AndroidManifest.xml in the <application/> tag.

Test: manual - rotating while minimized, minimizing using dragging task
or holding overview nav button, installing resizable launcher with a
non-resizable launcher
Fixes: 32504542
Change-Id: Idf4015b40f9bec81b70f146f0f2d7df8ccfb4cf0
/frameworks/base/packages/SystemUI/src/com/android/systemui/stackdivider/DividerView.java
383db5ebcc3a4a615faf249bf4f126f42e80b82e 22-Jun-2016 Tamas Berghammer <tberghammer@google.com> Update package names to work with the proto3 compiler

Bug: b/28974522
Change-Id: I5f3adf4946ee4ba1e09e4f40afe83c151405972a
/frameworks/base/packages/SystemUI/src/com/android/systemui/stackdivider/DividerView.java
3f23c9f36eac1d4ca357cc8a44e8cff6c6122e14 14-Oct-2016 Jorim Jaggi <jjaggi@google.com> Merge "Fix split-screen flash issue" am: 6738617652 am: f1fed4de21
am: 4e7407a80e

Change-Id: Ibfef3bd01a54cca64a2f0de197bd9480a7539cd0
9170ca82bda25a067a01622793cdd93b29db4205 10-Oct-2016 Qiushi.Han <qiushi.han@spreadtrum.com> Fix split-screen flash issue

For smaller size screens (such as 720p), in split-screen view,
the size of DividerSnapAlgorithm.mTargets is 3, the divider line
can only stop in the middle.

As the original logic, when tapping recent, it will cause the top-docked
activity to resize, leading to flash in some cases.

To fix this, do not call startDragging in this scenario.

Google issue:
https://code.google.com/p/android/issues/detail?id=224851

Change-Id: Iac58d536ccf668eed67f82418ce2cf90d46670ed
/frameworks/base/packages/SystemUI/src/com/android/systemui/stackdivider/DividerView.java
dbe6fdb05be5dc7b988c542cbbde7788f15b775f 29-Jul-2016 Jorim Jaggi <jjaggi@google.com> Fix multi-window drag jank if vsync-app is before vsync-sf

If vsync-app is a couple of ms before vsync-sf, we handle the touch
in SystemUI at vsync-app. Then, we have extremely little time to resize
all the stacks in activity manager until vsync-sf, so sometimes this is
done before vsync-sf tick, and sometimes after, which leads to jank.

Figure out the difference of vsync-app and vsync-sf in SystemUI and then
post the updates to be processed at vsync-sf so we have the whole 16ms
to process the change.

Change-Id: Ibe7cb6dfe9fbfe2d3e68e522a95a75138fb0dcf1
Fixes: 30437123
/frameworks/base/packages/SystemUI/src/com/android/systemui/stackdivider/DividerView.java
e525a35704043205ac5131898cc3291407864c32 28-May-2016 Jorim Jaggi <jjaggi@google.com> Fix multi-window enter animation

Stable insets are not calculated in the first pass, so fetch it
manually if needed to avoid a relayout.

Bug: 28705801
Change-Id: I8f9a3bab96b597a80963d7ebcc8b19454b3e45a6
/frameworks/base/packages/SystemUI/src/com/android/systemui/stackdivider/DividerView.java
a6c05d5151027f902c5c56bded008cbe15bd6301 27-May-2016 Jorim Jaggi <jjaggi@google.com> Fix weirdness when home task forces rotation

- Make sure to retain the state when divider goes through a configuration
change in order to avoid that nothing happens when entering multi-window.
Save the state in DividerState and use a handler that's independant of the
attached state.
- Don't allow home task to dictate orientation unless the docked stack is
minimized. This caused a lot of weird bugs because when docking a task,
home stack gets moved to front, and if home task is front of stack, it
temporarily might dictate the rotation but later not anymore so this
causes two rapid configuration changes which may cause a lot of weirdness.

Change-Id: I6a2308af893cd8413ee8801e5b964f6ddc0abd51
Fixes: 28943853
/frameworks/base/packages/SystemUI/src/com/android/systemui/stackdivider/DividerView.java
7660bca5099b1a568e025345f1ba0aa68793e15a 21-May-2016 Winson <winsonc@google.com> Removing extra haptic feedback.

- ag/923796 changed the logic to always return true, so these extra
calls are no longer needed.

Bug: 28867314
Change-Id: I07a4f6ac772a1444bba1950b2f27aa4be58a8419
/frameworks/base/packages/SystemUI/src/com/android/systemui/stackdivider/DividerView.java
a1e0cebf3a18ac097d370e21d698e079f974bfff 19-May-2016 TreeHugger Robot <treehugger-gerrit@google.com> Merge "DO NOT MERGE Rename PointerIcon and Pointer Capture APIs" into nyc-dev
c5887ea7a0b82cc5909743ce14cbda1dcf1dfc82 14-May-2016 Jorim Jaggi <jjaggi@google.com> Fix janky multi-window entry animation

- Add tracing when drawing ImageWallpaper.
- Don't force a redraw in onSurfaceRedrawNeeded. This only adds
another unnecessary draw and doesn't do anything useful.
onSurfaceRedrawNeeded is only here so the client can block.
- Delay entrance animation by one frame so wallpaper can be drawn
before the transition is starting.
- Add some delay for animating the tasks up in recents to match that
delay (it wasn't matched before at all).
- Fix an issue where launchedFromHome was wrong while docking.

Bug: 28769940
Change-Id: I2b763ed40078541328a1e04ffecf5b0a520fe019
/frameworks/base/packages/SystemUI/src/com/android/systemui/stackdivider/DividerView.java
f9d9ce7705475874c82af04eb9b208a7fb556792 13-May-2016 Michael Wright <michaelwr@google.com> DO NOT MERGE Rename PointerIcon and Pointer Capture APIs

This is a response to API council feedback.

Bug: 26830970
Change-Id: Ia2d284b5c1ab8365bedfdc37d129be4b8146036b
/frameworks/base/packages/SystemUI/src/com/android/systemui/stackdivider/DividerView.java
26c8c42bbb2b998e609983886fad5968f033268d 10-May-2016 Jorim Jaggi <jjaggi@google.com> Also freeze configuration when freezing bounds

We also need to freeze the override configuration so we don't report
the new configuration too early, which leads to bugs.

Bug: 27915587
Change-Id: Idffadbb02ab0311796caa760ae1f467fd2d17768
/frameworks/base/packages/SystemUI/src/com/android/systemui/stackdivider/DividerView.java
8563943bd39107b5a7ff9ea475592d0040423ba1 07-May-2016 Jorim Jaggi <jjaggi@google.com> Fix smallest width configuration calculation

For calculating the smallest width, we need to iterate through all possible
orientations, snap the task bounds to a valid snap target and then use the
smallest width across all orientations.

In addition to that, when flinging the divider handle to the bottom of the
screen, we need to pass in fullscreen task bounds to avoid that this new
logic applies so the maximizing app only receives one configuration change.

Change-Id: I37aa9a40938517dfaf26770eb41327d76aec7c62
Fixes: 28469673
/frameworks/base/packages/SystemUI/src/com/android/systemui/stackdivider/DividerView.java
069dfe67a27a068d3893f42d3fb54c4255503f73 05-May-2016 Jorim Jaggi <jjaggi@google.com> Don't resize task when dismissing docked stack

Make sure to "freeze" bounds while dismissing the docked stack by
either maximizing or minimizing it.

Bug: 28196862
Change-Id: Ifcd9deda340de8bc46df949df2fa1049e2f45f92
/frameworks/base/packages/SystemUI/src/com/android/systemui/stackdivider/DividerView.java
d46b72788e8811d2e423ea1e5b2ff104ecb7f721 20-Apr-2016 Winson <winsonc@google.com> Removing legacy calculation of Recents visibility.

- This was causing us to try and launch the Recents activity again after
docking because the running task was the newly docked task and not
Recents.

Bug: 28177001
Change-Id: I222e50f6de00a9d7881da2182eebc61564fd3266
/frameworks/base/packages/SystemUI/src/com/android/systemui/stackdivider/DividerView.java
7b4583974cd55da7c419675c74f2faab14160bb5 21-Apr-2016 Jorim Jaggi <jjaggi@google.com> Fix IME adjust in SysUI

- Make sure scale is correct.
- Adjust interpolator to match WindowManager.

Bug: 28175599
Change-Id: Ica94b3dbac2fcc6e4b8a75faa311fb7861071ccc
/frameworks/base/packages/SystemUI/src/com/android/systemui/stackdivider/DividerView.java
50c410c1c91922e91fb8d1b873f6a541d1e2fd6c 20-Apr-2016 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Fix wrong transition when recents is growing when entering" into nyc-dev
db21bbd2caf05322864f09ec45a0c572cf071123 19-Apr-2016 Jorim Jaggi <jjaggi@google.com> Fix wrong transition when recents is growing when entering

Bug: 27855229
Change-Id: I050305d16df6fe53abf5e74e1f9ee6c882dd7ead
/frameworks/base/packages/SystemUI/src/com/android/systemui/stackdivider/DividerView.java
ce9630da86342c7bf30f00d1ced34a1d051c55ba 19-Apr-2016 Winson <winsonc@google.com> Tweaking accessibility actions for dock divider.

- Adding tl_full/70%/50%/30%/rb_full

Bug: 27724715
Change-Id: Ie3125ec81e6463696cf56640c6b86f9cfcbda945
/frameworks/base/packages/SystemUI/src/com/android/systemui/stackdivider/DividerView.java
e370e15056d45eba83d6ad96d9be46a17eddff29 15-Apr-2016 Jorim Jaggi <jjaggi@google.com> Slow down entrance animation on tablets a bit

Also fix an issue where resize was not called.

And make the translation a bit larger, because the
animation is longer.

Bug: 27870534
Change-Id: Ia6128db8108fe57bee96816fc95fd0811d941ffb
/frameworks/base/packages/SystemUI/src/com/android/systemui/stackdivider/DividerView.java
698e7634aa2ced554f564f588c2e878fb35757a3 14-Apr-2016 Jorim Jaggi <jjaggi@google.com> Disable resize when IME is adjusted

Bug: 28175599
Change-Id: I338dd230443973d912f17946ed722789b0f545a2
/frameworks/base/packages/SystemUI/src/com/android/systemui/stackdivider/DividerView.java
545c5c20d3b1f424b2f1917a262a5e8130dab6d0 13-Apr-2016 Jorim Jaggi <jjaggi@google.com> Refine long-press enter and exit animations

Bug: 27154882
Change-Id: I13a1a6ea7eabdefc7e5c32ae0471d9fa14cc3f86
/frameworks/base/packages/SystemUI/src/com/android/systemui/stackdivider/DividerView.java
29379ec859bf7118dec9f3248c63ee369218ad6b 12-Apr-2016 Jorim Jaggi <jjaggi@google.com> TRON refinements for multi-window

Bug: 26013430
Change-Id: I89b139b4ca3e7b6a06d8b5b351d67ffac240f73f
/frameworks/base/packages/SystemUI/src/com/android/systemui/stackdivider/DividerView.java
2917dc4918ab2061f6cab3d181d19ea8375df9f6 11-Apr-2016 Jorim Jaggi <jjaggi@google.com> Add shadow for minimized dock

Bug: 27972642
Change-Id: Ic4c8145f61694ff2bb0e237da1142093c6a4d965
/frameworks/base/packages/SystemUI/src/com/android/systemui/stackdivider/DividerView.java
47ee9ad92c2b82a93e2d99d82d5c2591edd9086d 12-Apr-2016 Jorim Jaggi <jjaggi@google.com> Refine exit animation

Don't move the other stack when exiting multi-window with undock
gesture.

Bug: 27154882
Change-Id: Ia2793d2e2b16def543289f8b2b13631db90edca8
/frameworks/base/packages/SystemUI/src/com/android/systemui/stackdivider/DividerView.java
d87e9a48571ec0e152b79d3da5f29c4355facb48 11-Apr-2016 Winson <winsonc@google.com> Adding vibration after successful dock/undock gesture.

Bug: 27588627
Change-Id: I1dd149d4f7e7fccf8ec61b59bab7c14a90b77e45
/frameworks/base/packages/SystemUI/src/com/android/systemui/stackdivider/DividerView.java
8eb8a32f98915bc5fc009130d79d00021ef7a7c9 06-Apr-2016 Jorim Jaggi <jjaggi@google.com> Fix divider touchable region

Make sure to update the touchable region whenever the layout
changes. The layout is wrong if the window is invisible during
the first layout.

Bug: 27854148
Change-Id: Ic0501eccf7b919d10491c6f5aa0c0f1765a07c52
/frameworks/base/packages/SystemUI/src/com/android/systemui/stackdivider/DividerView.java
ef92d6fd24bb5a53daedc80a1bc4c92691e06ead 26-Mar-2016 Jorim Jaggi <jjaggi@google.com> Fix minimized dock

- When SysUI crashed, make sure state is up-to-date
- When divider gets invisible, update state because animations
won't finish
- Make sure to keep mMinimizedDock up-to-date in all cases, even
if docked stack is already gone.
- If docked stack is going away, reset minimized state
- Disallow undocking when minimized.

Bug: 27588187
Bug: 27486464
Change-Id: I6ea48562fae3a8df038a690a488580d758681370
/frameworks/base/packages/SystemUI/src/com/android/systemui/stackdivider/DividerView.java
e661f4001c2729737618eccaf9032c2d2e4281bc 26-Mar-2016 Jorim Jaggi <jjaggi@google.com> Fix background pivot point

Bug: 27859759
Change-Id: Id4d77d3bd17ae96441960717a4ffe0bf4831562e
/frameworks/base/packages/SystemUI/src/com/android/systemui/stackdivider/DividerView.java
6885598ba09b18038e61f268231aa53ed08ef44c 26-Mar-2016 Jorim Jaggi <jjaggi@google.com> Hide window swapping behind a flag

Bug: 27859522
Change-Id: I0e1e578d2d91f7572b0978dbb12ed143acbdf1e1
/frameworks/base/packages/SystemUI/src/com/android/systemui/stackdivider/DividerView.java
8dccd23675150044ce33cd28bf32a822721c3564 26-Mar-2016 Jorim Jaggi <jjaggi@google.com> Some divider handling fixes

- Fix calculation on which side to apply dimming.
- Fix dismissing parallax logic for new resize handling.
- Remove wrong/unnecessary resizeStack call

Bug: 27738239
Change-Id: Iaac671ca03e19aa70fa779d319b5fe84ff3b40ba
/frameworks/base/packages/SystemUI/src/com/android/systemui/stackdivider/DividerView.java
2adba07d75419462873dfeef40d4c983d832ed99 03-Mar-2016 Jorim Jaggi <jjaggi@google.com> Show a scrim activity if task is not resizable

Add a callback to TaskStackChangeListener which gets fired when the system
might need to inform the user that a specific app might not work in
multi-window.

Use that callback in SysUI to show a translucent activity which scrims the
activity behind to inform that it might not be resizable.

Debounce the information to once per multi-window session, to not make it
annoying.

Introduce launchTaskId to start an activity in an existing task, and protect
that with START_TASKS_FROM_RECENTS permission.

Bug: 27327287
Bug: 27431869
Change-Id: I89e8d653872ab01ba3c1e252b426e5481da0e6ca
/frameworks/base/packages/SystemUI/src/com/android/systemui/stackdivider/DividerView.java
fc34b73aeff4a8bf84b86e015fa89f484e73ec09 22-Mar-2016 Andrii Kulian <akulian@google.com> Revert "Refine divider behavior"

This reverts commit 50cd6361d7cb50bdc0ee199f42307885abc65f0b.
Now resize happens only after the divider is released, so these changes are
no longer needed.

This also fixes resize of 'non-docked' stack in split-screen during dragging
the divider: minimizeHoles was setting incorrect 'taskPositionOther' value
which lead to incorrect insets.

Bug: 27621228
Change-Id: Iec8dc977296e204b206954847dddfc159f498930
/frameworks/base/packages/SystemUI/src/com/android/systemui/stackdivider/DividerView.java
ef676d89f8f9bbc2f4a72fc350899e327d460ffd 18-Mar-2016 Wale Ogunwale <ogunwale@google.com> Only resize task when divider is released

To reduced jank during resizing we now only resize the task
when the split-screen divider is release vs always resizing
it to the snap points.

Bug: 27738239
Bug: 27676101
Bug: 27601572
Change-Id: Iad450842d82193bc1731729834339068cf2d3e83
/frameworks/base/packages/SystemUI/src/com/android/systemui/stackdivider/DividerView.java
d47e7e1176dcf6961c7c9fce215f48f03a5098d1 01-Mar-2016 Jorim Jaggi <jjaggi@google.com> Add ability to swap docked/fullscreen stack

Adds tap affordance that moves all tasks of the docked
stack into the fullscreen stack as well as moves the top task
of the fullscreen stack into the docked stack.

Also make sure not to trigger focus switch when tapping the divider
handle. For that, add a method so SysUI can specify the touchable
region which then gets excludes for the focus switch touch region.

Bug: 27358134
Change-Id: I34f39c53cacc0b9c00f87a792b88c3f64a5f61e1
/frameworks/base/packages/SystemUI/src/com/android/systemui/stackdivider/DividerView.java
899327f5cbbfb0eae5562b262ccea860c98f6bc4 26-Feb-2016 Jorim Jaggi <jjaggi@google.com> Animation for docking task gesture

- Don't move recents window around during the animation
- Set the correct task size shortly after docking, so recents
starts with the correct size to avoid jank.
- Add staggered animation in recents.

Bug: 27154882
Change-Id: I7c56102feba9c3f6cb86cb5f1d87f0ad3b29c721
/frameworks/base/packages/SystemUI/src/com/android/systemui/stackdivider/DividerView.java
88afd020b696af24332547f203eaa2538618ac9e 25-Feb-2016 Jorim Jaggi <jjaggi@google.com> Accessibility for split-screen divider

- Add label
- Add actions

Bug: 27274494
Bug: 26894949
Change-Id: I041c44f793f1ec86ec27951cc8e87868148b527d
/frameworks/base/packages/SystemUI/src/com/android/systemui/stackdivider/DividerView.java
0c790411c39bcc79ddfa16a8617c5202fd599a66 20-Feb-2016 Jorim Jaggi <jjaggi@google.com> Cancel fling animation when starting to drag

Makes sure we don't end up in a weird state because
at the end of the fling animation, mDockSide gets
reset.

Bug: 27269044
Change-Id: I779b8ee9be9a35553c7f822421d1f02ca802111c
/frameworks/base/packages/SystemUI/src/com/android/systemui/stackdivider/DividerView.java
42625d1bc7ef99c4d4435e8cdebfe3eee57b8d97 12-Feb-2016 Jorim Jaggi <jjaggi@google.com> New behavior for docked stack when going home

- We keep the docked stack visible when home task is visible even
though it's not resizable.
- We introduce the a new concept called "minimizing" the docked stack,
which happens when going home. In this state, the docked stack is
clipped of almost completely.
- To achieve that, we introduce TaskStackBoundsAdjustController,
which adjusts the bounds of the docked stack when minimized. Also,
migrate the IME handling to this new class.
- We also need to inform SysUI that it is now minimized so it can
remove the drag affordance on the divider, and also make it a bit
smaller.
- When we detect an app transition, we check whether the home stack
gets visible/invisible. We then start an animation which runs in
sync with the normal app transition. For that we introduce
DockedStackDividerController.animate(), which performs the animation.

Bug: 27137961
Change-Id: I8623bc73cc6872bf28c5b1b8d5795974576811b2
/frameworks/base/packages/SystemUI/src/com/android/systemui/stackdivider/DividerView.java
e161f08e98fdbe6fe83f70ffa1ea11142a027ebe 05-Feb-2016 Jorim Jaggi <jjaggi@google.com> Multi-window optimizations #3

- Make sure divider is pushing frames only if necessary
- When starting recents while docking, make sure no unnecessary
animations are played to reduce system load.

Change-Id: I536f009aef7282ed85dde79b853aeae62644f3e3
/frameworks/base/packages/SystemUI/src/com/android/systemui/stackdivider/DividerView.java
ea4a19f1aa27ba4b9fc4ec0af1d19b4177f801df 04-Feb-2016 Jorim Jaggi <jjaggi@google.com> When long pressing recents and already docked, undock

Bug: 26771328
Change-Id: I1fe12181cd80fd948e4184be6a8790c77bfe9e45
/frameworks/base/packages/SystemUI/src/com/android/systemui/stackdivider/DividerView.java
9511b0f1e9ac629a4a747a0c9373d33ab33cfc32 30-Jan-2016 Jorim Jaggi <jjaggi@google.com> Fix bug where surface was not clipped off during resizing

When dragging the divider in a way such the task size goes through
the following transition

- Half size
- Full screen
- Half size

the surface wasn't clipped off anymore. This was because in full
screen configuration, computeDragResizing() == false thus when
going full screen -> half size, we reset the draw state to
DRAW_PENDING to get notified when it has finished drawn. However,
this also broke clipping.

In order to fix this, we always put the window into a resizing mode
no matter whether the bounds are fullscreen or not.

However, this introduces an ugly flickering on the navigation bar,
when going into docked mode, because the app doesn't draw navigation
bar background in resize mode.

To fix that, we calculate the presence of navigation bar whether the
window is fullscreen, and not just whether it's resizing. For that,
we need to calculate the presence in BackdropFrameRenderer, by using
the insets just sent by window manager.

Change-Id: Idf56df4ae7fefe67d068bc2eeda8dc4d83bbefb7
/frameworks/base/packages/SystemUI/src/com/android/systemui/stackdivider/DividerView.java
defd9225e65a5111833ab3f08e29b394571532d8 04-Feb-2016 Jorim Jaggi <jjaggi@google.com> Fix crash in SysUI when configuration changes

Bug: 26913675
Change-Id: Ib36e5fcdd22197317f1b99a3aec8a46896a8cc36
/frameworks/base/packages/SystemUI/src/com/android/systemui/stackdivider/DividerView.java
1b12ef55b74f47eedde8afe22b997d40c3668a31 30-Jan-2016 Jorim Jaggi <jjaggi@google.com> Divider tuning

- Take insets into account for calculating dismissing fraction,
but don't dim into 100% when the device has insets at that
side.
- When applying parallax to the top side, apply less.

Change-Id: Id1af37e6f7af43ec3682dad4ad1ce68034301b4d
/frameworks/base/packages/SystemUI/src/com/android/systemui/stackdivider/DividerView.java
c0d7058b14c24cd07912f5629c26b39b7b4673d5 29-Jan-2016 Winson <winsonc@google.com> Referencing static interpolators.

Change-Id: I5d2292016e869ed533f5873e373a1eccce651fc5
/frameworks/base/packages/SystemUI/src/com/android/systemui/stackdivider/DividerView.java
8f8155ba8a1c66d539101e55f2d06ae0422682c0 26-Jan-2016 Jorim Jaggi <jjaggi@google.com> Dim harder when dismissing

Also fix a bug when selecting the dim target stack.

Change-Id: Id9d5e28caf5e810c7eef1e3b0fd7a9f945f8d146
/frameworks/base/packages/SystemUI/src/com/android/systemui/stackdivider/DividerView.java
f3e87908cda00443167722b07b473ee96c4da39a 27-Jan-2016 Jorim Jaggi <jjaggi@google.com> Merge changes I10224452,I7af4149f

* changes:
Grow recents when in multi-window on phones
Add animation when docking top task with long press
cdb06caebb5f6f554b2ed8c76963970d8cc0ab54 26-Jan-2016 Jorim Jaggi <jjaggi@google.com> Grow recents when in multi-window on phones

- Make sure all methods in RecentsImpl are called from the main thread.
- On secondary users, call dockTopTask in correct process.
- When opening recents, split it differently when on phones.

Change-Id: I10224452b1a9c0ae691d64cceeae5bb93cc4f6d8
/frameworks/base/packages/SystemUI/src/com/android/systemui/stackdivider/DividerView.java
50cd6361d7cb50bdc0ee199f42307885abc65f0b 23-Jan-2016 Jorim Jaggi <jjaggi@google.com> Refine divider behavior

- Switch earlier to the dismissing/fullscreen layout, so
we minimize holes.
- For the bottom/right one, switch also earlier to the larger size to
minimize holes. We can't do this for the upper one because it will be
confusing there if the layout bounds doesn't equal the bounds while
snapping.

Change-Id: I8f065514f7aaa15ae76af648794ab8b23302e534
/frameworks/base/packages/SystemUI/src/com/android/systemui/stackdivider/DividerView.java
11cc01df271fce5ec3eb05a7281032d1271cc782 23-Jan-2016 Jorim Jaggi <jjaggi@google.com> Add animation when docking top task with long press

Change-Id: I7af4149f2c517e8d6ace22f1e49e319d2461503e
/frameworks/base/packages/SystemUI/src/com/android/systemui/stackdivider/DividerView.java
df012d5102735412d9f38513c103aa53df4bcab9 16-Jan-2016 Jorim Jaggi <jjaggi@google.com> Divider tuning

- Make it harder to dismiss
- When dragging from the bottom, don't allow dismissing at the top

Change-Id: Ifd2de38abece7b996a813af41dcf777fa5cd1c18
/frameworks/base/packages/SystemUI/src/com/android/systemui/stackdivider/DividerView.java
3e8747414520ee348cf4b9c4a6afd9ff80b5a8f8 07-Jan-2016 Winson <winsonc@google.com> Improving drag and drop animations.

- Expanding drop targets to indicate the size of the to-be docked window
- Fixing animation when dropping task
- Fixing drag view z order
- Fixes issue where the dock divider position in WM is not exact
- Requiring user to move the slop distance before accepting drops

Change-Id: I2f6eab504db7126c19e0c680629e89a39e7512e3
/frameworks/base/packages/SystemUI/src/com/android/systemui/stackdivider/DividerView.java
737af724eb31f513386e91ee5510cc6991350937 31-Dec-2015 Jorim Jaggi <jjaggi@google.com> Snap docked stack after screen rotation

- Move DividerSnapAlgorithm to com.android.internal, also move
some utility stuff into DividerUtils which is used from both
SystemUI and window manager
- When the screen rotation changes, rotate the stacks like before
but then also snap the docked stack to a valid snap position.

Change-Id: I9e1aa13f42f398a25c9016e6f20395ee212e405b
/frameworks/base/packages/SystemUI/src/com/android/systemui/stackdivider/DividerView.java
3dc52ed1799f96deaf802a5304f7301463dec58f 11-Jan-2016 Winson Chung <winsonc@google.com> Revert "Snap docked stack after screen rotation"

This reverts commit e65d6bb2072471e63b93aa14a288bc59ed86208f.

Change-Id: I245aa9be3ea98ff742e02b02f6f1d344bc2e8182
/frameworks/base/packages/SystemUI/src/com/android/systemui/stackdivider/DividerView.java
e65d6bb2072471e63b93aa14a288bc59ed86208f 31-Dec-2015 Jorim Jaggi <jjaggi@google.com> Snap docked stack after screen rotation

- Move DividerSnapAlgorithm to com.android.internal, also move
some utility stuff into DividerUtils which is used from both
SystemUI and window manager
- When the screen rotation changes, rotate the stacks like before
but then also snap the docked stack to a valid snap position.

Change-Id: Ifb0c65dfbdfca2343a76b12de982c0701fe0c3ab
/frameworks/base/packages/SystemUI/src/com/android/systemui/stackdivider/DividerView.java
d8fb3ac4b8e0673c9673abe1fc096806af798403 05-Jan-2016 Jorim Jaggi <jjaggi@google.com> Start moving divider only after passing touch slop

So there is a clear distinction between grabbing it and
start moving it.

Change-Id: I51b50220bd35d8040d0c11f131918d9741cd8403
/frameworks/base/packages/SystemUI/src/com/android/systemui/stackdivider/DividerView.java
514b2cf0f8ddd11a4176412cb3584ab96fbb763a 04-Jan-2016 Jorim Jaggi <jjaggi@google.com> Add nice animation when touching the docked divider handle

To make the interaction more dynamic.

Change-Id: I8fc3e6240c229753dc26122ae0994d59c4f6486e
/frameworks/base/packages/SystemUI/src/com/android/systemui/stackdivider/DividerView.java
e435e982fa43832b183bac2d00d9415ac58ac06e 30-Dec-2015 Jorim Jaggi <jjaggi@google.com> Implement parallax when dismissing docked/fullscreen stack

When moving the docked or the fullscreen task close to the side,
we add a nice parallax to indicate that this task will be dismissed.

Change-Id: Ide195876942c1614c186fd5f3ff3e86f6fdfec61
/frameworks/base/packages/SystemUI/src/com/android/systemui/stackdivider/DividerView.java
5098159ae31bc59aa3857fecb1847f8d7bb73e54 29-Dec-2015 Jorim Jaggi <jjaggi@google.com> Dim stack while dismissing

When dismissing the docked or fullscreen stack, a dim layer is
introduced for a nicer visual effect.

Change-Id: I9f12e331e978208aa9fd9e9883b3c8a36d4da3a0
/frameworks/base/packages/SystemUI/src/com/android/systemui/stackdivider/DividerView.java
81fe2d1f0adc9e752d7f1a410d66af6a326fd6e2 21-Dec-2015 Jorim Jaggi <jjaggi@google.com> Refine snap position behavior

- Use the stable insets to communicate the system insets to the
docked divider view.
- When calculating the sizes for the snap positions, exclude the
system insets.
- Add 3 snap position modes: 16:9 in one window, 1:1, 16:9 in the
other (phone portrait). Only 1:1 (phone landscape). Fixed relation,
1:1, 1 - fixed relation (tablet portrait/landscape).

Change-Id: If2166c5fb99f12535eeab5de18e9f5aaf433d77c
/frameworks/base/packages/SystemUI/src/com/android/systemui/stackdivider/DividerView.java
dc249c4ae7c7838928f53f151bfda8a6817b8784 15-Dec-2015 Jorim Jaggi <jjaggi@google.com> Change behavior when resizing docked stack

- Add an API resizeDockedStack to resize the docked stack
and supply temporary task bounds, which can be different from
the stack bounds.
- Use that API in SystemUI to only switch task bounds when
crossing thresholds, so we have less flickering and more
predictable resizing.

Bug: 25015474
Bug: 26311778
Change-Id: Id5c9277dd908ccc28f95dab023efc914757a50d0
/frameworks/base/packages/SystemUI/src/com/android/systemui/stackdivider/DividerView.java
79b39f0873be805496bef9b31c937f3af148c163 18-Dec-2015 Jorim Jaggi <jjaggi@google.com> Update visual of docked divider to spec

Change-Id: I85daf672cedb8009509886fc6ae2d700d39274cf
/frameworks/base/packages/SystemUI/src/com/android/systemui/stackdivider/DividerView.java
d4eaef7f4c5a5d281de4fff272cd33e892e26264 30-Oct-2015 Jun Mukai <mukai@google.com> Make public pointer icon API with custom icons.

BUG: 25778347, 23804184
Change-Id: If138b97c750c912e9848412c27b65004899961eb
/frameworks/base/packages/SystemUI/src/com/android/systemui/stackdivider/DividerView.java
870ab5a15cf8dfff16148868c0397445087e8462 03-Dec-2015 Jorim Jaggi <jjaggi@google.com> Drag up gesture improvements

- Use current velocity of finger for the animation, makes it feel
smoother.
- When flinging downwards, maximize the docked stack again to cancel
the gesture.

Change-Id: I284c851e2e418d21e890b9dfe983cfe63300fe10
/frameworks/base/packages/SystemUI/src/com/android/systemui/stackdivider/DividerView.java
2fbe033f9d634505ff9e90f232c0339f616d7b86 25-Nov-2015 Jorim Jaggi <jjaggi@google.com> Allow stacks to be placed outside of display

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
/frameworks/base/packages/SystemUI/src/com/android/systemui/stackdivider/DividerView.java
9ea2f7ba3155a455724f64e2d6a964ad4e99dfa5 24-Nov-2015 Jorim Jaggi <jjaggi@google.com> Add ability to supply initial bounds when docking task

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
/frameworks/base/packages/SystemUI/src/com/android/systemui/stackdivider/DividerView.java
dd98d41e3a65b3bcb37007ea5b29371cf013f563 19-Nov-2015 Jorim Jaggi <jjaggi@google.com> Add gesture to drag in recents from navigation bar

Change-Id: I672ed08f1019835891411b87e2d0de0290defff7
/frameworks/base/packages/SystemUI/src/com/android/systemui/stackdivider/DividerView.java
f6d8e9e85f8f8412d49300b4acd9fc5e563f2ad2 12-Nov-2015 Filip Gruszczynski <gruszczy@google.com> Fix wrong dock stack bounds after rotation.

When setting the stack bounds from the system UI we need depend on
DisplayInfo.logicalWidth/Height instead of DisplayMetrics.
DisplayMetrics have values adjusted for status bar and nav bar, but the
Activity Manager doesn't know about that. It expects the stack bounds to
use full display size.

Bug: 25665425
Change-Id: Idf5f3192105b72686d1ad11fe4f42c894bb87fbe
/frameworks/base/packages/SystemUI/src/com/android/systemui/stackdivider/DividerView.java
c97ba49d2330de396fc9121028331bccee49ed02 06-Nov-2015 Jorim Jaggi <jjaggi@google.com> Update divider shadow when it is moving

Change-Id: Ifc67ba3ee640929248cad6479d9c0df818e32f40
/frameworks/base/packages/SystemUI/src/com/android/systemui/stackdivider/DividerView.java
e48f428b98b6c40d6f0300cb1c541cb883ce695d 06-Nov-2015 Jorim Jaggi <jjaggi@google.com> Restore changes lost during merge

Change-Id: I619be025988470e27b614ed0ad009e5d785f19eb
/frameworks/base/packages/SystemUI/src/com/android/systemui/stackdivider/DividerView.java
1fcbab6ae5c99acab70eacc015d194e2c6ddd4e2 04-Nov-2015 Jorim Jaggi <jjaggi@google.com> Implement divider UX interactions

- Update visuals to spec
- Divider lifts when touching
- Implement basic version of snap points and animations
- Implement touch conflict behavior: If touched around 48x48dp
area around the handle, the divider handles all these touches.
If touched outside of the black background divider, touch goes
directly to underlying window. If touch on the black background
divider, touch is considered slippery and thus the window in
which the touch trace moves gets the touches.

Change-Id: I0307c191ae032672c4b73d439c23cf9833d3fce6
/frameworks/base/packages/SystemUI/src/com/android/systemui/stackdivider/DividerView.java