It is possible for the docked divider to be in an unstable location
when sys-ui dies. E.g sys-ui animating the divider from behind the
nav bar. When this occurs we reset the divider to the middle of the
screen so that the system remains in a useable state. Otherwise, the
docked stack can be fullscreen always preventing the user from going
into any other application.
Bug: 26965731
Change-Id: Icd254fffe69da4ee3f2efb4ff1d210a778703f64
* changes:
Fixing issue with history icons getting clobbered.
Fallback 1 for Recents timeout behaviour
Drawing thumbnail background color for empty space in view.
Fixing issue with task animating from 0,0.
Minor tweak to enter/exit animation for the home activity.
Also, reveal the illusion that we're restoring state in Files and Downloads.
Also, define a "PairedTask" class that guards calls to task methods
with checks against isDestroyed. This also let us make all of the tasks
static, so we get much narrower scope and tasks can even be moved to
their own files.
Change-Id: I6a9e8706e1ab1d1f43301e73dd9858a115a6baaf
- When showing landscape thumbnails in portrait, the thumbnails are
aspect scaled to fit the width of the view, this change will draw
a solid color to fill the other part so that we don't see the
current edge-clamp texture effect.
Change-Id: Icf08239942f9179c66ba0f8d8ddd00f7d2a09d3c
- If the view holder is rebound before the other task is recycled, there
could be multiple callbacks attached to different tasks for the same
view holder, which can cause the wrong icon (which is loaded in the
bg, to be loaded into the wrong view holder). Now, we unbind the
callback from the old task when the new task’s callbacks are bound.
Change-Id: If0dfada24985944daf4302c4db0616a00a770f06
- When we get all the initial task transforms when swiping to dismiss,
the tasks that are not visible at the original scroll position but are
in the final position are not initialized correctly. Instead when
getting the current transforms for all tasks, always calculate their
transforms regardless of whether they are currently visible or not.
- This revealed another issue where on snap-back, a task that was
visible at the new scroll and not at the old scroll was not getting
removed until the next update (which would cause a task view to linger
if you press home for example).
Bug: 26964326
Change-Id: I4db9cd1b072d3841351c2e84b219ca224a3045f9
- Fixing issue where the animation props was not applied to the progress
and callback animations correctly
- Ensuring that all tasks animate the same distance on enter/exit, and
not just to the edge of the screen
- Removing unused styles and animation resources
Change-Id: I88bd0f79f386304373fe63b49e92f02eeb882e55
This could potentially cause AM to set focus back to the top running,
and lead to inconsistent focus in AM and WM.
Also add some warnings to watch out for such cases.
bug: 26819496
Change-Id: Ie3fceeddedec4f2103a427989c9543cb3e9ff8f2
- Remove the LocaleList#getPrimary() API. It had become confusing
after locale negotiation was completely implemented. For example,
it could create the confusion that calling getPrimary() on the
default locale list would provide the default locale, etc.
- Use the adjusted locale list from LocaleList.getAdjustedDefault()
in Paints created with no locale list provided.
- Change LocaleList#get() to treat out of bound indexes from both
negative indexes and too large indexes the same way.
Bug: 26984092
Bug: 26193251
Bug: 26834387
Change-Id: I75f77aea6b75e38793ed8477e5e5a4420d5e6d85
* changes:
Hide swipe-up gesture behind tuner flag
When long pressing recents and already docked, undock
More multi-window fixes
Use separate flag to suppress resizes
Only treat "null" bounds as fullscreen
Exclude stable insets from task config
Fix bug where surface was not clipped off during resizing
Fix crash in SysUI when configuration changes
- When exiting multi-window (taskOverride gets EMPTY), emulate
the same task configuration so we don't end up with unnecessary
relaunches.
- Fix flicker by not calling WM.setAppVisibility if the app is
already visible. setAppVisibility makes a dummy transition,
which sets the transformation's alpha to zero if we think that
the app is not visible, which is the case because the app is in
DRAW_PENDING state because we are waiting for it to exit the
dragResize mode, but it's really visible.
Change-Id: Ieb4f586ae86e1185b21a901c57883a1f19d58fee
When moving a task between stacks, we temporarily suppress resize
changes because while moving, the task is still in another stack
which might get resized by the docked stack because when fetching
the stack, we might create it and thus resize the other stack.
Introduce mTemporarilyUnresizable which makes it really not resizable,
regardless of whether we are force resizing our activities.
Change-Id: Ib51163a0606106fd55f5bdeecf8e53f08add4b4b
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
When a app is in fullscreen, we exclude navigation bar and status bar
size when calculating the config. However, when in multi-window, and
the task was almost fullscreen, the height/width reported to the app
was actually larger than when it was in fullscreen. In order to fix
this, exclude the stable insets when calculating the task
configuration, and also fix a bug when calculating the screen layout.
Change-Id: I843ae012fb3050c79643d125550aacb6e73d27da
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