History log of /frameworks/base/services/core/java/com/android/server/wm/WindowManagerService.java
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
96268545435c30d628b3644830d9e054d575d8c9 22-Jan-2015 Tim Kilbourn <tkilbourn@google.com> Add a config for whether to start in touch mode.

Bug: 18925810
Change-Id: Ic9b956cde380cffcad7ca229f1669692b1743e6d
/frameworks/base/services/core/java/com/android/server/wm/WindowManagerService.java
baf6bef001a582fea275bf891294cf1fe9d5472e 27-Jan-2015 Craig Mautner <cmautner@google.com> Defer tap outside stack until multiwindows

Taps outside of the stack boundary were causing the current app to
lose focus. This led to timeouts waiting for the app to respond.

Disabling the tap recognition keeps the focus from changing. It will
be reenabled for multiwindows.

Fixes bug 17721767.

Change-Id: Iad854b19979390e73b97239e489ad7ef82e03d47
/frameworks/base/services/core/java/com/android/server/wm/WindowManagerService.java
d22c8d9961340ba1b7d7601d1c99e2557b6a9f0b 21-Jan-2015 Craig Mautner <cmautner@google.com> Merge "Revert "Remove debugging and skip InputMethod windows"" into lmp-mr1-dev
ea343e5f673e540f5d2504fe8ac17606f0bd5d94 20-Jan-2015 Craig Mautner <cmautner@google.com> Revert "Remove debugging and skip InputMethod windows"

This reverts commit 668cae1d4724cf794571f1ee2a3e896984b97db7.

Too soon. I need this for debug.

Change-Id: Ibeaec0139f511cf389049bdb7dae368a7bd8186b
/frameworks/base/services/core/java/com/android/server/wm/WindowManagerService.java
d9a79b5ba9934429289a634bdd4ad1a375484184 20-Jan-2015 Craig Mautner <cmautner@google.com> Merge "Remove debugging and skip InputMethod windows" into lmp-mr1-dev
0c4d81cf1350101687c5090b18c7a3c5bc1f348c 20-Jan-2015 Craig Mautner <cmautner@google.com> Do not defer removal for empty tasks or activities

It is possible for empty activities to be leaked if their last
window is removed before animations finish. This change keeps tasks
and activities from having removal deferred if they have no windows.

Fixes bug 19047432

Change-Id: If6562f46bbfcac9ba987e2c834a1d55a9a8f3766
/frameworks/base/services/core/java/com/android/server/wm/WindowManagerService.java
668cae1d4724cf794571f1ee2a3e896984b97db7 14-Jan-2015 Craig Mautner <cmautner@google.com> Remove debugging and skip InputMethod windows

1. Remove debug for bug 17721767.
2. When adding activity windows based on base layer skip over
InputMethod windows.

Change-Id: I3600e9acd997002ce87d34df2af577cc7b648480
/frameworks/base/services/core/java/com/android/server/wm/WindowManagerService.java
c8ba2e87a40eb70ad22c62b9768e7691e3ff3bc3 14-Jan-2015 Craig Mautner <cmautner@google.com> Merge "Place window at top when adding by base layer" into lmp-mr1-dev
cfb13798db73849ce1cef0ae5943dbb52703b590 14-Jan-2015 Craig Mautner <cmautner@google.com> Place window at top when adding by base layer

When addAppWindowToListLocked defaults to adding based on mBaseLayer
it went from the lowest window to the highest window looking for a
window whose base layer was larger and dropping the new window below
that window.

If the Home activity is the InputMethodTarget then when the home
ActivityStack moves to the back the InputMethod will follow. This
puts the InputMethod, with it's high base layer value below most
activities. If a new activity window is added using the mBaseLayer
rule above it was placed at the bottom of the window list below the
InputMethod window. Being at the bottom it never received focus and
input to the activity timed out causing ANR.

This change starts the mBaseLayer search at the top window and works
its way down looking for the first window whose mBaseLayer is less
than or equal to the new window's mBaseLayer and inserting the new
window above that window. This causes it to be placed at the top of
all activities even if the InputMethod is near the bottom.

Fixes bug 17721767.

Change-Id: I037064de7604b670841e985479eb5857b47af1d7
/frameworks/base/services/core/java/com/android/server/wm/WindowManagerService.java
207d7bd3a4aca3478910ec740a0c810868fbeabb 13-Jan-2015 Fyodor Kupolov <fkupolov@google.com> Merge "Run isKeyguardSecure under system privileges" into lmp-mr1-dev
bcb6eb9e26c923333b25074d39722a5dfa8c0320 13-Jan-2015 Craig Mautner <cmautner@google.com> Add debug for ANR

Help for bug 17721767.

Change-Id: If863f3e6536be8af2c189dcc37d503c4d6b663b4
/frameworks/base/services/core/java/com/android/server/wm/WindowManagerService.java
c87d162815f228cda3c2bc70022c54e332bee0e5 13-Jan-2015 Fyodor Kupolov <fkupolov@google.com> Run isKeyguardSecure under system privileges

In certain cases, isKeyguardSecure calls UserManager.getProfileParent, which
requires MANAGE_USERS permission.
Now the check is done under system privileges.

Bug:18765066
Change-Id: I6b23aedee06403d36523af5fee9c7db9659284b3
/frameworks/base/services/core/java/com/android/server/wm/WindowManagerService.java
3d7ca31c9e4a076cef5339ae58d5cafb2efbbc8f 08-Jan-2015 Craig Mautner <cmautner@google.com> Remove AppWindowTokens from exiting apps with task

When the task is removed from a task stack in window manager any
exiting activities left in the stack were orphaned. This led to a
memory leak. Removing all task activities from those that are exiting
fixes this problem.

Fixes bug 18943737.

Change-Id: I0a5ea8d2d3be89af7ccaf01385a226a2eafdf507
/frameworks/base/services/core/java/com/android/server/wm/WindowManagerService.java
3a0d878ab56475276c61d574af7651820a5cea5a 04-Dec-2014 Svetoslav <svetoslavganov@google.com> Ensure all events from a showing window are dispatched.

Accessibility services may opt-in to introspect the interactive
windows on the screen. If window introspection is enabled there
is a case where some events from a showing window are received
before the updated window state from the window manager. Now the
window manager sends over the windows before notifying the app
for the focus change.

bug:18625996

Change-Id: Ic481e01efbe12dc92f090f799feeb236672fc7b3
/frameworks/base/services/core/java/com/android/server/wm/WindowManagerService.java
6ee618509a392adb183c2e70390cd9e2031ff0d8 03-Dec-2014 Craig Mautner <cmautner@google.com> Don't process windows belonging to unshown users

Add a test for whether a window will be shown to the current user.
Otherwise we wait to process windows that are drawn but will never
be shown. Consequently we end up in a layout loop that continues
to set pendingLayoutChanges at the point where "wallpaper and
commitFinishDrawingLocked true" message is generated.

Fixes bug 18510914.

Change-Id: Ib067b41b5f26b146ee6bdb16c2f3b07d20aa2c54
/frameworks/base/services/core/java/com/android/server/wm/WindowManagerService.java
9dba10732802bf162c0098d2591aa284e55b7b5e 01-Dec-2014 Craig Mautner <cmautner@google.com> Merge "Force additional layout pass after drawing" into lmp-mr1-dev
361ca21acc0831a9f8bbb259bb30218c252a2aa0 20-Nov-2014 Wale Ogunwale <ogunwale@google.com> Added unique id to display devices and their settings.

The display setting saved to disk were using a localized name for
the key. This is an issue if the user changes languages after the
display settings have been saved. We now use the non-localized
name for the display to access the settings if it is available,
else we fall back on the localized name.

Bug: 18190800
Change-Id: I837c06a8935df10727229a1aa2bb6eeb3953707f
/frameworks/base/services/core/java/com/android/server/wm/WindowManagerService.java
7641e817e55cb88130f0d9ece7de24067c0b4d06 26-Nov-2014 Craig Mautner <cmautner@google.com> Force additional layout pass after drawing

If AppWindowToken.allDrawn is changed from true to false an
additional layout pass is required to change WindowStateAnimator.
mDrawState from READ_TO_SHOW to HAS_DRAWN.

Fixes bug 18456175

Change-Id: Iddac657e5303a4154309889417374c0c6994c4df
/frameworks/base/services/core/java/com/android/server/wm/WindowManagerService.java
30bd3bb77b8bd1ac70723bcf7f1017fc40ea89b2 13-Nov-2014 Craig Mautner <cmautner@google.com> Revert "Debug for bug 18017409"

The bug has been fixed. No longer needed.

This reverts commit 5a3c231dc832c205d2bb2f7f0881925b92c9e5e2.

Change-Id: I4a0dda5321f4eeb989c4c58951c43c8d62fd3664
/frameworks/base/services/core/java/com/android/server/wm/WindowManagerService.java
3ae0d3157d5fdeee851f3e72b80f4ed57add0ff8 07-Nov-2014 Wale Ogunwale <ogunwale@google.com> Fixed constant window switching on lock screen with Swype KB.

We allow TYPE_INPUT_METHOD windows to show on the lock screen.
These windows can attached other types of windows (For this
case the Swype KB was attaching a PopupWinow which will be
of TYPE_APPLICATION). This causes the popup window app token
to be added to the list of apps to be hidden on the lock
screen, thereby preventing the lock screen from been hidden,
which then causes a layout cycle(s). Now, we remove app
tokens for non-app windows from the hidden list in case it
was added by any attached widow they migth have.

Also, when we are updating window animations, set the
hideWhenLocked flag for windows that are IME tragets so
they don't go through unneeded cycles of having their
visibility policy set to hide/show/hide/show/...

Bug: 18021493
Change-Id: I3680256d41793f62def42fda00e26db1dcc990cc
/frameworks/base/services/core/java/com/android/server/wm/WindowManagerService.java
44f60cca7bb31e2f9b4b7bf25bb2e0cfb0e3e1e1 07-Nov-2014 Jorim Jaggi <jjaggi@google.com> Fix lockscreen launch animations once and for all

In SysUI, make sure not to dismiss Keyguard multiple times when just
waiting for a deferred dismissal, so WindowManager doesn't get
multiple calls to keyguardGoingAway.

Change heuristics how notifying Keyguard about activity drawn works.
Always notify Keyguard after executing an app transition, and notify
it also when not doing a transition after a startActivity call.

For that to work, update AppWindowToken.startingDisplayed also when
the window is displayed, but force hidden because of Keyguard.

Further, handle the case correctly when a window gets added during
the Keyguard exit animation by overriding the start time for the
animation of that new window. Also don't apply a transition animation
for a window when executing keyguard exit animation, so by removing
a starting window we don't break this animation.

Last but not least, tell Keyguard to start exiting immediately if
animations for exiting are disabled, like when going to phone/camera
on lockscreen. Before, we always had a delay of 1 second because we
waited for the timeout.

Bug: 1599196
Bug: 18272544
Change-Id: I596b2489f814b934abd256e16079d3d3f326e209
/frameworks/base/services/core/java/com/android/server/wm/WindowManagerService.java
c08eab81f30a3120ec0929d3508b4a78d498e1ff 11-Nov-2014 Craig Mautner <cmautner@google.com> Show error dialogs over apps that dismiss keyguard

Error dialogs absorb all input to ensure that they are not missed.
This can cause the screen to lock up if they are not displayed but
are still absorbing touches. This was what was happening when there
was an error dialog up at the same time as a phone call came in as
in b/17648830.

This fix recognizes when an app is dismissing the keyguard and
forces any error dialogs to be shown over such an app.

This also removes the private flags from the input system as they
are no longer needed.

Fixes bug 17648830.

Change-Id: I5c98b8265a1448b445fdb2f745fc78892f8656a4
/frameworks/base/services/core/java/com/android/server/wm/WindowManagerService.java
37d7a68de7e353c31a3a4736054cd86f0e002eaf 06-Nov-2014 Adrian Roos <roosa@google.com> Fix inset hinting when adding window

Windows with FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS were
getting an incorrect content inset hint, because the
hinting didn't see the adjusted systemUiVisibility.

Also adds hinting for the stable insets.

Bug: 17508238
Change-Id: If9647277feb6811b15665b801accd896c51dbd12
/frameworks/base/services/core/java/com/android/server/wm/WindowManagerService.java
044d52934e57a337665f707aa4be1d423ee3fb29 06-Nov-2014 Winson Chung <winsonc@google.com> Adding bounce animation for affiliated tasks. (Bug 16656169)

Change-Id: I39e4a57c4e6b707d15513dacde2d40c23bb05058
/frameworks/base/services/core/java/com/android/server/wm/WindowManagerService.java
9128396982233d6af49613231100f1bc4b6c477b 05-Nov-2014 Winson Chung <winsonc@google.com> Merge "Fixing crash in recents window transition. (Bug 18246975, 18159006)" into lmp-mr1-dev
276a6eb879801e7e7988ecb0e6f29241e9a52724 05-Nov-2014 Craig Mautner <cmautner@google.com> When keyguard exits use same anim for all windows

The entering animations were only applied to the incoming windows
one time. If those windows weren't drawn yet then they never had
an animation assigned.

Furthermore if a starting window was drawn in time it would get the
animation but its main window would not get it if it weren't drawn.
Even if an animation were assigned later they wouldn't be synced
with each other.

This change creates a single animation which is shared by all
incoming windows. As windows are drawn they can then animate with
the starting window.

(Also refactorings to eliminate redundant code and unnecessary
variables.)

Fixes bug 15991916.

Change-Id: I844d102439b6eda8c912108431916e04b12f7298
/frameworks/base/services/core/java/com/android/server/wm/WindowManagerService.java
ab79fce2e71b6816b2b88b826ca723b3591f1e26 05-Nov-2014 Winson Chung <winsonc@google.com> Fixing crash in recents window transition. (Bug 18246975, 18159006)

The recents transition requires synchronizing the thumbnail header (the bar
that animates on top of the window that is being scaled/cropped) and the
application window. This change simplifies the code and removes the notion
of having another animator manage the same surface, and instead ensures that
the thumbnail animation has the same duration and that the thumbnail animation
is deferred and cleaned up one frame after the app transition is complete.

