Commit Graph

80 Commits

Author SHA1 Message Date
Jorim Jaggi
069dfe67a2 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
2016-05-04 17:24:47 -07:00
Jorim Jaggi
31f71705df Add dump information for divider
Bug: 28575870
Bug: 28445644
Change-Id: Ib2137c49f1672ed2a9e7e31a5b68c22e0bb166b1
2016-05-04 16:43:04 -07:00
Jorim Jaggi
c875ae74ba Don't move forced resizable info activity to the front
If we start the forced resizable activity with an existing task,
avoid moving that task to the front. This can cause that a previous
task that was moved to the back gets moved to the front again just
because we started that activity. That's not good.

Bug: 28223489
Change-Id: If8acf31b8be98b82665de1015d5621331c37fb64
2016-04-27 19:19:04 -07:00
Winson
d46b72788e 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
2016-04-21 15:16:42 -07:00
Jorim Jaggi
7b4583974c Fix IME adjust in SysUI
- Make sure scale is correct.
- Adjust interpolator to match WindowManager.

Bug: 28175599
Change-Id: Ica94b3dbac2fcc6e4b8a75faa311fb7861071ccc
2016-04-20 23:51:42 +00:00
TreeHugger Robot
50c410c1c9 Merge "Fix wrong transition when recents is growing when entering" into nyc-dev 2016-04-20 01:48:39 +00:00
Jorim Jaggi
db21bbd2ca Fix wrong transition when recents is growing when entering
Bug: 27855229
Change-Id: I050305d16df6fe53abf5e74e1f9ee6c882dd7ead
2016-04-19 17:07:06 -07:00
Winson
ce9630da86 Tweaking accessibility actions for dock divider.
- Adding tl_full/70%/50%/30%/rb_full

Bug: 27724715
Change-Id: Ie3125ec81e6463696cf56640c6b86f9cfcbda945
2016-04-19 14:46:24 -07:00
Winson
863828763a Disallowing scrim activity from setting TaskDescription.
Bug: 28248314
Change-Id: Ifa2ed84a0a772ed3636ec4a8b94a165aebeb7049
2016-04-19 10:41:40 -07:00
Jorim Jaggi
e370e15056 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
2016-04-15 14:34:55 -07:00
Jorim Jaggi
698e7634aa Disable resize when IME is adjusted
Bug: 28175599
Change-Id: I338dd230443973d912f17946ed722789b0f545a2
2016-04-14 20:45:56 -07:00
Jorim Jaggi
545c5c20d3 Refine long-press enter and exit animations
Bug: 27154882
Change-Id: I13a1a6ea7eabdefc7e5c32ae0471d9fa14cc3f86
2016-04-13 21:27:32 +00:00
Jorim Jaggi
29379ec859 TRON refinements for multi-window
Bug: 26013430
Change-Id: I89b139b4ca3e7b6a06d8b5b351d67ffac240f73f
2016-04-12 19:43:52 -07:00
Jorim Jaggi
2917dc4918 Add shadow for minimized dock
Bug: 27972642
Change-Id: Ic4c8145f61694ff2bb0e237da1142093c6a4d965
2016-04-12 19:17:24 -07:00
Jorim Jaggi
47ee9ad92c Refine exit animation
Don't move the other stack when exiting multi-window with undock
gesture.

Bug: 27154882
Change-Id: Ia2793d2e2b16def543289f8b2b13631db90edca8
2016-04-12 18:11:23 +00:00
Winson
d87e9a4857 Adding vibration after successful dock/undock gesture.
Bug: 27588627
Change-Id: I1dd149d4f7e7fccf8ec61b59bab7c14a90b77e45
2016-04-11 21:39:00 +00:00
Jorim Jaggi
ab9b01ccb0 Fix talk back announcement
Bug: 27950180
Change-Id: I8f201c6303e40d0249944d73b2b71eb0ceadfad8
2016-04-11 18:58:50 +00:00
Jorim Jaggi
7b3936977f Update visuals of force resizable
Bug: 27327287
Change-Id: I32d30a8044f683e2f6287035250126999f623e15
2016-04-09 01:14:48 +00:00
Jorim Jaggi
7c3912e4ab Merge "Dismiss docked stack when opening non-resizable activity" into nyc-dev 2016-04-07 23:40:44 +00:00
Jorim Jaggi
d53f09254e Dismiss docked stack when opening non-resizable activity
- Also move the toast to SysemUI as a cleanup.

Bug: 27341740
Bug: 28026841
Change-Id: Ic6196ed75511751c6fadb12fa24574c881100f65
2016-04-07 16:07:27 -07:00
Jorim Jaggi
11c62e17af Dynamic density change handling
- In PWM, make sure to read the height values after the new
configuration has been applied.
- Reset all navigation bar button icons when density changes.
- Adjust height of notification bar.
- Reload divider height values in SysUI and WM.
- Snap divider handle to a new position after loading the
new configuration, as the snap points change.

