931 Commits

Author SHA1 Message Date
Adam Lesinski
e17e0f0e6c Merge "Fix jank for translucent window transitions" into klp-dev 2013-10-22 00:13:17 +00:00
Adam Lesinski
43d8d3355b Fix jank for translucent window transitions
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
2013-10-21 16:41:48 -07:00
Craig Mautner
a7f2bd4da7 Remove debug logging.
Change-Id: I5d7c11e8b8525bfc8eb87bb0fff4f71337b4a39d
2013-10-15 16:13:50 -07:00
Craig Mautner
5800443e2d Move the wallpaper beneath the keyguard.
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
2013-10-14 13:52:28 -07:00
Craig Mautner
4ebe57804d Merge "Revert "Restore wallpaper positioning between apps."" into klp-dev 2013-10-14 01:25:27 +00:00
Craig Mautner
7c495cbf68 Revert "Restore wallpaper positioning between apps."
This reverts commit faf1a40382b61d9cabab82e6e835603511046564.

Bug 10932680 is back where it was.

Change-Id: I5058db837941769f25f09e3fafd9c19ef370df8e
2013-10-13 23:19:45 +00:00
Dianne Hackborn
021d243d6d Fix issue #11199654: Action bar enter animation skips frames when cleared by the system
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
2013-10-13 15:56:29 -07:00
Craig Mautner
faf1a40382 Restore wallpaper positioning between apps.
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
2013-10-12 15:43:07 -07:00
Craig Mautner
d69417d2f6 Merge "Reduce jank on incoming phone call during dream." into klp-dev 2013-10-11 16:49:55 +00:00
Craig Mautner
2881630af9 Reduce jank on incoming phone call during dream.
- 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
2013-10-10 20:31:00 -07:00
Craig Mautner
4ca2aec2be Merge "Add task to list before looking it up." into klp-dev 2013-10-10 00:20:08 +00:00
Craig Mautner
8e79734ba3 Add task to list before looking it up.
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
2013-10-09 16:39:42 -07:00
Craig Mautner
e8a057a9ae Merge "Remove overly tight constraint on drawn Keyguard." into klp-dev 2013-10-09 19:10:45 +00:00
Craig Mautner
4e8a19c73a Remove overly tight constraint on drawn Keyguard.
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
2013-10-08 21:32:37 -07:00
Alan Viverette
6930d3805e Merge "Ignore certain WindowManager flags when touch exploration is enabled" into klp-dev 2013-10-08 00:47:23 +00:00
Craig Mautner
e2dd83a5b4 Yet more debugging for 10858941.
Change-Id: I258957044cb1a8331124f6abbe53428429c33355
2013-10-07 17:01:41 -07:00
Alan Viverette
5a0f4eccfb Ignore certain WindowManager flags when touch exploration is enabled
Specifically, ignore any flags that alter the visibility of the navigation
bar and transparency.

BUG: 11082573
Change-Id: I17264dc55a1c6c3cb9b9cf92d5121799cecee5b8
2013-10-07 15:12:57 -07:00
Craig Mautner
27b826325c Merge "Retain IME assignment if no windows accept input." into klp-dev 2013-10-03 21:28:38 +00:00
Craig Mautner
ae87962e3e Retain IME assignment if no windows accept input.
Was skipping over the default assignment due to new null value for
windows (ag/361266).

Fixes bug 10987178.

Change-Id: I89efd41ab54b42de384eec84c5e937cc2a59d099
2013-10-03 14:07:45 -07:00
Craig Mautner
02fa2332ac Merge "Make DimLayer size dependent on stack layout." into klp-dev 2013-10-03 02:49:31 +00:00
John Spurlock
e660ecc436 Merge "Store decor rects per window for transition cropping." into klp-dev 2013-10-03 02:28:58 +00:00
Adam Lesinski
d65825ab1c Merge "Private flags are masked in correct variable" into klp-dev 2013-10-03 01:52:18 +00:00
John Reck
9a93f6f039 Merge "Reduce max recents on lowram" into klp-dev 2013-10-03 01:13:58 +00:00
John Reck
172e87ce51 Reduce max recents on lowram
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
2013-10-02 17:51:11 -07:00
Craig Mautner
c7b8a10040 Make DimLayer size dependent on stack layout.
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
2013-10-02 16:49:52 -07:00
Adam Lesinski
95c42974f7 Private flags are masked in correct variable
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
2013-10-02 16:18:55 -07:00
Craig Mautner
4aca4c1520 Merge "Don't reorder windows on non-default display." into klp-dev 2013-10-02 22:19:19 +00:00
Craig Mautner
85689b9f48 Don't reorder windows on non-default display.
At least not until we add tasks to those displays.

