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
Simplification where wallpaper was behind all apps didn't work when
keyguard and associated wallpaper needed to be above phone screen when
phone screen animated in and out. Instead phone screen was instantly
hiding the wallpaper.
Fixes most of bug 10932680.
This fixes the wallpaper disappearing as soon as the animation begins
when going from keyguard to phone. There remains jank going from phone
to lockscreen where the animation is not occurring and the phone
blanks out immediately.
Change-Id: Ie5f464acb2f6cefd2fb91f3b920a687ec7c15d76
- Include dreams in the conditions that disable transition animations.
This way there is no visibility of activities that are closing
behind the keyguard when an activity that dismisses the keyguard
starts up.
- Do not notify the keyguard mediator when the keyguard is dismissed
because a dream is starting up. This keeps activities from resuming
just because the keyguard is being dismissed.
Fixes bug 11064847.
Change-Id: I9d32fc96d518b1cdab511e187226a3cb889cf6d4
Rearranging the order of operations allows a newly added task to be
bumped to the top during window sorting. Also, redundant calls moving
the home task to the bottom when moving an app task to the top are
removed.
Maybe fix 10858941.
Change-Id: Ic42d2e7045175384591644675dd0e8013a7c7528
The requirement that a window that is invisible will not be drawn is
incorrect. In particular the test fails before a surface has even been
added (mHasSurface == false) or shown (mPolicyVisibility == false).
This was causing the screen to turn on before Keyguard had been drawn
and exposing surfaces that would have normally remained hidden.
Also, don't pass null into KeyguardServiceDelegate.onShown() or we
will immediately turn the screen on before Keyguard is drawn.
Fixes bug 11062635.
Change-Id: I964c7ef186d0a94678020b9c27ca6b79e5433350
Specifically, ignore any flags that alter the visibility of the navigation
bar and transparency.
BUG: 11082573
Change-Id: I17264dc55a1c6c3cb9b9cf92d5121799cecee5b8
Was skipping over the default assignment due to new null value for
windows (ag/361266).
Fixes bug 10987178.
Change-Id: I89efd41ab54b42de384eec84c5e937cc2a59d099
Bug: 10918599
Reduce the number of recent tasks to 10 on lowram devices
Use RGB_565 on low ram devices for thumbnails instead of ARGB_8888
Combined this saves ~9MB across system_process and systemui
Change-Id: Ieddcb512c7341a90097bc7cbc72d7355a775b416
Only use the stack bounds for the DimLayer bounds if there is more
than one stack on a layer. Otherwise cover the entire screen (and
more) with the DimLayer. This way there are no exposed regions when
rotating.
Fixes bug 10428085.
Change-Id: I7bfff12b69d59e86610621c498dab35cf0db8eb5
Newly added private flags were being masked in the public flag variable
as opposed to the correct privateFlags variable.
bug:11033280
bug:11043194
Change-Id: Idda3a70a083457f3f1b7d4b46d231f4a7e704cf0
Instead of keeping a single global system decor rect around
in WindowManagerService, calculate and store policy-defined
system-decor frame for each window.
The per-window decor rect is useful for smooth transitions, since it
determines window cropping during transition animations.
Bug:10938001
Change-Id: Ice6652aa5946027c45c0b7ab4e46473a0f8e3f90
The activity manager can create a new task under certain
circumstances in resetTargetTaskIfNeededLocked(). In that case the
window manager was not told to create a new task. This fix creates the
task in window manager when it recognizes that there is a new task
required.
Fixes bug 10412588.
Change-Id: Ife9ecfeb7f53f9df5950322c9359c836adc258a2
The main problem here was a mistake when turning a single process
structure to a multi-package-process structure with a common
process. When we cloned the original process state, if there were
any services already created for the process for that package, they
would be left with their process pointer still referencing the
original now common process instead of the package-specific process,
allowing the active counts to get bad. Now we switch any of those
processes over to the new package-specific process.
There was also another smaller issue with how ServiceRecord is
associated with a ServiceState -- we could be waiting for an
old ServiceRecord to be destroyed while at the same time creating
a new ServiceRecord for that same service class. These would share
the same ServiceState, so when the old record finally finished
destroying itself it would trample over whatever the new service
is doing.
This is fixed by changing the model to instead of using an "active"
reference count, we have an object identifying the current owner
of the ServiceState. Then when the old ServiceRecord is cleaning
up, we know if it is still the owner at that point.
Also some other small things along the way -- new Log.wtfStack()
method that is convenient, new suite of Slog.wtf methods, fixed
some services to use Slog.wtf when catching exceptions being
returned to the caller so that we actually know about them.
Change-Id: I75674ce38050b6423fd3c6f43d1be172b470741f
If two activities are started at the same time the first activity can
add a starting window but never start. In that case there is no event
that will clear the starting window. This change adds a 10 second
timeout for the starting window to be cleared after which it will
clear the starting window automatically.
Fixes bug 10797865.
Change-Id: I1d59c3058c63367ff688d426474e8a6f006b2e0d
Make sure that moveStackWindowsLocked() is called every time that the
stack ordering changes. This will rebuild the window list. Previously
the call was being made after the moveStack() call which got forgotten
in the addAppToken() causing the home stack to obscure incoming phone
and video calls.
Fixes bug 10023223.
Fixes bug 10678010.
Maybe fixes bug 10858941.
Change-Id: I59922dc979a19210008eac1f528704984c63c886
Since binder call permissions are not transitive by design,
the proper way to fix this is to have the call talk directly
to keyguard from the navigation bar.
Fixes bug 9409008
Change-Id: Ibd90a79bb638c969b514455a2ad93c6ff668222d
Method had been rewritten to be task-based and there were errors
when a task had no apptokens. New version is much easier to
maintain.
Maybe fixes bug 10689184.
Change-Id: I5e4c8447a33a4f5686296c20b9f9fe302c9ae49f
Changed public constants from integers to strings. Internally
everything is still integers, since we want that more efficient
representation for most things.
Changed the Callback interface to OnOpChangedListener. We also
have a private versin that again takes an int, and tricks to
make both work.
Reworked the class documentation to be appropriate to the SDK
(as much as it can be); most of the existing documentation is
moved to the private implementation. Also added documentation
of the MODE constants.
Change-Id: I4f7e73cc99fe66beff9194e960e072e2aa9458f8
Moving a task to the bottom was also moving its stack to the back.
Since chrome always finishes by calling moveTaskToBack this put
the home stack in front of the application stack and would cause
bizarre window layering effects.
Definitely fixes 10764463.
Maybe fixes 10678010.
Change-Id: Ic202ae4fad44b36a8444255764d2135fccd4743d
The InputMethod window was being assigned to the bottommost
window as a fall-through situation when no window could receive
input. This fix changes that so that if the bottommost window
cannot receive IME input then the InputMethod will be unassigned.
In most ANRs associated with bug 10689184 mInputMethodTarget
was assigned to the Wallpaper window and the InputMethod was
placed directly above it. When the ANR occurred the window that
was awaiting focused was then always placed immediately above the
InputMethod. This fix will keep that situation from happening.
Change-Id: Ic247e8132a907f2712a9f8a89e43c099142ec851