Bug: 26844819
Bug: 27450471
Bug: 27921696
Change-Id: I9e28f0c49f6367c5fcfac010e7a6e98a42e85996
2016-04-06 19:12:24 +00:00
Jorim Jaggi
8eb8a32f98 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
2016-04-06 01:20:25 +00:00
Jorim Jaggi
ef92d6fd24 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
2016-04-04 15:00:29 -07:00
Jorim Jaggi
e661f4001c Fix background pivot point
Bug: 27859759
Change-Id: Id4d77d3bd17ae96441960717a4ffe0bf4831562e
2016-03-26 02:20:43 +00:00
Jorim Jaggi
6885598ba0 Hide window swapping behind a flag
Bug: 27859522
Change-Id: I0e1e578d2d91f7572b0978dbb12ed143acbdf1e1
2016-03-26 01:55:12 +00:00
Jorim Jaggi
8dccd23675 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
2016-03-25 18:10:14 -07:00
Jorim Jaggi
2adba07d75 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
2016-03-25 14:23:41 -07:00
Andrii Kulian
cddd32fc2b Merge "Revert "Refine divider behavior"" into nyc-dev 2016-03-22 21:04:48 +00:00
Andrii Kulian
fc34b73aef Revert "Refine divider behavior"
This reverts commit 50cd6361d7.
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
2016-03-21 17:26:11 -07:00
Wale Ogunwale
85941cff0c Merge "Added support to specify animation duration when resizing stack" into nyc-dev 2016-03-21 20:04:20 +00:00
Wale Ogunwale
e75a9adfbd Added support to specify animation duration when resizing stack
Needed for sys-ui to control the duration of various Pip transitions.

Bug: 27674339
Change-Id: I7bad27aaa19755a73c594e88b88b56db033e1a45
2016-03-21 11:17:19 -07:00
Wale Ogunwale
ef676d89f8 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
2016-03-18 15:12:12 -07:00
Jorim Jaggi
d47e7e1176 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
2016-03-10 19:49:45 +01:00
Jorim Jaggi
899327f5cb 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
2016-03-09 13:58:11 +01:00
Jorim Jaggi
88afd020b6 Accessibility for split-screen divider
- Add label
- Add actions

Bug: 27274494
Bug: 26894949
Change-Id: I041c44f793f1ec86ec27951cc8e87868148b527d
2016-02-25 13:18:12 -05:00
Jorim Jaggi
0c790411c3 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
2016-02-20 02:23:37 +00:00
Jorim Jaggi
42625d1bc7 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
2016-02-19 12:11:11 -08:00
Jorim Jaggi
e161f08e98 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
2016-02-08 21:21:24 +00:00
Jorim Jaggi
ea4a19f1aa When long pressing recents and already docked, undock
Bug: 26771328
Change-Id: I1fe12181cd80fd948e4184be6a8790c77bfe9e45
2016-02-04 14:39:22 -08:00
Jorim Jaggi
067e817585 Only treat "null" bounds as fullscreen
When long pressing on the recents button, we made it one pixel smaller
than fullscreen so we don't dismiss the stack immediately again.
However, this is a huge hack, and lead to problems with navigation bar
background because there we actually rely on the fact whether
the window is fullscreen or not to determine whether to draw the
navigation bar background, which lead to flickering.

Bug: 26777526
Change-Id: Ifdfcf3ad4138bc88c5164177cd20f1ff1635085f
2016-02-04 14:37:07 -08:00
Jorim Jaggi
9511b0f1e9 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
2016-02-04 14:36:46 -08:00
Jorim Jaggi
defd9225e6 Fix crash in SysUI when configuration changes
Bug: 26913675
Change-Id: Ib36e5fcdd22197317f1b99a3aec8a46896a8cc36
2016-02-04 14:36:35 -08:00
Jorim Jaggi
1b12ef55b7 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
2016-02-01 13:43:36 -08:00
Winson
c0d7058b14 Referencing static interpolators.
Change-Id: I5d2292016e869ed533f5873e373a1eccce651fc5
2016-01-29 11:15:43 -08:00
Filip Gruszczynski
84fa3351a2 Animate pinned stack resizing.
This introduces animating of stack bounds within window manager
module. It also uses this type of animation when moving an activity from
fullscreen stack to pinned stack.

Bug: 25672053
Change-Id: I75914a685d10021f8a7535b47ef12b6920b3fd5e
2016-01-28 08:47:54 -08:00
Jorim Jaggi
8f8155ba8a Dim harder when dismissing
Also fix a bug when selecting the dim target stack.

Change-Id: Id9d5e28caf5e810c7eef1e3b0fd7a9f945f8d146
2016-01-27 13:46:14 -08:00
Jorim Jaggi
f3e87908cd Merge changes I10224452,I7af4149f
* changes:
  Grow recents when in multi-window on phones
  Add animation when docking top task with long press
2016-01-27 01:21:00 +00:00
Jorim Jaggi
cdb06caebb 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
2016-01-26 12:21:29 -08:00
Jorim Jaggi
50cd6361d7 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
2016-01-26 03:19:15 +00:00
Jorim Jaggi
11cc01df27 Add animation when docking top task with long press
Change-Id: I7af4149f2c517e8d6ace22f1e49e319d2461503e
2016-01-25 15:54:38 -08:00