Fixes bug 10264736.

Change-Id: I3baed4bf324c4a11bbf5b07755218c2992f5af39
2013-10-02 15:13:03 -07:00
John Spurlock
4664623c30 Store decor rects per window for transition cropping.
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
2013-10-02 18:12:16 -04:00
Craig Mautner
93cb8f6b78 Merge "Create new window-side task on demand." into klp-dev 2013-10-02 17:45:47 +00:00
Craig Mautner
31482a7fe1 Create new window-side task on demand.
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
2013-10-02 10:35:17 -07:00
Dianne Hackborn
164371fb75 Fix issue #11005453: [SUW] G+ profile creation for new user broken
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
2013-10-01 20:51:12 -07:00
Adam Lesinski
42e9b63100 Merge "Make room for new public flags" into klp-dev 2013-10-02 01:55:09 +00:00
Adam Lesinski
6a591f5859 Make room for new public flags
Moved two hidden flags to private

bug:11033280
Change-Id: Icca867b073aff643eefdaf84df68de86bb6b05ac
2013-10-01 18:48:20 -07:00
Craig Mautner
68cc241e8d Add a timeout for removing starting windows.
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
2013-10-01 10:39:43 -07:00
Craig Mautner
564e8e6f54 Merge "Ensure correct window ordering." into klp-dev 2013-09-29 14:26:12 +00:00
Craig Mautner
5ee6d19fd7 Ensure correct window ordering.
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
2013-09-28 15:58:38 -07:00
Jim Miller
6c9df5054a Fix permissions on WindowManagerService.showAssistant()
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
2013-09-27 16:29:36 -07:00
John Spurlock
0ab7d4d1a1 Merge "Remove Rect allocation in each layout pass." into klp-dev 2013-09-24 21:18:00 +00:00
John Spurlock
4e92a7cf03 Remove Rect allocation in each layout pass.
Bug:10786445
Change-Id: I0cb1ab7697f33e02adeb5319bae19d3a1d20753c
2013-09-24 17:09:05 -04:00
Craig Mautner
9bf6c5cec8 Merge "Fix method for determining focused window." into klp-dev 2013-09-24 19:33:17 +00:00
Craig Mautner
ac56514ea7 Fix method for determining focused window.
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
2013-09-24 09:01:48 -07:00
Dianne Hackborn
9bb0ee9131 Issue #10461551: KLP API Review: AppOpsManager
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
2013-09-23 09:35:21 -07:00
Craig Mautner
0447669142 Merge "Remove over-aggressive stack movement." into klp-dev 2013-09-20 21:28:14 +00:00
Craig Mautner
8916aadd1e Remove over-aggressive stack movement.
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
2013-09-20 13:42:49 -07:00
Craig Mautner
b3370cec71 Debug for b/10689184.
Change-Id: I67b7a4bd7fb902b0d0275af0665625593dc1af00
2013-09-19 12:55:19 -07:00
Craig Mautner
bc65c1dbcc Merge "Do not assign InputMethod to non-input windows." into klp-dev 2013-09-17 22:13:10 +00:00
Craig Mautner
22b9a5e0aa Do not assign InputMethod to non-input windows.
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
2013-09-17 14:50:56 -07:00
Craig Mautner
b1885b8588 More debugging for b/106899184
Change-Id: I729a2c5bae087713765d782daaa7309ee6cd5b5a
2013-09-17 09:35:20 -07:00
Craig Mautner
5845812780 Add debug logging for b/10689184.
Focus is now on focus. Remove logging when fixed.

Change-Id: Ic0cd2d6bd4e65dac9dd40f4745dd12fb84f687ce
2013-09-15 14:18:54 -07:00