Change-Id: If8f348afccf59327187e8498eb451ba066600a41
/frameworks/base/services/core/java/com/android/server/wm/WindowManagerService.java
5e2986ef2067fd24c10f100858d166353a46caba 03-Nov-2014 Casey Burkhardt <caseyburkhardt@google.com> am 2997285f: Merge "Disable circular display mask with color inversion" into lmp-sprout-dev

* commit '2997285f362349097882d1b31eb23cb867227192':
Disable circular display mask with color inversion
c0d2d0ad6ddcd23b7bbe6b1a5668d6d719e4c86c 01-Nov-2014 Craig Mautner <cmautner@google.com> Animate starting windows when keyguard dismissed.

Starting windows are displayed prior to their app windows visibility
being set. Consequently the WindowToken.hidden boolean for starting
windows is still true even when it is shown. The keyguard logic uses
the method WindowState.isVisibleNow to determine whether to animate
each window. This method incorrectly determined that starting windows
were not visible based on WindowToken.hidden and consequently didn't
animate in the starting window.

This change fixes isVisibleNow() to correctly determine when
starting windows are visible and animates them in as part of the
keyguard transition.

This change also adds keyguard debug.

Partially fixes bug 15991916.

Change-Id: Iac3e5f3f33876be5801ec619bbe7a1579e648322
/frameworks/base/services/core/java/com/android/server/wm/WindowManagerService.java
159da3dba8811017c683fcee26c795be1948b0c4 30-Oct-2014 Craig Mautner <cmautner@google.com> Merge "Add enter-animation-done callback for system windows" into lmp-mr1-dev
9c79504225f60c72c947220b6aca928f11279e1c 29-Oct-2014 Craig Mautner <cmautner@google.com> Add enter-animation-done callback for system windows

Existing hidden methods allow activities to be notified when their
windows have completed animating in. This change adds that capability
to system windows using a ViewTreeObserver callback since system
windows lack an activity token.

The first subsystem to use this is the UserSwitchingDialog which was
previously using a 250 msec timeout to dismiss the dialog. That
deadline was often missed leaving the user with no dialog on the
screen during the transition.

Fixes bug 16661752.

Change-Id: I70789e0d9c07112f275e76fb82850926305f290d
/frameworks/base/services/core/java/com/android/server/wm/WindowManagerService.java
87023b8eea5101ca918da7745bae4908c65a0884 28-Oct-2014 Casey Burkhardt <caseyburkhardt@google.com> Disable circular display mask with color inversion

Causes WindowManagerService to only add a circular display mask on
qualified devices if the accessibility display color inversion
feature is turned off. When enabled, this causes a visual artifact.

Bug:18120660
Change-Id: I0b1ac08487098942e2e0dd2794905e845a70c1bc
/frameworks/base/services/core/java/com/android/server/wm/WindowManagerService.java
c74b5723a4a368d572952ef52c92c5754b5fd26c 28-Oct-2014 Wale Ogunwale <ogunwale@google.com> Fix issue 6455374: Bad recent image on camera launch from lockscreen.

When transitioning from the lockscreen to the camera app,
the previous activity that was running before the screen was
locked is briefly resumed and then paused. During the pause
we take a screenshot of the activity for recents which ends up
being an image of the wallpaper, because the activity was
moved behind the wallpaper while the lockscreen is up. With
this change we no longer include the wallpaper layer in the
screenshot if it is layered on top of the window we are
targeting for the screenshot.

Bug: 6455374
Change-Id: I305950a32c176f55eeeb6358266746e32e848383
/frameworks/base/services/core/java/com/android/server/wm/WindowManagerService.java
74fe6ce72dcbc7af501022e7617528c30a0983bb 28-Oct-2014 Craig Mautner <cmautner@google.com> Merge "Do not go through a layout if visibility is GONE" into lmp-mr1-dev
fa3515bd0d62bc55153f26cd9f0b93e077631514 23-Oct-2014 Craig Mautner <cmautner@google.com> Do not go through a layout if visibility is GONE

An unnecessary layout based on dimensions changing catches up
with us later when the next layout doesn't occur.

In this case
we layed out the Settings panel because visibility changed from
visible to GONE and the requested width/height didn't match the
current window width height. When the visibility changed back
to visible the dimensions matched and another layout was not
performed.

This fix delays the layout until the window becomes visible again.

Fixes bug 17681754.

Change-Id: I0a3ff9479dca93e78c5d3a3df40faceffc10ecbd
/frameworks/base/services/core/java/com/android/server/wm/WindowManagerService.java
bd6fabe2ae535cf5d31fc7a1952e43ad6e653e2e 24-Oct-2014 Svetoslav <svetoslavganov@google.com> Merge "APIs for an accessibility service to put interaction tracking overlays." into lmp-mr1-dev
74ff66e26a4c901922524f221414c578186f92b5 23-Oct-2014 Craig Mautner <cmautner@google.com> am 5cd68ee4: Merge "Cherry pick task movement changes from aosp" into lmp-sprout-dev

* commit '5cd68ee4dfeaf74a31a0a62e5d0a60951cddc3bc':
Cherry pick task movement changes from aosp
fb1cf36aa739da5dbebc64e61900e9ff96134e26 23-Oct-2014 Bryce Lee <brycelee@google.com> resolved conflicts for merge of f03ba4f1 to lmp-mr1-dev

Change-Id: I9e4cabd2d8a34a348ae888f096c8d3c35226e960
5cd68ee4dfeaf74a31a0a62e5d0a60951cddc3bc 22-Oct-2014 Craig Mautner <cmautner@google.com> Merge "Cherry pick task movement changes from aosp" into lmp-sprout-dev
cbd84af39a329890013b0c3b6763280ba2ad78c9 22-Oct-2014 Craig Mautner <cmautner@google.com> Cherry pick task movement changes from aosp

The following cherry picks from aosp contain code that keep windows
tracking the task movement.

https://android-review.googlesource.com/#/c/111380/
https://android-review.googlesource.com/#/c/109930

Maybe fixes bug 15729183.

Change-Id: Ida69fe365b06025d119e32b22a8d04958cdbabf3
/frameworks/base/services/core/java/com/android/server/wm/WindowManagerService.java
5a3c231dc832c205d2bb2f7f0881925b92c9e5e2 22-Oct-2014 Craig Mautner <cmautner@google.com> Debug for bug 18017409

Log adding and removing windows. Log activity state changes.

Change-Id: I544be89ff9af6b13ffde70dedec291793b46a420
/frameworks/base/services/core/java/com/android/server/wm/WindowManagerService.java
584a44517950204a04ef01345be70b33d8ba43f9 22-Oct-2014 Bryce Lee <brycelee@google.com> [Theater Mode] framework implementation through global setting

Bug: 17684570
Change-Id: I64a9c9c0620049cdfcca0150648fa201281f7178
/frameworks/base/services/core/java/com/android/server/wm/WindowManagerService.java
3a5c721072c60c7ed9c8a95d0a65d0e3cb4eb9bb 14-Oct-2014 Svetoslav <svetoslavganov@google.com> APIs for an accessibility service to put interaction tracking overlays.

An accessibility service may register to observe the interactive windows
on the primary display. These windows are the one that has input focus and
ones a sighted user can touch. It is sometimes beneficial for an
accessibility service to overlay a window to intercept user interaction
and based on that introspect and perform an action on the windows that
are on the screen. This is problematic as overlaying a full screen window
that is touchable prevents the accessibility service to introspect the
content under this window.

This change adds a special type of window that only an accessibility service
can place which does not affect what an accessibility service can "see" on
the screen. Hence, even putting such a window full screen the service will
be able to interact with the other interactive windows it covers.

Change-Id: I053ccc3a5c6360a98dc40bdb172b54dab35d8b31
/frameworks/base/services/core/java/com/android/server/wm/WindowManagerService.java
5f978bfa0949d58a187dec0fe9ee6b341cb97c1f 20-Oct-2014 Adrian Roos <roosa@google.com> Merge "Retire RecentApplicationsDialog" into lmp-mr1-dev
8629784bbb31e5edace15dfe025317c708723ebd 10-Oct-2014 Yohei Yukawa <yukawa@google.com> Update config when "Show input method" is changed

This is a follow up CL for I2237ded850a0d4ab43ca441d0b7df1.

Seems that we still need to update config settings every
time when "Show input method" is changed.

BUG: 17666032
Change-Id: I480aeaa038bef9c3c20e8f0b36110e92a35809db
/frameworks/base/services/core/java/com/android/server/wm/WindowManagerService.java
9a64513c7fccc2a9cf331a384906a7669b29b3f4 08-Oct-2014 Adrian Roos <roosa@google.com> Retire RecentApplicationsDialog

Bug: 5162991
Change-Id: I429da977502f33e2091496f3a075b2c507a88e1f
/frameworks/base/services/core/java/com/android/server/wm/WindowManagerService.java
030a93feb896d228317eb8dba6a89743c4d26dd7 07-Oct-2014 keunyoung <keunyoung@google.com> ignore null TaskStack and continue layout for PRIVATE_PRESENTATION window

bug: 17677973
Change-Id: I2666a1c1cf8956e60d7261912da34d1999131eba
/frameworks/base/services/core/java/com/android/server/wm/WindowManagerService.java
8d05172112436a81bed6e4a0810f8914509d8a4d 01-Oct-2014 Dianne Hackborn <hackbod@google.com> More work on issue #17656716: Unhandled exception in Window Manager

Fix Slog.wtf to not acquire the activity manager lock in its code
path, so that it can never deadlock. This was the original intention
of it, but part was missed.

Now we can put back in the code to detect when strict mode data is
getting large (a little more targeted now to the actual problem),
and use Slog.wtf to report it. And as a bonus, when this happens
we will now clear all of the collected violations, to avoid getting
in to the bad case where IPCs start failing. So this should be
good enough for L to fix the problem, with wtf reports for us to
see if the underlying issue is still happening.

Finally, switch a butch of stuff in the system process from Log.wtf
to Slog.wtf, since many of those are deadlocks waiting to happen.

Oh and fix a crash in the settings provider I noticed in APR.

Change-Id: I307d51b7a4db238fd1e5fe2f3f9bf1b9c6f1c041
/frameworks/base/services/core/java/com/android/server/wm/WindowManagerService.java
86ef70eb08b83fc41d0c8e124315d9ee9fea0ee4 01-Oct-2014 Winson Chung <winsonc@google.com> Fixing build (Bug 17381033)

Change-Id: I95a7c8167f82a4fe982bdc9588d5fbaf5a627d0b
/frameworks/base/services/core/java/com/android/server/wm/WindowManagerService.java
c12f57457411e67adf2c8acaad21b08c934e583b 01-Oct-2014 Winson Chung <winsonc@google.com> Merge "Fixing an issue with leaking starting windows. (Bug 17657878)" into lmp-dev
c11b19caef12c3199393b68ae36931a603337c05 01-Oct-2014 Winson Chung <winsonc@google.com> Fixing an issue with leaking starting windows. (Bug 17657878)

In some cases, when starting an animation while another starting window is visible,
the starting window is never scheduled to be removed. In that case, we try and
schedule the closing app starting window to be removed when we are starting the
transition to a new activity. This also partially addresses issues related to
leaking windows in b/17381033.

Change-Id: Id26525cd71380852f109ec2f55a4a60db5086ded
/frameworks/base/services/core/java/com/android/server/wm/WindowManagerService.java
49a2edf92ab9b02762a2c183809fdee55b0fcf40 25-Sep-2014 Craig Mautner <cmautner@google.com> Call Surface.release() for starting windows

If the window maanger received BinderDied for a starting window
before activity manager then it would null
AppWindowToken.startingWindow and not go through the
PhoneWindowManager.removeStartingWindow call later. That meant that
Surface.release() was never called from
ViewRootImpl.dispatchDetachedFromWindow(). Which in turn meant that
graphics memory was being leaked.

This change notifies the PhoneWindowManager to go through the
removeStartingWindow path when the starting window gets removed for
any reason.

This change also ensures that scheduleRemoveStartingWindow is
always called with the window manager lock held.

Fixes bug 17381033.

Change-Id: Ic6860d0e1410c9bb5053d85ae21a08b11f573b6d
/frameworks/base/services/core/java/com/android/server/wm/WindowManagerService.java
83a76db6c588ac0ecc713a9920b5a46448e3884c 24-Sep-2014 Craig Mautner <cmautner@google.com> Merge "Force layout and animation when display changes" into lmp-dev
9b5e824da70b6446a2e1418bc0cf1efaa33bd862 24-Sep-2014 Craig Mautner <cmautner@google.com> Force layout and animation when display changes

Each time that window manager gets a notification that a display has
been added, removed or changed, run a pass through
performLayoutAndPlaceSurfaces. This ensures that
WindowAnimator.animate() runs once so that the surfaces of remote
displays can be updated with their visibility.

Fixes bug 17533991.

Change-Id: If8745527df86c74da75fbe26b8a2a6fddeb74d2a
/frameworks/base/services/core/java/com/android/server/wm/WindowManagerService.java
2fb173a34be19ac6886b923865fc6fd247e3990e 23-Sep-2014 Jorim Jaggi <jjaggi@google.com> Merge "Only wait for relevant windows when turning on the screen" into lmp-dev
dc9ead4409d784620c6c65a56ca083ff7dd817f0 23-Sep-2014 Jorim Jaggi <jjaggi@google.com> Only wait for relevant windows when turning on the screen

Bug: 17536119
Change-Id: Ibe8da9fdd52a1a46eb856425b28ffc4f505b2697
/frameworks/base/services/core/java/com/android/server/wm/WindowManagerService.java
3ee549ca2404067bb8b2fcbaa741ec118c76bf3e 23-Sep-2014 Jeff Brown <jeffbrown@google.com> Fix window manager policy state when waking from doze.

