Since SurfaceView layers are located below application layers,
SurfaceView is not captured by screenshotApplications()
when the application is running in fullscreen.
Moreover, ws.isFullscreen(dw, dh) returns mostly true
on the devices which do not use the navigation bar.
Change-Id: Ia1036c79054950384a97504714929fd85c8147de
Signed-off-by: Sangkyu Lee <sk82.lee@lge.com>
Activities that handle their own configuration get layout when hidden
and the configuration changes but not when the content insets change
if they are hidden. They need to get a fresh layout for both
situations.
Fixes bug 11544694.
Change-Id: Iff3a9adb72ea7dfc3e5cd38e1b9cd7cf2006f8f5
There is still a flash of black when going to a non-wallpaper activity
from keyguard. This is not a regression from jb-mr2 and any fixes to
clean it up are too risky at this late date.
Fixes (partially) bug 11570753.
Change-Id: I17aaae4ab8be570f7e28276a7b8ac4b8685e7551
Prior to this change any attempts to set the app transition when the
screen was off would fail. That would cause the
SOFT_INPUT_IS_FORWARD_NAVIGATION flag to be incorrect when launching
an activity such as the alarm before the screen turns on.
Without SOFT_INPUT_IS_FORWARD_NAVIGATION in the correct state the
android:windowSoftInputMode="stateHidden" attribute would be
mishandled leaving an IME on the screen along with the alarm activity.
Fixes bug 10817166.
Change-Id: I8ad97e67ebab2069e753e957b5d253e36dcdd3e5
If a window claims to handle its own configuration change then we
won't destroy and recreate its window on a configuration change.
Normally that recreation triggers the first layout following
orientation change because mHaveFrame is false. Windows that handle
their own configuration changes never got a relayout pass following a
change in orientation.
This change passes the configuration changes that an application
handles into the AppWindowToken. If the app says it handles
orientation or screen size changes then a relayout will occur when the
configuration has changed.
Fixes bug 11647107.
Change-Id: Ie8d49fd050442ebbdcf0b805087894e3a2fc4be9
In setAppVisibility add wtoken to mOpeningApps even if the requested
visibility already matches requestedHidden. When Keyguard hides an app
requestedHidden will mismatch and mOpeningApps will end up empty where
it should have the app that will become visible.
Add mAnimateWallpaperWithTarget = true to another situation where
wallpaper animation needs it.
Fixes bug 11570753.
Change-Id: I70b93bbb580386eb912613f0ce11e582eff8c449
When the keyguard or a dream is visible, we usually block content
from showing on secondary displays by mirroring the primary display
contents to them. However, the keyguard may wish to show a
presentation on a secondary display in which case we should not
mirror.
This change adds an exemption for keyguard dialogs when the full
screen is obscured. The keyguard can then create presentations with
the TYPE_KEYGUARD_DIALOG window type in order to show special
content on other displays selectively.
The old code used to cause all secondary displays to mirror, which
isn't quite what we want.
Bug: 11257292
Change-Id: I55429002b2233ae25fe80db149636d6f41f2a112
Return to old way of only laying out Keyguard on configuration change
and add a new qualifier that does a layout if a window is part of an
opening app. This qualifier allows apps that handle their own
configuration changes to be notified of screen changes after the
configuration has changed. Apps that do not handle their own
configuration changes find their way into this code because their
surfaces are recreated by default and mHaveFrame is false.
This fixes bug 11544694 and passes the test of all bugs listed in CL
ag/383579.
Change-Id: I3a679b27eb4a2c5210957bcd4ae2f10b46f6e076
Apply the test for configuration change to all windows. A year ago
this was the test but CL ag/247731 which fixed b/7428221 limited the
test to just Keyguard windows. A week later CL ag/248223 which fixed
b/7444971 applied the test to Wallpaper as well. Then two days after
that CL ag/249762 which fixed b/7453222 reverted the wallpaper. This
fix reverts the Keyguard qualification and restores the test to all
windows.
This fix has been tested against the repro steps for all three bugs
above. In addition this fixes bug 11033407. The fix for the bug is
described in the bug.
Change-Id: Ie0f4c7cd4697c1689c4f331d572359cf7ce934cf
Activities launch starting windows before they are resumed. If another
activity is started after a first activity has launched its starting
window then it was possible that the starting window will never be
removed. An earlier fix, ag/368411, solved this by posting a delayed
message that would remove orphaned starting windows after 10 seconds.
This fix immediately removes starting windows that have been orphaned
through the above sequence.
A few code cleanups are also included in this CL.
Fixes bug 11029212.
Change-Id: I7a9befca92888aefe4000b90716c57c2aa572634
Windows were previously ordered by TaskStack/ActivityStack order. This
change provides a data structure in DisplayContent that tracks task
movement. Previously Recents and Home activity windows were always
adjacent because they were on the same stack. With this change windows
from other activities can be placed between the two.
Fixes bug 11338594.
Change-Id: Ie34443ff22f330d015141d97db79370c54920d28
The previous jank improvement only worked when closing
an app, not when bringing one forward (hitting home button).
This should cover the specific case that is being missed: Having the
Home task being brought to front over a translucent window, with
a wallpaper behind both tasks.
bug:11253262
Change-Id: I200ef6fe2dda8d9ab4e1f82059b4f888c59007f4
The WindowManagerService member mLowerWallpaperTarget is not stable
throughout an app transition. Relying on it to be stable causes the
intra-wallpaper animation to start out right but after the windows
have been relayed out there is no longer a lower wallpaper target.
This causes the wallpaper to start tracking the animation of the
current wallpaper target rather than remain stable.
Switching to a new variable that saves the state of wallpaper
animation at the start of the animation fixes bug 11240590.
Change-Id: I336a59c47665fcf61019f567b8663956ff0e4940
When a translucent window is closing, the transition
animation to Launcher is janky because Launcher is
expected to be 'opening' but it has always been open
underneath the translucent window. Therefore, the
animation applied to the translucent app appears
janky.
bug:11253262
Change-Id: I9b6af3291d119e6927401f63785b12f25573f4eb
If the keyguard is the wallpaper target the wallpaper cannot sit at
the bottom of the stack and must be directly beneath the keyguard.
Otherwise keep it at the bottom of the window stack.
App animations when the keyguard is showing should not be disabled if
the keyguard is also animating.
Fixes bug 10858941.
Fixes bug 10932680.
Change-Id: I8399837f6510ea16003f68b165e67439f3571ef4
We have become too aggressive about not allowing windows to draw while windw
animations are running, basically not allowing any drawing in any window when
there is any window animation. So if you did a relayout while the status bars
were being animated, your window would stop drawing until that status bar
animation was complete.
This change relaxes those rules in two ways:
- A particular window will only be told to stop updating when *it* is
currently involved in a window animation. So animations in status bars
will not stop app windows from update, and vice versa.
- If a window receives input events while it is in the "do not update"
state, we will immediately terminate that state and start allowing it to
draw. If the user is actually interacting with a window, we don't want
to wait to show feedback.
Change-Id: I72574eec048aee53115b46a78686cf27f42c42f7