Commit Graph

101 Commits

Author SHA1 Message Date
Matthew Ng
e15352e516 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
2017-01-26 10:31:50 -08:00
Winson Chung
cbcadc981b Ensure that we always resume task overlay activities if requested.
- Distinguish between task overlays that need to be resumed and
  those that should not.

Bug: 34240533
Test: Open PiP, tap to show menu.
Change-Id: Ibdb54d544c501a492260f02cdc2de40c5c1a66d1
2017-01-12 17:23:18 -08:00
Matthew Ng
8d3728806c Cancels out long press on recents fixed from previous change
This fixes an error from change-id
Ic9c8a5096ce9f30fc1265774ebb82c1356b1221b where the docked state was
not dismissed when long pressing recents. Minimized state is also
handled by not having the second vibration.

Test: manual - tested home screen, minimized, dock and undock the tasks
into multi-window mode
Fixes: 33655754
Fixes: 29927464
Change-Id: I3adedf9d0e1dcd5fe297f7ca8b9cb8faeba8bcb1
2016-12-20 12:08:57 -08:00
Wale Ogunwale
6ce0fb8ddb Fixed issue with ordering of non-app token windows
We tried to fix this issue in I83357975c87c704af9d0702c939ca99984462365
but the fix introduced other problems. So, we are going to have sys-ui
create a separate binder for object for each type of window it adds.
Long term we want to allow one binder object to map to multiple window
tokens on the same display in window manager.

Change-Id: Iee53b8bf95b87f79ab7a1b574a54111c678f7413
Fixes: 33567674
Fixes: 33538278
Test: bit FrameworksServicesTests:com.android.server.wm.DisplayContentTests
2016-12-13 14:24:00 -08:00
Sudheer Shanka
dc589ac82b Update usage of ActivityManagerNative.
- Remove references to ActivityManagerProxy.
- Add isSystemReady to ActivityManager.

Bug: 30977067
Test: cts/hostsidetests/services/activityandwindowmanager/util/run-test android.server.cts
      adb shell am instrument -e class com.android.server.am.ActivityManagerTest,com.android.server.am.TaskStackChangedListenerTest \
          -w com.android.frameworks.servicestests/android.support.test.runner.AndroidJUnitRunner
Change-Id: I07390b6124fb1515821f5c0b37baf6ae74adc8fa
2016-11-14 11:27:12 -08:00
Tamas Berghammer
383db5ebcc Update package names to work with the proto3 compiler
Bug: b/28974522
Change-Id: I5f3adf4946ee4ba1e09e4f40afe83c151405972a
2016-11-08 14:06:09 +00:00
Jorim Jaggi
3f23c9f36e Merge "Fix split-screen flash issue" am: 6738617652 am: f1fed4de21
am: 4e7407a80e

Change-Id: Ibfef3bd01a54cca64a2f0de197bd9480a7539cd0
2016-10-14 14:24:48 +00:00
Qiushi.Han
9170ca82bd 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
2016-10-10 14:07:39 +08:00
Winson
675c5d8e5a Fixing issue with toasts not showing for guest users.
Bug: 30001278
Change-Id: I43269da8a6c41f4fec5923aafe5a624ec75ba651
2016-08-23 17:22:32 -07:00
Jorim Jaggi
dbe6fdb05b 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
2016-08-02 10:55:49 +02:00
Jorim Jaggi
e525a35704 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
2016-05-27 23:58:20 +00:00
Jorim Jaggi
a6c05d5151 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
2016-05-27 21:09:22 +00:00
Winson
7660bca509 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
2016-05-23 18:24:49 +00:00
TreeHugger Robot
a1e0cebf3a Merge "DO NOT MERGE Rename PointerIcon and Pointer Capture APIs" into nyc-dev 2016-05-19 15:03:36 +00:00
Jorim Jaggi
3070e77f91 Fix a few issues with ime adjust/minimized dock stack
- Do not override minimized state in SysUI when IME adjust change
comes in.
- Do not animate IME adjust if we are already animating for minimized.
This lead to problems that we animated the minimized state with the IME
adjust values.
- Make sure to update state after checking whether the IME adjust is
animating. This is to fix an issue where sometimes the IME adjust
animation didn't run because the old target was wrong.

Change-Id: Ie35e2f943a4cda99ffdc6f14663d892863759e46
Fixes: 28819201
2016-05-18 19:27:24 +00:00
Jorim Jaggi
c5887ea7a0 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
2016-05-17 18:10:31 +00:00
Michael Wright
f9d9ce7705 DO NOT MERGE Rename PointerIcon and Pointer Capture APIs
This is a response to API council feedback.

Bug: 26830970
Change-Id: Ia2d284b5c1ab8365bedfdc37d129be4b8146036b
2016-05-17 18:02:32 +01:00
Wale Ogunwale
3b23239d6e Fixed bugs with starting windows when displayng forcedResized activity
- Added ActivityOption to mark a starting activity as a taskOverlay
activity. That is the activity will always be the top activity of the
task and doesn't cause the task to be moved to the front when it is added.
- Only set the starting window state of the ActivityRecord to shown if
window manager actually showed the starting window for the activity.
Avoids incorrectly trying to remove starting window for an activity that
didn't show any.
- When starting additional activity in a task, transfer the starting
window from the top most activity with a starting window. It is possible
the top most window does have a starting window like in the case of the
forcedResized activity.
- Only ensure visiblity of an activity we are starting in a task whose top
activity is a task overlay. They need to start in the visible-paused state
and not the resumed state which just causes extra churn in the system.
- Always add additional starting activities in a task with an overlay
activity below the overlay activity.

Bug: 28751186
Change-Id: I3624a4313ae9c406d42c67a3537f67ad685791af
2016-05-16 16:27:01 -07:00
Jorim Jaggi
26c8c42bbb 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
2016-05-13 16:00:50 -07:00
Jorim Jaggi
e6d157b936 Fix transition for forced resizable exit
Since the transition is picked from layout params from the activity
below, we need to manually override it.

Bug: 28750938
Change-Id: I7351c7d8bd14a393cba51d6afb1e644204217440
2016-05-13 21:18:52 +00:00
Jorim Jaggi
8563943bd3 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
2016-05-11 18:33:01 -07:00
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