Once upon a time when the world was fresh and new, the heavens
had an easy rhythm. Day and night. Night and day. In the day,
the pixel fairies would cavort and play in the bright gardens
with narry a mark of shadow or gloom. In the night, they would
rest peacefully, dreaming no dreams and knowing no fear.

Then one night a fairy dreamed the first dream. At first
the dream was peaceful, full of colors and delight, hopes and
memories. Then all at once, jarringly, it awoke in bright
daylight. The pixel fairy knew fear, for the world had changed
and it was unprepared.

Time passed and the pixel fairies grew accustomed to their
fate, day and night, night and day, sometimes dreaming, until
there came a night when a fairy did not sleep. It roamed
the land in a dreamless doze, lost and afraid amid a grim haze
of grey and darkness. The fairy despaired. It wanted no
part of this place. It pretended for a time to be awake but
the bright daylight would not come. It pretended for a time to
be dreaming but the colors and memories would not come.
That is when the fairy wished for oblivion. Then just as
suddenly, it awoke in the daylight. It fell to the ground,
stunned as if it had forgotten how to walk in the too bright
daylight.

Though the world again grew softer and kinder in time, the pixel
fairies were never the same. For the night is dark and full
of terrors.

---

It used to be easy. Screen on and screen off could explain almost
everything about the state of the device but it's different now with
ambient display. We need to be able to wait for all windows to be
drawn even in the case where the device is still nominally asleep.
In truth, the window manager policy which drives a lot of these
interactions is a thicket of outdated assumptions.

Added a new method to tell the window manager policy when the screen
is being turned off so that it can correctly account for changes
to the interactive state (wakeUp and goingToSleep) and screen state
(screenTurningOn and screenTurnedOff). Now we can independently
poke keyguard during interactive state changes and we can apply
screen on blocking during screen state changes.

Moved the code which manages screen on blocking (which is what
ensures the UI has fully drawn before revealing screen contents)
from the power manager to the display manager since the display
manager is in a better position to accurately track the state of
the screen, particularly when the screen is being turned off.

Fixed a bunch of synchronization issues. Previously some work
had been moved to a handler without considering what might
happen if it became reordered relative to other work happening
elsewhere. Documented the desired behavior in the code to
prevent this from happening again.

There's still a bunch of stuff in here that isn't quite right,
particularly the assumption that there's only one screen, but
it's good enough for now. Hopefully there aren't too many bugs.

Bug: 17605802
Change-Id: Ic7319e09948c8a3cda014d7e169c964a3ad86f14
/frameworks/base/services/core/java/com/android/server/wm/WindowManagerService.java
6e53b7476e9a1b1ecc30488252e183cff114ad0b 20-Sep-2014 Jeff Brown <jeffbrown@google.com> Merge "Decouple turning screen on from waking up in policy." into lmp-dev
0ed82e2c21f861ac4e1e6ae3f3fa821886a55a41 20-Sep-2014 Dianne Hackborn <hackbod@google.com> Work on issue #17381033: Program icon and shortcut disappear after...

...running monkey test overnight [FACTORY ROM BLOCKER]

Add surface tracing to debug output.

Change-Id: I65f7fc90c51b0805f7e0090141c33d6b60ccb3b4
/frameworks/base/services/core/java/com/android/server/wm/WindowManagerService.java
36c4db8bd3bd7dad4b6cb8abd9cdc1a627fe3bbc 19-Sep-2014 Jeff Brown <jeffbrown@google.com> Decouple turning screen on from waking up in policy.

This allows us to ensure windows are fully drawn before unblocking
screen on while dozing.

Bug: 17516245
Change-Id: Ibe63c212b8db855ce26a34a8169f33764b266ee6
/frameworks/base/services/core/java/com/android/server/wm/WindowManagerService.java
397157ce9cf73762170e0289f04a0788f4e50691 18-Sep-2014 Winson Chung <winsonc@google.com> Additional check to determine insets for recents animation

Bug: 17555722

Change-Id: I1474de7960dfebbdd32f159ace6677019a6b87a5
/frameworks/base/services/core/java/com/android/server/wm/WindowManagerService.java
a59e62341ceb4f27aa1dc8a664efba42d00d668c 14-Sep-2014 Michael Wright <michaelwr@google.com> Add config option for permanent dpad presence.

Since all TV devices are required to have a DPad as a form of
navigation we should suppress any configuration instances where it
claims one doesn't exist just because it isn't currently connected.

This prevents applications from going through a configuration change
and potentially an app restart when a remote disconnects to save
battery.

Bug: 17493314
Change-Id: Ice87b7056984afe02917ccba9196fdbcac9985fc
/frameworks/base/services/core/java/com/android/server/wm/WindowManagerService.java
20d97e1ce20a4db23fb1b9799f29744878ecee22 12-Sep-2014 Craig Mautner <cmautner@google.com> Merge "Add null checks to WindowState.getStack() calls." into lmp-dev
41a7b7911eb7f1253c9037e70a6ffca9c535898d 12-Sep-2014 Craig Mautner <cmautner@google.com> Add null checks to WindowState.getStack() calls.

Fixes bug 12786011.

Change-Id: I7fed856f8c96eec47df0912cea9bce705ecf690a
/frameworks/base/services/core/java/com/android/server/wm/WindowManagerService.java
2f67e237383ae6e76c44333ab79c6f0d1e3e568d 11-Sep-2014 Svetoslav <svetoslavganov@google.com> Merge "Windows for accessibility with wrong coords on rotation." into lmp-dev
b180d7707ffc2671caf494f2110b8942cedb5521 11-Sep-2014 Svetoslav <svetoslavganov@google.com> Windows for accessibility with wrong coords on rotation.

We were handling rotation changes for accessiblity in the window
manager too early, before the rotation animation completes. This
lead to wrong window positions being reported to the accessibility
layer. Now we handle rotation for accessibility when the rotation
changes, if we will not animate, or after the rotation animation
completes.

bug:17457240

Change-Id: Ia772f4886bfdbe0f9bc9003c12f36b2fbd6f45ec
/frameworks/base/services/core/java/com/android/server/wm/WindowManagerService.java
6e2f395a86d557d2de4b52dda419a5f3eee00c84 09-Sep-2014 Craig Mautner <cmautner@google.com> Wait for animation complete before completing boot

Defer the boot process in ActivityManagerService,
WindowManagerService and PowerManagerService until the boot
animation has completed.

Fixes bug 16309312.

Change-Id: Ic5e0d627ca4ded3e211c5d2afece89da40d34642
/frameworks/base/services/core/java/com/android/server/wm/WindowManagerService.java
0b81adcaea4acd2968947efa516321e6378dd51d 09-Sep-2014 Riley Andrews <riandrews@google.com> Merge "Use surfaceflinger for recents thumbnail rotations." into lmp-dev
8fd30e4486376b6cf7dd9af14d2e16428b22844f 09-Sep-2014 Griff Hazen <griff@google.com> Merge "Add support for a circular bitmap overlay for round android wear emulator." into lmp-dev
bb8c4834613207cf880e8491b33eb495cc268548 09-Sep-2014 Dianne Hackborn <hackbod@google.com> Merge "Add new wallpaper features for insets and offsets." into lmp-dev
7fb614664707f4c67dbbad8320e7d3cc10750df1 09-Sep-2014 Griff Hazen <griff@google.com> Add support for a circular bitmap overlay for round android wear emulator.

Android wear emulators have never had support for enabling both gpu
emulation and also having a round clip overlay present. Fix this by
supporting a drawable overlay when the ro.emulator.circular system
property is set.

Bug: 13415409

Change-Id: I6e0840ebe5c77adb786a7ba7ec6af348308ca46a
/frameworks/base/services/core/java/com/android/server/wm/WindowManagerService.java
1d13406538b79785d2d0928689b8d5037e851ecf 22-Aug-2014 Riley Andrews <riandrews@google.com> Use surfaceflinger for recents thumbnail rotations.

+ This removes 30ms of latency on app to home transitions
on volantis.
Change-Id: Ia3747b8f8be0d41b9b3d095753edfe1df185c84d
/frameworks/base/services/core/java/com/android/server/wm/WindowManagerService.java
067e5f68b9216b233df1c6529db182ff9b2887ab 08-Sep-2014 Dianne Hackborn <hackbod@google.com> Add new wallpaper features for insets and offsets.

Issue #17394151: WallpaperService / Engines need to get notified
of WindowInsets

Issue #17394203 Wallpapers need a system API to be shifted in order
to support burn in protection

Adds a new API on WallpaperManager to set additional offsets to
make wallpapers extend beyond the display size.

Insets are now reported to wallpapers, to use as they may. This
includes information about the above offsets, so they can place
their content within the visible area. And to help with this, also
expose the stable offsets APIs in WindowInsets which is also very
useful information for the wallpaper.

Another new API on WallpaperManager to set a raw offset to apply
to the wallpaper window, forcing it to move on the screen regardless
of what the wallpaper is drawing.

Fix wallpapers when used with overscan enabled, so they still extend
out across the entire screen. Conveniently, the above new window
insets information is very useful for this case as well!

And a new wallpaper test app for all this stuff.

Change-Id: I287ee36581283dd34607609fcd3170d99d120d8e
/frameworks/base/services/core/java/com/android/server/wm/WindowManagerService.java
b3fdbac020f767e36dc3d63887c8f64d809096a9 08-Sep-2014 Craig Mautner <cmautner@google.com> Merge "Lock down window manager while changing opacity" into lmp-dev
6f61204bcaa05ed846f67fd63769f63518e9ae85 07-Sep-2014 Craig Mautner <cmautner@google.com> Lock down window manager while changing opacity

Surfaces were being modified after destroy(). The check for mSurface
being null was not done while holding window the window manager lock.
This change adds locking to the surface modification methods.

Fixes bug 17383628.

Change-Id: I12ebbddc0f2cd7b43659370fac2c4fb053999bb5
/frameworks/base/services/core/java/com/android/server/wm/WindowManagerService.java
2e7f3bdcc9ec0b3e95b565b943ecee2210f4b937 05-Sep-2014 Winson Chung <winsonc@google.com> Removing unnecessary delays, ensuring transition thumbnail is the size of the header. (Bug. 16987565)

Change-Id: Ic104876c5fe16997eca00e0a2b3d8644c927120c
/frameworks/base/services/core/java/com/android/server/wm/WindowManagerService.java
18aa9f65fd27aa3d5322dd669b52c8cc1c4d9b5a 04-Sep-2014 Michael Wright <michaelwr@google.com> Merge "Add support for SW_CAMERA_LENS_COVER." into lmp-dev
3818c9261ceaa3a700ff984fbcd245faeede38d7 02-Sep-2014 Michael Wright <michaelwr@google.com> Add support for SW_CAMERA_LENS_COVER.

This allows for magic cover type accessories to launch the camera application.

Bug: 16034563
Change-Id: I0a46ef885737d964a1482c99f41145053d559faf
/frameworks/base/services/core/java/com/android/server/wm/WindowManagerService.java
d09def75110ea9833e3985ce33a878a471a8a0dc 02-Sep-2014 Jorim Jaggi <jjaggi@google.com> Fix outdated time when turning on screen

Force a synchronous update of the clock view when turning on the
screen. Also wait for the Keyguard window to be drawn when turning
on the screen.

Bug: 16904617
Change-Id: I38f78a38cfe35ccd067cd420d2bad626bd955ad6
/frameworks/base/services/core/java/com/android/server/wm/WindowManagerService.java
b4558e7e5f33ee4964c5395b2dc017509ebf3f1a 02-Sep-2014 George Mount <mount@google.com> Merge "Update window always on convertTo/FromTranslucent" into lmp-dev
85b764e22babfe5508286fbad5d7fee12345704f 27-Aug-2014 Craig Mautner <cmautner@google.com> Update window always on convertTo/FromTranslucent

Previously we would only update the window if the activity's
translucency was changed. That meant that if the window was
opaque for a translucent activity, transitioning to translucent
would not change the window to translucent. This change forces
the window to follow the convertToTranslucent and
convertFromTranslucent calls.

Also fix for setting background on enter and exit transitions.

Partial fix for 16215650.

Change-Id: I86ea68e4bbf604d0cc60cc6e34bf8090199525d6
/frameworks/base/services/core/java/com/android/server/wm/WindowManagerService.java
4e1b6a4e59a198c3b984ff3fb4dcda2538aef795 27-Aug-2014 Craig Mautner <cmautner@google.com> Revert "Debug for 13924095."

This reverts commit 76309cd761a0f9d9e44435ba9a4bde8363ba9f7b.

Logspam no longer useful, just annoying now.

Change-Id: I826d383101077cc1bb341d4a3186ef98ed7e0c00
/frameworks/base/services/core/java/com/android/server/wm/WindowManagerService.java
a4ccb86ddc8f9f486aee25fb836f4aff97bf7679 23-Aug-2014 Winson Chung <winsonc@google.com> Multiple performance changes to speed recents invocation/app launching time. (Bug 16987565)

- Reverting changes to the existing thumbnail transition to prevent breaking applications
that currently depend on that transition. As a result, we need to create a new, hidden,
aspect-scaled thumbnail transition, and instead use that thumbnail to animate the
recents header so that we don't have to wait to do that inside the Recents activity.

In order for this to work, we also have to ensure that the thumbnail surface destruction
is synchronized with the application that is currently closing (when going down to
recents) or opening (when coming back up). The current thumbnail is destroyed when the
animation ends, but that can be at least 1 frame before the surface for the animating
window is destroyed. We change this by deferring destruction of this thumbnail window
to the animation that is being closed.

Especially on the way up, not having to wait for us to hide the header before doing the
transition up can save us the duration of that first animation (> 100ms).

- Other optimizations:
* No longer creating a new stack view on each transition to calculate the target rect
* Removing unnecessary call to get the thumbnail when transitioning up/down (the actual
window does its own animation.
* We reduced numerous system calls per task by adding a flag to ignore home-stack tasks
and caching the activity label and icon (and task description icon). These caches
follow the same eviction schemes as the thumbnail and icon cache.

- Also tweaked the touch slop for the nav bar swiping gesture to prevent conflicting with
tapping on home (Bug 17109581)

Change-Id: Ica697aad788051a9203edd9351c583e1cb038a71
/frameworks/base/services/core/java/com/android/server/wm/WindowManagerService.java
fd6989cd025ceb4c6c2c2aafc7bd98800173bbaa 20-Aug-2014 Riley Andrews <riandrews@google.com> Use the crop function in the surfaceflinger screenshot api.

- By having surfaceflinger crop the screenshot instead of
WindowManagerService, this greatly reduces the size of
of temporary screenshot buffers that tablets have to
allocate.
- App to home, App to recents times are improved noticeably.

Change-Id: Iff889cc8c57b157778fb16993a71546fd9abfc00
Bug 17006948
Bug 16987565
/frameworks/base/services/core/java/com/android/server/wm/WindowManagerService.java
468fef687031f0d4f050bb001392fffc6ccf2c4b 19-Aug-2014 Michael Wright <michaelwr@google.com> Merge "Persist Show IME option." into lmp-dev
7b5a96ba8364d5c180780b2f878f5a2b949cfdac 10-Aug-2014 Michael Wright <michaelwr@google.com> Persist Show IME option.

Add a new setting to persist whether to show the IME when a hard
keyboard is connected.

Bug: 14066881
Change-Id: I2237ded850a0d4ab43ca441d0b7df13e0958e630
/frameworks/base/services/core/java/com/android/server/wm/WindowManagerService.java
665366a3055c7baa36242b8c92c5ff85b1c3394b 08-Aug-2014 Michael Wright <michaelwr@google.com> Change 'disable hardware keyboard' to 'show input method'

Previously it implied that the hardware keyboard would be disabled,
but really the toggle would just enable showing the IME even if a
hardware keyboard was present. Changed the string and swapped the
semantics to be more clear about the behavior.

Bug: 14066881
Change-Id: I9c8a7eb98b5277f1d09cc19fa7402e9b4cf51d92
/frameworks/base/services/core/java/com/android/server/wm/WindowManagerService.java
15ed2754a308546a54ab1061b4e365d6fe9b898d 19-Aug-2014 Dianne Hackborn <hackbod@google.com> Fix path for handling system window with app token.

It is wrong to turn the token into a null appWindowToken; we
need to create a new top-level token as if they had passed in null.

Change-Id: I870d8167c6ed456ea8fd58b149809ec9e0103bce
/frameworks/base/services/core/java/com/android/server/wm/WindowManagerService.java
7c9ee19cbd0360a62dc4322169afc1b0b9c9e022 15-Aug-2014 Craig Mautner <cmautner@google.com> Fix race condition between binder deaths

If a Binder dies there is a race between activity manager and window
manager to see who can handle the binderDied call first. If the
activity manager wins the race it will remove the activity and task
but leave the windows around. Until the WindowState.binderDied call
is made and all animation is complete the windows will try to access
the task that they were associated with.

This fix removes the windows of an activity when the activity is
removed. It also defers removal of the activity and task until
exiting windows have completed their animation.

Fixes bug 17031518.

Change-Id: Idf52f55c5feb0cad4e3664ef2eae5b7e95bbf490
/frameworks/base/services/core/java/com/android/server/wm/WindowManagerService.java
84a3e7aacf6dbeccf4afb36a29f2f069dca7d486 13-Aug-2014 Jorim Jaggi <jjaggi@google.com> Use different unlock animation when going to full shade

Also fixes a bug that the notify flag was not reset, and fix the
transition for the phone/camera affordance (in these cases, no
animation is needed).

Bug: 15991916
Change-Id: Idbb4fa40f86bda597cd66cc38da838ef4f75514d
/frameworks/base/services/core/java/com/android/server/wm/WindowManagerService.java
eb829f2f9fa9348e85f1ff5e856e0525c53ddff6 13-Aug-2014 Craig Mautner <cmautner@google.com> Merge "Disassociate system windows from apps" into lmp-dev
a5d29971f8f4d463348e9de0f7af7e2e92a377a0 13-Aug-2014 Craig Mautner <cmautner@google.com> Disassociate system windows from apps

If an app launches a system window remove the app token.

Fixes bug 16825063.

Change-Id: I7c7403e0958f3cd9f6dd5e2964b2e9cabc51ded7
/frameworks/base/services/core/java/com/android/server/wm/WindowManagerService.java
8de4311c51229efbe2f2d0afbf298982c5cadd96 11-Aug-2014 Jorim Jaggi <jjaggi@google.com> Lockscreen launch animations

- Get rid of ActivityManager.dismissKeyguardOnNextActivity, which was
used for two different things: Dismiss keyguard from somewhere else
(not really necessary anymore), wait to actually dismiss keyguard
after the window behind is drawn. Instead, introduce
keyguardWaitingForActivityDrawn(), and change the semantics where
necessary.
- Make wallpaper_close_enter consistent with task_open_enter and the
Keyguard launch animation.
- Close the panel even on lockscreen when launching a notification.
- Block notification shade updates during the collapsing motion so
notification don't play the disappear animation immediately after
having launched a notification.

Bug: 15991916

Change-Id: I133c177b84e926c87c1a404ba93d633593fec3ab
/frameworks/base/services/core/java/com/android/server/wm/WindowManagerService.java
76a1623afc170a13923b68f3256057d8adeb7937 08-Aug-2014 Jorim Jaggi <jjaggi@google.com> Preparations for lockscreen launch animations

- Update unlock animations to new spec to make the consistent with
lockscreen launch animations.
- Introduce disappearing motion for security views which runs before
we actually dismiss Keyguard.
- If a window is running the un-force-hide animation, treat as it
would have the wallpaper flag set so the wallpaper stays until
the animation is completely done.
- Run an animation on the wallpaper if the wallpaper is going away.

Bug: 15991916
Bug: 16234603
Bug: 15326120
Change-Id: I063aa4f269ddcf75b9a705e90f0c3056b541b642
/frameworks/base/services/core/java/com/android/server/wm/WindowManagerService.java
9a006258b5f0221323d7a4f0672b1604375119ba 08-Aug-2014 Craig Mautner <cmautner@google.com> Debug for 13924095.

Add logging for 13924095. All logging uses TAG "BadTokenDebug".

Change-Id: I3404e98d8c221cbd183845f479cf4074266b5cb2
/frameworks/base/services/core/java/com/android/server/wm/WindowManagerService.java
7516ff90015ce71e5b95c889a2211153be30c39c 07-Aug-2014 Craig Mautner <cmautner@google.com> Keep app focus and input focus current

Change ag/422870 mistakenly set app focus to null in the
InputDispatcher. This change restores setting app focus correctly.

In addition, there were a few places where window focus
(i.e. mCurrentFocus) could be modified without notifying the
InputDispatcher. This change fixes those locations.

Should fix 14564396.

Change-Id: Ie24f3410fdd1f5f1eefbce02759fef4149e59620
/frameworks/base/services/core/java/com/android/server/wm/WindowManagerService.java
3f145a2f958320766ae9240c7a57debc20d578aa 23-Jul-2014 Michael Wright <michaelwr@google.com> Add supported refresh rate to displays

Change-Id: I51231dd6dd231d57dd1ac499349d6335121f07d5
/frameworks/base/services/core/java/com/android/server/wm/WindowManagerService.java
a631d49e0516632110aa26b37e61a710d6e91f18 06-Aug-2014 Craig Mautner <cmautner@google.com> Don't dismiss boot messages before keyguard is ready

Or you will expose the home screen.

Fixes bug 16371571.

Change-Id: Ib38a583189c570b44910548a9544b1e81c831119
/frameworks/base/services/core/java/com/android/server/wm/WindowManagerService.java
a87863a8bddb033ca9ace11e7d78932d70d08ce3 29-Jul-2014 Sander Alewijnse <salewijnse@google.com> Fix deadlock window manager and device policy manager.

Removed all communication from wm to device policy manager.
Added initialization of cache in wm by dpms.

Change-Id: Ifa0b8bfcd625464b156d5cc0fb66d342deda1c27
/frameworks/base/services/core/java/com/android/server/wm/WindowManagerService.java
8746a478abcfb3b0d73b156232051af1e8d21ce2 25-Jul-2014 Craig Mautner <cmautner@google.com> Create end of animation callback for Activity

Activities cannot draw while their entering animations are active.
This change introduces a callback, onEnterAnimationComplete() so
that activities can know when their draws will be effective.

Fixes bug 13658460.

Change-Id: Ic48540cd4c7e37538f10cb2dc0852aa3f55d11e1
/frameworks/base/services/core/java/com/android/server/wm/WindowManagerService.java
85d514498488e079477d0ec789abedd721d4ed6f 25-Jul-2014 Prashant Malani <pmalani@google.com> resolved conflicts for merge of bc3699b1 to lmp-dev

Change-Id: I1b219b5b48afb08ce3704a4f064a85652d2d9339
bc3699b1c3e0b2d07adb0919ef2a418546a7838c 24-Jul-2014 Prashant Malani <pmalani@google.com> am b4dcc64f: Merge "Revert "Remove circular mask"" into klp-modular-dev

* commit 'b4dcc64fe6314b139ac17aa296419bbf153df2f6':
Revert "Remove circular mask"
a04ea61db5566f05d5c783b2f62614aa03005be9 19-Jul-2014 Prashant Malani <pmalani@google.com> Revert "Remove circular mask"

This reverts commit 2e8b27e898af3af1165a79e7c5f8b59f63f20a2f.

It also makes the circularMask option configurable via overlay.
It is set to false by default.

An offset dimension entry is also provided, for displays which have
a "chin". This is set to 0 by default.

Bug: 16380982
Change-Id: I16ec3e8d8882a6683c9155055944e5c2f5cd781e
/frameworks/base/services/core/java/com/android/server/wm/WindowManagerService.java
e959e4a01773a0bd1f3fb76b4333e59f03fb2f5c 22-Jul-2014 Justin Koh <justinkoh@google.com> am a63272b4: Merge "Revert "Wait for all windows to draw before turning screen on"" into klp-modular-dev

* commit 'a63272b4b5eff16f4d6fae4730b8a7087563181c':
Revert "Wait for all windows to draw before turning screen on"
d2a1eec400128f39e1b223a720a88dbd395f3e6e 09-Jul-2014 Sander Alewijnse <salewijnse@google.com> Add Device Policy API to disable screen capture.

WindowManager will set secure flag on SurfaceControl for
all windows of a flagged user to prevent screen capture.
API is consistent with the camera disable API.

Change-Id: Ib180f67f1ad827b6f4aca2af615274256cce58f4
/frameworks/base/services/core/java/com/android/server/wm/WindowManagerService.java
4eee3cb1df309e794f653f9cfa2d95a5c475c86f 23-Jul-2014 Dianne Hackborn <hackbod@google.com> Finish toast app op.

It was half-done, the window manager would check it
when the window was added, but was not monitoring for changes
to its state like it does for the system alert op.

Change-Id: I0279c4ac6160062cd219372af4bd9d7e4e687460
/frameworks/base/services/core/java/com/android/server/wm/WindowManagerService.java
368c5adaf7a1141bfee3cf622efbc7285e370979 23-Jul-2014 Craig Mautner <cmautner@google.com> Refactor window manager screenshot

For readability, and add rotation compensation.

Fixes bug 16142514.

Change-Id: I1156ec2e0f052f6dec56457d56efe95368f60d91
/frameworks/base/services/core/java/com/android/server/wm/WindowManagerService.java
f14e5a2fad4660ecca43fac1cea08e35f2b82b4d 22-Jul-2014 Craig Mautner <cmautner@google.com> Add empty ArrayList check.

Fixes bug 15768779.

Change-Id: I3e4c48aa0fff99025e9ba1725e3d1f3523749dbd
/frameworks/base/services/core/java/com/android/server/wm/WindowManagerService.java
af13b025e9d7dcf262e13588c8471b7360ce4070 22-Jul-2014 Geoff Mendal <mendal@google.com> Merge commit 'e959e4a0' into lmp-dev

Conflicts:
services/core/java/com/android/server/wm/WindowManagerService.java
528b4b75729443f805617f9628b352f6854978cc 22-Jul-2014 Justin Koh <justinkoh@google.com> Revert "Wait for all windows to draw before turning screen on"

This reverts commit 0a589b929e18d05d1345d97283c3025058ddca18.

Change-Id: Ia73555cd7797b5d172f33db9f46ebc211af6fc1e
/frameworks/base/services/core/java/com/android/server/wm/WindowManagerService.java
75f317403f9bf7bbd3de8ec50868cb727f17ac45 17-Jul-2014 Justin Koh <justinkoh@google.com> am 77cdac05: Merge "Wait for all windows to draw before turning screen on" into klp-modular-dev

* commit '77cdac05ba80925f6cdc4c349af0fa7567c36146':
Wait for all windows to draw before turning screen on
efc81e7d5edaa096a90ec17516549f9df49899fa 17-Jul-2014 Craig Mautner <cmautner@google.com> resolved conflicts for merge of 75f31740 to lmp-dev

Conflicts:
services/core/java/com/android/server/wm/WindowManagerService.java

Change-Id: Ifdfe253c4b3410a6000fd5a7cdcd785adc80a47b
0a589b929e18d05d1345d97283c3025058ddca18 17-Jul-2014 Craig Mautner <cmautner@google.com> Wait for all windows to draw before turning screen on

Was previously only waiting for windows on the primary display to
draw which meant that windows on ActivityViews had not yet drawn.
This fix checks redraws all outstanding Surfaces before unblanking
the screen.

Fixes bug 15092354.

Change-Id: Id550db003a5f56931eb68464085596e47d25481d
/frameworks/base/services/core/java/com/android/server/wm/WindowManagerService.java
bb742462781a73bb25516067c8fe6311c1c8a93e 08-Jul-2014 Craig Mautner <cmautner@google.com> Launch activity behind launching task.

Use ActivityOptions.makeLaunchTaskBehindAnimation() to launch tasks
behind the current task. Includes animations for launching and
launched tasks.

Fixes bug 16157517.

Change-Id: I0a94af70b4748592e94673b958ee824cfb3d7ec0
/frameworks/base/services/core/java/com/android/server/wm/WindowManagerService.java
e34560b21989eea54a139a0586d156ba573cc2ea 10-Jul-2014 Alan Viverette <alanv@google.com> Add accessibility action to open power long-press dialog

Also fixes an infinite recursion bug in the WindowManagerService
implementation of WindowManagerInternal.

BUG: 16129909
Change-Id: I4f9d32f4e6c3ad460652c5e5271540fa5032a1f5
/frameworks/base/services/core/java/com/android/server/wm/WindowManagerService.java
fa10423fa00f3495e451016acba9b6848eb995c9 21-Jun-2014 Adrian Roos <roosa@google.com> Add stable insets for stable system windows

Adds a new kind of inset that only accounts for stable system
windows like the system or navigation bar.

Bug: 15457292
Change-Id: I681b711f6f40a94c25b7acd3a44eb3539486afab
/frameworks/base/services/core/java/com/android/server/wm/WindowManagerService.java
43015f241ebc6a03e36af4d300a3dbceeb078771 24-Jun-2014 Craig Mautner <cmautner@google.com> Merge "Return to recents when coming from recents"
84984faf530e525b066e28710d0f9beb32142ec5 19-Jun-2014 Craig Mautner <cmautner@google.com> Return to recents when coming from recents

If a task is launched from recents then backing all the way
out of the task will return you to recents. Entering the task
in any other way (home, another activity, nav bar) will reset
this behavior.

Fixes bug 15703876.

Change-Id: I98dc36e4dbcb238d59e2175832076de7225bfdd9
/frameworks/base/services/core/java/com/android/server/wm/WindowManagerService.java
13f6ea78b0aa98ffea6ea644770e4320ec9a2242 23-Jun-2014 Craig Mautner <cmautner@google.com> Avoid unnecessary timeouts.

And fix a couple of other inefficiencies.

Fixes bug 15444410.

Change-Id: Idad95d4e4d70bc7d2965e1bd6ff3d3135b73dd9c
/frameworks/base/services/core/java/com/android/server/wm/WindowManagerService.java
2c43c339de5aaf4fef58aa9b5ac3af48609263a8 13-Jun-2014 Jeff Brown <jeffbrown@google.com> Resolve boot time dependencies related to the power manager.

This change fixes a bug where native daemons may try to communicate
with the power manager before it was fully initialized due to a race
between publishing the binder service and completing init().

The solution was to simplify the dependencies related to the power
manager. It turns out that most services that were passed in
init are not actually needed until systemReady. What remained
was a dependency on the activity manager to check permissions for
incoming calls. So now we start activity manager first.
However, the activity manager also depends on power manager for
wakelocks. To break the cycle, we now defer initializing the activity
manager's wakelocks until after the power manager has been started.

Cleaned up a bunch of boot-time service dependencies so that we
can have better confidence that they are correctly maintained.

Bug: 13884219
Change-Id: If08e2d7ccd44e7026a72441bb6bd5afd7bb9fffe
/frameworks/base/services/core/java/com/android/server/wm/WindowManagerService.java
40190375408034b2b7dd1aef358086da2914051b 14-Jun-2014 Craig Mautner <cmautner@google.com> am 6fe2184b: Do not treat the dummy animation as an animation

* commit '6fe2184bf10362ac53db7e8f6a0be521ea59b054':
Do not treat the dummy animation as an animation
6fe2184bf10362ac53db7e8f6a0be521ea59b054 14-Jun-2014 Craig Mautner <cmautner@google.com> Do not treat the dummy animation as an animation

The dummy animation is a place holder. When the task stack is being
removed treating it as a true animation forced us through a path
where we deferred the detachment and made a call to tmpRemoveWindows.

Also replaced call to tmpRemoveWindows with a real remove windows
call. The tmpRemoveWindows call does not clean up the Session
and this leaves a surface on the screen.

Fixes bug 15591610.

Change-Id: I05f7bc276bfed2366bbcd8443c92a4bbbc8a4491
/frameworks/base/services/core/java/com/android/server/wm/WindowManagerService.java
bc2a6dff1f0edfb2856377fbdb6378158621bd16 14-Jun-2014 Craig Mautner <cmautner@google.com> Do not treat the dummy animation as an animation

The dummy animation is a place holder. When the task stack is being
removed treating it as a true animation forced us through a path
where we deferred the detachment and made a call to tmpRemoveWindows.

Also replaced call to tmpRemoveWindows with a real remove windows
call. The tmpRemoveWindows call does not clean up the Session
and this leaves a surface on the screen.

Fixes bug 15591610.

Change-Id: I05f7bc276bfed2366bbcd8443c92a4bbbc8a4491
/frameworks/base/services/core/java/com/android/server/wm/WindowManagerService.java
a46ac5094e51827e40080ddead6268edcf5d3982 13-Jun-2014 Craig Mautner <cmautner@google.com> Merge "Do not display unsecure windows behind dialogs"
c9457faeb6bf22ce8fc72bc61af5109a2b567c51 06-Jun-2014 Craig Mautner <cmautner@google.com> Do not display unsecure windows behind dialogs

If a dialog activity has FLAG_SHOW_WHEN_LOCKED set it will dismiss
the keyguard. Previously this would expose any full screen unsecure
windows behind the dialog. With this fix the dialog is displayed
over the wallpaper.

Fixes bug 15006623.

Change-Id: I85a6713c7647db52211bd0f7280010e859723710
/frameworks/base/services/core/java/com/android/server/wm/WindowManagerService.java
f7174e87b6007000777b0124de9cef70d8618788 12-Jun-2014 Svetoslav <svetoslavganov@google.com> Fix backwards compatibility for introspected windows.

1. The APIs for introspecting interactive windows were reporting only
the touchable windows but were missing the focused window. The user
can interact with the latter by typing, hence it should always be
reported. Also this was breaking backwards compatibility as if the
focused window is covered by a modal one, the focused window was not
reporeted and this was putting the active window in a bad state as
the latter is either the focused window or the one the user is touching.

2. Window change events are too frequent as on window transition things
are chanign a lot. Now we are trottling the windows changed events
at the standard recurring accessibility event interval.

3. Fixed a wrong flag comparison and removed some unneded code.

buy:15434666
bug:15432989

Change-Id: I825b33067e8cbf26396a4d38642bde4907b6427a
/frameworks/base/services/core/java/com/android/server/wm/WindowManagerService.java
4604abc97d7dd757bb76ff9b7fcf343dc4a15212 11-Jun-2014 Svetoslav <svetoslavganov@google.com> Moving and resizing windows not reported propely for accessibility.

When the position and size of a window changes we have to report that
to the accessibility layer if the window introspection is enabled.

bug:15569915

Change-Id: I3f869e0a582592bfa5f3743d5c2133ee8cb39b34
/frameworks/base/services/core/java/com/android/server/wm/WindowManagerService.java
04fcf1cabec82b7f2e349658ca764939f5641cc3 11-Jun-2014 Yohei Yukawa <yukawa@google.com> Merge "Show IME-related system IME dialogs over windows owned by the IME"
1ee99c4627eeae1a94ada9a884a76b726cf6ca4c 10-Jun-2014 Yohei Yukawa <yukawa@google.com> Show IME-related system IME dialogs over windows owned by the IME

The IME-related system dialogs should be placed over any window
owned by the current IME. However, the framework has taken only
the main window of the current IME has been taken into account.
As a result, the system has not been able to show its IME-related
dialog properly layer when the IME is showing its own dialog.

This CL addresses the above issue.

BUG: 5809660
Change-Id: I205321c7ed42516f36a4bf29dd6a159ac34fd5ec
/frameworks/base/services/core/java/com/android/server/wm/WindowManagerService.java
7119c0719206b9bd3ee5b9ecb329e08ba9ac8d17 10-Jun-2014 Michael Kolb <kolby@google.com> resolved conflicts for merge of 1e6706ab to master

Change-Id: Ia8e8fdf5e13acca496bf7ff9916c9950d5b13e4e
1e6706abb23cd1196a7ef9dd1cc1939220ef7169 09-Jun-2014 Michael Kolb <kolby@google.com> am 4bdc93d6: Merge "Remove circular mask" into klp-modular-dev

* commit '4bdc93d63e9edc7840a227ea1824f1f7ac93933e':
Remove circular mask
d8883df650b77dba3be38fb2ca8980594b901461 06-Jun-2014 Dianne Hackborn <hackbod@google.com> am 87bc3c25: Merge "Improvements to low power mode." into lmp-preview-dev

* commit '87bc3c258d8be516bc0fcedeb6eec34088582061':
Improvements to low power mode.
eb94fa7975b1e8742f3b00cec6bd4f9d6b329e3a 04-Jun-2014 Dianne Hackborn <hackbod@google.com> Improvements to low power mode.

Add new public API for monitoring low power mode.

BatteryService now puts device in to low power mode when
battery level is low.

Window manager now watches low power mode to turn off
animations.

Modifying the animator scale now gets propagated to all
processes.

Change-Id: I8fa566994764ddd4e1977631e28381ab9409f8ee
/frameworks/base/services/core/java/com/android/server/wm/WindowManagerService.java
2e8b27e898af3af1165a79e7c5f8b59f63f20a2f 05-Jun-2014 Michael Kolb <kolby@google.com> Remove circular mask

Change-Id: I83b1caea100d28be2fca46dc0280b05e9b78da44
/frameworks/base/services/core/java/com/android/server/wm/WindowManagerService.java
f3f8a73a57a34b405e73c83af8f4d42e9592079c 04-Jun-2014 Craig Mautner <cmautner@google.com> am 05cd6c39: Merge "Force all windows to redraw before unblanking screen" into lmp-preview-dev

* commit '05cd6c39824653e0f7e8641444a7134e8cac72f4':
Force all windows to redraw before unblanking screen
8a0da0184f6c5c95d94ab6adfee79bace4040abd 01-Jun-2014 Craig Mautner <cmautner@google.com> Force all windows to redraw before unblanking screen

The screen turning on would show windows as they were when the screen
turned off. This fix forces all showing windows to redraw first and
only then allow the screen to turn on.

Fixes bug 15092354.

Change-Id: I52c3f47438176a5ac00ba9a4d5205b56a5aa48f9
/frameworks/base/services/core/java/com/android/server/wm/WindowManagerService.java
22af5b842869abff5418263e6fb0b4b925077629 04-Jun-2014 Craig Mautner <cmautner@google.com> am 81dfc082: Merge "Force all windows to redraw before unblanking screen" into klp-modular-dev

* commit '81dfc082d2add8463469e3eac9db94d6d93005ce':
Force all windows to redraw before unblanking screen
228742d2781c2c6b924e2c2dc0ac2a6b62e33e10 01-Jun-2014 Craig Mautner <cmautner@google.com> Force all windows to redraw before unblanking screen

The screen turning on would show windows as they were when the screen
turned off. This fix forces all showing windows to redraw first and
only then allow the screen to turn on.

Fixes bug 15092354.

Change-Id: I349995bf6446d6c462dccdc2b599bab9ab0ab2c8
/frameworks/base/services/core/java/com/android/server/wm/WindowManagerService.java
7a184985590e25c9b4a5b534953924d0abef5ef1 29-May-2014 Craig Mautner <cmautner@google.com> am b5b37c2b: Merge "Add methods to coordinate unlock animation." into lmp-preview-dev

* commit 'b5b37c2babe744acb002ed9b8556a9d9cd2202fc':
Add methods to coordinate unlock animation.
71ac80c46a1b094ad951e59c24791d9e9ef769bf 29-May-2014 Craig Mautner <cmautner@google.com> Merge "Revert "Modify task navigation to return to recent tasks." DO NOT MERGE" into lmp-preview-dev
b9a6c8ad99c7885dccc23223068c0a551f350cd5 29-May-2014 Craig Mautner <cmautner@google.com> Revert "Modify task navigation to return to recent tasks." DO NOT MERGE

This reverts commit 1a4e211e03f1f795d935058e27356a0e8bc5df7c.

Change-Id: Ia691b93347c7eb2395933e5a5ba385ea94e08d6f
/frameworks/base/services/core/java/com/android/server/wm/WindowManagerService.java
fdaaf91f356a1dcd960c48a5f0137869d561cb23 29-May-2014 Craig Mautner <cmautner@google.com> Merge "Revert "Modify task navigation to return to recent tasks.""
719e621186adc1ba5a365bddea01cbe73bb26b02 29-May-2014 Craig Mautner <cmautner@google.com> Revert "Modify task navigation to return to recent tasks."

This reverts commit 19174878e25ebfd8806595f83df7bdea1d239c07.

Change-Id: I98db2c9aa975495c5828b3d16b8b45f515e6a5fa
/frameworks/base/services/core/java/com/android/server/wm/WindowManagerService.java
219d7a50fb7a269fe54dd9d70587c269d217336f 29-May-2014 Craig Mautner <cmautner@google.com> Merge "Add methods to coordinate unlock animation." into lmp-preview-dev
d3a5b916b1655c9a36d531afc8420fc5ca0ccfdd 29-May-2014 Dianne Hackborn <hackbod@google.com> am c2091a1f: Merge "Add system layer for voice interaction services." into lmp-preview-dev

* commit 'c2091a1fbc463941b3e42db36e369124ac3c1013':
Add system layer for voice interaction services.
e30e02f5d9a9141c9ee70c712d4f9d52c88ea969 28-May-2014 Dianne Hackborn <hackbod@google.com> Add system layer for voice interaction services.

New window layer that voice interaction service windows
go in to. Includes a new voice-specific content rectangle
that voice activities are placed in to.

Add specific animations for this layer, sliding down from
the top (though this can be customized by the voice interaction
service).

Also add the concept of activities running for voice interaction
services for purposes of adjusting the animation used for them,
again sliding from the top, but not (yet?) customizable by the
voice interaction service.

Change-Id: Ic9e0e8c843c2e2972d6abb4087dce0019326155d
/frameworks/base/services/core/java/com/android/server/wm/WindowManagerService.java
00f535845bebe4fba1de77ebd0119c7c23197a4f 28-May-2014 Dan Stoza <stoza@google.com> Merge "SurfaceFlinger: Add sourceCrop to screenshot"
0d674623facfbd3e9c520d2be4ed98977b92a1a2 21-May-2014 Jorim Jaggi <jjaggi@google.com> Add methods to coordinate unlock animation.

Introduce IWindowManager.keyguardGoingAway to notify that Keyguard
wants to dismiss it self. This method starts the state machine in
WindowAnimator which animates in the activity behind the keyguard.
Animating out the keyguard is done by the StatusBar/Keyguard
software when it receives the startKeyguardExitAnimation() callback.

Bug: 14118756

Change-Id: Id3b8f41189410bad808b4892fbec74245e59efce
/frameworks/base/services/core/java/com/android/server/wm/WindowManagerService.java
1f74bad9acd816cd0974ca7d8a9eafe7f671ee57 23-May-2014 Craig Mautner <cmautner@google.com> Check for null DO NOT MERGE

Fixes bug 15129354.

Change-Id: I88865c021a024ab94e44dc71f09f8325a79e0775
/frameworks/base/services/core/java/com/android/server/wm/WindowManagerService.java
e67a784eb2c914c04c62ea5dfa1e3751df5582cc 21-May-2014 Craig Mautner <cmautner@google.com> Modify task navigation to return to recent tasks. DO NOT MERGE

Tasks launched from the recent task list will now return to the list
when they are finished. Also tasks that are launched from the
notification panel and services will now return to the list,
provided that the launcher is not front and center when they are
launched.

Fixes bug 14464114.

Change-Id: Ic0d3731fc7248d1eaa80e5ee399753d80e80c979
/frameworks/base/services/core/java/com/android/server/wm/WindowManagerService.java
df6523f2703920a1d2a84c45b862b325b8cebf40 21-May-2014 Craig Mautner <cmautner@google.com> Modify task navigation to return to recent tasks.

Tasks launched from the recent task list will now return to the list
when they are finished. Also tasks that are launched from the
notification panel and services will now return to the list,
provided that the launcher is not front and center when they are
launched.

Fixes bug 14464114.

Change-Id: Ic0d3731fc7248d1eaa80e5ee399753d80e80c979
/frameworks/base/services/core/java/com/android/server/wm/WindowManagerService.java
b20f796dab61472ecbad36de053a1c6fcb5b3530 23-May-2014 Craig Mautner <cmautner@google.com> Check for null

Fixes bug 15129354.

Change-Id: I88865c021a024ab94e44dc71f09f8325a79e0775
/frameworks/base/services/core/java/com/android/server/wm/WindowManagerService.java
9890e341bf9d565309cd7db5e6c4194c66c0a1d8 23-May-2014 Dan Stoza <stoza@google.com> SurfaceFlinger: Add sourceCrop to screenshot

Adds a sourceCrop Rect parameter to screenshot commands, which allows
clients to capture only a portion of the screen instead of the whole
screen.

Bug: 15137922
Change-Id: I629447573cd34ffb96334cde7ba02490b9ea06d8
/frameworks/base/services/core/java/com/android/server/wm/WindowManagerService.java
47a3e65acc35cd3061bf3867e8b20753870fd892 22-May-2014 Winson Chung <winsonc@google.com> Small perf tweaks.
/frameworks/base/services/core/java/com/android/server/wm/WindowManagerService.java
ae0844164959c2b1bf006d3fef26dbabc66c5873 20-May-2014 Winson Chung <winsonc@google.com> Fixing transition to/from Recents with full screen apps.

Change-Id: I2f400b6736581a37d38a75ee7194fc7cb6438460
/frameworks/base/services/core/java/com/android/server/wm/WindowManagerService.java
9aeb60739909aa2b8100c95157835e4e3db28519 19-May-2014 Winson Chung <winsonc@google.com> Merge "Enabling alternate recents on all form factors."
ea56251d92050e9a672d1f66d0d4621e4dd4136e 05-May-2014 Adrian Roos <roosa@google.com> Colorize SystemUI

Makes the color of the status and navigation bars customizable by
the app.

Bug: 14564488
Change-Id: I036edc228cfe1b659c7f11a43cdc4598ee705ff8
/frameworks/base/services/core/java/com/android/server/wm/WindowManagerService.java
fd08622588d5a90c11216894344e58147ff6359a 14-May-2014 Winson Chung <winsonc@google.com> Enabling alternate recents on all form factors.

Change-Id: I9dec6da7646205b72f46cedf604fadfb03cab6d4
/frameworks/base/services/core/java/com/android/server/wm/WindowManagerService.java
d7d2d43b4967bb907b61180aa9d12ca51aaa15e2 09-May-2014 Kenny Root <kroot@google.com> WindowManagerService: add some defensive checks

Add checks before posting a message to the handler thread where
exceptions will crash the service.

Also make KeyguardLock fields final.

Bug: 14564617
Change-Id: I147d579d942f5fa555714d204cde52e2cd5f6154
/frameworks/base/services/core/java/com/android/server/wm/WindowManagerService.java
67b082e02cbfb7bafe046a619e686e9a5c1abc05 25-Apr-2014 Winson Chung <winsonc@google.com> Merge "Enabling doc centric recents on phones."
83474f5b4d870c12d39cef5ae28b7e3fb6d6a765 24-Apr-2014 Michael Kolb <kolby@google.com> am 0fc5f869: am e597d5f9: Merge "Use rotation to position circular display mask" into klp-modular-dev

* commit '0fc5f86950f6089eb8b4cbc0bf9684b8be090fa3':
Use rotation to position circular display mask
0fc5f86950f6089eb8b4cbc0bf9684b8be090fa3 24-Apr-2014 Michael Kolb <kolby@google.com> am e597d5f9: Merge "Use rotation to position circular display mask" into klp-modular-dev

* commit 'e597d5f9310f760843272c728d6fb1917abf241a':
Use rotation to position circular display mask
8b275ca9d34792ba525771e0c1865b3262e569c9 24-Apr-2014 Michael Kolb <kolby@google.com> Use rotation to position circular display mask

Bug: 14231785

Change-Id: Ib6d69f3b9c2a638731539f1c1e51b56ad1698adc
/frameworks/base/services/core/java/com/android/server/wm/WindowManagerService.java
f9f2314aa444e32b93caecd06cb4f10a71a2df39 21-Apr-2014 Winson Chung <winsonc@google.com> Enabling doc centric recents on phones.

Change-Id: If853cdcbf3fc75001060e522bce2e0d49d2ddea3
/frameworks/base/services/core/java/com/android/server/wm/WindowManagerService.java
2820c4523cd37b4a9c5d33e558d39b798830e7e5 16-Apr-2014 Winson Chung <winsonc@google.com> Fixing the alternate recents transition on landscape views.

- This still assumes that we are taking square thumbnails.

Change-Id: I42a3d1b0505db57f815edf52cd176a3f651d5b37
/frameworks/base/services/core/java/com/android/server/wm/WindowManagerService.java
352e108259bcb3305f034cfb042287d43a5e8f80 14-Apr-2014 Dan Sandler <dsandler@android.com> Merge "Merge remote-tracking branch 'goog/master-lockscreen-dev'"
15b0bef9250e084bfbceb388716d28ed62ca018f 12-Apr-2014 Jeff Brown <jeffbrown@google.com> am 9e2fde9c: am d912e1f6: Use the display\'s actual state in the view hierarchy.

* commit '9e2fde9c8a3557d6e8d1f3971a421ecdf5c2ce07':
Use the display's actual state in the view hierarchy.
9e2fde9c8a3557d6e8d1f3971a421ecdf5c2ce07 12-Apr-2014 Jeff Brown <jeffbrown@google.com> am d912e1f6: Use the display\'s actual state in the view hierarchy.

* commit 'd912e1f6a111fb33118d116bd72da1a328041bca':
Use the display's actual state in the view hierarchy.
d912e1f6a111fb33118d116bd72da1a328041bca 12-Apr-2014 Jeff Brown <jeffbrown@google.com> Use the display's actual state in the view hierarchy.

Previously, the view hierarchy would suppress drawing whenever the
PowerManager.isScreenOn() method returned false. However, this method
really describes the interactive state of the device rather than the
actual display state. This is especially a problem when there are
multiple displays but it also breaks drawing while in doze mode.

This change makes the view hierarchy consider the actual state of the
display instead on an individual basis.

Bug: 13133142
Change-Id: I69870b6b14a3504607a30562aa48c3452f777c1f
/frameworks/base/services/core/java/com/android/server/wm/WindowManagerService.java
dd137a85d3e0295989b5b9d1f67ff32027be867d 10-Apr-2014 Svetoslav <svetoslavganov@google.com> resolved conflicts for merge of 6be2f952 to master-lockscreen-dev

Conflicts:
core/java/android/view/IWindowManager.aidl
tools/layoutlib/bridge/src/android/view/IWindowManagerImpl.java

Change-Id: Idcbc581294cc52b53eabefd61e5c20cbcea611db
1376d600d8e0eefdbc0aa11d398cf7517fc77129 13-Mar-2014 Svetoslav <svetoslavganov@google.com> Adding render stats APIs to UiAutomation (framework).

bug:12927198

Change-Id: Iae21481c75ae58dcdab3731bf5f1e2844e29d434
/frameworks/base/services/core/java/com/android/server/wm/WindowManagerService.java
ae6ffcc3c74d12ebf59a26cce24d04fdd2b56f4e 02-Apr-2014 Jorim Jaggi <jjaggi@google.com> Merge "Wait for Keyguard to be drawn after boot." into master-lockscreen-dev
cff0acb6b1eea23c3f44a078a0a5e81c11faea35 31-Mar-2014 Jorim Jaggi <jjaggi@google.com> Wait for Keyguard to be drawn after boot.

The old logic with waiting for the Keyguard to be drawn assumed that
it is in an own window, and just checked for the visibility. This is
no longer possible as the Keyguard is in the status bar, and the status
bar might have been drawn without the Keyguard. So we have to wait
explicitely until Keyguard told PhoneWindowManager that it has now been
drawn and we can turn on the screen.

In addition, the starting logic of SystemUI is moved into
SystemUIApplication such the we can make sure that the status bar
already exists when the callbacks from PhoneWindowManager reach
KeyguardService. This simplifies the logic a lot.

Bug: 13635952
Change-Id: Ifd6ba795647edcf3501641e39052e4d04bc826fb
/frameworks/base/services/core/java/com/android/server/wm/WindowManagerService.java
501f2c2cf009efee9a88ad964704e7fd4710e9c6 02-Apr-2014 Kenny Guy <kennyguy@google.com> am f4824a06: Fix issue with not allowing activities for current user.

* commit 'f4824a06884e096beef921646cba4be29d7f36fc':
Fix issue with not allowing activities for current user.
f4824a06884e096beef921646cba4be29d7f36fc 02-Apr-2014 Kenny Guy <kennyguy@google.com> Fix issue with not allowing activities for current user.

Change-Id: Ic2e30c3f4990a03aac9801ee9bf5f270a5e90ef8
/frameworks/base/services/core/java/com/android/server/wm/WindowManagerService.java
ffa80df57848a41aeba692d177c701676c58c65f 02-Apr-2014 Kenny Guy <kennyguy@google.com> am 1ccace91: Merge "Rename related users to profiles."

* commit '1ccace916c8fdc61f1a8db6677aed518d31647e6':
Rename related users to profiles.
1ccace916c8fdc61f1a8db6677aed518d31647e6 02-Apr-2014 Kenny Guy <kennyguy@google.com> Merge "Rename related users to profiles."
2a764949c943681a4d25a17a0b203a0127a4a486 02-Apr-2014 Kenny Guy <kennyguy@google.com> Rename related users to profiles.

Rename the related user concept as profiles.
When returning profiles of a user include the
user as a profile of itself.

Change-Id: Id5d4f29017b7ca6844632ce643f10331ad733e1d
/frameworks/base/services/core/java/com/android/server/wm/WindowManagerService.java
5e9abc9507e9d2ff7e701a762c1bdbd1cdbb0971 02-Apr-2014 Michael Kolb <kolby@google.com> am 118d252e: am 4a812147: am 875eff83: Merge "Add circular anti-aliasing mask to circular display" into klp-modular-dev

* commit '118d252e7541bfe2c0453814acc3bee0b6312de1':
Add circular anti-aliasing mask to circular display
118d252e7541bfe2c0453814acc3bee0b6312de1 02-Apr-2014 Michael Kolb <kolby@google.com> am 4a812147: am 875eff83: Merge "Add circular anti-aliasing mask to circular display" into klp-modular-dev

* commit '4a8121478e5027bf61b5c711d6b1a748004edea2':
Add circular anti-aliasing mask to circular display
4a8121478e5027bf61b5c711d6b1a748004edea2 02-Apr-2014 Michael Kolb <kolby@google.com> am 875eff83: Merge "Add circular anti-aliasing mask to circular display" into klp-modular-dev

* commit '875eff832f9f496740ceba2f12de6f5423225274':
Add circular anti-aliasing mask to circular display
39a6db7cd5199dbe83da388404be3fc8f386281e 27-Mar-2014 Michael Kolb <kolby@google.com> Add circular anti-aliasing mask to circular display

Bug: 13635645

Add a 2 px wide anti-aliased circle as a Layer to WindowManagerService

Change-Id: Ic8d319ca43c222f5b2e69af896749b8f2018ce3e
/frameworks/base/services/core/java/com/android/server/wm/WindowManagerService.java
380ecb81db52a9d0197ca969951d07b91c20d2b9 14-Mar-2014 Jorim Jaggi <jjaggi@google.com> Make Keyguard a library and make StatusBar the new Keyguard.

This change achieves a couple of things:
- Let Keyguard be a library, so we can use it in SystemUI.
- Introduce FLAG_KEYGUARD for windows and deprecate TYPE_KEYGUARD. Make
all the TYPE_KEYGUARD behaviour dependant on the flag.
- Implement a new KeyguardService in SystemUI, and bind that service
from PhoneWindowManager.
- Introduce BaseStatusBar.setKeyguardState and inflate
KeyguardSimpleHostView there and use FLAG_KEYGUARD for the window, such
that the status bar window essentially gets the Keyguard.

Bug: 13635952
Change-Id: I059d80d8b9b9818a778ab685f4672ea2694def63
/frameworks/base/services/core/java/com/android/server/wm/WindowManagerService.java
a79501cd3843149f0759bd53d310cf97d4ee1c8d 27-Mar-2014 Craig Mautner <cmautner@google.com> am af89d7e2: am bffd4d43: Merge "Check return values for null." into klp-modular-dev

* commit 'af89d7e21f5d7cbe74ff4ce014d8ab2db1a6fc27':
Check return values for null.
af89d7e21f5d7cbe74ff4ce014d8ab2db1a6fc27 27-Mar-2014 Craig Mautner <cmautner@google.com> am bffd4d43: Merge "Check return values for null." into klp-modular-dev

* commit 'bffd4d437d133164877c6a194d6a533299072fae':
Check return values for null.
d3849f54158bf1a370b9462b30ee36c15e7b02ea 27-Mar-2014 Craig Mautner <cmautner@google.com> Check return values for null.

When a Display has been removed there is a delay until all of its
windows have been removed. Therefore there is a possibility that
WindowState.getDisplayContent() returns null. Guard against that
possibility.

Fixes bug 13616765.

Change-Id: Ia2074d293b0e1bd4ca2cd14aeb4a2cc09ed9f41e
/frameworks/base/services/core/java/com/android/server/wm/WindowManagerService.java
16744ac3f7b030f1192d298132256ac06eaff205 26-Mar-2014 Craig Mautner <cmautner@google.com> am d1e32cd3: Merge "Defer removal of activity until animation complete." into klp-modular-dev

* commit 'd1e32cd3207215e8bb63f18c6a5a4880b5344ef8':
Defer removal of activity until animation complete.
79e6578b6c7e8352f86942b99de4513133a1acdb 18-Mar-2014 Craig Mautner <cmautner@google.com> Defer removal of activity until animation complete.

Do not remove an AppWindowToken or its Task if it is running an
animation. Doing so leaves windows orphaned and bad things happen
when the system tries to retrieve the task assoicated with the
windows during layout.

Fixes the ugly output associated with bug 13440426.

Change-Id: I9d5fc50a7cb6189160d51cee3c82f7813baee715
/frameworks/base/services/core/java/com/android/server/wm/WindowManagerService.java
452fd49369da80a460d43fcb7e71d8549268f378 24-Mar-2014 Craig Mautner <cmautner@google.com> am 5332706b: am b98ee1eb: am 103ed355: am 557a93e1: Merge "Set ScreenshotSurface secure if any secure content is shown."

* commit '5332706b87c8772b97198e30c7cb4cc4ef3b577f':
Set ScreenshotSurface secure if any secure content is shown.
b98ee1eb50389520fd06255fd38b233c7adf5814 24-Mar-2014 Craig Mautner <cmautner@google.com> am 103ed355: am 557a93e1: Merge "Set ScreenshotSurface secure if any secure content is shown."

* commit '103ed3558764f1fd41c9a5399e2030baa4110bfb':
Set ScreenshotSurface secure if any secure content is shown.
7bcdb33d859ffb70f235cc8e0f22a0598194ddf8 21-Mar-2014 Winson Chung <winsonc@google.com> Merge "Adding support for clipping window transition for alternate recents."
399f62052a88e5e7628b7312637ae54fbbaa4bec 19-Mar-2014 Winson Chung <winsonc@google.com> Adding support for clipping window transition for alternate recents.

Change-Id: Ic7df4e6c0396afc794ffc21694814c0a93f20f31
/frameworks/base/services/core/java/com/android/server/wm/WindowManagerService.java
503fb80d0e93fd1aed64dbef36f7fa4363bdd5a2 20-Mar-2014 Svetoslav <svetoslavganov@google.com> Fix build

Change-Id: I2b27d51d8f555ee160dc99dba7e223f1cb3557e7
/frameworks/base/services/core/java/com/android/server/wm/WindowManagerService.java
8e3feb15c5aec2c72b0ef120a1da325e1e8f0dda 24-Feb-2014 Svetoslav <svetoslavganov@google.com> Added accessibility APIs for introspecting interactive windows.

1. The old introspection model was allowing querying only the active window
which is the one the user is touching or the focused one if no window is
touched. This was limiting as auto completion drop downs were not inspectable,
there was not way to know when the IME toggles, non-focusable windows were
not inspectable if the user taps them as until a screen-reader starts
introspecting the users finger is up, accessibility focus was limited to
only one window and the user couldn't use gestures to visit the whole UI,
and other things I can't remember right now.

The new APIs allow getting all interactive windows, i.e. ones that a
sighted user can interact with. This prevents an accessibility service
from interacting with content a sighter user cannot. The list of windows
can be obtained from an accessibility service or the host window from an
accessibility node info. Introspecting windows obey the same rules for
introspecting node, i.e. the service has to declare this capability
in its manifest.

When some windows change accessibility services receive a new type
of event. Initially the types of windows is very limited. We provide
the bounds in screen, layer, and some other properties which are
enough for a client to determined the spacial and hierarchical
relationship of the windows.

2. Update the documentation in AccessibilityService for newer event types.

3. LongArray was not removing elements properly.

4. Composite accessibility node ids were not properly constructed as they
are composed of two ints, each taking 32 bits. However, the values for
undefined were -1 so composing a 64 long from -1, -1 prevents from getting
back these values when unpacking.

5. Some apps were generating inconsistent AccessibilityNodeInfo tree. Added
a check that enforces such trees to be well formed on dev builds.

6. Removed an necessary code for piping the touch exploration state to
the policy as it should just use the AccessibilityManager from context.

7. When view's visibility changed it was not firing an event to notify
clients it disappeared/appeared. Also ViewGroup was sending accessibility
events for changes if the view is included for accessibility but this is
wrong as there may be a service that want all nodes, hence events from them.
The accessibility manager service takes care of delivering events from
not important for accessibility nodes only to services that want such.

8. Several places were asking for prefetching of sibling but not predecessor
nodes which resulted in prefetching of unconnected subtrees.

9. The local AccessibilityManager implementation was relying on the backing
service being ready when it is created but it can be fetched from a context
before that. If that happens the local manager was in a broken state forever.
Now it is more robust and starts working properly once the backing service
is up. Several places were lacking locking.

bug:13331285

Change-Id: Ie51166d4875d5f3def8d29d77973da4b9251f5c8
/frameworks/base/services/core/java/com/android/server/wm/WindowManagerService.java
8c5567ee9e3d557da9729ef980a3588ce00f8240 20-Mar-2014 Jim Miller <jaggies@google.com> am bd33dc01: am 8e69abf8: am 46e63117: DO NOT MERGE - Fix memory leak caused by mismatched linkToDeath() in WindowManagerService

* commit 'bd33dc01f68ae0f4e4861568c02619e38c40af15':
DO NOT MERGE - Fix memory leak caused by mismatched linkToDeath() in WindowManagerService
bd33dc01f68ae0f4e4861568c02619e38c40af15 20-Mar-2014 Jim Miller <jaggies@google.com> am 8e69abf8: am 46e63117: DO NOT MERGE - Fix memory leak caused by mismatched linkToDeath() in WindowManagerService

* commit '8e69abf8c62452e6e9bcd254a55a2d80c8ef5b3d':
DO NOT MERGE - Fix memory leak caused by mismatched linkToDeath() in WindowManagerService
81481fc20145fdb9e4985ee106af6cb9971cde0e 18-Mar-2014 Craig Mautner <cmautner@google.com> Defer removal of activity until animation complete.

Do not remove an AppWindowToken or its Task if it is running an
animation. Doing so leaves windows orphaned and bad things happen
when the system tries to retrieve the task assoicated with the
windows during layout.

Fixes the ugly output associated with bug 13440426.

Change-Id: I9d5fc50a7cb6189160d51cee3c82f7813baee715
/frameworks/base/services/core/java/com/android/server/wm/WindowManagerService.java
734983fff35d9ed2b7a9848bdfbca401887d0dd8 05-Mar-2014 Amith Yamasani <yamasani@google.com> Allow related users to show activities on primary user

Make ActivityManager and WindowManager understand related users.

Task stack will now contain interleaved tasks for related users,
but still group regular users separately from groups of related users.

InputMethodManagerService permits related users to invoke IME and receive
key events.

Change-Id: I3bd87b32aec69c3f8d470c8b29b144f4e849c808
/frameworks/base/services/core/java/com/android/server/wm/WindowManagerService.java
2e416f16745c55b4957611cb3fa5acc82f247092 04-Mar-2014 Craig Mautner <cmautner@google.com> am f716acc6: am 80b13579: am 7a93aa2f: am a0b4d0ce: Merge "Avoid duplication of AppWindowToken in created Task"

* commit 'f716acc66f2c30503f8c10f57ecba3d597107801':
Avoid duplication of AppWindowToken in created Task
80b1357909e57aa330c2624b8a5baac9f3bdce3f 04-Mar-2014 Craig Mautner <cmautner@google.com> am 7a93aa2f: am a0b4d0ce: Merge "Avoid duplication of AppWindowToken in created Task"

* commit '7a93aa2fc2555b0de41bb5f30eb0e9cce2413084':
Avoid duplication of AppWindowToken in created Task
b5abedbd5cef473574884a7453cdf4d412af26af 25-Feb-2014 Craig Mautner <cmautner@google.com> am c407ace3: am d4c819c0: am dd9ce628: Merge "Clean up activities and displays when done" into klp-modular-dev

* commit 'c407ace3019c4e542654cf17fd04d9436d3f3436':
Clean up activities and displays when done
dd9ce6287eb9ccae8d527e6750c91b0bd47834fc 25-Feb-2014 Craig Mautner <cmautner@google.com> Merge "Clean up activities and displays when done" into klp-modular-dev
95da1087ed3c7b9983b571bc5409827ae390f15f 25-Feb-2014 Craig Mautner <cmautner@google.com> Clean up activities and displays when done

More maintenance fixes.

Fix bug 13157352.

Change-Id: Ic86d39a84452a1cf1dc1762cec517b419ad0a852
/frameworks/base/services/core/java/com/android/server/wm/WindowManagerService.java
5eb4adcbda0ff22e48716d3cf9356a9a720475b5 22-Feb-2014 Craig Mautner <cmautner@google.com> resolved conflicts for merge of d2794f5e to master

Change-Id: I24339e45e5fc697abf294286e2d6b57620ed9d1a
42bf39edbdad19f51497938d0a3469dd772f19e8 22-Feb-2014 Craig Mautner <cmautner@google.com> Reset deferred task removal when app token added.

A task is scheduled for deletion after the final activity has
been removed and has animated away. But if another activity is then
added to the task the deletion flag must be reset.

Also added improved debugging.

Fixes bug 12987986.

Change-Id: I207ea6e9592a9e036d67aa5d1465b4acc5bdd120
/frameworks/base/services/core/java/com/android/server/wm/WindowManagerService.java
e1abfdf711ce9ff3b15ff1b4d86531f5a8dd3dec 21-Feb-2014 Craig Mautner <cmautner@google.com> am 6222a8ef: am 1648f042: am fd8a8ccb: Merge "Set the new SurfaceControl opaque flag." into klp-modular-dev

* commit '6222a8ef853609ea9c0f725c2412a2d25968d9da':
Set the new SurfaceControl opaque flag.
b88a904dfe719a8cbb0b9d73cb4637c22a1deed4 20-Feb-2014 Dan Stoza <stoza@google.com> Merge "Allow disabling layer rotation during screenshots"
71dd1b63436e9cdd5cbd2d42cd5841d497da8238 19-Feb-2014 Craig Mautner <cmautner@google.com> Set the new SurfaceControl opaque flag.

Converts surfaces from transparent to opaque and opaque to transparent
without creating a new surface. Uses the new SurfaceControl.setOpaque
method.

Fixes bug 12387406.

Change-Id: I669c064e622e211b00b1585183a488d5b3f4b778
/frameworks/base/services/core/java/com/android/server/wm/WindowManagerService.java
16ec12ae77fdd2b09ea0ea0885ac52f11bd32c59 15-Feb-2014 Dan Stoza <stoza@google.com> Allow disabling layer rotation during screenshots

Add the ability to ignore layers' transformation matrices during
screenshot capture, which will allow the window manager to capture
unrotated images for recents during the device rotation animation.

Bug: 11805195
Change-Id: I96e65506b198d34724eb3aa84815aae6f6de4935
/frameworks/base/services/core/java/com/android/server/wm/WindowManagerService.java
3e5ce55fdeb67271d6a32042ab14cf523446cc09 13-Feb-2014 Craig Mautner <cmautner@google.com> am 4dd83975: am d14fa78d: am 0af894d2: Merge "Update DimLayer sizes on rotation." into klp-modular-dev

* commit '4dd839756ce032cb6db613f08b9a28e5cd20bbe9':
Update DimLayer sizes on rotation.
0af894d25133890e7765e6c582b3ac4829070de8 13-Feb-2014 Craig Mautner <cmautner@google.com> Merge "Update DimLayer sizes on rotation." into klp-modular-dev
b660b9d8cf6b951b85a35599d636c470795e9a1a 13-Feb-2014 Craig Mautner <cmautner@google.com> Update DimLayer sizes on rotation.

Required replumbing and updating the TaskStack bounds calculations
to match the new separation of TaskStack from DisplayContent.

Fixes bug 12780687.

Change-Id: I061c92831c06f4eb3e673ad6296e721b0c0f3202
/frameworks/base/services/core/java/com/android/server/wm/WindowManagerService.java
1c5010a566c4d03eba714dc5d1a187b91973a549 13-Feb-2014 Craig Mautner <cmautner@google.com> am f24ee132: am d3df99c4: am 4b79f838: Merge "Add debug for 12987986." into klp-modular-dev

* commit 'f24ee13254b544b7e73ea1b28facc1996b8185ab':
Add debug for 12987986.
164683221948c13fd9b652416c5cc1621df6401b 13-Feb-2014 Craig Mautner <cmautner@google.com> Add debug for 12987986.

For bug 12987986.

Change-Id: Idc122ba369ad7566e3fee290955bf91b0f610ae1
/frameworks/base/services/core/java/com/android/server/wm/WindowManagerService.java
4cfd54eaf0106373e1fea75a1e33ac460cf7c23d 13-Feb-2014 Craig Mautner <cmautner@google.com> am 69481d54: am 8dfda07d: am 731c30c1: Merge "Don\'t add windows from exiting app tokens twice." into klp-modular-dev

* commit '69481d54c2c6da6ec931bb7435bddf7be1aba0af':
Don't add windows from exiting app tokens twice.
ac90c19cab7e05dc8add6acbc8f74c9f854d098d 12-Feb-2014 Craig Mautner <cmautner@google.com> Don't add windows from exiting app tokens twice.

If an apptoken's removal has been delayed then it will be in both
mExitingAppTokens and the stack's tasks. When rebuilding the windows
the windows from that apptoken will get added twice. This change
skips adding those windows from apptokens that have already been
added from mExitingAppTokens.

Change-Id: I55f94b7dbef36aeacb390b91fbe82426eaac5458
/frameworks/base/services/core/java/com/android/server/wm/WindowManagerService.java
33fa09b1ffe8d14d146de4b2632103d831ff8988 11-Feb-2014 Craig Mautner <cmautner@google.com> am 2d6b55aa: am 312ba86b: Change task removal sequence

* commit '2d6b55aaa9dd03f7d934f7a192989513b1087357':
Change task removal sequence
312ba86b476fa1d83864a7d465135cc9a4e94ad8 11-Feb-2014 Craig Mautner <cmautner@google.com> Change task removal sequence

- Remove task after removing activity. Removing the task before
removing the activity led to problems when the task was still needed.

- In WindowManager wait for activity manager to remove the task.
Previously was automatically removing the task when the last activity
was removed.

Fixes bug 12957434.

Change-Id: I7f6b1f09a2e2a845f177f337769075c9376f8bdb
/frameworks/base/services/core/java/com/android/server/wm/WindowManagerService.java
56aa06c4249efe32c82af1dc71df9701dc8f457c 10-Feb-2014 Craig Mautner <cmautner@google.com> am 779d204a: am 9ef471f7: Don\'t remove Activities and Tasks until animation done

* commit '779d204abe6a3922b572822df5cd775ffd5d77e8':
Don't remove Activities and Tasks until animation done
9ef471f7f2f59de032d7cb9c3c7241486109979e 07-Feb-2014 Craig Mautner <cmautner@google.com> Don't remove Activities and Tasks until animation done

Just like stacks and displays, activities and tasks need to stick
around until animations have completed.

Change-Id: I54fe8f6855d60cbc3a25cbc6e762defd5ac50bf5
/frameworks/base/services/core/java/com/android/server/wm/WindowManagerService.java
38f7dcd7dcb5d98d86f19f3c4725aea89f9792ff 06-Feb-2014 Craig Mautner <cmautner@google.com> DO NOT MERGE. Test for Configuration differences before changing.

Changing Configuration first and then testing for changes yields a
result indicating no change.

Fixes bug 12904769.

Change-Id: If7e39e843f15b1143d9877497d595511afabd020
/frameworks/base/services/core/java/com/android/server/wm/WindowManagerService.java
d1c2c5421181b988f09fd12d9633e2a7c2a8ab60 06-Feb-2014 Craig Mautner <cmautner@google.com> Test for Configuration differences before changing.

Changing Configuration first and then testing for changes yields a
result indicating no change.

Fixes bug 12904769.

Change-Id: If7e39e843f15b1143d9877497d595511afabd020
/frameworks/base/services/core/java/com/android/server/wm/WindowManagerService.java
af04b113dcd28ae788a3ffb4a5420817cb7ed95f 06-Feb-2014 Craig Mautner <cmautner@google.com> am 14d74b82: am 1bf2b873: Defer detach until animations are complete.

* commit '14d74b82363e1a72b967590ee7118b239b276fb4':
Defer detach until animations are complete.
643ca1e9a3fba3b815534048bf4249a1f8a134b3 06-Feb-2014 Craig Mautner <cmautner@google.com> am 481b54be: am dc548483: Move activities from DisplayContent to TaskStack

* commit '481b54be1acb990bab3933b6248964e351bdcd99':
Move activities from DisplayContent to TaskStack
1bf2b873470d2ba8a4ac218da73516cc2b20aa76 06-Feb-2014 Craig Mautner <cmautner@google.com> Defer detach until animations are complete.

Allowing the detach of ActivityStack from DisplayContent to happen
immediately was causing all sorts of problems associated with not
having a Display to complete the animations.

Waiting for animations to complete before either the detach or the
display removal fixes those problems.

Change-Id: I8a5663bfac5c3c1084ff4fcc451e0e38e8080265
/frameworks/base/services/core/java/com/android/server/wm/WindowManagerService.java
dc548483ae90ba26ad9e2e2cb79f4673140edb49 05-Feb-2014 Craig Mautner <cmautner@google.com> Move activities from DisplayContent to TaskStack

Now that activities and tasks can be detached from a display do not
keep their state within the DisplayContent class. All such state is
now moved to the TaskStack class with this change.

Change-Id: Ie6b1811e9ec3f545782bad8c3461bd4f2d336b93
/frameworks/base/services/core/java/com/android/server/wm/WindowManagerService.java
9e4adfb358ca3680288c07201efc8811472a579d 05-Feb-2014 Craig Mautner <cmautner@google.com> resolved conflicts for merge of 32360147 to master

Change-Id: I97cc95f66df50006469f8debd286966cc21edb60
df88d73092c62a1a3cd2b2056ca63ae2e70cc238 27-Jan-2014 Craig Mautner <cmautner@google.com> Add IIntentSender to ActivityContainer.startActivity

PendingIntents and IntentSenders can now be launched. Still does not
work once the host activity has been paused and resumed.

Window manager TaskStacks now exist independently of Displays and app
windows persist after Displays are removed below them. Attaching the
stack to a new Display does not yet restore the windows to it.

Fixes bug 12747909.

Change-Id: I509007ee23fda400b353f483cf6ecce08177763b
/frameworks/base/services/core/java/com/android/server/wm/WindowManagerService.java
509cc13b705f8c488774e7097ab17471c3dacd2e 18-Jan-2014 Jeff Brown <jeffbrown@google.com> am e2c9cd58: Merge "Refactor display manager service to new pattern." into klp-modular-dev

* commit 'e2c9cd583f4f706b48270b8cbe84df627c69af24':
Refactor display manager service to new pattern.
4ccb823a9f62e57f9d221f83a97e82967e79a9e5 17-Jan-2014 Jeff Brown <jeffbrown@google.com> Refactor display manager service to new pattern.

Transform DisplayManagerService into a SystemService and start cleaning
up other local services that it uses from window manager and input manager.

Clean up service thread initialization.

Remove unnecessary static variables from ActivityManagerService.

It's starting to become clear that we really need a better way to manage
service dependencies. Boot phases don't quite cut it.

Change-Id: If319dbd7cbfbd4812fe55ece969e818d4b20755b
/frameworks/base/services/core/java/com/android/server/wm/WindowManagerService.java
09d30981f8e882ffaa336aa4665bfe348557895a 16-Jan-2014 Jeff Brown <jeffbrown@google.com> resolved conflicts for merge of 6f357d32 to master

Change-Id: I1979e6ed1acddbe656f5010114fd900f10865e75
6f357d3284a833cc50a990e14b39f389b8972254 16-Jan-2014 Jeff Brown <jeffbrown@google.com> Start untangling system server early bootstrapping.

Refactored SystemServer to get rid of a bunch of legacy cruft related
to how the ServerThread used to be started up.

Create system context first when system server starts. This removes
the tangled initialization order dependency that forced us to start
the activity manager service before most anything else.

Moved factory test related constants into the FactoryTest class.

Partially migrated Installer, ActivityManagerService, and
PowerManagerService to the new SystemService pattern. There's more
work to be done here, particularly around the lifecycle of the
power manager.

Bug: 12172368
Change-Id: Ia527dd56e3b3fd90f9eeb41289dbe044921230d4
/frameworks/base/services/core/java/com/android/server/wm/WindowManagerService.java
fc8fa54f80b419966b3893a0992354a17c270333 16-Jan-2014 Craig Mautner <cmautner@google.com> am e9ddaa0b: Merge "Cleanup after ActivityView" into klp-modular-dev

* commit 'e9ddaa0b183d979be782a63970929cebd861b7c9':
Cleanup after ActivityView
34b73dfaa3a92e5a85abf62317183fb114f2ffff 13-Jan-2014 Craig Mautner <cmautner@google.com> Cleanup after ActivityView

- Release Surface and VirtualDisplay when shutting down ActivityView.
- Shut down child stacks when relaunching parent activity.

Change-Id: I60314b2b43bd2da5406cf6ec871293b5baca157c
/frameworks/base/services/core/java/com/android/server/wm/WindowManagerService.java
3a43aa9cef79324dd149a47c5a73ce1fa8ed95b3 15-Jan-2014 Craig Mautner <cmautner@google.com> am 9cfb2e5f: Merge "Retain stacks even if they are empty." into klp-modular-dev

* commit '9cfb2e5f4c95c16d8ca531808f60486f214f9039':
Retain stacks even if they are empty.
9cfb2e5f4c95c16d8ca531808f60486f214f9039 15-Jan-2014 Craig Mautner <cmautner@google.com> Merge "Retain stacks even if they are empty." into klp-modular-dev
04a0ea60ac7e20369e63edc4f3f8cedf8425a439 13-Jan-2014 Craig Mautner <cmautner@google.com> Retain stacks even if they are empty.

Previously stacks would be removed when the last ActivityRecord was
removed. This causes problems for ActivityContainers which persist and
permit activities to be launched into an empty stack.

Change-Id: Ia79ac65d17c42eff3a7b1321980c21b29996001b
/frameworks/base/services/core/java/com/android/server/wm/WindowManagerService.java
80a6e776e008f3a048ec568ea5a0ca63e0b6d936 13-Jan-2014 Craig Mautner <cmautner@google.com> am cf6e0d68: Merge "Add display synchronously." into klp-modular-dev

* commit 'cf6e0d686f42036992bdac4f47d37bc8c0775027':
Add display synchronously.
ad25fa36cb63f134acf636d70696bbf81548802e 13-Jan-2014 Craig Mautner <cmautner@google.com> Add display synchronously.

Adding the virtual display to window manager through a handler message
causes timing issues. Add the display directly to fix it.

Change-Id: I3ad6b16ce6dff2a48abd120a8e873e11a028e2c3
/frameworks/base/services/core/java/com/android/server/wm/WindowManagerService.java
d4abbb964b6153ab19a9366c1168f4794b618594 10-Jan-2014 Craig Mautner <cmautner@google.com> am 93884a5b: Fix invalid stackId bug.

* commit '93884a5b35ec97a0f44795950363188d9a21137a':
Fix invalid stackId bug.
93884a5b35ec97a0f44795950363188d9a21137a 10-Jan-2014 Craig Mautner <cmautner@google.com> Fix invalid stackId bug.

Eliminate race condition by executing window manager createStack
directly from activity manager.

Change-Id: I2dda276d07d0ae09c7c958980bc5ebffe72ebd92
/frameworks/base/services/core/java/com/android/server/wm/WindowManagerService.java
1f7488e21994d7b6e143a4540659c1fbae630634 10-Jan-2014 Craig Mautner <cmautner@google.com> resolved conflicts for merge of 4504de5d to master

Change-Id: I8d96fd2b479aebd6de913e617ca190f66c25aaa5
4504de5d5a8e1c7dfb306b16282f348856c24764 20-Dec-2013 Craig Mautner <cmautner@google.com> Implement ActivityView.

With an existing ActivityContainer a caller can now create an
ActivityView which consists of a new VirtualDisplay immediately
attached to the ActivityContainer.

Change-Id: Id70333dcbef55d524a87df8f8c92d72ca5579364
/frameworks/base/services/core/java/com/android/server/wm/WindowManagerService.java
b859449b717b24ac6e678c303d7706d55fd184f7 08-Jan-2014 Craig Mautner <cmautner@google.com> resolved conflicts for merge of 88bfc6dd to master

Change-Id: Ib656ac0591b21ad14f2df51021729552e9373515
e0a3884cb627efc650e19fbe76b1b3343468cf57 17-Dec-2013 Craig Mautner <cmautner@google.com> Extend stack management to other displays.

- Abandon ActivityContainer.startActivity() in favor of
IActivityManager.startActivityAsUserInContainer().
- Modify Am to test starting an activity on a container.
- Create a DisplayContext as the base context if the activity token
is on a different display.
- Test for home display in more cases when manipulating home stack.
- Rename mDisplayInfos => mActivityDisplays.
- Create new method for moving task to front of stack regardless of
which display it is on.

Change-Id: I4fcb83ae844c5839ee3e2722229623d1a80ed921
/frameworks/base/services/core/java/com/android/server/wm/WindowManagerService.java
49782e46c0eb85a25ae2abcf80880c48dbab5aea 20-Dec-2013 Amith Yamasani <yamasani@google.com> am 9158825f: Move some system services to separate directories

* commit '9158825f9c41869689d6b1786d7c7aa8bdd524ce':
Move some system services to separate directories
9158825f9c41869689d6b1786d7c7aa8bdd524ce 22-Nov-2013 Amith Yamasani <yamasani@google.com> Move some system services to separate directories

Refactored the directory structure so that services can be optionally
excluded. This is step 1. Will be followed by another change that makes
it possible to remove services from the build.

Change-Id: Ideacedfd34b5e213217ad3ff4ebb21c4a8e73f85
/frameworks/base/services/core/java/com/android/server/wm/WindowManagerService.java