• Home
  • History
  • Annotate
  • only in /frameworks/base/services/java/com/android/server/wm/
History log of /frameworks/base/services/java/com/android/server/wm/
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
a46a74fcd61d2b4e72b6027625a471f10b21b1c9 08-Nov-2012 Dianne Hackborn <hackbod@google.com> Merge "Remove extraneous logs." into jb-mr1-dev
7ff30113de68539ec840c524b8f1561f938f96c5 08-Nov-2012 Dianne Hackborn <hackbod@google.com> Remove extraneous logs.

Change-Id: I4c47d36748de91bd6fddc419afbf59552bf63e9a
indowManagerService.java
4eeb4f664ac6b5901a8e874dcf70c0382295f792 08-Nov-2012 Jim Miller <jaggies@google.com> Add mechanism to kick keyguard to show the assistant

Fixes bug 7499778

Change-Id: Ic9ea514feb489feeee6716f40bdb9792842f9515
indowManagerService.java
bfec0a8616bc197ee3b7b71be6fed1939d0c3c4d 06-Nov-2012 Jim Miller <jaggies@google.com> Add isSafeModeEnabled() API to WindowManagerService

This adds a means of determining when the device is in safe mode,
as required by keyguard to disabled some features.

Change-Id: I31d357e6738c92e1837f9e0263e5f3f4de66315a
indowManagerService.java
2ea9bae7121f1df5461437d7d08fa550cdf6e0b0 03-Nov-2012 Dianne Hackborn <hackbod@google.com> Fix issue #7457380: IME leaves a mark after user switching

The gnarly stuff where we keep track of the old input method
window as if it was still there was sitting around leaving things
in a stuck state. Now we clear this out at key points in the
window manager (freezing screen, user change), and the input
method manager service is less aggressive about asking the window
manager to do it.

Also fixed a problem that was causing flickers during some
wallpaper transitions -- when we are animating two things on
top of the wallpaper and one of them disappears, we need to
make sure the wallpaper target points to whatever the current
target should be (if any), not left pointing to the old target
that has gone away.

Change-Id: I2fb9600f569a5bd5e3528aaf24cde9340af56cb0
indowAnimator.java
indowManagerService.java
98129739afcb3786a6ec9f3efe774d8e01f6d632 02-Nov-2012 Dianne Hackborn <hackbod@google.com> Fix issue #7343200: Fails to show wallpaper in the background for...

...lockscreen sometimes and remains black / blank

The problem was that we were using the animation-side wallpaper state
in cases where it was not updated yet.

The mWallpaperTarget variable is propagated over to the animation
side when the main window manager state updates. On the animation
side, this is used by hideWallpapersLocked() to determine if the
current wallpaper should be hidden.

The problem is that various paths to hideWallpapersLocked() can
come from the layout side of the window manager instead of the
animation side. This causes the problem here because in this case
the wallpaper state may not have yet been propagated to the
animation side, so it could incorrectly decide to hide the wallpaper
because it thinks there is not a target when in fact a target is
set in the layout side. This won't get fixed until some time way
later that the layout side decides that a new window is being shown
that may need to have the wallpaper shown.

The fix here is pretty gross, but as safe as possible -- the
hideWallpapersLocked() function now uses either the animation or
layout wallpaper state depending on where the call to it is coming
from.

Change-Id: I9250bfeae6e11c1761760bcc696fdb33fb5c8a5f
indowAnimator.java
indowManagerService.java
indowState.java
indowStateAnimator.java
529e744d3131b9ebeb6b33c8030230c29a44ad12 01-Nov-2012 Dianne Hackborn <hackbod@google.com> More debugging for issue #7343200 Fails to show wallpaper in the...

...background for lockscreen sometimes and remains black / blank

There was a bunch of state not being put into the dumpsys output.
In particular, the current wallpaper target of the WindowAnimator
was not being included. I think the problem is that these targets
are not being updated from the main window manager state at some
point where they need to be.

Change-Id: Ic795047f6aea9b6f72d5550bccc9f8d76c6ecb67
ppWindowAnimator.java
indowAnimator.java
indowManagerService.java
indowState.java
indowStateAnimator.java
d5d11af3d3cefff6267d4e3a19e61a9b03cfbab5 31-Oct-2012 Chet Haase <chet@google.com> Fix for regression in WindowManager orientation changes

A fix yesterday for #7428221 caused a regression where new orientations would
sometimes cause a flash through black on the way to seeing the real static wallpaper.
There is a fundamental problem in WindowManagerService where we show a window before
it has all of the layout/sizing information it needs, which is the cause of the black
flash. The regression yesterday was that we are now less aggressive about layout out
hidden windows, so we won't layout the window until after the window is shown with the
incorrect sizing info.

The fix/workaround is to back off the layout logic specifically for the wallpaper,
ensuring that we will lay it out on orientation changes, even when hidden. This means that
when we finally do show it, it will already have been drawn in the correct orientation/size.

Issue #7444971 Home jank regression

Change-Id: Ib20fdabc43ece9720b261bf04b272c5511e2d902
indowManagerService.java
27f752eb1d5c0f92fb38e7d6d0ea20b3b3b26a02 31-Oct-2012 Chet Haase <chet@google.com> Merge "WindowManager shouldn't layout non-visible windows" into jb-mr1-dev
9cceae9a5f4a2e8b5abc7dc9610dc7e40c7d283c 31-Oct-2012 Chet Haase <chet@google.com> WindowManager shouldn't layout non-visible windows

A recent change in WindowManager made background windows perform layout
(when they should really be left alone). This resulted in artifacts
where rotating the device and then going to a backgrojnd activity (launcher,
Recents) would briefly show that activity in the wrong size/orientation, then
flash to the correct one after a proper layout.

This fix is a simple workaround, leaving in the original fix that the code
change addressed (for keyguard orientation changes), while going back to the
previous (don't layout gone windows) for all other cases.

Issue #7428221 sometimes recents is drawn off-center and then fixes itself

Change-Id: I41b47933c2bd86f29133853d3387bb7294be8f48
indowManagerService.java
ad09bccfe4cc0a3075e97c0911a02b329023a34a 08-Oct-2012 Craig Mautner <cmautner@google.com> Bring up unlock screen for FLAG_DISMISS_KEYGUARD.

Widgets that did not launch Activitys would not display the unlock
screens when they were tapped. Now any window that is shown with
FLAG_DISMISS_KEYGUARD set while the keyguard is locked will
cause the unlock screen to be displayed.

Bug: 7301530 fixed.
Change-Id: I90d11b52d2b63260bdb5f2b6eb7e98eb7a4d9331
indowState.java
ef03a7f441cf0cbef5a5f7fafb58a7d5aea7ef52 30-Oct-2012 Dianne Hackborn <hackbod@google.com> Work on issue #7343200: Fails to show wallpaper in the background...

...for lockscreen sometimes and remains black / blank

Add some debug output to try to track down what is going on.

Change-Id: I98a96c5da9c04b988e948f6fc2766d927db49ebf
indowAnimator.java
indowManagerService.java
indowToken.java
77119bc6c90a62beb2f83d9496d99199a7aefe14 23-Oct-2012 Dianne Hackborn <hackbod@google.com> Fix issue #7342364: JellyBean broke Toddler Lock, again

Change-Id: I400c02711edc302a1bc7fbf98b62fcb9f76e5e12
indowManagerService.java
7ad4438414de7b2d4e44798877df1700764c4472 19-Oct-2012 Dianne Hackborn <hackbod@google.com> Fix issue #7353900: Brief flash of home screen while dream starts on lock screen.

Not very clean, this has a special hack in the window manager to
redo layout when a dream window is shown. After MR1 we should clean
this up (and the various other special dream hacks).

Change-Id: Ic1a5a2b10a0a07b4a5dccdbf0736b614ec06dd4a
indowManagerService.java
0ed07a0a30ef71053d0426956d3c198bb7540d4e 19-Oct-2012 Craig Mautner <cmautner@google.com> Merge "Allow getDisplayContentLocked to return null..." into jb-mr1-dev
738cfc91053fc888397ec2d139e0798f8c95b3ca 19-Oct-2012 Michael Jurka <mikejurka@google.com> Fixing wallpaper flash when going in/out of Recents

Bug: 7372516
Bug: 7216872

Change-Id: I2a2308a85caf9f2ad2d382c709e5f8867bd060be
indowManagerService.java
2d5618c22101cfc4d6478cfe1d846798389540c1 18-Oct-2012 Craig Mautner <cmautner@google.com> Allow getDisplayContentLocked to return null...

... and check for null returns. This prevents DisplayContent objects
from containing null Display references.

Bug: 7368565 fixed.
Change-Id: I830fb4c1349204c366193657a95a92c48ccee66c
isplayContent.java
ragState.java
indowManagerService.java
860f660a0f891b44a9f61558d75119184bafa9e3 18-Oct-2012 Craig Mautner <cmautner@google.com> When removing windows remove from resize list.

Windows remained in the resized list if they were removed during
rotations.

Bug: 7372289 fixed.
Change-Id: I41f949b7836b08b33d4d178e9aa016548328749a
indowManagerService.java
341220fd099b2e74ac605d417f274537dc4bc749 17-Oct-2012 Craig Mautner <cmautner@google.com> Use parent window to evaluate show-to-all-users.

When a window is attached to another window use the parent window's
attributes to determine whether the child window should be shown
to all users.

Bug: 7328633 fixed.
Change-Id: I9601c149af87f624378e6895063bb3179d4f845e
indowState.java
964629aca8d076826198a21b654ed858618b5619 16-Oct-2012 Svetoslav Ganov <svetoslavganov@google.com> Merge "Occasionally triple tap on the keyboard toggles screen magnification." into jb-mr1-dev
dc9e13b30ab26f8382b7e67dd681dee9b04bdb29 16-Oct-2012 Craig Mautner <cmautner@google.com> Merge "Perform all layouts within first loop." into jb-mr1-dev
a13a41dc0ed049319c3a6b51d1f35b0b1c20d81b 16-Oct-2012 Craig Mautner <cmautner@google.com> Perform all layouts within first loop.

Do not begin animation while layout requests are still
outstanding.

Bug: 7333622 fixed.
Change-Id: I77c2cdc123c1e26f9661feade0d9a1843c75d5f6
indowManagerService.java
55468c64bc4f3c4b16bf144f66907d75bb656b0a 16-Oct-2012 Svetoslav Ganov <svetoslavganov@google.com> Occasionally triple tap on the keyboard toggles screen magnification.

1. Sometimes unlocking the device when the IME is up and triple tapping on the keyboard
toggles screen magnification. The core reason is that when the kayguard window is
shown we hide all other windows and when it is hidden we show these windows. We did
not notify the screen magnifier for windows being shown and hidden. Also when the
windows are shown we may reassign layers to put the IME or the wallpaper in the
right Z order. The screen magnifier is now notified upon such layer reassignment
since window layers are used when computing the magnified region.

bug:7351531

Change-Id: I0931f4ba6cfa565d8eb1e3c432268ba1818feea6
indowManagerService.java
a4942c9fb9cc224bcb1a0a53dcacd13848819951 16-Oct-2012 Craig Mautner <cmautner@google.com> Revert app freeze timeout delay.

Speed up of wallpaper loading on Manta means this workaround is no
longer necessary.

Bug 7354440 fixed.

Change-Id: Ic0ad3c689abb5342fb29c824857db9d5c2d45008
indowManagerService.java
f6dbd61b108e586c1db3e61cbfc07d4d750027c0 16-Oct-2012 Craig Mautner <cmautner@google.com> Merge "Always layout Keyguard on config change." into jb-mr1-dev
b6ce6e42cc89864354c7ecb9ae80504a6c9dddcf 16-Oct-2012 Jamie Gennis <jgennis@google.com> Flag window animation transactions as animations.

This change makes WindowManager use the new eAnimation flag when animating
windows. This prevents some of the window updates from being combined with
updates from prior animation frames.

Bug: 7353840
Change-Id: I5a9f8fa2c1a2f5f08363a45cd9f28bb97cd77080
indowAnimator.java
a3f4bf531f64c49b6a792368b3e5628fe7cc0e5c 11-Oct-2012 Craig Mautner <cmautner@google.com> Always layout Keyguard on config change.

Add Keyguard to list of windows that can't be hidden by keyguard.

Don't assign Configuration to window until layout has had a chance
to compare it to window's existing Configuration.

Bug: 7094175
Change-Id: I99a9fd4af9a31871fe130db7b6bdf49bd51a6092
indowManagerService.java
a987d43bc916b6446fe41037d9fcf07e778b3452 11-Oct-2012 Craig Mautner <cmautner@google.com> Check for apps closing and restore mExiting test.

Removal of the mExiting test in a previous CL was a mistake leading
to z-order errors. In particular the auto complete dialog was on top
of the IME and was being dismissed due to touches on the IME.

Restoring mExiting alone missed cases where apps were exiting which
don't set mExiting. Adding a test for membership in mClosingApps
fixes that.

Bug: 7327220 fixed.
Change-Id: I3965b8a07080d1347bdada51ffeafe6ef2e32c8e
indowManagerService.java
indowState.java
0a75ed0805dd7f97ff058623eb8e4f4b258c44ab 11-Oct-2012 Craig Mautner <cmautner@google.com> Merge "Revert "Remove debugging statements before final ROM."" into jb-mr1-dev
c1940167109098b5748cde025e49575c6515e490 11-Oct-2012 Chris Craik <ccraik@google.com> Merge "Use the original caller pid for computing visibility" into jb-mr1-dev
3198ef3f971384cfb92f7d18b0fc8dae222bd58f 10-Oct-2012 Chris Craik <ccraik@google.com> Use the original caller pid for computing visibility

bug:7325771

Make Strict mode violations flicker the screen for visible app correctly.

Change-Id: I293dc9e945cb0366a1cd7b63a5b746159aab7c74
indowManagerService.java
64ecc0e1015f1c6c1f949bb74ba3f0875178c737 10-Oct-2012 Craig Mautner <cmautner@google.com> Revert "Remove debugging statements before final ROM."

The bug cropped up again. Need these statements to pin it down.

This reverts commit f1f3b49b949af72692f7f85a1c1ef220e8630e30

Change-Id: Ie0548232daff32ee2541249b0950e23bd98c08d2
indowManagerService.java
fa5bc081593891959c143e0de9e59dd076a47b42 10-Oct-2012 Craig Mautner <cmautner@google.com> Merge "Increase window freeze timeout for bigger screens." into jb-mr1-dev
7dfcb018206abebc45e478ef01465a50532f0f4e 10-Oct-2012 Craig Mautner <cmautner@google.com> Increase window freeze timeout for bigger screens.

More pixels take longer. Timeout was occurring before Status and
Navigation Bars were finished drawing causing them to animate in
during rotations.

Bug 7307718 fixed.

Change-Id: Iccf27b6172d0c9831690cc2fcf93027a40b705d8
indowManagerService.java
f1f3b49b949af72692f7f85a1c1ef220e8630e30 09-Oct-2012 Craig Mautner <cmautner@google.com> Remove debugging statements before final ROM.

Change-Id: I18afd1a4c4f8f945308edc9b3af48b8c8adb3b9e
indowManagerService.java
e6f7d5054a71eeae8c0b10a2305347efdcd8c3d3 08-Oct-2012 Craig Mautner <cmautner@google.com> Fix problems with IME layers.

The query WindowState.isDisplayed did not take into account being
displayed due to app animations.

When an existing input method target was animating away the logic
for detecting if it was still on screen was faulty. This led to
assigning the input method to a layer below its target and obscuring
the input method until the animation was complete.

Bug: 7296703 fixed.
Change-Id: Ib00db4f21b726ed57d25d6a1e796b65a7d45ee97
indowManagerService.java
indowState.java
138f272bfcd45f233abfd94faf4aabaa5d01b90b 07-Oct-2012 Craig Mautner <cmautner@google.com> Merge "Save resized windows even if freezing." into jb-mr1-dev
33877e15b8bfc50bd874027689a4794aa93b923d 07-Oct-2012 Craig Mautner <cmautner@google.com> Merge "Adds showWhenLocked attribute to Activities." into jb-mr1-dev
ade0a9a9386a2cd6f11ad3cde257c11fe300d785 06-Oct-2012 Craig Mautner <cmautner@google.com> Save resized windows even if freezing.

During app freezes resized windows were being dropped if the freeze
window timed out. This fix adds windows to the list of resized
windows but does not notify the clients of the resize until freezing
is completed.

Bug: 7094175 fixed.
Change-Id: Iee1f5f532a0e661fbf900e4540146ae4b645d68e
indowManagerService.java
5962b12bedc4a1d0354816c1cd6b06ba04f6d807 05-Oct-2012 Craig Mautner <cmautner@google.com> Adds showWhenLocked attribute to Activities.

The new attribute allows an Activity such as the alarm to appear
on all users screens.

Bug: 7213805 fixed.
Change-Id: If7866b13d88c04af07debc69e0e875d0adc6050a
ppWindowToken.java
indowManagerService.java
indowState.java
indowStateAnimator.java
4c1e3183baf39ab69c0289c1511877a8bb0b0f75 06-Oct-2012 Dianne Hackborn <hackbod@google.com> Fix issue #7296314, issue #7296314.

7296314 Crashing dreams are stuck
7296510 Transition from lock screen to dreaming is really bad

The window layer for dreams is now moved down below the keyguard,
so that some of the expected stuff like crash and ANR dialogs can
be seen on top of them. While doing this, I reorganized how we
define the layers so the constants are just in the switch statement,
so it is much less crazy-making trying to read how things go
together.

We now have some special cases for when a dream is being shown
to turn off its animation if the keyguard is currently shown.
Since we know it will be hiding the keyguard we need it to be
shown immediately so that you don't see whatever is behind it.

Cleaned up some handling of when the lock screen is displayed
while a FLAG_SHOW_WHEN_LOCKED window is displayed, so that the
lockscreen doesn't transiently get shown and mess up the fullscreen
or system UI state. This also fixes problems with any normal
activity that is doing this.

Hid the methods on DreamService for setting lights out mode. It
doesn't make sense to have such methods on DreamService, because
you can just as well do that on your own View that is showing the
dream content, and when you can do that you can fully participate
in the (required) interactions about it such as being told when
the mode goes away.

The DreamService method for going fullscreen now uses the window
flag for doing this, which is what you want, because you want this
state to persistent on that window and not get knocked out if
something above the window tickles the system UI state.

Also fixed the problem where dreams that hid the status bar would
have a jerky animation when going away, since they were causing the
activity behind them to be layed out without the lock screen. This
is a kind-of ugly special case in the window manager right now to
just not layout windows that are behind a dream. Good enough for MR1.

Change-Id: Ied2ab86ae068b1db0ff5973882f6d17b515edbcd
indowManagerService.java
indowStateAnimator.java
2874a54068af1e7de3c1c046cc0061412daafaf8 06-Oct-2012 Craig Mautner <cmautner@google.com> Merge "Add flag for displaying non-user's Windows to user." into jb-mr1-dev
88400d3a31139c40c4014faf86c243647087ef6c 30-Sep-2012 Craig Mautner <cmautner@google.com> Add flag for displaying non-user's Windows to user.

Created a new flag that indicates that a window should be shown
to all users. For the flag to be valid the owner of the window
must have system permissions.

Also separated system window types into those that show to all
users (e.g. StatusBar, Keyguard, ....) and those that appear only
to the owning users (e.g. Drag, ANR, TOAST, ...). Those that appear
only to their owner can override their default behavior using
the new flag (e.g. LowBattery).

Fixes bug 7211965.

Change-Id: I1fdca25d57b7b523f0c7f8bceb819af656c388d4
indowManagerService.java
indowState.java
indowStateAnimator.java
c38c9be031ddad5cf551b55458889f11e01dc5b2 04-Oct-2012 Jeff Brown <jeffbrown@google.com> Coordinate screen on with the window manager.

Bug: 7267457
Change-Id: Ic2c322253639e1f0b2e4e72a7b145025d0240f93
indowManagerService.java
f752202bee88e31ce765483ba2efa6999ae9c9ad 04-Oct-2012 Adam Cohen <adamcohen@google.com> Plumbing to allow keyguard to be shown with user switcher (issue 7175023)

-> Also reduced calls to lockNow, and moved this call in ActivityManagerService

Change-Id: I9ba34ca902f7c0f71fa4ec302104688ca8d11f55
indowManagerService.java
5fe7e2a3043d6a8ca933c77ccf95c791b57b221a 04-Oct-2012 Dianne Hackborn <hackbod@google.com> Fix issue #6968859: home not exiting an ANR'd dream

Add a new call to the activity manager for the input dispatcher
to report about any pid having an ANR. This has a new feature
where it can also tell the activity manager that it is above the
system alert layer, so the activity manager can pop its ANR dialog
on top of everything if it needs to. (Normally we don't want
these dialogs appearing on top of the lock screen.)

Also fixed some debugging stuff here and there that was useful
as I was working on this -- windows now very clearly include
their uid, various system dialogs now have titles so you know
what they are in the window manager, etc.

Change-Id: Ib8f5d29a5572542cc506e6d338599ab64088ce4e
nputMonitor.java
ession.java
indowState.java
3e2358a0e677ad1c88d677919aa9b8d7b2fb4eb2 03-Oct-2012 Craig Mautner <cmautner@google.com> Merge "Delay setting hidden until after isVisibleNow test." into jb-mr1-dev
4b5aa78c898a827c3cd65f578d31d3809b61aad6 03-Oct-2012 Craig Mautner <cmautner@google.com> Delay setting hidden until after isVisibleNow test.

Setting hidden prior to test guarantees the test will fail. This
then causes the exit animation to not be loaded and consequently
the window is immediately hidden. Then, when the window is removed
later it reappears in order to animate away. The consequent flash
is undesirable.

Bug: 7242373 fixed.
Change-Id: I56966bd9060124be372702090f86b29b4deea8c0
indowManagerService.java
031e9d2e21797fd668404be407dcc625f3b149c1 03-Oct-2012 Jeff Brown <jeffbrown@google.com> Merge changes I0ed9ba00,Ia8c6d7fe into jb-mr1-dev

* changes:
Fix bug removing all windows that belong to a display.
Add some missing debug output.
cb882f90e4305bd40d7219707bc1796319e9c80e 03-Oct-2012 Jeff Brown <jeffbrown@google.com> Fix bug removing all windows that belong to a display.

Removing one window causes its subwindows to also be removed.
We have to be careful when traversing the window list
because multiple windows may be removed at a time so we
don't get IndexOutOfBoundsException due to the window
list changing in unexpected ways.

Bug: 7273702
Change-Id: I0ed9ba00c325ad178ab28919ce2e763cb6fd38ba
indowManagerService.java
d5523dc7b7318f2774109dd30716ff7b74560e61 02-Oct-2012 Craig Mautner <cmautner@google.com> Call Surface.destroy when Display is removed.

Prevents leaked Surfaces.

Bug: 7272421.
Change-Id: I6c87eb11bb0bedcf8de451b04477c70c248f905d
imAnimator.java
imSurface.java
indowAnimator.java
6e2bee75cea415621165698fdd9ce857bbb8872e 01-Oct-2012 Jeff Sharkey <jsharkey@android.com> Migrate more System and Secure settings to Global.

Includes telephony, WindowManager, PackageManager, and debugging
settings. Update API to point towards moved values.

Bug: 7231764, 7231252, 7231156
Change-Id: I5828747205708872f19f83a5bc821ed0a801cb79
indowManagerService.java
1e3b98d47df596d0c4eadbdf60143709f8465b28 01-Oct-2012 Jeff Brown <jeffbrown@google.com> New internal API to eliminate poke locks.

Added a new WindowManager.LayoutParams inputFeatures flag
to disable automatic user activity behavior when an input
event is sent to a window.

Added a new WindowManager.LayoutParams field userActivityTimeout.

Bug: 7165399
Change-Id: I204eafa37ef26aacc2c52a1ba1ecce1eebb0e0d9
indowManagerService.java
65d11b3eeff395011a2c6b56eb117fd3c4881c1a 01-Oct-2012 Craig Mautner <cmautner@google.com> Only inform DisplayManager of visible content.

WindowManager was notifying DisplayManager of content if any window
existed on a display. Now the window must be visible and we must not
be showing a Dream or the Keyguard.

Bug: 7214060.
Change-Id: I9ce4a49aabfbac22ff1e39a837199ce35b9f7503
indowManagerService.java
fe37f8f51d90fc4c6230e54dcd1270df5fcc6be3 30-Sep-2012 Dianne Hackborn <hackbod@google.com> Work on issue #6949468: android.dpi.cts.ConfigurationScreenLayoutTest...

...#testScreenLayout failures on JO

This doesn't actually fix it; I have concluded that the test is broken
(the platform is correctly reporting that this is a NOT LONG device
because in portrait once you account for the status bar and system
bar our size is 880dp high and 600dp wide, which is not enough for us
to be in the LONG config).

However while working on this I noticed that the code for computing
the configuration of the external display was wrong. I have fixed
that by putting this code for computing these parts of the configuration
in a common place that both the window manager and external display
code can use.

Change-Id: Ic6a84b955e9ec345a87f725203a29e4712dac0ad
indowManagerService.java
c36c49ee83123d6083c05a3e333ac43a13f664cd 30-Sep-2012 Craig Mautner <cmautner@google.com> Changing debug for b/7094175.

Fixes bug 7094175 (but not really).

Change-Id: Ice2abb93f479ea0bda931e9643710668c25aa285
indowManagerService.java
3dc0b80dc6e6aa156eea4d737cdeaad96aa1125a 28-Sep-2012 Craig Mautner <cmautner@google.com> Merge "Fix layout state issues." into jb-mr1-dev
812d2ca475e88d4e52870a4eeeb096a411f0f077 28-Sep-2012 Craig Mautner <cmautner@google.com> Fix layout state issues.

- Restore test of hidden to isGoneForLayoutLw(), without that
we return false when setAppVisibility(true) is called which leads
to early layout of windows. Particulary on return from full screen
to non-full we lay out once before recognizing that the status bar
should be back and then again once the status bar appears causing
a jump. Fixes bug 6470541.

- Add a new test for configuration size changes to gone or hidden
windows. This forces a layout call to these windows which informs
them of the new size even though they are not shown until later.
In particular this keeps windows that were in the background
during a rotation from using their old boundaries on return.
Fixes bug 6615859.

- Consolidate WindowState.mConfiguration tests into WindowState.

Change-Id: I7a82ce747a3fcf7d74104dc23f1532efe64bd767
indowManagerService.java
indowState.java
bf6f6f9de72c9fd15e6bda9f228c05a9b37d6324 26-Sep-2012 Jeff Brown <jeffbrown@google.com> Update references to migrated global settings.

Fixed one setting that was migrated but not marked deprecated.

Removed a hidden setting that is no longer used by the new
power manager service.

Bug: 7231172
Change-Id: I332f020f876a18d519a1a20598a172f1c98036f7
indowManagerService.java
28e0b09a3d22de80cca05499e98a23d5dd82fa15 25-Sep-2012 Jeff Brown <jeffbrown@google.com> Fix typo.

Bug: 7183618
Change-Id: I0c761fc7f55b3f182007cb4d50cbfdce309f844a
indowStateAnimator.java
3671410b9e09e1c5ec05dfc58651a8efaa7790dd 25-Sep-2012 Jeff Brown <jeffbrown@google.com> Fix dialogs on secondary displays.

Bug: 7183618
Change-Id: I65b650a0c423f3081c412a7341b7427b6ac85e24
indowStateAnimator.java
14a9f2b9d23976b7aae5330b56c633a03181c710 24-Sep-2012 Jeff Brown <jeffbrown@google.com> Fix drag and drop surfaces on secondary displays.

Bug: 7183618
Change-Id: I4ef746916aad984640f1eb3b3c71b1e34595aabd
ession.java
2033763bb18913773eea3ac82bf9dbb053444ac6 24-Sep-2012 Jeff Brown <jeffbrown@google.com> Allow a window on a secondary display to have focus.

If any window on the default display has focus, then it
gets focus as usual. If no window on the default display
has focus, then we consider windows on the secondary display.

In the future we will need more elaborate schemes for
managing focus across multiple displays, but this is enough
for testing purposes now.

Bug: 7183618
Change-Id: I21ddb9904eb9e574e42d28743aeca51f4ffebf64
indowManagerService.java
ac439e57a795d48e287ea51a9bd999244a9b0e65 21-Sep-2012 Craig Mautner <cmautner@google.com> Eliminate potential for NPE in WindowAnimator.

Fixes bug 7209850.

Change-Id: I8c8751ab240ea389a2a779c94c05fe786ca8762a
indowAnimator.java
a9d131c30878cacdaeacb4f43a82a7cc5b872453 21-Sep-2012 Jeff Brown <jeffbrown@google.com> Disentangle input manager service startup.

We will be adding additional callbacks for other components.
This change makes it clearer how the input manager is started
and where the callbacks are initialized.

Bug: 6548391
Change-Id: I4b2a61482126a12b7cf11fafe513f846c76c11e5
nputMonitor.java
indowManagerService.java
6704a48bd06f01d2933f83e9b5eda4ed9846bab7 19-Sep-2012 Craig Mautner <cmautner@google.com> Merge "Fixes to Starting window and Wallpaper windows." into jb-mr1-dev
f1b674197577e815040cd75ef86d611965d603ad 19-Sep-2012 Craig Mautner <cmautner@google.com> Fix deadlock in LockPatternUtils by using local id.

Activity manager now updates window manager's current user id
directly and immediately rather than waiting for a broadcast
update. Window manager passes this through policy to the
KeyguardViewMediator and into LockPatternUtils. LockPatternUtils
no longer goes to Activity to get the current user id if it finds
that its local id is non-default.

Fixes bug 7193726.

Change-Id: Id5613e7a9fe9e5b49e83c26b74504f587c3998c2
indowManagerService.java
indowState.java
8863cca57d8c901a2da0edc422b653ae68849313 19-Sep-2012 Craig Mautner <cmautner@google.com> Fixes to Starting window and Wallpaper windows.

- Checking for found wallpaper to match either mWallpaperTarget
or mLowerWallpaperTarget keeps from swapping the layers while
transitioning between two wallpaper activities.

- Fade out RecentsActivity while bringing up selected activity. This
keeps the RecentsActivity from showing through a launching wallpaper
activity.

- When moving a starting window from one activity to another clear
the startingDisplayed flag in the old activity.

- When moving a starting window from one activity to another assign
the new activity's mAppAnimator to the starting window's mWinAnimator.

- Only treat a wallpaper transition as entering if the mWallpaperTarget
is visible and not being hidden. Keeps from assigning the wrong
animation when activities are launched back to back and the
mWallpaperTarget is still animating away.

Fixes bug 7148089.

Change-Id: Idd405b1ba113f3345ca2116d141b474abe5bd4c0
indowManagerService.java
indowStateAnimator.java
599dd7ce9adf8ca067cefb0b191a5ac20ec35a79 15-Sep-2012 Amith Yamasani <yamasani@google.com> DevicePolicyManager per user

Bug: 7136483

Store device policy information for each user and apply them when user switches.

Global proxy can only be controlled by owner.
Camera restriction applies to all users, if any one has an admin that disables it.
Storage encryption can only be controlled by owner, although other users can query the state.
Wipe data will only remove the user if non-zero, wipe the device, if zero.

Change-Id: I359be46c1bc3828fd13d4be3228f11495081c8f2
eyguardDisableHandler.java
178af5948d71c841278081c712506f7a7fca34b9 17-Sep-2012 Craig Mautner <cmautner@google.com> Add debug to help with b/7135184.

Change-Id: I0d3b60b3e123d35bd557d47e3344ebea1964380b

Conflicts:

services/java/com/android/server/wm/WindowAnimator.java
indowAnimator.java
indowState.java
a91f9e2959ee905f97977a88fe45bde6ffb874b0 15-Sep-2012 Craig Mautner <cmautner@google.com> Make more items per-Display.

Moving DimSurfaces, DimBackgrounds and Rotation surfaces into
per-display class.

Fixes bug 7167028.

Change-Id: I7408b3a27b5a7a8d0d59e9d6109c002fc627e536
ppWindowAnimator.java
imAnimator.java
isplayContent.java
indowAnimator.java
indowManagerService.java
indowStateAnimator.java
d65afc65ea5b2bf83889dd88a9c94f895da8aece 16-Sep-2012 Dianne Hackborn <hackbod@google.com> Merge "More multi-user stuff." into jb-mr1-dev
5dc5a00e7ebadc085ded7e29feacd17e53698486 16-Sep-2012 Dianne Hackborn <hackbod@google.com> More multi-user stuff.

- New public APIs to find out when a user goes to the foreground,
background, and is first initializing.
- New activity manager callback to be involved in the user switch
process, allowing other services to let it know when it is safe
to stop freezing the screen.
- Wallpaper service now implements this to handle its user switch,
telling the activity manager when it is done. (Currently this is
only handling the old wallpaper going away, we need a little more
work to correctly wait for the new wallpaper to get added.)
- Lock screen now implements the callback to do its user switch. It
also now locks itself when this happens, instead of relying on
some other entity making sure it is locked.
- Pre-boot broadcasts now go to all users.
- WallpaperManager now has an API to find out if a named wallpaper is
in use by any users.

Change-Id: I27877aef1d82126c0a1428c3d1861619ee5f8653
indowManagerService.java
5b329e8501486037dd30a5068d96131185893db6 14-Sep-2012 Dianne Hackborn <hackbod@google.com> Fix debug log.

Change-Id: If65abf43ee7a455b12d49b5800657dbf4489e5b9
isplayContent.java
3a1136eeeb6c2b30b0528e30c41ce36bda35c531 14-Sep-2012 Jeff Brown <jeffbrown@google.com> Merge "We don't need black frames for forced display size." into jb-mr1-dev
dc5a6384e7a82ac732c483e32b7acce6dfa443a8 14-Sep-2012 Craig Mautner <cmautner@google.com> Improve debug output.

Change-Id: I94f46e1e373dc9e67bfbc1d1847399c119ec2fcb
indowManagerService.java
76a3cb9773d01079de447c16741f628d19108087 14-Sep-2012 Jeff Brown <jeffbrown@google.com> We don't need black frames for forced display size.

Now that surface flinger lets us set a display projection,
the window manager no longer needs to place a black frame
around the content when simulating a different display size.

Bug: 7139798
Change-Id: I6014390f47444633d434ccf918cee5ff7b502869
indowAnimator.java
indowManagerService.java
4be297545362e547c2168c5d031be9b335101957 13-Sep-2012 Craig Mautner <cmautner@google.com> Merge "Rename variables and methods for clarity." into jb-mr1-dev
5c0e78c445ed4b12fec295f1c7f0799d1e79bf72 13-Sep-2012 Craig Mautner <cmautner@google.com> Rename variables and methods for clarity.

Change-Id: I2a1b2f2d5605123e55f264d45b1e7292852f2a7f
ragState.java
indowManagerService.java
faecd09cb72a78b6ea2dc1d1e16a8e99ab414b6f 13-Sep-2012 Craig Mautner <cmautner@google.com> Merge "Only consider hiddenRequested when deciding layout" into jb-mr1-dev
c516a5c58ff505d7c53d79a174aa118f65cac366 13-Sep-2012 Craig Mautner <cmautner@google.com> Only consider hiddenRequested when deciding layout

This change removes the test for hidden when deciding whether to
do a layout. So layout begins as soon as hiddenRequested occurs.
Since hidden is cleared when animations starts considering hidden
in the layout decision will delay layout until it is too late.

In particular we were not executing a relayout on return to an
activity even though the screen had been rotated while away.

Fixes bug 6615859.

Change-Id: I5fb0b4bf2c253b910a7a192da04419236d8f09d9
indowState.java
0bb4d078afeadf4996240d0ac41514c28e5f795a 12-Sep-2012 Svetoslav Ganov <svetoslavganov@google.com> Merge "Screen magnifier should handle window rebuilds correctly." into jb-mr1-dev
9b4125e435b6bc8f8bd2f6e569d9b0b296ab16ef 12-Sep-2012 Svetoslav Ganov <svetoslavganov@google.com> Screen magnifier should handle window rebuilds correctly.

1. The way for computing the magnified region was simplistic and
incorrect. It was ignoring window layering resulting in broken
behavior. For example, if the IME is up, then the everything else
is magnifed and the IME not. Now the keyguard appears and covers
the IME but the magnified region does not expand while it would
since the keyguard completely covers the not magnified IME window.

bug:7138937

Change-Id: I21414635aefab700ce75d40f3e913c1472cba202
indowManagerService.java
9ba2a188919e6e5bf8c042b26527fc090de677ef 11-Sep-2012 Jeff Brown <jeffbrown@google.com> Merge changes I4ad08873,If0562677,I5fe6ba32 into jb-mr1-dev

* changes:
Don't auto-discover peers until scan requested.
Use wfdInfo to filter available sinks.
Allow adb shell am display-size to use bigger sizes.
9d9ece3c1e16001b63244459cdf4b428f4272d2e 11-Sep-2012 Dianne Hackborn <hackbod@google.com> Animations for user switching.

The window manager now has a facility to provide a full-screen
animation, which the activity manager uses every time a user
switch happens.

The current animation is just a simple dumb slide until we get
a design from UX.

Also some cleanup: moved the portrait task animations to the
default config so we always have an animation for them, and finally
got the java symbol stuff out of public.xml.

Change-Id: I726f77422b2ef5f2d98f961f8da003e045f0ebe8
creenRotationAnimation.java
indowManagerService.java
43aa15912891930833edfc101615a9c881de54a1 11-Sep-2012 Jeff Brown <jeffbrown@google.com> Allow adb shell am display-size to use bigger sizes.

We now support scaling the logical display to fit the
physical display, whatever size it is. So we can allow
adb shell am display-size to use more or less arbitrary sizes
although we do enforce an upper and lower bound to
protect the user.

Change-Id: I5fe6ba32ad1f9e4fbcd6915f7d36850b987bbcc0
indowManagerService.java
e215f26f74744535bcc0209f2a0a0e4a9f36fd82 11-Sep-2012 Jeff Brown <jeffbrown@google.com> Fix adb am display-size.

There were several problems resulting from the use of
mDefaultDisplay before displayReady() was called.
As it happens, we don't need mDefaultDisplay becase we
can get the information from the default display content.

Also modified the Configuration calculations to never
choose a SQUARE orientation. The constant is deprecated
and documented as no longer used, so we should make that
be the case.

Change-Id: I326ed7100030a81e24411e898e5243f28895ea22
indowManagerService.java
83d616a9c7b9505153d258511eb5c16b552e268d 10-Sep-2012 Jeff Brown <jeffbrown@google.com> Make input system aware of multiple displays.

The input system needs to know about the window that has
focus, even if it is on a secondary display. So now we
send it the list of all windows and indicate which display
they are on. We filter the list of windows as necessary
when delivering touch events.

To keep things simple, monitor input channels and input
filters are not supported except on the main display.
We also do not pass the display id to applications; it is
only used inside the input system for now.

Properly scale touch coordinates based on the viewport.
This will be needed to ensure that touch works on external
display as well as when the internal display is being used
to simulate a different resolution.

Change-Id: I1815579a52fcc852c519b5391fc7ab8767c2dc59
nputMonitor.java
indowManagerService.java
d728bf514f257670fcb9aa22c6eaf97626072c93 09-Sep-2012 Jeff Brown <jeffbrown@google.com> Make display manager tell input system about viewports.

The window manager is no longer responsible for telling the
input system about the display viewport.

Change-Id: I932882bae55decef55f25093bb2a7ebac1620bb1
indowManagerService.java
72018294cc4e3cc5feb7affdec4bf4bb2368ac41 08-Sep-2012 Jeff Brown <jeffbrown@google.com> Merge "Make mirroring automatic based on Windows on display." into jb-mr1-dev
efb735dbafd131cd1e8f4af40274c16443e39078 08-Sep-2012 Craig Mautner <cmautner@google.com> Fix incorrect indexing calculation.

Fixes bug 7129583.

Change-Id: Ia395a7acded05686668d5b3cee09d49025a9f339
indowManagerService.java
722285e199a9fc74b9b3343b7505c00666848c88 07-Sep-2012 Craig Mautner <cmautner@google.com> Make mirroring automatic based on Windows on display.

Tell the display manager whenever a given logical display
contains interesting windows. If so, then the display
manager arranges to show that content on a physical display,
otherwise it ignores the logical display and makes its
associated primary physical display mirror the default
display.

Assign DisplayContents when Displays are added, remove them when
Displays are removed, and update the DisplayInfo when Displays
change.

Change-Id: I36e08ec538055acabe1e24cdd12c40de4e47a158
isplayContent.java
indowManagerService.java
1cf70bbf96930662cab0e699d70b62865766ff52 06-Aug-2012 Svetoslav Ganov <svetoslavganov@google.com> Screen magnification - feature - framework.

This change is the initial check in of the screen magnification
feature. This feature enables magnification of the screen via
global gestures (assuming it has been enabled from settings)
to allow a low vision user to efficiently use an Android device.

Interaction model:

1. Triple tap toggles permanent screen magnification which is magnifying
the area around the location of the triple tap. One can think of the
location of the triple tap as the center of the magnified viewport.
For example, a triple tap when not magnified would magnify the screen
and leave it in a magnified state. A triple tapping when magnified would
clear magnification and leave the screen in a not magnified state.

2. Triple tap and hold would magnify the screen if not magnified and enable
viewport dragging mode until the finger goes up. One can think of this
mode as a way to move the magnified viewport since the area around the
moving finger will be magnified to fit the screen. For example, if the
screen was not magnified and the user triple taps and holds the screen
would magnify and the viewport will follow the user's finger. When the
finger goes up the screen will clear zoom out. If the same user interaction
is performed when the screen is magnified, the viewport movement will
be the same but when the finger goes up the screen will stay magnified.
In other words, the initial magnified state is sticky.

3. Pinching with any number of additional fingers when viewport dragging
is enabled, i.e. the user triple tapped and holds, would adjust the
magnification scale which will become the current default magnification
scale. The next time the user magnifies the same magnification scale
would be used.

4. When in a permanent magnified state the user can use two or more fingers
to pan the viewport. Note that in this mode the content is panned as
opposed to the viewport dragging mode in which the viewport is moved.

5. When in a permanent magnified state the user can use three or more
fingers to change the magnification scale which will become the current
default magnification scale. The next time the user magnifies the same
magnification scale would be used.

6. The magnification scale will be persisted in settings and in the cloud.

Note: Since two fingers are used to pan the content in a permanently magnified
state no other two finger gestures in touch exploration or applications
will work unless the uses zooms out to normal state where all gestures
works as expected. This is an intentional tradeoff to allow efficient
panning since in a permanently magnified state this would be the dominant
action to be performed.

Design:

1. The window manager exposes APIs for setting accessibility transformation
which is a scale and offsets for X and Y axis. The window manager queries
the window policy for which windows will not be magnified. For example,
the IME windows and the navigation bar are not magnified including windows
that are attached to them.

2. The accessibility features such a screen magnification and touch
exploration are now impemented as a sequence of transformations on the
event stream. The accessibility manager service may request each
of these features or both. The behavior of the features is not changed
based on the fact that another one is enabled.

3. The screen magnifier keeps a viewport of the content that is magnified
which is surrounded by a glow in a magnified state. Interactions outside
of the viewport are delegated directly to the application without
interpretation. For example, a triple tap on the letter 'a' of the IME
would type three letters instead of toggling magnified state. The viewport
is updated on screen rotation and on window transitions. For example,
when the IME pops up the viewport shrinks.

4. The glow around the viewport is implemented as a special type of window
that does not take input focus, cannot be touched, is laid out in the
screen coordiates with width and height matching these of the screen.
When the magnified region changes the root view of the window draws the
hightlight but the size of the window does not change - unless a rotation
happens. All changes in the viewport size or showing or hiding it are
animated.

5. The viewport is encapsulated in a class that knows how to show,
hide, and resize the viewport - potentially animating that.
This class uses the new animation framework for animations.

6. The magnification is handled by a magnification controller that
keeps track of the current trnasformation to be applied to the screen
content and the desired such. If these two are not the same it is
responsibility of the magnification controller to reconcile them by
potentially animating the transition from one to the other.

7. A dipslay content observer wathces for winodw transitions, screen
rotations, and when a rectange on the screen has been reqeusted. This
class is responsible for handling interesting state changes such
as changing the viewport bounds on IME pop up or screen rotation,
panning the content to make a requested rectangle visible on the
screen, etc.

8. To implement viewport updates the window manger was updated with APIs
to watch for window transitions and when a rectangle has been requested
on the screen. These APIs are protected by a signature level permission.
Also a parcelable and poolable window info class has been added with
APIs for getting the window info given the window token. This enables
getting some useful information about a window. There APIs are also
signature protected.

bug:6795382

Change-Id: Iec93da8bf6376beebbd4f5167ab7723dc7d9bd00
isplayContent.java
agnificationSpec.java
ession.java
indowManagerService.java
indowState.java
indowStateAnimator.java
69b0818179201fadc9d2a384d692d8ae4aecd85c 05-Sep-2012 Craig Mautner <cmautner@google.com> Limit certain actions to default Display.

Stop messing up PhoneWindowManager state when passing in windows
from non-default Display.

Change-Id: I472f7a13c5e2241fbf1f79ae1c8045fd92af016c
isplayContent.java
indowAnimator.java
indowManagerService.java
indowState.java
indowStateAnimator.java
7950d081ac945d97427264f2a0531607097c2c71 05-Sep-2012 Craig Mautner <cmautner@google.com> Merge "Make mLayoutNeeded per-Display." into jb-mr1-dev
19d59bc5ad877e9b1544ab13a08282b7b384fefb 04-Sep-2012 Craig Mautner <cmautner@google.com> Make mLayoutNeeded per-Display.

Switch from a global mLayoutNeeded to one for each Display so that
we don't run layout on Displays that haven't changed.

Change-Id: Ib65c5c667933cceacc46b94f4e6e6bd613d5cb35
indowManagerService.java
indowState.java
indowStateAnimator.java
035ce2ca92742894f7f906c93d7d217c647aa19a 05-Sep-2012 Fabrice Di Meglio <fdimeglio@google.com> Merge "Add support for "-rtl" in resources" into jb-mr1-dev
ea3a09a5b9c8ae56b0c4975c7a7039a05d4c0b3c 04-Sep-2012 Craig Mautner <cmautner@google.com> Remove single pass actions from display loop.

The WindowAnimator loop over each Display contained actions that
only needed to be done one time but were instead done once per loop.

Change-Id: Ia916b08cdb7670686e6295dbcef6a5ff27474099
imAnimator.java
indowAnimator.java
76a7165719dc3ccce902953f6244e2c2668aa753 04-Sep-2012 Craig Mautner <cmautner@google.com> Change layout inner loop order for multi display.

The inner loop that ran over each display had a few problems:
- The Surface transaction was starting and stopping between each
display.
- The layout change bits were being applied globally so all
displays were layed out when only individual displays needed to be.
- Wallpaper and input actions were being applied each time through
the display loop rather than once only for the default display.

Change-Id: I924252bab28c426222a4bb73693accc4b21cecbe
ppWindowAnimator.java
isplayContent.java
indowAnimator.java
indowManagerService.java
indowStateAnimator.java
398341927f3dca68d71024483aa276d10af4c080 02-Sep-2012 Craig Mautner <cmautner@google.com> Minor refactors.

- Refactor DragState to take Display instead of DisplayContent.
- Rename xxxAnimationLw methods in WindowManagerPolicy to xxxPostLayout
to reflect animation refactoring.

Change-Id: I502f2aa45a699ad395a249a12abf9843294623f0
isplayContent.java
ragState.java
ession.java
indowManagerService.java
4ed8fe75e1dde1a2b9576f3862aecc5a572c56b5 31-Aug-2012 Jeff Brown <jeffbrown@google.com> More improvements to the display manager.

Added more complete support for logical displays with
support for mirroring, rotation and scaling.

Improved the overlay display adapter's touch interactions.

A big change here is that the display manager no longer relies
on a single-threaded model to maintain its synchronization
invariants. Unfortunately we had to change this so as to play
nice with the fact that the window manager wants to own
the surface flinger transaction around display and surface
manipulations. As a result, the display manager has to be able
to update displays from the context of any thread.

It would be nice to make this process more cooperative.
There are already several components competing to perform
surface flinger transactions including the window manager,
display manager, electron beam, overlay display window,
and mouse pointer. They are not manipulating the same surfaces
but they can collide with one another when they make global
changes to the displays.

Change-Id: I04f448594241f2004f6f3d1a81ccd12c566bf296
creenRotationAnimation.java
indowAnimator.java
indowManagerService.java
bd6e1500aedc5461e832f69e76341bff0e55fa2b 28-Aug-2012 Jeff Brown <jeffbrown@google.com> Add initial multi-display support.

Split the DisplayManager into two parts. One part is bound
to a Context and takes care of Display compatibility and
caching Display objects on behalf of the Context. The other
part is global and takes care of communicating with the
DisplayManagerService, handling callbacks, and caching
DisplayInfo objects on behalf of the process.

Implemented support for enumerating Displays and getting
callbacks when displays are added, removed or changed.

Elaborated the roles of DisplayManagerService, DisplayAdapter,
and DisplayDevice. We now support having multiple display
adapters registered, each of which can register multiple display
devices and configure them dynamically.

Added an OverlayDisplayAdapter which is used to simulate
secondary displays by means of overlay windows. Different
configurations of overlays can be selected using a new
setting in the Developer Settings panel. The overlays can
be repositioned and resized by the user for convenience.

At the moment, all displays are mirrors of display 0 and
no display transformations are applied. This will be improved
in future patches.

Refactored the way that the window manager creates its threads.
The OverlayDisplayAdapter needs to be able to use hardware
acceleration so it must share the same UI thread as the Keyguard
and window manager policy. We now handle this explicitly as
part of starting up the system server. This puts us in a
better position to consider how we might want to share (or not
share) Loopers among components.

Overlay displays are disabled when in safe mode or in only-core
mode to reduce the number of dependencies started in these modes.

Change-Id: Ic2a661d5448dde01b095ab150697cb6791d69bb5
indowManagerService.java
dc7d8008eceb08850142fcd77a97404b4fbe688d 28-Aug-2012 Jeff Brown <jeffbrown@google.com> Merge "Add plumbing for new surface flinger display API." into jb-mr1-dev
64a55af0ac700baecb0877235eb42caac59a3560 26-Aug-2012 Jeff Brown <jeffbrown@google.com> Add plumbing for new surface flinger display API.

Cleaned up the implementation of Surface and SurfaceSession
to use more consistent naming and structure.

Added JNI for all of the new surface flinger display API calls.

Enforced the requirement that all Surfaces created by
the window manager be named.

Updated the display manager service to use the new methods.

Change-Id: I2a658f1bfd0437e1c6f9d22df8d4ffcce7284ca2
lackFrame.java
imAnimator.java
imSurface.java
creenRotationAnimation.java
trictModeFlash.java
atermark.java
indowManagerService.java
indowStateAnimator.java
3486b9696d81da8873ef595daa35b2d39fc83146 27-Aug-2012 Craig Mautner <cmautner@google.com> Fix drag bug.

Previous assumption -- that the drag window was defined at time of
DragState construction -- was false. The window, and hence the
Display, is not known until performDrag. This change delays assigning
DragState.mDisplayContent until the window/Display is known.

Fixes bug 7028203.

Change-Id: I5799005652c484ff0c45ab340ce3b9e4b784883e
ragState.java
ession.java
5f7979993979466c79ab4f38d83c6f2aca361662 16-Jun-2012 Fabrice Di Meglio <fdimeglio@google.com> Add support for "-rtl" in resources

- fix bug #7035019 Need to have "-rtl" support for Resource

Change-Id: Ic82145c2ac672729d8a6c695a5f343276a1a0a2c
indowManagerService.java
5642a48fbba84cc0b646aea1b9f407f046b70be9 23-Aug-2012 Craig Mautner <cmautner@google.com> Fix unprotected variable access by serializing.

The variables mKeyguardDisabled and mAllowDisableKeyguard were
being modified unprotected by mKeyguardTokenWatcher. Fix is to
serialize accesses to these variables by only referencing them
from the same Handler that mKeyguardTokenWatcher uses. Eliminates
synchronization blocks and mKeyguardDisabled variable.

Fixes bug 7045624.

Change-Id: I6355aa393507408296316bee61e178dc81e2a172
eyguardDisableHandler.java
indowManagerService.java
6715d1effaa70abf261112d2771d4d555cc109c2 23-Aug-2012 Craig Mautner <cmautner@google.com> Merge "Clean up displayId and layerStack usage." into jb-mr1-dev
b47bbc3d80badb94229bc4ce7a2d5006faa9ef15 23-Aug-2012 Craig Mautner <cmautner@google.com> Clean up displayId and layerStack usage.

Make better use of Display object by saving it in DisplayContent.
Only use layerStack when referring to Surfaces. Get displayId from
default Display or default DisplayContent. Remove warnings.

Fixes bug 7038151.

Change-Id: Ie493f0f5e755dc9b91ee969ff561c2a098283ead
lackFrame.java
imAnimator.java
imSurface.java
isplayContent.java
creenRotationAnimation.java
indowAnimator.java
indowManagerService.java
indowStateAnimator.java
259328c04ce16c554b48a14f68d8af94dc54d7ec 22-Aug-2012 Craig Mautner <cmautner@google.com> Eliminate special battery calls by WindowManager

Previous to this change the WindowManager was notifying the
BatteryDtatsService about windows that keep the screen on. WM used a
custom WakeLock tag to indicate to PowerManagerService that it had
already notified the BatteryStatsService.

This change eliminates WindowManager notifying the BatteryStatsService
and lets PowerManagerService do the job.

Fixes bug 7030326.

Change-Id: I666dc6ef8f094b8d3d109fea6876be058e057b4f
indowManagerService.java
7e877fa00c6b093a0fe734e5d3bf23b5b2d6411e 22-Aug-2012 Craig Mautner <cmautner@google.com> Merge "Fix to allow SYSTEM_UID to display windows." into jb-mr1-dev
a2d7b1117abc23a3ff0ccda15a2f9138aaa7f4fc 22-Aug-2012 Craig Mautner <cmautner@google.com> Fix to allow SYSTEM_UID to display windows.

Was not previously checking to make sure that the appId was not
SYSTEM_UID (1000). This caused certain system windows to fail to
appear.

Change-Id: I939dc2f8a256acb84b7c413c7e00003a89aff6d4
indowState.java
indowStateAnimator.java
de1d96c736730c2a99a225311b9211a34042f9d4 21-Aug-2012 Craig Mautner <cmautner@google.com> Merge "Hide non user app windows from other users." into jb-mr1-dev
4b72463d7cb807912ca359f3b5a160f59d985c1d 21-Aug-2012 Jeff Brown <jeffbrown@google.com> Merge "Add factory test feature to shut off on long press power." into jb-mr1-dev
9dc52bc44c94854fcd3384a045b4b862e30e25de 06-Aug-2012 Craig Mautner <cmautner@google.com> Hide non user app windows from other users.

When transitioning between old user and new user application windows
from the old user may not be shown because only one user's windows
can be shown at a time.

Change-Id: I4e17b36c9100c9457cc6eb3cb3b77f3a94fa2b41
indowManagerService.java
indowState.java
indowStateAnimator.java
9a538ee7bde42ad36f43edc48594282d98e191a4 20-Aug-2012 Jeff Brown <jeffbrown@google.com> Add factory test feature to shut off on long press power.

Bug: 6847329
Change-Id: I2f4f975c3af2d13ccc06812a5a42e79032700862
indowManagerService.java
ec42c3c35fd4c16e1823cfd0e5b589ed2d205aa7 20-Aug-2012 Craig Mautner <cmautner@google.com> Merge "Ensure that mAllAppWinAnimators is not null." into jb-mr1-dev
bea12bdc2e6d2b1158c1faa58a8197d5e971a817 20-Aug-2012 Craig Mautner <cmautner@google.com> Ensure that mAllAppWinAnimators is not null.

The method showAllWindowsLocked can be called from the layout
side of the WindowManagerService. Previously the AppWindowAnimator
member mAllAppWinAnimators was created on the animation side. If
showAllWindowsLocked was called before the first animation of the
activity an NPE would occur. This fix creates mAllAppWinAnimators
when the AppWindowAnimator is created and also updates it with
current values before calling showAllWindowsLocked.

Fixes bug 6917136.

Change-Id: If3ace22022b65c6888bbb9d0575efe9a45d86475
ppWindowAnimator.java
indowAnimator.java
indowManagerService.java
98365d7663cbd82979a5700faf0050220b01084d 20-Aug-2012 Jeff Brown <jeffbrown@google.com> Refactor for multi-display support.

Split WindowManagerImpl into two parts, the WindowManager
interface implementation remains where it is but the global
communications with the window manager are now handled by
the WindowManagerGlobal class. This change greatly simplifies
the challenge of having separate WindowManager instances
for each Context.

Removed WindowManagerImpl.getDefault(). This represents the
bulk of this change. Most of the usages of this method were
either to perform global functions (now handled by WindowManagerGlobal)
or to obtain the default display (now handled by DisplayManager).

Explicitly associate each new window with a display and make
the Display object available to the View hierarchy.

Add stubs for some new display manager API features.

Start to split apart the concepts of display id and layer stack.
since they operate at different layers of abstraction.
While it's true that each logical display uniquely corresponds to a
surface flinger layer stack, it is not necessarily the case that
they must use the same ids. Added Display.getLayerStack()
and started using it in places where it was relatively easy to do.

Change-Id: I29ed909114dec86807c4d3a5059c3fa0358bea61
creenRotationAnimation.java
trictModeFlash.java
atermark.java
indowManagerService.java
indowStateAnimator.java
d2ae85d41ec1651dd1bf4c33fe31833ba5c5cff5 17-Aug-2012 Michael Jurka <mikejurka@google.com> Merge "Adding a thumbnail scale down animation" into jb-mr1-dev
832cb229cd748505c90f74ae8154fc3557d61a73 13-Apr-2012 Michael Jurka <mikejurka@google.com> Adding a thumbnail scale down animation

Recents animation will temporarily look a bit
wrong, but a subsequent change will fix this.
indowManagerService.java
a1a1a1d6caddc25c4e249e5b5030d6a3ed861dd9 16-Aug-2012 Dianne Hackborn <hackbod@google.com> Merge "Fix issue #6955586: No navigation bar in landscape on tablets" into jb-mr1-dev
5a052a4d19556700a21286029f37e1cc37f217b1 16-Aug-2012 Dianne Hackborn <hackbod@google.com> Fix issue #6955586: No navigation bar in landscape on tablets

The window manager was telling the activity manager to evaluate
the new configuration when first initializing the display, before
actually setting mDisplay, so it failed creating that first config.

Change-Id: I6e94fcf55b0587ccf15a5fd7ecbe2c9a0c201b96
indowManagerService.java
9630704ed3b265f008a8f64ec60a33cf9dcd3345 28-Jul-2012 Jeff Brown <jeffbrown@google.com> Power manager rewrite.

The major goal of this rewrite is to make it easier to implement
power management policies correctly. According, the new
implementation primarily uses state-based rather than event-based
triggers for applying changes to the current power state.

For example, when an application requests that the proximity
sensor be used to manage the screen state (by way of a wake lock),
the power manager makes note of the fact that the set of
wake locks changed. Then it executes a common update function
that recalculates the entire state, first looking at wake locks,
then considering user activity, and eventually determining whether
the screen should be turned on or off. At this point it may
make a request to a component called the DisplayPowerController
to asynchronously update the display's powe state. Likewise,
DisplayPowerController makes note of the updated power request
and schedules its own update function to figure out what needs
to be changed.

The big benefit of this approach is that it's easy to mutate
multiple properties of the power state simultaneously then
apply their joint effects together all at once. Transitions
between states are detected and resolved by the update in
a consistent manner.

The new power manager service has is implemented as a set of
loosely coupled components. For the most part, information
only flows one way through these components (by issuing a
request to that component) although some components support
sending a message back to indicate when the work has been
completed. For example, the DisplayPowerController posts
a callback runnable asynchronously to tell the PowerManagerService
when the display is ready. An important feature of this
approach is that each component neatly encapsulates its
state and maintains its own invariants. Moreover, we do
not need to worry about deadlocks or awkward mutual exclusion
semantics because most of the requests are asynchronous.

The benefits of this design are especially apparent in
the implementation of the screen on / off and brightness
control animations which are able to take advantage of
framework features like properties, ObjectAnimator
and Choreographer.

The screen on / off animation is now the responsibility
of the power manager (instead of surface flinger). This change
makes it much easier to ensure that the animation is properly
coordinated with other power state changes and eliminates
the cause of race conditions in the older implementation.

The because of the userActivity() function has been changed
so that it never wakes the device from sleep. This change
removes ambiguity around forcing or disabling user activity
for various purposes. To wake the device, use wakeUp().
To put it to sleep, use goToSleep(). Simple.

The power manager service interface and API has been significantly
simplified and consolidated. Also fixed some inconsistencies
related to how the minimum and maximum screen brightness setting
was presented in brightness control widgets and enforced behind
the scenes.

At present the following features are implemented:

- Wake locks.
- User activity.
- Wake up / go to sleep.
- Power state broadcasts.
- Battery stats and event log notifications.
- Dreams.
- Proximity screen off.
- Animated screen on / off transitions.
- Auto-dimming.
- Auto-brightness control for the screen backlight with
different timeouts for ramping up versus ramping down.
- Auto-on when plugged or unplugged.
- Stay on when plugged.
- Device administration maximum user activity timeout.
- Application controlled brightness via window manager.

The following features are not yet implemented:

- Reduced user activity timeout for the key guard.
- Reduced user activity timeout for the phone application.
- Coordinating screen on barriers with the window manager.
- Preventing auto-rotation during power state changes.
- Auto-brightness adjustment setting (feature was disabled
in previous version of the power manager service pending
an improved UI design so leaving it out for now).
- Interpolated brightness control (a proposed new scheme
for more compactly specifying auto-brightness levels
in config.xml).
- Button / keyboard backlight control.
- Change window manager to associated WorkSource with
KEEP_SCREEN_ON_FLAG wake lock instead of talking
directly to the battery stats service.
- Optionally support animating screen brightness when
turning on/off instead of playing electron beam animation
(config_animateScreenLights).

Change-Id: I1d7a52e98f0449f76d70bf421f6a7f245957d1d7
indowManagerService.java
ff7e6ef4f18ff94a9836492ff3ccd1ba7f6804f3 15-Aug-2012 Jeff Brown <jeffbrown@google.com> Apply ValueAnimator scale factor immediately in WM.

Normally the ValueAnimator scale factor is applied the first
time a ViewRootImpl window session is created but that may
be too late for animators created by system services that
start early in the boot process. So set the scale factor
immediately whenever the setting changes.

Also make ValueAnimator.getDurationScale() accessible (but @hide)
for custom animators that want to apply the same scale to
their animations.

Change-Id: I0f5a750ab5b014f63848445435d8dca86f2a7ada
indowManagerService.java
758143ecfedbe08cc6c4fed0ad8ad7a854194ca4 07-Aug-2012 Svetoslav Ganov <svetoslavganov@google.com> Window position not reported if the window is not moved.

1.If a window is shown but never moved the window window
is never notified for its current location. Therefore,
accessibility nodes do not contain correct bounds in
screen coordinates.

bug:6926295

Change-Id: I7df18b095d33ecafffced75aba9e4f4693b0c393
indowManagerService.java
dde331cebd87982faded6818ad5f9927ff994c96 03-Aug-2012 Dianne Hackborn <hackbod@google.com> We can now (kind-of) change screen density on the fly.

Preloaded drawables now have a density associated with them, so we
can load the correct drawable if we are using a different density.

Window manager now formally keeps track of the density for each
screen, allowing it to be overridden like you can already do with
size, and relies on this density to drive itself internally and
the configurations it reports.

There are a new set of Bitmap constructors where you provide a
DisplayMetrics so they can be constructed with the correct density.
(This will be for when you can have different windows in the same
app running at different densities.)

ActivityThread now watches for density changes, and pushes them
to the DENSITY_DEVICE and Bitmap global density values for that
process.

A new am command allows you to change the density.
isplayContent.java
indowManagerService.java
9de4936c99b979f6010440b043edc6d6142d1980 02-Aug-2012 Craig Mautner <cmautner@google.com> Add features to DisplayManager.

Added Surface.setDisplayId().
Added callbacks to DisplayManagerService.

Change-Id: Idd3f85f8ca1f1208962f1196efd6a3ab51c8c259
indowStateAnimator.java
4f67ba6ba4e861b287a3ff0323c107aa77f66264 02-Aug-2012 Craig Mautner <cmautner@google.com> Refactor DisplayManagerService to be functional.

Change-Id: Ieac1eca172be5dc5db45302d3afa26188acd4d6d
isplayContent.java
indowManagerService.java
437a0fbd57662e1d9d260da6f62ff83da2769a7e 02-Aug-2012 Craig Mautner <cmautner@google.com> Merge "Introduce multiple displays with DisplayContent." into jb-mr1-dev
59c009776dae5ccbdfb93d7151ff2065ca049dc3 30-Jul-2012 Craig Mautner <cmautner@google.com> Introduce multiple displays with DisplayContent.

Fix a couple of bugs that turned up.
Remove touch/focus from display. Add iterators for access.
Respond to comments. Remove TODOs, and some deviceId parameters.

Change-Id: Idcdb4f1979aa7b14634d450fd0333d6eff26994d
isplayContent.java
ragState.java
akeWindowImpl.java
nputMonitor.java
indowAnimator.java
indowManagerService.java
indowState.java
indowStateAnimator.java
908aecc3a63c5520d5b11da14a9383f885b7d126 01-Aug-2012 Dianne Hackborn <hackbod@google.com> Start moving away from DisplayMetrics.DENSITY_DEVICE.

This puts in most of the infrastructure needed to allow us to
switch between different densities at run time. The main remaining
uses of the global are to initialize the Bitmap object (not sure
what to do about that since it doesn't have anything passed in
the constructor to get this information from), and being able to
load drawables if we need a different density than what was preloaded
by zygote.

Change-Id: Ifdbfd6b7a5c59e6aa22e63b95b78d96af3d96848
indowManagerService.java
b696de5c10ebcc7bf42d8487fc0e56e0e937754d 28-Jul-2012 Jeff Brown <jeffbrown@google.com> Move and rename user activity event type constants.

Change-Id: Ie565808796773b6896e71ddfac6aaaf8031de846
indowManagerService.java
6881a10557acf3b0270de54799d6f19437acf584 27-Jul-2012 Craig Mautner <cmautner@google.com> Small step towards supporting multiple displays

Change-Id: I353449c2b464394988c7e0203656b5851a0c9127
lackFrame.java
imAnimator.java
imSurface.java
creenRotationAnimation.java
ession.java
trictModeFlash.java
atermark.java
indowAnimator.java
indowManagerService.java
indowState.java
indowStateAnimator.java
fa25bf5382467b1018bd9af7f1cb30a23d7d59f7 24-Jul-2012 Jeff Brown <jeffbrown@google.com> Add display manager skeleton.

The purpose of this change is to remove direct reliance on
SurfaceFlinger for describing the size and characteristics of
displays.

This patch also starts to make a distinction between logical displays
and physical display devices. Currently, the window manager owns
the concept of a logical display whereas the new display
manager owns the concept of a physical display device.

Change-Id: I7e0761f83f033be6c06fd1041280c21500bcabc0
ragState.java
indowManagerService.java
indowState.java
indowStateAnimator.java
aac0d4ed026d1cfbcf3fa81c6e4eb96f4347ca17 20-Jul-2012 Fabrice Di Meglio <fdimeglio@google.com> Replace left/right with start/end for Gravity / LayoutParams / Padding

- see bug #5429822 UI should be mirrored for RTL locales (Arabic, Hebrew, farsi)

Change-Id: Id9af5375fb9b0edeae5232c77e52ecd497bd2e67
indowManagerService.java
c69238ebc8d011ce225c9540bcf4e79bd3fa8eb0 17-Jul-2012 Jeff Brown <jeffbrown@google.com> Merge "Remove dithering support."
3cc321ecf505d87850740ad3c63849e6793a8ef6 17-Jul-2012 Jeff Brown <jeffbrown@google.com> Remove dithering support.

The dithering flag is no longer implemented in Surface Flinger
so this is all dead code.

Change-Id: I74c0e452923207e5b7cfe0eeca9457e5cb990947
indowStateAnimator.java
f422a5669457c152e36e889c820d64b37e005167 17-Jul-2012 Jeff Brown <jeffbrown@google.com> Merge "Remove freezeDisplay(), which is no-op."
55e395ab33f24b009d87a4d45a5566394260fff7 16-Jul-2012 Jeff Brown <jeffbrown@google.com> Remove freezeDisplay(), which is no-op.

Change-Id: I981ee49e6e2d41a09feaee4b384392e83f7faf3d
indowManagerService.java
c9c9a48e7bafae63cb35a9aa69255e80aba83988 16-Jul-2012 Svetoslav Ganov <svetoslavganov@google.com> Removing a workaround for incorrect window position on window move.

1. The window manager was not notifying a window when the latter
has been moved. This was causing incorrect coordinates of the
nodes reported to accessibility services. To workaround that
we have carried the correct window location when making a
call from the accessibility layer into a window. Now the
window manager notifies the window when it is moved and the
workaround is no longer needed. This change takes it out.

2. The left and right in the attach info were not updated properly
after a report that the window has moved.

3. The accessibility manager service was calling directly methods
on the window manager service without going through the interface
of the latter. This leads to unnecessary coupling and in the
long rung increases system complexity and reduces maintability.

bug:6623031

Change-Id: Iacb734b1bf337a47fad02c827ece45bb2f53a79d
indowManagerService.java
322e40315609acd5a608440bc469d873e09559ca 13-Jul-2012 Craig Mautner <cmautner@google.com> Further isolate layout side from animation side.

- Use local AppWindowAnimators in WindowAnimator rather than
using shared WindowManagerService objects.
- Use local WindowStateAnimators in AppWindowAnimator rather
than use AppToken's WindowState objects.
- Remove redundant WindowManagerService parameter passed to
AppWindowAnimator ctor.
- Keep from copying parameters from performLayout if the
parameters haven't changed since the last copy.
- Link WindowStateAnimator to AppWindowAnimator to keep
from going through WindowStateAnimator.mWin,
WindowState.mAppToken and AppWindowToken.mAppAnimator.
- Converted attached WindowState in WindowStateAnimator to
WindowStateAnimator to eliminate multiple conversions.

Change-Id: I5e35af88d8fdc1a7454984eaea91a1bc4f926978
ppWindowAnimator.java
ppWindowToken.java
indowAnimator.java
indowManagerService.java
indowState.java
indowStateAnimator.java
fbf885b652272013f44da71e9f77923333bf62eb 10-Jul-2012 Craig Mautner <cmautner@google.com> Merge "Notify client side of window movement."
4bf18a7c97c0f312ccf12bcd952b420af0c95e5f 10-Jul-2012 Craig Mautner <cmautner@google.com> Handle keyguard visibility states separately.

Previous to this change the forceHiding variable was a boolean. This
change recognizes the different configurations of the keyguard by
defining separate states for forceHiding and testing for window
visibility differently in each state.

Fixes bug 6786114.

Change-Id: I078e0df7865ddafe498ee46e02110c3a017386d0
indowAnimator.java
918b53bc531f5bd1ea102e8b827d693bd4d0555b 09-Jul-2012 Craig Mautner <cmautner@google.com> Isolate layout and animation wallpaper objects.

Provide separate copies of mWallpaperTarget, mWallpaperTokens, and
mLower/UpperWallpaperTarget in the layout and animation sides of
Window Manager.

Simplify constructors of WindowAnimator and WindowStateAnimator.

Change-Id: I7e35794a432c25c4194c046e9e27150d1c905403
ppWindowAnimator.java
indowAnimator.java
indowManagerService.java
indowState.java
indowStateAnimator.java
2639da500e3d53ea3a17d888b1c0001d043c6b98 09-Jul-2012 Craig Mautner <cmautner@google.com> Fix hang on rotation.

A recent optimization to only send updates to WindowManagerService
when there is something to report backfired. One bit indicating
change had negative polarity so the update should also have been
sent when this bit was cleared. This change alters the bit to
positive polarity.

Fixes bug 6780496.

Change-Id: I3336812a60534ebffc9e94b2fb1d0df4d6969bca
indowAnimator.java
indowManagerService.java
indowStateAnimator.java
12670b5fb401733d14684b8d02259462eb640dc7 04-Jul-2012 Craig Mautner <cmautner@google.com> Make setting wallpaper offset immediate.

Wallpaper offset was passing through H Handler before being set.
It isn't part of animation and wasn't going through animation anyways.
This change goes back to original implementation of setting
wallpaper offset directly from call.

Change-Id: Ied88e2dc042af814b5ba91c7efb839bd82682567
indowManagerService.java
a76fdb7713d900763cff090557a10d3942b9b3ca 04-Jul-2012 Craig Mautner <cmautner@google.com> Use new object to sync DimAnimator.

The controls for the DimAnimator were going through the H Handler
to sync with the Animator. We are switching to using the
LayoutToAnimator object for passing data from layout to animator.

Change-Id: Ib6d0afabba781c88bcc1c525e3ae424cf19ac1ad
indowAnimator.java
indowManagerService.java
indowStateAnimator.java
711f90a7c1e99a435fa8f5335f13772f0b41270b 04-Jul-2012 Craig Mautner <cmautner@google.com> Swap source and destination transfer objects.

It will be better to have the object that moves layout parameters to
animation on the layout side, and the object that moves animation
parameters back to layout on the animation side. That way we can
do partial filling of these objects without calling across. We
may never do partial draining of these objects.

Change-Id: I88826fa97350f96e309beef386885f55a9a73305
indowAnimator.java
indowManagerService.java
indowState.java
indowStateAnimator.java
078ea0a6444bfb5c7ab1678b1c8898e590828731 25-Jun-2012 Craig Mautner <cmautner@google.com> Step 2 in consolidating wallpaper animation.

Separate updateWindowsAndWallpaperLocked into two methods,
updateWindowsLocked and updateWallpaperLocked. Eliminates mForceHiding.

Change-Id: I3958cfae09283aaa7f1781d1b54ef224d8e80f3f
indowAnimator.java
6fbda63e68513ece4409dac845588711ab25c39d 03-Jul-2012 Craig Mautner <cmautner@google.com> Merge CL 202423/3 App launching has random pauses.

Change-Id: Iba5616182c02e51f4d9063d0a01b30b9f558549a
ppWindowAnimator.java
ppWindowToken.java
indowAnimator.java
indowManagerService.java
indowStateAnimator.java
7b04c2cc816ab53bd303ca97dcbbb8c116047872 03-Jul-2012 Craig Mautner <cmautner@google.com> am 80059d6c: am 00b9e899: Merge "Clear startingDisplayed flag when removing window." into jb-dev

* commit '80059d6c1b60e9920b7ae133808c989b4d3fa8fe':
Clear startingDisplayed flag when removing window.
38b2478f63004c493d7f7f1ac0bf07f51d6f0757 03-Jul-2012 Craig Mautner <cmautner@google.com> Clear startingDisplayed flag when removing window.

The flag indicating that the Starting window is displayed was not
being cleared when the Starting window was removed. That caused the
goodToGo indication to falsely indicate that all windows were drawn
when in fact the destination activity had not yet been drawn. This
caused the animation to begin when it was still black behind the old
animation.

This fixes bug 6764727.

Change-Id: Iacef73b0335b9bde2cdc8d0b072034222cd728e8
indowManagerService.java
5702d4dfb5b81491f873a3617f8d8fc8dc5279e6 30-Jun-2012 Craig Mautner <cmautner@google.com> Notify client side of window movement.

Add a one way method to notify Views that the window has moved
on the screen. Fixes issues arising from the IME popping up and
translating the window that uses it. Accessibility was left unaware
of these movements and was drawing the box around the wrong widgets.
Similarly PopupWindow used getLocationOnScreen to determine how
much screen real estate was above and below the anchor point to
determine where to put an anchored window.

Fixes bug 6623031.

Change-Id: I4731a94d5424c1ec77bf1729fba8fc9ea34cae46
indowManagerService.java
a4b7f2f75e7803193429ec1179fb5e2eb1c6fbda 21-May-2012 Dianne Hackborn <hackbod@google.com> Use two fingers to work some magic...

Change-Id: Ibcb3dbd3d158c22da8277e544d81fb47eadccd49
nputMonitor.java
ession.java
indowAnimator.java
indowManagerService.java
indowState.java
indowStateAnimator.java
fca66cd828e214fe7494e46c7daa2879dfc3210d 26-Jun-2012 Dianne Hackborn <hackbod@google.com> Merge "DO NOT MERGE Fix issue #6697105: App launching sometimes has random pauses" into jb-dev
ad51a1e9230cdf95082b5e05690f0b72eaed3f35 26-Jun-2012 Jeff Brown <jeffbrown@google.com> am 0086ec0d: am d48cf0c0: Merge "Don\'t wait until boot timeout if there is no wallpaper." into jb-dev

* commit '0086ec0d3009bc8c80e1330cd73ba534aa45f489':
Don't wait until boot timeout if there is no wallpaper.
c585841115a859eadb2f6479cb4d09a1d3ea9cba 26-Jun-2012 Jeff Brown <jeffbrown@google.com> am db65cc52: am a3a59a2f: Merge "Don\'t enable input dispatch until display enabled." into jb-dev

* commit 'db65cc520ebb3f9cfafa4a9d5be9f07621814213':
Don't enable input dispatch until display enabled.
f12100e0255c86d0d05dba2e7ba87a745870423d 25-Jun-2012 Craig Mautner <cmautner@google.com> Eliminate jank by setting force hiding differently

Only force hide windows when the keyguard is animating in.

Fixes bug 6721572.

Change-Id: Iad7b8b811bcf0840726cbf6c6f279dabd08a3aba
indowAnimator.java
780c46fc9197f7ecb258e2c229824749f9e93806 24-Jun-2012 Jeff Brown <jeffbrown@google.com> Don't wait until boot timeout if there is no wallpaper.

When launching only core apps, the wallpaper service
is not started. Without this change the WM waits
up to 30 seconds for the wallpaper window to be created even
though it will never happen. This introduces a significant
delay before the boot animation is dismissed so the user can
enter a decryption password.

Bug: 6263070
Change-Id: Ia975127a0bf09cf99818f7cc4fd6c0264b740ec6
indowManagerService.java
08a746a0c60d19eb2211924ffd9fe1e452a261a6 24-Jun-2012 Jeff Brown <jeffbrown@google.com> Don't enable input dispatch until display enabled.

Bug: 6263070
Change-Id: I05d036fc1d9ec06d164d6743d45bb3f199cfab47
indowManagerService.java
9e809448761878b72b47c0a0e703de95a3cf9815 23-Jun-2012 Craig Mautner <cmautner@google.com> Step 1 in consolidating wallpaper animation.

- Merge testWallpaperAndBackgroundLocked into
updateWindowsAndWallpaperLocked. Eliminates mDetachedWallpaper,
mWindowAnimationBackground, and mWindowAnimationBackgroundColor.

- Merge multiple calls to perform layout into one.

- Cleaned up debug output.

Change-Id: I5dc2d8330dc092ee2b165867cddb7d16b431fa0b
ppWindowAnimator.java
indowAnimator.java
indowManagerService.java
indowStateAnimator.java
4170c3744692b1bdb57c3eb895b860cd64ead18f 23-Jun-2012 Craig Mautner <cmautner@google.com> Merge "Move animation step from layout to animator."
0f5541775c9fc24a31c50e122acfbb74e9757d83 23-Jun-2012 Hiroshi Lockheimer <hiroshi@google.com> am 3fee3eb7: am 5beeb04b: Merge "Don\'t display based on a dummy animation." into jb-dev

* commit '3fee3eb7e0a83cd7fc8df3994692232ba6953c02':
Don't display based on a dummy animation.
5beeb04b528fec320d3453601b4adf4efbd8eba7 23-Jun-2012 Hiroshi Lockheimer <hiroshi@google.com> Merge "Don't display based on a dummy animation." into jb-dev
9c5bf3b36f3dd658320f34dbaee9d6d453606bf4 23-Jun-2012 Craig Mautner <cmautner@google.com> Don't display based on a dummy animation.

The Starting window was being made visible early because the app
token had the dummy animation set. When the real animation started
the Starting window picked it up and became transparent causing
the underlying window to become visible again => jank.

Fixes bug 6691421.

Change-Id: I95fe88d2887760e6da3adedeb6be300eb6755283
indowState.java
357d99c61d1c97199ca421408b3e26566e879f2a 21-Jun-2012 Dianne Hackborn <hackbod@google.com> DO NOT MERGE Fix issue #6697105: App launching sometimes has random pauses

In the course of the window manager refactoring into a separate
layout state, we introduced a bad interaction between the two
sides of the world. This resulting in multiple hops needed between
the two sides after an application has said it is finished drawing
its window, until the window/app transition is actually started.
Especially since these hops require going through the anim side
which is vsynced (so will delay its operation until the next frame),
this could introduce a notable delay until the window is first shown.

Fix this by re-arranging the code to make one straight path from
when a window reports it is shown to us starting the app transition
that is waiting for it. This change also includes various improvements
to debugging code that was done while working on it.

Change-Id: I7883674052da1a58df89cd1d9b8d754843cdd3db
ppWindowAnimator.java
ppWindowToken.java
indowAnimator.java
indowManagerService.java
indowStateAnimator.java
ca08198f419476264362fadd22decc5d3ab89709 22-Jun-2012 Dianne Hackborn <hackbod@google.com> am 176a8a8b: am 0b9b053c: Merge "Don\'t crash in window manager if we fail getting .apk resources." into jb-dev

* commit '176a8a8b7cba2654f50617b14a841ef977b95b11':
Don't crash in window manager if we fail getting .apk resources.
0b9b053ce6fdc48e922b6af37fe747b4ef40324a 22-Jun-2012 Dianne Hackborn <hackbod@google.com> Merge "Don't crash in window manager if we fail getting .apk resources." into jb-dev
1caa399baffe2a5dca018469761db6f77ea31ce8 22-Jun-2012 Craig Mautner <cmautner@google.com> Move animation step from layout to animator.

Set up the Choreographer call from the animator, not from the
layout side. Introduce new class for transferring information from
layout to animator.

Change-Id: I7da032990f4b5eaeefcf92185901d896f25db3d2
indowAnimator.java
indowManagerService.java
2cb7980660e046b8bf680886b0da963e3fde8fb0 22-Jun-2012 Craig Mautner <cmautner@google.com> am a6b8189f: am 9ce1ea3a: Merge "Fix starting window problems." into jb-dev

* commit 'a6b8189f8e152caafe5900cff0f068517a70088d':
Fix starting window problems.
f41209568617f4acfaf6dea8f8b2cbe9c2994a3e 22-Jun-2012 Craig Mautner <cmautner@google.com> Fix starting window problems.

Three problems fixed:
1. When one Activity took over for another Activity not all of the
starting window state was being copied over. Now copying over more
parameters.

2. When the visibility of an Activity was being changed the dummy
animation was overwriting the existing animation. If that animation
was the starting window animating then it started over when the
dummy animation was assigned. Now the dummy animation no longer
replaces an existing starting window animation.

3. The test for whether to animate away the starting window only
looked to see if the Activity had already drawn a window but did
not include the starting window. This caused the starting window
to immediately be hidden when the Activity was removed if no
windows were drawn, thereby exposing the fading window behind.
Now the starting window is included in the hasAppShownWindows test
and is animated away if it is exposed.

Fixes bug 6691421.

Change-Id: I4d32a1546c201652574a44d9e7f2752f1f1eb5a6
indowManagerService.java
indowState.java
indowStateAnimator.java
0b800190d71bbe3459149f760f49dfa6208c0e21 22-Jun-2012 Dianne Hackborn <hackbod@google.com> Don't crash in window manager if we fail getting .apk resources.

This normally shouldn't noramlly happen, but it can in the case of
bug 6647334 (crash in LoadedApk.makeApplication) where the package
manager information becomes inconsistent, and it could also happen
if an app was uninstalled or started updating at just the right
time during a launch.

Bug: 6647334
Change-Id: Iba22efe1d646cdac46099b2135466309577dfa54
indowManagerService.java
306211d7924a276b4cb9d1ff3c2fe70400e96e18 20-Jun-2012 Dianne Hackborn <hackbod@google.com> am b0222bb1: am 0fa4d30b: Merge "Fix issue #6686339: 2 taps required to launch notification..." into jb-dev

* commit 'b0222bb19e8d850ccbd74c4f0832d73ae552df8d':
Fix issue #6686339: 2 taps required to launch notification...
0fa4d30b03c4307ca5d461aa4450b672b6850ea1 20-Jun-2012 Dianne Hackborn <hackbod@google.com> Merge "Fix issue #6686339: 2 taps required to launch notification..." into jb-dev
6e2281d44c9b71a03a50ed24d654927111cd2b72 20-Jun-2012 Dianne Hackborn <hackbod@google.com> Fix issue #6686339: 2 taps required to launch notification...

...or settings from lock screen

When a window is drawn, the code to determine whether it should now
be shown was calling WindowState.isReadyForDisplay(). Part of the
condition of this function is that it is not ready if a policy is
forcing the window to be hidden -- which is the case when the lock
screen is shown. As a result, we wouldn't show the window at that
point, so wouldn't tell the activity manager that the token's windows
are visibible, and wouldn't tell the lock screen to go away.

This adds a new variation WindowState.isReadyForDisplayIgnoringKeyguard(),
which is the same as the original method but ignores the policy visibility
for app windows. This allows windows to be go through the complete
path of handling when the window is finally drawn and telling the
activity manager about it, even if behind the lock screen. By making it
a separate function, we don't impact any other code that is calling the
old function and may be relying on its behavior.

Also cleaned up a little of the dumpsys output. Most important, the
new ANR section is now moved to the top, since we want
"adb shell dumpsys window" to still give a nice summary of what we
normally care about -- the window stack and important global state.

Change-Id: Ica3ea85ce46f3f5f5cd2cc30fbd9de13d3885a57
indowManagerService.java
indowState.java
indowStateAnimator.java
2fa2a52838619d092e22e61e16a4ee2f35b22fdd 20-Jun-2012 Craig Mautner <cmautner@google.com> am 9a5a8aaf: am 5785e05d: Merge "Clear sendingToBottom when animation is complete." into jb-dev

* commit '9a5a8aafad89f3e05bb9c17c56ea4658413a4452':
Clear sendingToBottom when animation is complete.
3f99fde465e98fb6f5a3d6dd661836ba230bf03c 19-Jun-2012 Craig Mautner <cmautner@google.com> Clear sendingToBottom when animation is complete.

Was counting on moving the app to the top to clear the flag
indicating that the app was being sent to the bottom. Since this
did not always happen the sendingToBottom flag was occasionally
left set. In this case the focus was skipped for that app and
consequently input was never propagated to it.

This fix clears the sendingToBottom flag each time the app
animations are completed.

Fixes bug 6691421.

Change-Id: I6f851dc5bedca95182db8490d87c876a71ad5fde
indowManagerService.java
4f8ecd80296508a1dc69d3f3a23fd91e962c2784 19-Jun-2012 Jeff Brown <jeffbrown@google.com> Move power manager to a new package.

Change-Id: I5f5a6435e64354b7d6535e8e9a63934ba7a3f448
indowManagerService.java
40af9c04c5e1abb1f3aaf74bba2697370c60359a 18-Jun-2012 Jeff Brown <jeffbrown@google.com> am 81c61fda: am c4b0d098: Merge "Fix an NPE and possible unsynchronized call of Locked method." into jb-dev

* commit '81c61fda9a1b45db4c06d2db2cf24b42045d4f76':
Fix an NPE and possible unsynchronized call of Locked method.
aa9c9efa8f82eb42c56afcc69ad287985377e1b0 18-Jun-2012 Craig Mautner <cmautner@google.com> Merge "More steps to isolate animation."
ee172414877d64ebfbcdbadf10691d04a5eee684 18-Jun-2012 Jeff Brown <jeffbrown@google.com> Fix an NPE and possible unsynchronized call of Locked method.

Bug: 6680398
Change-Id: Id5ef4fa82b2a5ef5e9c3934ca95156143f91e5e2
nputMonitor.java
indowManagerService.java
01cd0e7df040659900e50f83c6b75d1d6fcc5655 18-Jun-2012 Craig Mautner <cmautner@google.com> More steps to isolate animation.

- Create class to transfer state from WindowAnimator to
WindowManagerService.

- Detached wallpaper state was shared between the two classes. This
CL isolates it.

Change-Id: I7bcee348bf9f9f8f0228f36c53d75e5c92fd84cb
indowAnimator.java
indowManagerService.java
d7a04de16798acc04ec0a89a0c7d9f1cf60d1521 17-Jun-2012 Jeff Brown <jeffbrown@google.com> Capture window manager's last ANR state in bug report.

Currently just grabbing the window state but we could grab
other things as part of the last ANR report.

Bug: 6680398
Change-Id: I23aa70907b1bdcb21c8acc556fde196ca790ef6a
nputMonitor.java
indowManagerService.java
734f0214ec04e6c734aeec78d15f6db478cfb55c 15-Jun-2012 Dianne Hackborn <hackbod@google.com> Merge "Help out issue #6654729: CAB + screen off during playback" into jb-dev
b80395c17de91151141411bda4252cdb10912580 15-Jun-2012 Dianne Hackborn <hackbod@google.com> Help out issue #6654729: CAB + screen off during playback

People generally expect, if they are using FLAG_KEEP_SCREEN_ON,
that the screen won't immediately dim after it is cleared, even
if it has been passed the user activity timeout since the last
user interaction. So include the flag to reset the user activity
timeout when releasing its wake lock.

Change-Id: If7a8fea8faef3edbf13dff10a2f248adc9e3ff0b
indowManagerService.java
8b9c6d51d59898375089e9708325604c227812e0 14-Jun-2012 Craig Mautner <cmautner@google.com> Merge "Expose apps when keyguard animating." into jb-dev
a676cdab11ace948a054b5ca342727a3d0eb29b2 14-Jun-2012 Michael Jurka <mikejurka@google.com> Merge "Tweak recents launch app animation" into jb-dev
f03e4c55fc5f8c50c58da03b7e8cfe29b4b0c644 14-Jun-2012 Craig Mautner <cmautner@google.com> Expose apps when keyguard animating.

Continuing in the trend of not hiding apps while the keyguard is
animating.

Fixes bug 6653600.

Change-Id: I151315084a13dcec061d2d6edccd31e1133610f4
indowAnimator.java
b9a38c57fc47858eb16f4a8b7aa3d3dc9b98166c 14-Jun-2012 Michael Jurka <mikejurka@google.com> Tweak recents launch app animation

- Sometimes the black background would flash; changing
animation durations to make this much less likely
- Fixing issue in Recents where we sometimes forgot
to disable drawing caches on views after enabling them
indowManagerService.java
4323d6ea5143a3f2c419b3db28f956755652d78a 14-Jun-2012 Craig Mautner <cmautner@google.com> Merge "Do not hide animating window behind keyguard." into jb-dev
f8d05b4ea61bb0db32c1a7f93f27a13f67c9ef0c 13-Jun-2012 Craig Mautner <cmautner@google.com> Merge "Update wallpaper visibility at time of hide/show." into jb-dev
507a2ee12b6d1d683e4a5806804c472b3fe32e61 13-Jun-2012 Craig Mautner <cmautner@google.com> Update wallpaper visibility at time of hide/show.

Call the Window client method dispatchAppVisibility when hiding or
showing wallpaper rather than wait until the next call to
performLayoutAndPlaceSurfaces.

Fixes bug 6645473.

Change-Id: I363f69f8db0affff92308e11ce52546401959d8f
indowAnimator.java
indowManagerService.java
indowStateAnimator.java
2ec541fa4b19bee3e5a60245dcb504a6033cd0ac 13-Jun-2012 Craig Mautner <cmautner@google.com> Do not hide animating window behind keyguard.

The transition from clock to keyguard when restarting the device
was janky. The cause was that the clock app was animating away
which kept the adjustWallpaperWindowsLocked() method from setting
the keyguard as the new mWallpaperTarget. At the same time the
WindowAnimator saw that the keyguard was readyToDisplay() which
set mForceHiding true causing the clock to become hidden. Since
the clock was mWallpaperTarget the wallpaper was hidden at the
same time.

This fix does not allow mForceHiding to hide an animating
window.

Fixes bug 6649988.

Change-Id: Ie5cb0dfcc987d5ee1ad2351cf520629b8e301a2b
indowAnimator.java
indowManagerService.java
1c9581023ced89a209fca9c4e40305f8e0859732 13-Jun-2012 Craig Mautner <cmautner@google.com> Merge "Set detached wallpaper on the scale up animation." into jb-dev
a803371535e98e522c1044f0963ec8229e437b4f 13-Jun-2012 Craig Mautner <cmautner@google.com> Set detached wallpaper on the scale up animation.

This keeps the background wallpaper from disappearing when expanding an
app that has a wallpaper background (e.g. clock).

Fixes bug 6649988. The second half of the bug, the first half will be
reissued as a new bug.

Change-Id: I209c9038469e4133586a927c92ef64ae43fb937f
indowManagerService.java
9fec779587a425450bff021cdd8c83c3d3d3a869 12-Jun-2012 Craig Mautner <cmautner@google.com> Do not cancel animations when switching.

Was canceling ongoing animations when starting a new animation which
caused the window of the first animation to restart. This looked
janky. The original cancellation was put in to stop the incorrect
animation being selected when quickly switching between an incoming
app and the homescreen. Reversing the cancellation no longer exposes
the original problem it was put in to fix.

One way to duplicate what this is fixing.
1. Slow down animations to 10x.
2. Run ApiDemos/App/Alert Dialogs/List dialog
3. Tap outside the list dialog and then tap the home button.
Tapping outside the list dialog causes the list dialog to animate
away. Tapping the home button then causes the app to animate away.
Before this fix the list dialog would revert to full size before
the app animates away. With this fix the list dialog continues its
original animation as the app animates away.

Fixes bug 6600726.

Change-Id: I29c940254808a321c3b6c2e4f4b7c78a72b47899
indowManagerService.java
0fa77c1e0fc218040efc570936e988dbeece399c 12-Jun-2012 Craig Mautner <cmautner@google.com> Remove over aggressive optimization.

It turns out that sometimes the wallpaper target is migrated to the
bottom of the window stack and then mWallpaperTarget is set to null.
In particular this happens when the launcher all-apps screen is
brought up. When this happens the layer of the wallpaper is
correctly set below the previous wallpaper target.

An optimization in WindowAnimator was keeping the layer update from
propagating to the Surface object. This fix removes that optimization.

Fixes bug 6631717.

Change-Id: I800dd043ce8df83b4e5edbf710503135396bc01e
indowAnimator.java
indowStateAnimator.java
c38869abe5d89b7f9e66f23599889e17b93b5eec 12-Jun-2012 Craig Mautner <cmautner@google.com> Revert "Merge errors."

This reverts commit b0419a52008e57475ee254def1da20451da22d4c.
indowAnimator.java
indowStateAnimator.java
a5bbb8987b98fdbef45549103f70979f4e1e9e4d 12-Jun-2012 Craig Mautner <cmautner@google.com> Merge errors.

Change-Id: I33d0b1aa5dc5018cc879d2e9878e4825adaa4074
indowAnimator.java
indowStateAnimator.java
64dbcd64be34f83e51229891da865ca047b4f5f4 12-Jun-2012 Michael Jurka <mikejurka@google.com> Merge "Tweak recents out animation a bit more" into jb-dev
c016aaaa42f2d7f758bb6d973f035285e3d3dd87 06-Jun-2012 Michael Jurka <mikejurka@google.com> Tweak recents out animation a bit more

Bug: 6490204

-Fading to black in the recents layer
-Tweaking duration and interpolators
-Removing some unnecessary debug exceptions (Bug: 6642072)

Change-Id: Iba18fade7f874078111fc1d79a81830ee07617d4
indowManagerService.java
b9836b9185132974f6cfa9296bb3c28d1c9b668a 11-Jun-2012 Craig Mautner <cmautner@google.com> Fix exposing wallpaper on rotations and other.

1. Rotations do not go through standard closing of animations so the
wallpaper was not being hidden when the wallpaper target surface was
destroyed. This fix adds hiding the wallpaper when the wallpaper
target is destroyed.

2. The wallpaper target is nulled when switching from launcher home
screen to launcher all apps. In this case the wallpaper remains
visible but below visible layers. It should be hidden so that when
those layers adjust it is not exposed. (Separate fix for adjusting
wallpaper in this case will come).

Fixes bug 6629464.

Change-Id: I522f97dafc0cdcc0f933a825ec9a29d8f63590b5
indowAnimator.java
indowStateAnimator.java
ff92f04e76cb141caba6bf767618b1c5153242c1 08-Jun-2012 Craig Mautner <cmautner@google.com> Hide wallpaper when wallpaper target gets hidden.

Another location that potentially hides the wallpaper target while
leaving the wallpaper itself still visible. Causes the wallpaper to
show up when upper surfaces are transparent all the way down.

Fixes bug b6621986.

Change-Id: If75053160f041eb78868eda36b7820fb2110d069
indowStateAnimator.java
fab75dc830039b5aa1463aea55ceee2de279ec52 08-Jun-2012 Craig Mautner <cmautner@google.com> Merge "Turn off dimming immediately for removed windows." into jb-dev
236a35b77a1b48b11e7ad5ce9774e41ef6500a29 08-Jun-2012 Craig Mautner <cmautner@google.com> Turn off dimming immediately for removed windows.

Dimming was only turning off immediately for app-animated windows.
For removed windows dimming wouldn't turn off until the window was
completely gone.

Fixes bug 6628057.

Change-Id: I3ba6501b10a31b6f8c91012e17ad8734a84050c4
indowManagerService.java
86783474fdec98a22bc22e224462767eab13e273 07-Jun-2012 Svetoslav Ganov <svetoslavganov@google.com> Cannot interact with dialogs when IME is up and on not touch explored popups.

1. If the last touch explored location is within the active window we
used to click on exact location if it is within the accessibility
focus otherwise in the accessibility focus center. If the last touch
explored location is not within the active window we used to just
click there. This breaks in the case were one has touch explored
at a given place in the current window and now a dialog opens *not*
covering the touch explored location. If one uses swipes to move
accessibility focus i.e. to traverse the dialog without touching
it one cannot activate anything because the touch explorer is using
the last touch explored location that is outside of the active
window e.g the dialog.

The solution is to clear the last touch explored location when a
window opens or accessibility focus moves. If the last touch
explored location is null we are clicking in the accessibility
focus location.

bug:6620911

2. There is a bug in the window manager that does not notify a
window that its location has changed (bug:6623031). This breaks
accessibility interaction with dialogs that have input because
when the IME is up the dialog is moved but not notified. Now
the accessibility layer gets incorrect location for the
accessibility focus and the window bounds.

The soluion is when the accessibility manager service calls
into the remove thress to obtain some accessibility node infos
it passes the window left and top which it gets from the
window manager. These values are used to update the attach info
window left and top so all accessibility node infos emitted
from that window had correct bounds in screen coordinates.

bug:6620796

Change-Id: I18914f2095c55cfc826acf5277bd94b776bda0c8
indowManagerService.java
ad5725d7985a784056b02b97ab76357a667a6ad4 05-Jun-2012 Craig Mautner <cmautner@google.com> Eliminate wallpaper exposure during transition.

Make sure that the wallpaper target exists and is visible before
exposing the wallpaper.

Fixes bug 6570335.

Change-Id: I1dddfe26683e84fd813e7bee884ba2bd4bb85272
indowAnimator.java
indowManagerService.java
indowStateAnimator.java
ab886f588d4086214e66eed548ea3edd77f8d2ba 04-Jun-2012 Daniel Sandler <dsandler@android.com> Don't do closing animation on an opening app.

Check to make sure that the closing wallpaper animation isn't used on
an opening app token. This can happen when a previous animation hasn't
completed when the next animation is starting.

Fixes bug 6557751.

Change-Id: Ib8bd4dd7de1e361f6fc0cab11d0997e70f9ddd0b
indowManagerService.java
6593be0c200f69d932e40e05e9df54b89c157c48 04-Jun-2012 Dianne Hackborn <hackbod@google.com> Merge "Work on issue #6579997: Mariner entrance animation" into jb-dev
da652f6e51e5b255019ac020d56e262e477c2a46 03-Jun-2012 Craig Mautner <cmautner@google.com> Merge "Revert change to correct animations." into jb-dev
3aa7fcac1c46353c2f147d978d9eb2f2748def4a 03-Jun-2012 Craig Mautner <cmautner@google.com> Revert change to correct animations.

Incorrect animation was introduced with CL 196207 (perhaps in
combination with a later CL). Reverting part of that CL fixes
the incorrect animation and so far has not reintroduced the jank
that was fixed by that CL. If the jank reappears it should be
fixed in a different fashion than in CL 196207.

Fixes bug 6597505.

Change-Id: Ie8012237a8d49810ede51bd8d78ef8c2fd91ddd4
indowManagerService.java
84375876fcef73c5fa9c3de205c7db908ee14e15 02-Jun-2012 Dianne Hackborn <hackbod@google.com> Work on issue #6579997: Mariner entrance animation

Add a new variation of ActivityOptions that allows you to
supply custom animation resources and get a callback when the
animation starts.

Use this in SearchPanelView to determine when to start hiding
the search panel instead of having a fixed delay.

Fix some issues in the activity manager where we would cancel
the options in cases where we should actually keep them to give
to the window manager for a transition. (Basically when the
activity being started is not actually ending up launched, but
just results in a shift in the activity stack.)

Note that this is not quite what the design calls for -- the
entire search UI is waiting and then disappearing when the
animation starts, instead of the ring first disappearing while
waiting for the time to fade out the circle.

Change-Id: Iee9a404ba530908d73cdbd4a9d0d2907ac03428f
indowManagerService.java
881656831c9734bfa4a42c56574bbd871c967a3e 31-May-2012 Craig Mautner <cmautner@google.com> Use Surface layer for Surface operation.

Previous fix exposed an existing bug where we were using mAnimLayer to
determine the highest Surface layer. This fix uses mSurfaceLayer to set
the layer limits for making the screenshot.

Fixes bug 6586168.

Change-Id: Iaa3b43867aef795ca617ff4b8076428dfc91eaf2
indowManagerService.java
7e4ff4b986d626493afb676dd4824d2b3663260a 30-May-2012 Jeff Brown <jeffbrown@google.com> Fix comparison of device source bits.

Bug: 6576743
Change-Id: I6952b052e2ab9e62ddd46ab76f4df37ecc656757
indowManagerService.java
de1ddd0f93fae6ba517d516993e7fb495424f574 29-May-2012 Craig Mautner <cmautner@google.com> Merge "Better handle changing app transitions." into jb-dev
1d961d46d68eb3134e4bd6c3751f9730e9d32f17 27-May-2012 Craig Mautner <cmautner@google.com> Better handle changing app transitions.

When we are in the middle of an app transition and need to change to a
new one we were not ending the old one in a clean state. Also,
wallpapers were defaulting to the wrong animation in certain
situations.

Remove ':' style iterators.

Fixes bug 6486708.

Change-Id: Ied17e8410486020295db380ff68df5dad08bc5cc
ppWindowAnimator.java
indowManagerService.java
1dee8974693fff55e276e0aed1202e43904bb944 29-May-2012 Craig Mautner <cmautner@google.com> Merge "Track animating apps up until animation starts." into jb-dev
06a94f710d4ee6366ebfbd6666c5a58916511eef 29-May-2012 Craig Mautner <cmautner@google.com> Track animating apps up until animation starts.

ActivityStack sets the mNextAppTransition value before moving the apps
to their proper position. This makes the test for mNextAppTransition
being TRANSITION_UNSET incorrect. Better to just look for animating.

Fixes bug 6565418.

Change-Id: I4651b7d3678e46fc712a8e901992fb01b94c415e
indowManagerService.java
3d7b7d59c82fdeac039382ed1724af9c9cb70107 24-May-2012 Craig Mautner <cmautner@google.com> Redraw all windows earlier in power on sequence.

Send a message to all windows to redraw before notifying
PhoneWindowManager of screen on. This minimizes the delay in
screen update that causes the keyguard clock to display the old time
before displaying the current time.

Fixes bug 6381021.

Change-Id: Ida7071e7dac2284540f101c5d004511b52133b91
indowManagerService.java
67e6070fa10bbd313c8ebe0de4e0440b688c569e 24-May-2012 Craig Mautner <cmautner@google.com> Merge "Change method of tracking moving AppWindowTokens." into jb-dev
ef25d7a01910d5547b60c9cc52d4fa4a9e40b6fa 16-May-2012 Craig Mautner <cmautner@google.com> Change method of tracking moving AppWindowTokens.

Stop trying to keep track of the AppTokens that have been moved
to the top and bottom and then try and match the WindowStates when
transitions are goodToGo. Instead rebuild the WindowState order based
on the AppToken order when we are goodToGo.

When moving AppWindowTokens lower in mAppTokens create a new ArrayList
of AppWindowTokens to keep track of the apps in Z order while
animating.

Fixes bug 6481078.

Change-Id: I29b33a507b45752f15feb10a9f4b47a3f5eb9f0e
indowAnimator.java
indowManagerService.java
indowState.java
indowStateAnimator.java
indowToken.java
8e4df6c1e261a5b41193b00b1c0ce0badaa84f1c 24-May-2012 Craig Mautner <cmautner@google.com> Fix jank when launching apps that show wallpaper.

Do not create a StartingWindow for apps that show wallpaper.
Fix handling of obscure case where found wallpaper is hidden.

Fixes bug 6484034.

Change-Id: I07181c4aea56fa9e530df0c95d886fe8ad61ec9d
indowManagerService.java
208236dd9600efb125639bf7ca5715fb341ee8d8 23-May-2012 Craig Mautner <cmautner@google.com> Merge "Pull showStrictModeViolation off of local threads." into jb-dev
0447a81e6dd9671ab1290deba682423e2aac5a07 23-May-2012 Craig Mautner <cmautner@google.com> Pull showStrictModeViolation off of local threads.

By moving the StrictModeViolation display onto the WindowManager
Handler we avoid potential deadlocks as found in the bug below.

Fixes bug 6537798.

Change-Id: Ia46a43d1f7f6e55256f770b9e196602092669b49
indowManagerService.java
ac92087a9a1c464d4b0a58c82dae01cbaa088e89 22-May-2012 Dianne Hackborn <hackbod@google.com> Fix issue #6499411: Characters not displayed (but suggestion bar is working)

The problem was that when dismissing the lock screen, the window manager
would briefly turn off force hiding when it started animating the transition
and then turn it back on until the transition was done.

This would cause it to briefly switch focus to the app behind and then
take focus off it. The app would find out it got focus, and re-start
input on itself, asking the input method service to do so. At this
point the input method service would ask the window manager if the
caller really had focus, and it may or may not be told no depending
on the timing. If it is told no, then it doesn't allow the focus
switch to happen at that point, ignoring the new input connection,
and ultimately when focus does really switch the IME is left talking
with an old dead input connection.

I added some code to the input connection to make sure when we are
no longer using one that we mark it inactive and can't use it. This
bug was especially difficult to track down because it would only
visibly break when a GC happened during this time, causing the weak
reference on the input connection to become null. With this change
it will now always break (though in the scenario here only if you
hit the race condition correctly).

Change-Id: I81a6164dc140c548da1a9736e42cd253e8238a80
indowAnimator.java
indowManagerService.java
9faa9374c1398ca4a0f3fbfc4feaa5cddeb073b0 22-May-2012 Svetoslav Ganov <svetoslavganov@google.com> Merge "Changing the interaction model of the touch explorer." into jb-dev
e15ccb93add99ebb9cd7aec03a04faa37f45b39d 17-May-2012 Svetoslav Ganov <svetoslavganov@google.com> Changing the interaction model of the touch explorer.

1. Now the user have to double tap to activate the last
item. If the last touched window is not active because
it does not take input focus the click on the last
touch explored location. Othewise the click is on the
accessibility focus location.

bug:5932640

Change-Id: Ibb7b97262a7c5f2f94abef429e02790fdc91a8dd
indowManagerService.java
cf39bdf3dff5e29447f6ce734b76dc3490385e58 18-May-2012 Jeff Brown <jeffbrown@google.com> Add support for switching between multiple keyboard layouts.

Also show a notification when an external keyboard is connected
and does not have a keyboard layout selected yet.

Bug: 6405203
Change-Id: Id0ac6d83b3b381f8a236b2244a04c9acb203db3c
indowManagerService.java
255632d16064bf8e65b1773c4f0884267b9ec93f 19-May-2012 Craig Mautner <cmautner@google.com> Merge "Prevent dim surface from flashing." into jb-dev
067ca32a526113bdae8756cda0369883f8227199 19-May-2012 Craig Mautner <cmautner@google.com> Prevent dim surface from flashing.

This fix keeps the dim surface below the highest shown layer. If
two shown layers were both dim it was ambiguous where the dim surface
would appear causing dialogs to first be dimmed and then flash when
the dim was put behind them.

Fixes bug 6497476.

Change-Id: I360cf2d23d58fc4c03edbbed16d79c08c29e48b9
indowAnimator.java
abe3927701c0aff839498272565aeee714aa6e9d 18-May-2012 Dianne Hackborn <hackbod@google.com> Merge "Fix issue #6515427: Add android.hardware.television and fix..." into jb-dev
0cf2c8a53350a800055e76c1c9bf0a6d44480768 18-May-2012 Dianne Hackborn <hackbod@google.com> Fix issue #6515427: Add android.hardware.television and fix...

...logic for notouch in Configuration

Added new TELEVISION feature.

We now force the configuration to "television" if the TELEVISION
feature is set, and "notouch" if the TOUCHSCREEN feature is not set.

Also cleaned up documentation, deprecated some configurations that
are not used.

Change-Id: If1c7a284b580a8a66bda2a75f0c7fa841b3dc9b7
indowManagerService.java
bf08af3323117e15a65b74e66b7499d31537f9e1 17-May-2012 Craig Mautner <cmautner@google.com> Eliminate deferred surface destruction.

Removing the code that delays a surface destruction when
WindowManager.FLAG_KEEP_SURFACE_WHILE_ANIMATING is set. The lock
screen that continued to animate after destroySurfaceLocked is no
longer used and this code was causing problems.

Also mDrawState was being set to NO_SURFACE in destroySurfaceLocked
even if the surface ended up not being destroyed. Later when it was
reused the false value of mDrawState was messing things up.

The screen lock bug referenced below no longer levaes the user stuck
with a black lockscreen. However it occasionally powers back up in the
launcher screen rather than the lock screen.

Fixes bug 6485955.

Change-Id: I684104c7e7c39c161a5118aa890889fbae92e635
indowManagerService.java
indowState.java
indowStateAnimator.java
3e52fc25154540faf3c0cb927ff45532cdebdddf 16-May-2012 Dianne Hackborn <hackbod@google.com> Fix some issues with updating the offsets of a window.

- Apply the correct crop rect at this point.
- Apply the correct position by taking into account the frame left/top.
- Don't directly apply the new values if the window is currently
animating, since we need to go through the whole animation step
to determine what the correct position is (taking into account
any transformations).

Change-Id: I15d79354d9779867c49c7c0880faccdead7b021d
indowStateAnimator.java
521e0d794d298201716d30c66164f0c60d6a74c0 14-May-2012 Jamie Gennis <jgennis@google.com> WindowManager: unset the wallpaper window crop

This change removes the window crop of the wallpaper when setting its position.

Change-Id: I0f4dc10ea9a724b210f75286580ef391145286df
indowStateAnimator.java
2a7a6ca00ab176105b5bbfa6b17bb0dcd058d517 14-May-2012 Dianne Hackborn <hackbod@google.com> Merge "Implement new window cropping." into jb-dev
85afd1b6f871d471fdff1980134676a5f1690525 13-May-2012 Dianne Hackborn <hackbod@google.com> Implement new window cropping.

The window manager now performs the crop internally, evaluating
it every animation from, to be able to update it along with
the surface position.

Change-Id: I960a2161b9defb6fba4840fa35aee4e411c39b32
ession.java
indowManagerService.java
indowState.java
indowStateAnimator.java
c8179e78052af3d68725e1160214a736f143f8a2 12-May-2012 Michael Jurka <mikejurka@google.com> Merge "Improve transition out of recents" into jb-dev
d5895a7e8a94e58451af640fe796d1822cbd793f 12-May-2012 Michael Jurka <mikejurka@google.com> Improve transition out of recents

- During the transition, fade the bg to black
- Exiting activity fades to black
- Recents background no longer fades away, because
then it would fight against the fade to black
happening behind it
indowManagerService.java
58770232216cd735afdfd3dd53151070e06de5ce 12-May-2012 Jeff Brown <jeffbrown@google.com> Merge "Move power HAL interactions to PowerManagerService." into jb-dev
7304c343821309dd15f769b18f1de2fa43751573 12-May-2012 Jeff Brown <jeffbrown@google.com> Move power HAL interactions to PowerManagerService.

This refactoring sets the stage for a follow-on change that
will make use additional functions of the power HAL.

Moved functionality from android.os.Power into PowerManagerService.
None of these functions make sense being called outside of the
system server. Moving them to the PowerManagerService makes it
easier to ensure that the power HAL is initialized exactly once.

Similarly, moved ShutdownThread out of the policy package and into
the services package where it can tie into the PowerManagerService
as needed.

Bug: 6435382
Change-Id: I958241bb124fb4410d96f5d5eb00ed68d60b29e5
indowManagerService.java
35d0e1d11c046b5e5ddf6d12c1a09becb8561af0 11-May-2012 Craig Mautner <cmautner@google.com> Keep launcher screen from flashing over lockscreen

Extend the force hide period to include the animation.

Fixes bug b6471929.

Change-Id: I91daf9dc678723be4c69913aa5a3aa0e265d103e
indowAnimator.java
4fe5ebcc962ad7edb205bf988dd463854dea1044 10-May-2012 Craig Mautner <cmautner@google.com> Merge "Update DimAnimator layer when its window changes." into jb-dev
6b16286f653f9f8a1c17a8dffebbe6cee4e5afca 10-May-2012 Chet Haase <chet@google.com> Merge "Notify windows when window animations complete" into jb-dev
acafd19c5ea05a8d465f97204f8d63468bdaa2a4 10-May-2012 Craig Mautner <cmautner@google.com> Update DimAnimator layer when its window changes.

Prior to this fix once dimming had been turned on it stayed at the
same layer and associated with the same window until it was turned
off. Now the DimAnimator layer is updated if either the window layer
changes or the dimming window changes.

Fixes bug 6467865.

Change-Id: I3e1765b92b51be26e3718c8a87e2583041a36af9
indowAnimator.java
indowManagerService.java
421dceb0a4fd8f20349a0de277f82b56e71cb90b 10-May-2012 Michael Jurka <mikejurka@google.com> Merge "Making transition out of recents look better" into jb-dev
198e564c9a66010cfe93e0b1a75f84d696bda494 10-May-2012 Chet Haase <chet@google.com> Notify windows when window animations complete

Drawing in windows is suppressed during window animations, to make window
animations smoother. This means that drawing activities that the activity
requested are dropped on the floor. There is no call at the end of window
animations to tell the windows that they may now draw, which leaves the windows
and activities in an uncertain state, especially with respect to some of the
dirty flags that we use internally to know when we have requested (and satisfied)
invalidations on views.

The fix is to notice, on the WindowManager side, when we've finished window
animations and to schedule a traversal on the WindowManager, which will then send
out appropriate messages to the affected windows.

Issue #6461113 EventInfo is stuck in day view

Change-Id: I364c9c472531c467d44801698cfb453970173bb3
indowAnimator.java
21385cd83d7d7938b57a4acbaa236dd4c7804ed4 03-May-2012 Michael Jurka <mikejurka@google.com> Making transition out of recents look better

- Fading out recents first, then scaling up app
thumbnail
- Fade Recents out over 130ms
- Delay the window animation for 200ms first,
then animate for 200ms (previously we didn't delay
and then animated for 300ms)

Bug: 6390075

Change-Id: Ia8c753bf7ee03d2acef6eb2772b28d88fe10a682
indowManagerService.java
9aa695871c9d5a0a4784dd60f77a44922cfd2498 10-May-2012 Craig Mautner <cmautner@google.com> Fix wallpaper glitch and moving window animation.

1. Previous fix to hide wallpaper at the same time the wallpaper target
was hidden was too aggressive. In the case where one wallpaper target
was replacing another we would lose the wallpaper for an instant.

2. Previous fix to keep from overwriting the moving window boundaries
was incomplete. The default values for the parent window were 0,0
which caused the lock window animation to translate down and to the
right. Defaulting the parent window boundaries to the full screen
and restoring it to the full screen after each animation fixes this.

Fixes bug 6472070.

Change-Id: I0b13c642c1aaab666cdd0f4a1e7fb4b716e6b17f
indowStateAnimator.java
393295fabff828d3bc974a617d152ff0895a4071 09-May-2012 Craig Mautner <cmautner@google.com> Merge "Keep layout from overwriting translate dimensions" into jb-dev
e0a99414bd3737ad976bf4a040c184bebd8e2e3d 09-May-2012 satok <satok@google.com> Fix the issue that the insets linger after closing the voice input

Bug: 6456954
Change-Id: Idf7700271cf882dfbf35c9d16f0f173a791221bc
indowManagerService.java
a83580614f4f75f7d474e81c7c10c2c784df1380 09-May-2012 Craig Mautner <cmautner@google.com> Keep layout from overwriting translate dimensions

If the layout goes through more than one pass after detecting a window
movement but before animation begins then the later pass overwrites
the animation offsets. The incorrect values are large leading to an
animation starting location in the bottom right corner.

Fixes bug 6450310.

Change-Id: I0f74e67b3e9a15a9246151abf6d47384509340e9
indowManagerService.java
79b7742cf17c79c529bbcbd1acc2d871a90e8fbc 09-May-2012 Craig Mautner <cmautner@google.com> Merge "Fix wallpaper exposure bugs." into jb-dev
0afddcb7f11ddfcaa5d1f5a5db75fce1b5d40253 09-May-2012 Craig Mautner <cmautner@google.com> Fix wallpaper exposure bugs.

Qualify the test for wallpaper animation to exclude the dummy
animation. This keeps us from treating a dummy-animating wallpaper
as an exiting wallpaper and providing the wrong animation.

Hide wallpapers when the wallpaper target window is hidden. This
fixes a timing issue where the wallpaper was exposed for one pass
through performLayout after the launcher was hidden.

Fixes bug 6454992.

Change-Id: Ib4f9205c01a37e6f48f1f93ddcf2476e40ff942f
indowAnimator.java
indowManagerService.java
indowStateAnimator.java
c042ee2acd8529b95c5dc99240d626e61d2500cd 08-May-2012 Jeff Brown <jeffbrown@google.com> Disable input dispatch until boot finished.

Bug: 6263070
Change-Id: I25e15e3d8af8eb3343c7b684fec345337d9f6aab
nputMonitor.java
indowManagerService.java
d8efe42496806b483bbacea28d2456e8b2eac4fb 07-May-2012 Craig Mautner <cmautner@google.com> Merge "Change DimAnimator to reflect rotations." into jb-dev
3a67f35f5e912b9c1ec44adbdc5531427318b12d 07-May-2012 Craig Mautner <cmautner@google.com> Change DimAnimator to reflect rotations.

Enlarge DimAnimator to cover corners when frozen surface rotates.
Update DimAnimator size following rotation to reflect new dimensions.

Fixes bug 6449788.
Fixes bug 6449035.

Change-Id: I217d7c96af940e6affc395b79dc665d00318b18c
imAnimator.java
indowStateAnimator.java
924d9b75d6ec4597264a7af3f8be5b5a7d3a3dd2 06-May-2012 Craig Mautner <cmautner@google.com> Force BlackSurface to be a black surface.

BlackSurface transparency was tracking animation transparency causing
background images to peek around the corners.

Fixes bug 4998851.

Change-Id: I48ac7bf5d0cc560b655c9f12faccda411985cbad
lackFrame.java
creenRotationAnimation.java
e19dbd9f9d0fea5959d8384d5d9d577d25cc8963 03-May-2012 Jeff Brown <jeffbrown@google.com> Merge "Separate the internal and external display rotations." into jb-dev
232301b027e54c270adad30541d248e6b7b62f4a 03-May-2012 Craig Mautner <cmautner@google.com> Merge "Fix flashy transition in QuickContacts" into jb-dev
94ef9df22c5960b74359e1a98e5c210787d382f2 03-May-2012 Craig Mautner <cmautner@google.com> Fix flashy transition in QuickContacts

Calls to relayout were forcing outgoing app reported visibility to
false. Because there was a DummyAnimation in the outgoing app the
stepAnimation was forcing the app Transformation alpha value to 0
based on the most recent reportedVisibile value. This was causing the
outgoing app to disappear for an instant. Moving the visibility test
to the time at which the DummyAnimation is set fixes this problem.

Fixes bug 5908102.

Change-Id: Ib574728a007a0af759990816db42e23ba315b468
ppWindowAnimator.java
93de746e5554bc9397ca8109f57875d92e64eabc 03-May-2012 Jeff Brown <jeffbrown@google.com> Separate the internal and external display rotations.

When attached to an HDMI touch screen, the input system needs
to know the size and rotation of the external display independent
of the internal display. The size was already being reported
separately but not the rotation. The inconsistency can cause problems
if the internal display's natural rotation is portrait but
the external display's natural rotation is landscape.

Change-Id: Id344f04c1ba032625f6265766be66f9ddaa2cc0b
indowManagerService.java
be4f5bb7fc08ca25d67525fdd97d15f73d150891 03-May-2012 Craig Mautner <cmautner@google.com> Merge "Fix Home key causes wrong animation" into jb-dev
e849230f444653e692024b4321044cb9f6188919 02-May-2012 satok <satok@google.com> Merge "DO NOT MERGE : Backport I5723f627ce323b0d12b Reduce window resizing during IME transition" into jb-dev
1bc0a49e3cade697201e454bb6e46ee789cef6e4 25-Apr-2012 satok <satok@google.com> DO NOT MERGE : Backport I5723f627ce323b0d12b Reduce window resizing during IME transition

Bug: 5137498
Change-Id: Ieb8fd700d193eddaa31b0c5ebd8c7f7885586372
indowManagerService.java
83339b465c3299abc47ced7dffdf470c5b0c0750 02-May-2012 Craig Mautner <cmautner@google.com> Fix Home key causes wrong animation

Wallpaper logic assumed that if mWallpaperTarget was non-null then
any wallpaper animation should be exiting. However, if the existing
wallpaper target was already animating away then mWallpaperTarget
remains non-null until it is completely gone. Pressing Home during
this time was causing the next animation to exit rather than reverse
and enter.

This fix looks to see if the wallpaper target is animating and if it
is to treat it as null for the purpose of determining which direction
the animation should go.

Fixes bug 6407941.

Change-Id: I731267328db0f9972a5aed6f214962f96737dd07
indowAnimator.java
indowManagerService.java
indowStateAnimator.java
0632b35b6828cd4324b3d218c2e38f895e819aad 02-May-2012 Jeff Brown <jeffbrown@google.com> Merge "Improve handling of built-in keyboard." into jb-dev
daa3753a04699724d2cfe824ac1f5a266d643a05 02-May-2012 Jeff Brown <jeffbrown@google.com> Improve handling of built-in keyboard.

The window manager policy made some incorrect assumptions about the
meaning of the Configuration.keyboard field. We need to be more
careful about distinguishing between built-in and external keyboards.

Most of this change is to move the determination of the parts of
the Configuration related to input devices into the WindowManagerService
leveraging new features of the InputManagerService to good effect.

Then we plumb through the flag that indicates whether a device
is internal or external so that we can be more particular about
how the lid switch effects changes to the Configuration.

Bug: 6424373
Change-Id: I36a1c22ade35e578955465a25940a33f227b9763
indowManagerService.java
c5c33c363ec9609b83dfe87d58f0bdcf99ff57a0 01-May-2012 Jeff Brown <jeffbrown@google.com> Merge "Add support for using the lid switch to turn off the screen." into jb-dev
c458ce98ce42c00b98afe00670f822814f3da572 30-Apr-2012 Jeff Brown <jeffbrown@google.com> Add support for using the lid switch to turn off the screen.

Added a config option to allow the lid switch to turn off the
screen. This is a closer match to what a lid switch should be
doing.

Removed an old feature to bypass keyguard when keyboard is visible
because the way it was plumbed in made bad assumptions about
the meaning of the lid switch. Also, the last product we shipped
that had a physical keyboard turned this config option off.
So away it goes. We can bring it back someday if we really want it.
It's questionable how useful the feature is anyhow, since it only
works when the keyguard is unsecure and when the lid switch is
unlikely to be jostled in the user's pocket.

Fixed a bug where we would tell the power manager that the keyboard
was visible even if the lid switch did not control the keyboard.
This used to cause the power manager to try to set the keyboard
brightness, which doesn't work.

Bug: 6377115
Bug: 6406726
Change-Id: Ic84b71d09563d51c92cd1cf132fa8bdee6509103
indowManagerService.java
5c58de3a523a384c47b0b1e0f5dd9728a74cd9f7 29-Apr-2012 Dianne Hackborn <hackbod@google.com> Add system insets to windows.

This will be used to determine which parts of a window a completely
hidden by system UI elements (status bar, nav bar, system bar) so
that they can be clipped out from rendering.

Change-Id: I2c6c6ac67dbdfeed82d2c089ef806fb483165bd9
ession.java
indowManagerService.java
indowState.java
79c6346100b555a8a3d51b3b1c34dbbe99305b9a 28-Apr-2012 Dianne Hackborn <hackbod@google.com> Merge "When a window is first shown only draw once while animating." into jb-dev
de7ff082c403682d6091888617111dcc1494088d 28-Apr-2012 Craig Mautner <cmautner@google.com> Merge "Call deferred windowFocusChange when draw complete" into jb-dev
12d3a94397c33fdb773a1eaaaa13cab80bf0c571 27-Apr-2012 Dianne Hackborn <hackbod@google.com> When a window is first shown only draw once while animating.

On some hardware allocating a new graphics buffer is quite
expensive, which blocks updates to the UI. This can cause
glitches when performing window animations.

To reduce these glitches, the view hierarchy will now only
allow itself to be drawn once if its window is being shown
while the window manager is animating, not resuming draws
until it is told that the animation is done.

Change-Id: Ie15192f6fddbd0931b022a72c76ddd55ca266d84
indowManagerService.java
c8e372031cccfbd5cc7ae626255442423240338f 27-Apr-2012 Craig Mautner <cmautner@google.com> Merge "Don't resize WindowStates without a Surface." into jb-dev
51bb12b3e5c51f1aeccd20d4a226ebc4c25eac50 27-Apr-2012 Craig Mautner <cmautner@google.com> Call deferred windowFocusChange when draw complete

Move the test for deferred window change notification after the drawing
update. Previously there was never a second check after the drawing
completed so we never sent the notification to the departing window.

Fixes bug 6335849.

Change-Id: I8a7eafdb184567a47ae04f1e597bae4cccf6cf62
indowManagerService.java
1efacf7fcab53f0096550edc2282afc3df408223 27-Apr-2012 Craig Mautner <cmautner@google.com> Don't resize WindowStates without a Surface.

Check to make sure that a WindowState has a Surface before adding it to
mResizingWindows.

Fixes bug 6300793.

Change-Id: Ieb39422523360dcdd5f5bf8109f061ae1ced62b2
indowManagerService.java
1ded0b1f6af65c2f95f8327f7f3df4cee1bf2346 26-Apr-2012 Dianne Hackborn <hackbod@google.com> Add traces for window manager and activity manager.

Change-Id: I525d762db328e4c597da27b6b56d9a808e199756
indowManagerService.java
38cb84fd4b39c08cbd5b65b7383e712b9f476e3f 25-Apr-2012 Winson Chung <winsonc@google.com> Merge "Reverting min scale in the previous animation changes."
108b0607cd82c1022f6ca211ed02cf731f01adc0 25-Apr-2012 Winson Chung <winsonc@google.com> Reverting min scale in the previous animation changes.

Change-Id: Ia21169386a038026d76a0bb3cf8c74576786e5ba
indowManagerService.java
069ac9a78d62a68d5eb640d3b87793f4ac924f6d 25-Apr-2012 Winson Chung <winsonc@google.com> Merge "Updating activity/task transition animations."
dc6f79bf4374f2fcea2b9d4d0aa7f2e39cc42456 18-Apr-2012 Winson Chung <winsonc@google.com> Updating activity/task transition animations.

Change-Id: I0d4295d269222310a5a6594fb379b9592dd9ced0
indowManagerService.java
8a197a4e0887000241dfd183d1e83e6e0f9b2268 25-Apr-2012 Craig Mautner <cmautner@google.com> Fix dark flash when transition ends.

The DimSurface layer was momentarily being placed above the entering
app animtion. This lets the layering be set after the animations have
been evaluated.

Plus debug enhancements.

Change-Id: Icc034bc5264ae9bc6c57c593534683b56588b59a
ppWindowAnimator.java
imSurface.java
indowAnimator.java
35af2fff433e6f83f70b8bb15b3bf4fc19d13104 24-Apr-2012 Craig Mautner <cmautner@google.com> Don't start a dimming operation when hiding.

Check to see if app token is hiding before going ahead with turning on
dimming. Before this fix went in we were turning dimming back on right
after turning it off. Then we didn't turn it off again until all
animations had completed leading to a delayed dim-off experience.

Fixes bug 6378033.

Change-Id: Ic819a0093ba95f62df369266c07525835703c5fa
indowManagerService.java
69c1a571acefc59d7260e6c805801656923b1330 24-Apr-2012 Craig Mautner <cmautner@google.com> Merge "Various debugging enhancements."
4d9251bb3e62cddbfd9b85f1204b5c5043e3c76e 24-Apr-2012 Craig Mautner <cmautner@google.com> Merge "Fix visual glitch in app transition."
fbf378c736a973b8edaf1fc4c187d11dc0f5e291 24-Apr-2012 Craig Mautner <cmautner@google.com> Various debugging enhancements.

Also moved DummyAnimation into AppWindowAnimator where it belongs.

Change-Id: I7da254a8b99030b898e2ff8d983500d7ce0b2b65
ppWindowAnimator.java
indowAnimator.java
indowManagerService.java
indowStateAnimator.java
9cd75d46b0a9683a573953822633b610bafa5771 24-Apr-2012 Craig Mautner <cmautner@google.com> Fix visual glitch in app transition.

When dummy animation is being used, set the alpha to 0 or 1 depending
on whether the app was previously hidden or visible.

Change-Id: I1a4e3cdb4b9ca4a6aef58e47bf26e5adbef66a7f
ppWindowAnimator.java
924c21582c666151e01206df82c27de9424e914a 24-Apr-2012 Craig Mautner <cmautner@google.com> Set mOrientationChangeComplete after windows drawn.

Force a pass through layout with mOrientationChangeComplete set
following all windows drawn when the application is freezing the
screen.

This fixes bug 6359311.

Change-Id: I318864fb687cf85a0c9ac4478e4f29dc20f43d9c
indowAnimator.java
8ff0c9204e565d7389b10495cf885c772d204be5 21-Apr-2012 Dianne Hackborn <hackbod@google.com> Merge "You can now long press on the power off menu to reboot to safe mode."
19caadc08f09cc9f6665fbbb0d61e02861ce8562 21-Apr-2012 Dianne Hackborn <hackbod@google.com> You can now long press on the power off menu to reboot to safe mode.

Change-Id: I3aa575285058cf5a3d89486d6b944f6ea13d645c
indowManagerService.java
4d7349bb6df5a01ba451aa1abd4c9f6349a57016 20-Apr-2012 Craig Mautner <cmautner@google.com> Remove flicker from transitions.

Change state progressions to handle animation/layout separation.
Also added debug as needed.

Fixes bug 6360835.
Fixes bug 6206366.
Fixes bug 6286371.
Fixes bug 6240494.

Change-Id: I1079756a7e3e35ebb9f711f02d005bde9bf65ef0
imAnimator.java
indowAnimator.java
indowManagerService.java
indowStateAnimator.java
68c33ca7ce1f142eb5f1e1f90118aeba4c9db1e3 19-Apr-2012 Dianne Hackborn <hackbod@google.com> Add new API to find smallest/largest screen size.

Change-Id: I790801fceaf84ee2e3b1c9d32828285ad3231d0e
indowManagerService.java
76eb1032d8bb1580469563a79c36849c8b0a3cb3 19-Apr-2012 Craig Mautner <cmautner@google.com> Merge "Defer the Surface.show until animation phase."
de6198ebd7f9ea5b7940d38bf5839dfbc6a192c4 19-Apr-2012 Craig Mautner <cmautner@google.com> Defer the Surface.show until animation phase.

This fixes a rotation bug introduced by delaying rendering animation
into the Surface. Now instead of delaying the rendering we delay the
show by eliminating a point where we were showing the Surface too soon.

Change-Id: I63ad3b494963111ffc96569093c8d43517c5408b
indowStateAnimator.java
08ce91a1a4c4b69a30a46095ed701d804dd6302e 19-Apr-2012 Dianne Hackborn <hackbod@android.com> am 7eda9de1: am 2fe57183: am 30eec832: Merge "Transparent activity orientation problem when previous landsacpe fullscreen activity not yet destroyed."

* commit '7eda9de1a638e4ed1ce5dc65fecd673400b9f3c0':
Transparent activity orientation problem when previous landsacpe fullscreen activity not yet destroyed.
7f58b95f7c2bd75a991ec6a2f05676aaba47a544 18-Apr-2012 Dianne Hackborn <hackbod@google.com> Fix to custom scale animations.

These now do something reasonable when performing transitions
across two activities that are both on top of the wallpaper.

Fixed computation of the pivot point of the animations.

Fixed issue where the recents panel was considered a status
bar element for purposes of deciding if the animating elements
are obscured by the status bar, which would result in us not
running the animation correctly.

Change-Id: I4b9b588b80243463e6f087a9703ee886ee281630
indowManagerService.java
9546e457fcfed1da9448d72758642793d9e271bb 18-Apr-2012 Craig Mautner <cmautner@google.com> Delay rendering into Surface until draw completed.

Hold off on updating surface with animation until the Surface draw has
completed. Previously we were calling Surface.setAlpha/setLayer/
setMatrix prior to the app drawing into the surface. This fixes a bug
that caused a flash of the target animation image before the animation
had begun.

Change-Id: Id9142e09b0b22d631dc002eba4dc787455dea03a
indowStateAnimator.java
0445bc6e4eeba8af74e7eea7c9d68e1ede74f90d 18-Apr-2012 p13451 <cheoloh.park@gmail.com> Transparent activity orientation problem when previous landsacpe fullscreen activity not yet destroyed.

After terminating landsacpe fullscreen activity,
when user launch transparent activity via portrait home app, transparent activity is shown as landscape mode.

At this time AppWindowToken of previous acitivity has not been deleted, because Activity.onDestory() has not been returned yet.
In this case, getOrientationFromAppTokensLocked() returned ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE.

Ignore hidden application is terminated on the top.
See also http://code.google.com/p/android/issues/detail?id=28927

Change-Id: I51239431120ec6ba8f8ff76871efb2347b9810ca
indowManagerService.java
a51a9564fd53b661446cd63eea23208656acc678 18-Apr-2012 Craig Mautner <cmautner@google.com> Add call-stack reporting methods into Debug

Added two public methods to Debug. These methods return a String
indicating the caller (getCaller()) or callers (getCallers(int depth))
of the calling method. The String indicates the class, method and line
number of the caller(s). Similar to using Throwable.fillInStackTrace()
but much more concise.

Change-Id: I53d0085aa50e4501d28e8eb3ad5b91ef700ac218
indowManagerService.java
indowStateAnimator.java
c843642fbb76619520f960043adaa268e252a657 17-Apr-2012 Craig Mautner <cmautner@google.com> Merge changes I4752bdf1,I37690cf2

* changes:
Move Surface operations into existing transaction.
Clear orientation variable until rotation is done.
acaf9cca865902e6f1823e771f4234bfda53cfd1 17-Apr-2012 Craig Mautner <cmautner@google.com> Move Surface operations into existing transaction.

Several Surface operations - notably setPosition, setSize, and show -
had been moved outside of a Surface.openTransaction/closeTransaction
window. This corrects that problem.

In addition, before animations were separated from layout the Surface
frame was computed prior to returning from relayoutWindow(). After
separation the frame was being computed during animation. This checkin
restores the frame calculation in layout.

Fixes bug 6343291.

Change-Id: I4752bdf1fed0f2b46c5eb9508825c9b1b0fd702f
indowManagerService.java
indowStateAnimator.java
eabfb3a36e9469c5e219f92b39b7200104319185 17-Apr-2012 Dianne Hackborn <hackbod@google.com> Add new scale-up window manager animation.

Like zoom thumbnail, but without the thumbnail.

Change-Id: I9486dd204398b87c9e70ff0d05d03f4a22449cd6
indowManagerService.java
3255a28b6a18bb97f0e533dc1673c5e28837b4f2 17-Apr-2012 Craig Mautner <cmautner@google.com> Clear orientation variable until rotation is done.

In the old code orientationChangeComplete was set to true on each pass
through perfomLayout. If any window was rotating the variable was set
to false on the way through the performLayout. Since we can now make
passes through performLayout before any animation step occurs we were
seeing mOrientationChangeComplete true prior to rotation completing.

This change sets mOrientationChangeComplete false at the start of a
rotation and sets it to true if we ever get through an animation step
without encountering any rotating windows.

Change-Id: I37690cf20868dfbaac94a81640bc4d9cb9fb8f00
creenRotationAnimation.java
indowManagerService.java
7d8df3905d294127cc58100912a57c816bfb2502 07-Apr-2012 Craig Mautner <cmautner@google.com> Animate from Choreographer only.

Animation steps are now executed on a Thread launched from the
Choreographer rather than being called at the end of the WindowManager
layout process. Animations and layout are still tightly coupled in
that they share considerable state information and neither can be
executed without holding a lock on WindowServiceManager.mWindowMap.

Change-Id: Ie17d693706971507b50aa473da1b7258e9e67764
creenRotationAnimation.java
indowAnimator.java
indowManagerService.java
indowStateAnimator.java
7358fbfeb2febb60085067fcacc192f429b06545 13-Apr-2012 Craig Mautner <cmautner@google.com> Minor cleanups.

- Replace HashSet with ArrayList.
- Check for Watermark and SurfaceSession initialization once, not every
time through layout.
- Move watermark rendering into animation.
- Add surface operation debugging.

Change-Id: I4b7e7c0b8d89d43c67a42753832f90b8632d4f5d
indowAnimator.java
indowManagerService.java
indowStateAnimator.java
0c2acffec8689f8721a454845b24a830bc37ce92 13-Apr-2012 Dianne Hackborn <hackbod@google.com> Clean up lock screen hide animation.

We now have an animation to apply to the thing behind the lock
screen animation when it isn't on the wallpaper, which looks
similar to the animation we use when both are on the wallpaper.

In implementing this, cleaned up the code to figure out up-front
which animation to run, getting rid of that kludgy thing that
cleared the window animation if the wallpaper was not being used
for the lower windows.

Change-Id: Ifc4c8a8894ad384124dcf4bbdaab134f1157b0f3
indowAnimator.java
indowManagerService.java
187ae2105eb771e10ef54e0e9f2796e7fb7cb4e9 12-Apr-2012 Dianne Hackborn <hackbod@google.com> Revert to ICS screen rotation animation.

Change-Id: Ida76f17a00e4c8ab828deae51095107e4eeaa321
creenRotationAnimation.java
indowAnimator.java
2f63cfda7645cf8ac6734b751fb9dcee42d6b302 12-Apr-2012 Justin Mattson <jmatt@google.com> am 4ea7bfea: Merge "Check if WallpaperService is enabled" into ics-aah

* commit '4ea7bfea312e4ddf815eabdef04d3f3b4878a51a':
Check if WallpaperService is enabled
1e1edaa60dc183b1b8f0b8588deb8c42c9169cfb 12-Apr-2012 Craig Mautner <cmautner@google.com> Merge "Check WindowState when looking for animation."
f20588fdc65a5651c3a5ab5c0c20165c0e33c394 12-Apr-2012 Craig Mautner <cmautner@google.com> Check WindowState when looking for animation.

The method setTokenVisibilityLocked returns true when animations are
delaying the exit of an app. Previously this only checked AppToken
animations but that caused exiting WindowState animations to be
ignored.

In particular if an application both hid an AppToken and then
dismissed the AppToken, the AppToken was being removed from
mClosingTokens before the animation finished. This caused
rebuildAppWindowListLocked to lose a WindowState. Furthermore
Surfaces were not being removed when a WindowState was lost and
we were leaking Surfaces.

Fixes bug 6297563.

Change-Id: Ie75c71064518199237ec4a17d3f65e2a2dd29674
indowManagerService.java
f8d4fbb9c87201350534861c4d988e63691fe24f 11-Apr-2012 Craig Mautner <cmautner@google.com> Check for existing dimming before stop dimming.

Add a test to make sure that we are dimming before we send the message
to stop it. This prevents a CPU consuming loop when dimming is already on.

Fixes bug 6320003.

Change-Id: If26dc5b0800300d8e38c166824651223eded4cfa
indowAnimator.java
indowManagerService.java
f0cabba38bcb1aefad191915e214e836fa5ed2bd 10-Apr-2012 Craig Mautner <cmautner@google.com> Merge "Fix NPE in setTransparentRegion."
1f4e0ccba08e4abb55a38a8b5936dbb244475fb9 10-Apr-2012 Craig Mautner <cmautner@google.com> Fix NPE in setTransparentRegion.

Check for null Surface before using it.

Fixes bug 6312835.

Change-Id: Iaaac2a5d88e81b88e369815e09818c268085e4b7
indowManagerService.java
indowStateAnimator.java
8330e40b9897afb1e2b2e6354ed3c35e7c557486 10-Apr-2012 Craig Mautner <cmautner@google.com> Merge "Reduce load on CPU when animating rotation."
73850cb6991074e33c31d310ccb63a1f863f7b4e 10-Apr-2012 Craig Mautner <cmautner@google.com> Reduce load on CPU when animating rotation.

This change keeps requestTraversalLocked from being called on virtually
every call to animate while rotating.

Change-Id: I6d2db37db3bb82f4f9ecc84b17dbf121819a6c1b
indowAnimator.java
indowManagerService.java
c38cf4c7dbe7d96255d42dabf8ca801830813f5e 10-Apr-2012 Daniel Sandler <dsandler@android.com> Merge "New Android Dreams architecture, disabled for now."
4233f262499aa1dea332fe60d7a30ab4cdc4e3ed 10-Apr-2012 Justin Mattson <jmatt@google.com> Check if WallpaperService is enabled

If WallpaperService is disabled, don't delay starting SurfaceFlinger
until it is.

Change-Id: I95db6b7bc791329e2bae33472cfeb125e5f6f324
indowManagerService.java
7d276c377ce0c56630c06a6da431a6cb9bd76d1e 30-Jan-2012 Daniel Sandler <dsandler@android.com> New Android Dreams architecture, disabled for now.

Rather than normal Activities (which have a host of problems
when used for this purpose), screen savers are now a
special kind of Service that can add views to its own
special window (TYPE_DREAM, in the SCREENSAVER layer).

Dreams are now launched by the power manager; whenever it is
about to turn the screen off, it asks the window manager if
it wants to run a screen saver instead. (http://b/5677408)

Also, the new config_enableDreams bool allows the entire
feature to be switched on or off in one place. It is
currently switched off (and the APIs are all @hidden).

Change-Id: Idfe9d430568471d15f4b463cb70586a899a331f7
indowManagerService.java
27fd3420ac0498ff5086f71023f443966541aa04 09-Apr-2012 Jeff Brown <jeffbrown@google.com> Fix lid switch interpretation.

Also remove unnecessary permission check for method that is
only called internally.

Change-Id: I32f63fc3e96b06709d18b046ee2d3c8f310de70d
indowManagerService.java
3de422fe4fe903b1370f3f7ee9c7086966e15b28 07-Apr-2012 Craig Mautner <cmautner@google.com> Fix endless looping in layout.

An odd alignment of the stars can end up with all of mAppToken.allDrawn
animating and mAppToken.startingDisplayed all false, and animation not
null. In such a case we can continue returning false but still pass
the test in WindowAnimator.updateWindowsAndRotation setting
wasAnimating to true. The combination continually sets the
FINISH_LAYOUT_REDO_WALLPAPER bit in mPendingLayoutChanges.

Fixes bug 6304838.

Change-Id: Ie7a7b39ea218213f51dc3df3eefe4ff03f1d885d
ppWindowAnimator.java
bec53f7066852c1c5877c51fcd8c55840891d866 05-Apr-2012 Craig Mautner <cmautner@google.com> Animate from local list of WindowStateAnimators.

Stop animate() from using the mWindows maintained by
WindowManagerService. Animating WindowStateAnimators are now drawn from
a HashSet maintained by WindowAnimator and containing just those
WindowStateAnimators that have Surfaces.

When starting a move animation do not place parameters directly into
the WindowStateAnimator, instead pass them through the Handler.

Also removed synchronization points from mWindows/mAppTokens
add/remove.
ppWindowAnimator.java
ppWindowToken.java
imAnimator.java
imSurface.java
indowAnimator.java
indowManagerService.java
indowStateAnimator.java
7a3bc87468d2d2c48e9ae3071c82f7aa5251e7d5 06-Apr-2012 Craig Mautner <cmautner@google.com> Merge "Fix so that windows again animate when moving."
ac14351e16e1258f1cb54e2bf772b8be004eb2b8 06-Apr-2012 Jeff Brown <jeffbrown@google.com> Move some APIs from window manager to input manager.

Simplified input injection API down to just one call.

Removed all input state reading API. It was only used by the
window manager policy and required a permission that applications
could not obtain. READ_INPUT_STATE is now unused and deprecated.

Change-Id: I41278141586ddee9468cae0fb59ff0dced6cbc00
indowManagerService.java
6af9b92b75c820661ea995a98898395f22871498 06-Apr-2012 Craig Mautner <cmautner@google.com> Fix looping to turn off dimming.

Dimming was constantly being turned off if it wasn't time to turn it
on. This caused endless reentry into the Window Manager and consumed
lots of CPU.

Fixes bug 6293953.

Change-Id: Id87e60c7c70e96e66ce0b6297442f5ac0d2ff477
indowAnimator.java
indowManagerService.java
42c45856f5d8927e188ed1c9c3c8dd711af5796e 06-Apr-2012 Dianne Hackborn <hackbod@google.com> Fix so that windows again animate when moving.

Change-Id: I2441d0c892687b8cda239815caf77837cd21093e
indowManagerService.java
e9bdb31ea1dc3c1c2b1833a4bf0031d85928a45b 06-Apr-2012 Jeff Brown <jeffbrown@google.com> Merge "Refactor input system into its own service."
4532e6158474a263d9d26c2b42240bcf7ce9b172 05-Apr-2012 Jeff Brown <jeffbrown@google.com> Refactor input system into its own service.

Extracted the input system from the window manager service into
a new input manager service. This will make it easier to
offer new input-related features to applications.

Cleaned up the input manager service JNI layer somewhat to get rid
of all of the unnecessary checks for whether the input manager
had been initialized. Simplified the callback layer as well.

Change-Id: I3175d01307aed1420780d3c093d2694b41edf66e
ppWindowToken.java
ragState.java
akeWindowImpl.java
nputApplicationHandle.java
nputFilter.java
nputManager.java
nputMonitor.java
nputWindowHandle.java
indowManagerService.java
indowState.java
e4d8a5dd42070d919dbd774f24c6684ecf1e350e 05-Apr-2012 Craig Mautner <cmautner@google.com> Fix failure to animate away exiting AppWindowToken

A previous check in changed the collection we were pulling exiting
AppWindowTokens from. Instead of pulling them from mExitingAppTokens
they came from mAppTokens and hence were not animated away.

Fixes bug 6296433.

Change-Id: I23347085658fce5412abb8ea119ce7e6152cab8b
indowAnimator.java
f87d19621dc2a30232bba1f51862a0b671eb9729 04-Apr-2012 Dianne Hackborn <hackbod@google.com> Clean up status bar, system bar, navigation bar management.

The status bar and navigation bar are two completely separate
elements, with their own semantics. The system bar now classifies
itself as a navigation bar, since that is really how it behaves.

This required rewriting the HDMI resizing code, so that it is
all done by PhoneWindowManager since that is what is responsible
for the size of the navigation bar (and thus now system bar). This
actually gets rid of a fair amount of code, and means we can also
do the same thing for a pure navigation bar.

Likewise the system bar now has the navigation bar ability to be
hidden when requested by system UI flags. To get the behavior
we want on Xoom, we only allow the nav bar to be hidden when it
will help provide a better aspect ratio for showing widescreen
videos.

Finally the nav/system bar now animates when hidden and shown.

Change-Id: Ie927154b68376a0b61802f99171ff56b8da92e7a
indowManagerService.java
indowState.java
594316361d38d88b53c85bd5c8d58a92345e8187 04-Apr-2012 Craig Mautner <cmautner@google.com> First separation of animation from AppWindowToken.

New class AppWindowAnimator pulls animation out of AppWindowToken.

Change-Id: Ic1ccb6ec2bf091f1f901fe3c20cbeb242376ae6b
ppWindowAnimator.java
ppWindowToken.java
indowAnimator.java
indowManagerService.java
indowState.java
indowStateAnimator.java
d09cc4ba247e896cc95a57ed7a3247b55b1b68fc 04-Apr-2012 Craig Mautner <cmautner@google.com> Move more items between layout and animate sides.

- Isolate DimAnimator animation from the layout side.
- Isolate mWallpaperForceHidingChanged and mOrientationChangeComplete
from the animation side.
- Eliminate a redundant setting of mOrientationChangeComplete to true.
It was already true at that point.
- Synchronize changes to mWindows and mAppTokens on mAnimator. This is
a nop until we go to multiple threads.
- Synchronize AppWindowToken.freezingScreen on mAnimator.
- Modification to repeat layout debugging including temporary enabling
of spew on layout repeats.

Change-Id: Ic8d82b1c197144aaf6957caa5f71e175288220f2
ppWindowToken.java
imAnimator.java
indowAnimator.java
indowManagerService.java
indowState.java
indowStateAnimator.java
1d6013357847983180a317e2acaf807bde8b7ea7 02-Apr-2012 Craig Mautner <cmautner@google.com> Merge "Refactor to convert four state booleans to int."
749a7bb28b2aff7a77a8c7dce01e086c2bd82c6b 02-Apr-2012 Craig Mautner <cmautner@google.com> Refactor to convert four state booleans to int.

Replace four booleans (mDrawPending, mCommitDrawPending, mReadyToShow
and mHasDrawn) with a single int that can take on the four states.

Move mLastHidden from WindowState to WindowStateAnimator.

Change-Id: Ieff319dfa19123bf5a6cdc98e9ab28fd432b8153
ppWindowToken.java
indowAnimator.java
indowManagerService.java
indowState.java
indowStateAnimator.java
ea7ff4d2fe58505ec66c0e994ac1e03561b2b836 02-Apr-2012 Craig Mautner <cmautner@google.com> Merge "Defer a couple of Surface actions for WSAnimator."
48ba1e7f530dab01bd2e733b6466246380720a92 02-Apr-2012 Craig Mautner <cmautner@google.com> Defer a couple of Surface actions for WSAnimator.

Perform the set-transparent-region-hint operation outside of the
WindowManagerService loop. This is to isolate the Surface operation
from the WindowManagerService inner loop.

Similarly, defer the setWallpaperOffset call so it's animation is not
coupled to the WindowManagerService inner loop.

Note that both operations are still being done on the
WindowManagerService thread.

Change-Id: I97f030b2a9b7cffe91c77342a299bfac6e59e9f8
indowManagerService.java
indowStateAnimator.java
5d724f50d4d3907c4742dadd666f5355f046b5b1 02-Apr-2012 Craig Mautner <cmautner@google.com> Merge "Further isolate the Surface from WindowState."
c8bc97e53044cd62c0e023fdc441fd13127d0283 02-Apr-2012 Craig Mautner <cmautner@google.com> Further isolate the Surface from WindowState.

Replace references to mWinAnimator.mSurface with new member
mHasSurface.

Clean up odd looping structures.

Simplify logging.

Change-Id: I9cc52a657044220d7b92528928b11bb18a724aef
ppWindowToken.java
indowManagerService.java
indowState.java
indowStateAnimator.java
e6c966caa3aff3099e6fb00caefa10387f57b9c3 02-Apr-2012 Michael Jurka <mikejurka@google.com> Merge "Add frame counter to dumpGfxInfo"
61d6c8ca49d4a3d5bf4c961878a3f71145d75058 31-Mar-2012 Dianne Hackborn <hackbod@google.com> Merge "Add new feature to let apps layout over status bar / system bar."
3a3a6cfd8ec12208ca75c0d0d871d19d76c34194 26-Mar-2012 Dianne Hackborn <hackbod@google.com> Add new feature to let apps layout over status bar / system bar.

The main change is a few new flags you can supply to
View.setSystemUiVisibility(). One is a new visibility mode,
SYSTEM_UI_FLAG_FULLSCREEN, which is basically the same as
the global FLAG_FULLSCREEN option for windows, but driven as
part of the system UI state.

There are also three new flags for telling the framework that you
would like to have your application's UI ignore screen
decorations -- SYSTEM_UI_FLAG_LAYOUT_NO_NAVIGATION for going
behind the navigation bar and SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
for ignoring full screen decorations (that is the status bar).

In combination with this you can use SYSTEM_UI_FLAG_LAYOUT_STABLE
to have the framework report consistent insets to your application.

When using NO_NAVIGATION, when the user taps the screen we now
also automatically clear ONLY_CONTENT, so that we atomically show
both UI elements. This should make it easy for apps like video
players that want to move between fully full-screen and regular
modes.

The ActionBar has also been extended when in overlay mode so
that it will adjust the system window insets to also account
for its space, and allow it to be hidden using the new
SYSTEM_UI_FLAG_FULLSCREEN.

Change-Id: Ic8db1adec49a0f420bfe40c1d92eb21307856d0b
indowManagerService.java
4185012ad323847fb60d32224a642df629c0e06c 30-Mar-2012 Craig Mautner <cmautner@google.com> Merge "Move variables into animation class."
a608b882327fbb393bde3854953cd322a6fea675 30-Mar-2012 Craig Mautner <cmautner@google.com> Move variables into animation class.

Moved drawPending and commitDrawPending and associated methods from
WindowState to WindowStateAnimator.

Created mechanism for passing results from WindowAnimator to
WindowManagerService. Initial results passed are mUpdateRotation and
mWallpaperMayChange.

Change-Id: Ib03d28f921580ac9426ea9233bea6eafc9ea964c
ppWindowToken.java
indowAnimator.java
indowManagerService.java
indowState.java
indowStateAnimator.java
a3fabff98590d26f0c362cb09dc378fece66215c 28-Mar-2012 Michael Jurka <mikejurka@google.com> Add frame counter to dumpGfxInfo

Change-Id: I016f706e32cbdbce014795d8fc537b15c389dc7a
indowManagerService.java
15d5a964fd120766d049fddfc051d10eef5e440d 30-Mar-2012 Craig Mautner <cmautner@google.com> Merge "Remove obsolete variable masking valid one."
d87946ba48b62a6a83fd971ef7c4c419407db836 30-Mar-2012 Craig Mautner <cmautner@google.com> Remove obsolete variable masking valid one.

The mUpdateRotation variable was still in the WindowManagerService
mInnerFields object. This was masking the true mUpdateRotation found in
WindowAnimator.

Fixes Bug 6240025.

Change-Id: I6531002f870f30d22e19ba9af5cac86e1c7b9bcb
indowManagerService.java
indowState.java
indowStateAnimator.java
a08f3e866a46c990e786defa95013ee0313b0887 30-Mar-2012 Jeff Brown <jeffbrown@google.com> Merge "Enable vsync traversals by default."
ebb2d8d708c5c58c79ae88ac2bd10450a856f702 24-Mar-2012 Jeff Brown <jeffbrown@google.com> Enable vsync traversals by default.

Improved how the various callbacks are managed and sequenced
to reduce code duplication.

Added a heuristic to avoid postponing traversals until
the next vsync frame if we did not actually do any drawing during
the previous frame. This helps in the very common case where
drawing occurs in response to input.

Change-Id: I277d9eeaf50408f8745a3cfd181db1d140770658
indowManagerService.java
c2f9be0b7fe14258e01d73f6bc43dd94c3e711d4 28-Mar-2012 Craig Mautner <cmautner@google.com> Move Surface operations out of WindowState.

Migrated the bulk of Surface operations from WindowState to
WindowStateAnimator. There remain a multitude of cross-referencing
between the two classes and most of the other classes in the wm
package.

Change-Id: I4bfdfb84be31341371f3ef311aca8fc6a4966692
ppWindowToken.java
imAnimator.java
indowAnimator.java
indowManagerService.java
indowState.java
indowStateAnimator.java
e7ae2505405cf30d9d3140278d5b9a2604d866df 27-Mar-2012 Craig Mautner <cmautner@google.com> Move wallpaper animations int WindowAnimator.

More refactoring. This time wallpaper animations were broken up from
WindowManagerService and the layout piece kept there while the
animation piece was moved into WindwoAnimator.

Also, applyAnimationLocked and applyEnterAnimationLocked were moved
from WindowManagerService to WindowState.

Change-Id: I05935023702ce05fdfdc804342ec14f719cdfea4
indowAnimator.java
indowManagerService.java
indowState.java
indowStateAnimator.java
b3cbd0b4d827577b3b8ad34106779c67a48701dd 27-Mar-2012 Craig Mautner <cmautner@google.com> Merge "Refactor animation out of WindowState."
a2c77053b8dfa5f06bdd927bdbab4df2d00bb4e2 26-Mar-2012 Craig Mautner <cmautner@google.com> Refactor animation out of WindowState.

Remove the animation stepping from WindowState and move it into a new
class, WindowStateAnimator. Update all references to moved variables
in related files.

Change-Id: I7540d8f897b370c73975f3ffe450140861cb0cd1
ppWindowToken.java
imAnimator.java
indowAnimator.java
indowManagerService.java
indowState.java
indowStateAnimator.java
4accb6a88bcd8521db1cd7cf438abd292e38741e 26-Mar-2012 Michael Jurka <mikejurka@google.com> Fix bug: don't show system bar in app thumbnails

Bug: 5953608
Change-Id: Ib730638fe130f287ff446db0c6cd42efc5746c5c
indowManagerService.java
cf8cbbe77447d9cca28e789c5ec4e714694ab37d 26-Mar-2012 Craig Mautner <cmautner@google.com> Skip layout if performShow fails.

In cases where a Surface does not go from hidden to shown, do not set
the perform layout flag. This keeps us out of repeated passes through
the layout code.

Fixes bug 6222487.

Change-Id: I22601bef5733d2f996a8cbdd50d6b89517bc3122
ppWindowToken.java
indowAnimator.java
indowManagerService.java
indowState.java
d5f2374e13a7bcefbc7252b814d128794f22af93 24-Mar-2012 Craig Mautner <cmautner@google.com> Merge "Reset layout needed at each animation step."
bb1449b392b4fb14f17fa747c2261d7195405df3 24-Mar-2012 Craig Mautner <cmautner@google.com> Reset layout needed at each animation step.

The member variable WindowAnimator.mPendingLayoutChanges was never
being reset to 0. Consequently once it was set it was causing endless
calls to the layout method.

Fixes bug 6208114, 6220403, 6219546.

Fixed NPE in RecentsPanelView.

Change-Id: Ie529b8f31e535543cb5ae0af9447146306b14eeb
indowAnimator.java
indowManagerService.java
8078d8c8a282ca81344febe7256f63b1e805e3aa 20-Mar-2012 Dianne Hackborn <hackbod@google.com> Add new thumbnail animation.

Use it for recent tasks switching.

Not perfect yet by far, but something.

Also fix issue #6186758: Twitter crashes after tapping on a tweet on JRM75D

Change-Id: I49bf6c94aafde875ac652dedaf96d6c08cc9e7d2
ppWindowToken.java
indowAnimator.java
indowManagerService.java
764983d16925daeeba3f29fd1f844187655d1386 22-Mar-2012 Craig Mautner <cmautner@google.com> Separate animation into separate class.

Introduction of the class WindowAnimator which takes care of all
animations stepping and Surface operations.

Change-Id: I78f1c269fa57df0616c08adbe156e3059709ae48
ppWindowToken.java
indowAnimator.java
indowManagerService.java
indowState.java
03273d00ce1d7b4ebde95994732dd80204ba7e68 21-Mar-2012 Craig Mautner <cmautner@google.com> Continue animations started from AppWindowToken.

Animations that were started from AppWindowToken.showAllWindowsLocked
were not setting mInnerFields.mAnimating and hence the animations were
not progressing. This resulted in popups such as menus and time/date
settings not showing up.

Fixes bug 6205076.

Change-Id: I4daae5895e64182328671e282331f14dd5561d5e
ppWindowToken.java
indowManagerService.java
2fb98b147b58210604dfaf1482f635ce8d8a0575 21-Mar-2012 Craig Mautner <cmautner@google.com> Minor refactoring prior to major refactoring.

Removal of blur layer.
Deferral of Surface actions in BlackFrame from ctor to first use.
Combine common test into single method okToDisplay().
Remove redundant logic in DimAnimator.

Change-Id: I43af0415794a8f142803ce94d7e17539aafac67d
ppWindowToken.java
lackFrame.java
imAnimator.java
indowManagerService.java
indowState.java
22ce1414a0073b5cddadf1da8475f6fb7b409e44 20-Mar-2012 Craig Mautner <cmautner@google.com> Fix flickering when starting and ending apps.

Surfaces were displaying animations in their entirety for a single
frame before the animation kicked in. This caused a flash on the
screen. By setting the animation to invisible (alpha=0) at their
start it makes no difference if they are displayed.

Fixed bug 6176540.

Removed redundant mDimAnimator.show call.

Change-Id: I47c1b0d38273b011d9115822a8476671d6a050fc
ppWindowToken.java
indowManagerService.java
indowState.java
dea50f05e43b2ad6ea392d7ddfbfa691f6903734 17-Mar-2012 Dianne Hackborn <hackbod@google.com> Merge "More work on rotation animation."
d6b32b6178238361ffd1b428120942858de78428 16-Mar-2012 Dianne Hackborn <hackbod@google.com> More work on rotation animation.

Change-Id: Ib8206db98b68cb1e0b16e4c55d949e80ff31bd9f
lackFrame.java
creenRotationAnimation.java
0059d3508f3c5346d4ea07d4ada3e1827e4c8a01 16-Mar-2012 Craig Mautner <cmautner@google.com> Fix black screen on app transition.

The layer adjustment to an animating window upon completion was masking
the window behind the mWindowAnimationBackgroundSurface, a DimSurface.
The DimSurface was not being hidden because the step was happening too
late. Swapping the order of performAnimationsLocked and
updateWindowsAppsAndRotationAnimationsLocked fixes this ordering issue.

Fixes bug 6185920.

Change-Id: I0ff64c019e821fa3a92505ac6351f2648897e592
indowManagerService.java
1dd3ed09e8623574ef21fd48354eaa46d1edd9ee 16-Mar-2012 Craig Mautner <cmautner@google.com> Perform finish animation actions.

When stepAnimation returns false, do not return false immediately.
Instead carry out finish actions. Also, remove state machine that is no
longer necessary.

Fixes bug 6184070.

Change-Id: I530eb2b62b864bbce929f573d10b31b102152f1f
ppWindowToken.java
indowState.java
bf90eaa5d2410bfb60ef84a0efcf3b5eb5022d9f 15-Mar-2012 Craig Mautner <cmautner@google.com> Separate layout ops from surface ops.

Further work to isolate layout from animation and surface operations.
Remove cruft and minor refactoring.

Change-Id: I6f910ed72c7c614996641c353870c2b2ab5e8bb4
creenRotationAnimation.java
indowManagerService.java
indowState.java
e32c30784191a9244a08450759471c934c85034c 12-Mar-2012 Craig Mautner <cmautner@google.com> Separate out animations from layout.

(Dianne) pulled the animation steps out of the layout. Changes to
exposed layers cause repeated calls to layout code.

Combined animation steps into start and finish animation code.

Change-Id: I3602d1d6249d20987d102a54e3a67a7a39361b55
ppWindowToken.java
creenRotationAnimation.java
indowManagerService.java
indowState.java
1743b64d87cee56e51dedbe4ad60fa2acc28af9c 13-Mar-2012 Dianne Hackborn <hackbod@google.com> Dejank: also animate window moves due to requested size changes.

This performance an animation when, for example, a dialog window is
moved because the size of its content has changed.

Change-Id: I2d79a1a57f94e0f2f8ef706a473fca6c9cc637cf
indowState.java
466608e9e8bc48dafa2f970249076b03535cb97a 09-Mar-2012 Craig Mautner <cmautner@google.com> Merge "Fix state machine sequence causing wallpaper flash."
ad3a9bb628e912b39e10f8d8a8bde0badefd8bd0 09-Mar-2012 Craig Mautner <cmautner@google.com> Fix state machine sequence causing wallpaper flash.

Fixes bug 6127355.

Change-Id: Ie6894329829f78b3ff8936cfe5ed2933490db5d8
indowManagerService.java
indowState.java
55b4b28606e740c3a1f75dd7b9b3b8feee86d795 09-Mar-2012 Dianne Hackborn <hackbod@google.com> Merge "Improved rotation animation."
191874e37106ca503003ef3d4bec392ca2627cbe 09-Mar-2012 Dianne Hackborn <hackbod@google.com> Improved rotation animation.

Change-Id: Id21686be8b2b229dc61c5d01f888c9b5deabb857
creenRotationAnimation.java
df813c03b16ed32c25a8c8fee82a7a98088ac940 09-Mar-2012 Jeff Brown <jeffbrown@google.com> Merge "Use the Choreographer for Drawable animations."
bb9908b828a8cfd5965553be66faa6af89973697 08-Mar-2012 Romain Guy <romainguy@google.com> Dispatch screen state change events to Views
Bug #6120957

Using this new callback, views can interrupt and resume their
animations or other periodic tasks based on the current state
of the display.

Change-Id: I398f4abd421e9c5f207107bf1009a7b92cf45daa
indowManagerService.java
7ae9d5faad5816f7e567ec1ec77e78d746cf7e5c 06-Mar-2012 Jeff Brown <jeffbrown@google.com> Use the Choreographer for Drawable animations.

Change-Id: Ifcbf33434bf3c32d1900fd0b3f5bde004604ce8a
indowManagerService.java
7e4e561bc717a6eea4e0d06ec4173ad27420425f 05-Mar-2012 Romain Guy <romainguy@google.com> Ignore draw requests when the display is off

When WindowManagerService's events are enabled/disabled, the state of the
display is dispatched to the known windows. This allows ViewRootImpl to
ignore draw requests until the screen is turned back on. This can potentially
lead to significant battery savings. For instance, a launcher widget showing
a repeating animation will cause the CPU and the GPU to wake up regularly
without this change.
(Change submitted by Intel and merged manually)

Change-Id: I7f93b0e60c3e6de1705f619e80860c36b1cdb978
indowManagerService.java
c3b91e9afd981f1a994a1024c3e822cf909f070d 05-Mar-2012 Dianne Hackborn <hackbod@google.com> Merge "More work on rotation animation."
9fd74805c8be91df78f3eccc40ab2466c8114fc9 02-Mar-2012 Dianne Hackborn <hackbod@google.com> More work on rotation animation.

The black frame is now a separate animation element. This allows us
to have it move through the aspect ratio change, without the old
and new screen elements doing weird aspect ratio scalings. This
makes the animation generally look different (more like a reveal),
not sure if it is better or worse, but definitely has less artifacts
in things like the gallery.

Also tweaked the animation definitions a bit.

Change-Id: I94c274ba04bbc7a675946dc6c1778e19386e4a66
lackFrame.java
creenRotationAnimation.java
86add4350c228a9a33c71d695098ea8ba7c7c275 03-Mar-2012 Craig Mautner <cmautner@google.com> Fix reference to wrong ArrayList.
Fixes bug 6107296.

Change-Id: I44f2793c1c92686b276e491436a10be4f18c0d48
indowManagerService.java
a731cd302dc39deaf835aeb52af12f391806a4bf 03-Mar-2012 Craig Mautner <cmautner@google.com> Fix rotation so orientation changes aren't dropped.
Modify test so that rotation animation is entered one final time after rotation completes. This last time causes mUpdateRotation to be set true forcing a test for orientation change.
Fixes bug 6109189.

Change-Id: I25475f336a3439a56b1c540205d09ee48c1d2b7c
creenRotationAnimation.java
indowManagerService.java
dbb7991b4e4638b284814b50e79cacc1e1c9d8cd 02-Mar-2012 Craig Mautner <cmautner@google.com> Separate animation steps into start, step and finish phases.
Fixes bug 6089126.

Change-Id: Iafbde36ff719640335a7ecf762e1d991cf7915e4
ppWindowToken.java
creenRotationAnimation.java
indowManagerService.java
indowState.java
343511c9ec6a7a1d3760f784824a64e732f3b7a2 29-Feb-2012 Craig Mautner <cmautner@google.com> Detect animation completions like we used to.
Previous approximations weren't indicating completion and windows weren't being layered correctly as a result.

Change-Id: I08fcd278485bb87dc10bca257b9f8073108753f3
indowManagerService.java
indowState.java
ba64dfe8728318f1a0db7547d0cc3f27f3a22766 28-Feb-2012 Craig Mautner <cmautner@google.com> debug

Change-Id: I1f496bb71068b6c3a09095c39fb04c9f4153e051
indowManagerService.java
83eaab5b43e479c85dc112a1f9b3e53e907bae1f 28-Feb-2012 Craig Mautner <cmautner@google.com> Fix bug introduced when moving animation step out from between assignments to wasAnimating and nowAnimating.
Now wasAnimating once again contains the animation state prior to the animation step.

Change-Id: I2b53bd3f62228183233ab36f0ebe44c0344d2351
indowManagerService.java
indowState.java
b8678d76c3e09d0d65255f3971b6112a48e19099 23-Feb-2012 Dianne Hackborn <hackbod@google.com> resolved conflicts for merge of 210c1a26 to master

Change-Id: Ic44193e62215086c22225f2def5eee3159d26ae8
5489e4af193e7e57ac5af4f6ea2632f5df5bda80 22-Feb-2012 Craig Mautner <cmautner@google.com> Merge "- Consolidate all animations in a single place outside of layout loop. - Move mPolicy.startAnimationLw and mPolicy.finishAnimationLw into same method as mPolicy.animatingWindowLw. - Fix first parameter of performLayoutLockedInner(initial, ...) to pass true on initial pass."
f3b7653c1564fc9914640c1c734a15b97566042b 21-Feb-2012 Dianne Hackborn <hackbod@google.com> am 01011c3d: Fix issue #6037252: Screen shifts after all apps are upgraded

* commit '01011c3d7ce4f76c1a76b33a04fc63da784ddbea':
Fix issue #6037252: Screen shifts after all apps are upgraded
01011c3d7ce4f76c1a76b33a04fc63da784ddbea 21-Feb-2012 Dianne Hackborn <hackbod@google.com> Fix issue #6037252: Screen shifts after all apps are upgraded

Two things: (1) make sure the boot message is always positioned within
the entire unrestricted display, and (2) allow the dim background to go
on top of the nav bar when being used for the boot message (this latter
is really a hack that should be more generally fixed in the future).

Change-Id: I7261b044eb802a39cadff931b50a679ff18781d6
imAnimator.java
indowManagerService.java
2f995a7eaa1aba2c038c698039ed6837dfe7e51e 21-Feb-2012 Craig Mautner <cmautner@google.com> - Consolidate all animations in a single place outside of layout loop.
- Move mPolicy.startAnimationLw and mPolicy.finishAnimationLw into same method as mPolicy.animatingWindowLw.
- Fix first parameter of performLayoutLockedInner(initial, ...) to pass true on initial pass.

Change-Id: If1b47bb8a7e03cf427769c657e371abc0910b3e3
indowManagerService.java
indowState.java
9806a2307f3e47e847ad5e62e302eab36d3eb3e4 17-Feb-2012 Jeff Brown <jeffbrown@google.com> Ignore broken input channel when finishing input event.

There are occasional races during application shut down where the
input dispatcher will close an input channel before the application
has finished its last event. So just ignore EPIPE.

Also tweak the logging for failed input event injection to make
it clearer which pid was trying to perform the injection.

Bug: 6013004
Change-Id: I7bbb01441d41762b03eafd4d39dcf0323e1cadf3
indowManagerService.java
4a06c8008b2edd6677f9a411af79b0a4971b87fe 16-Feb-2012 Jeff Brown <jeffbrown@google.com> Simplify Choreographer API.

Removed the listeners and schedule animation / draw methods.
Instead all requests are posted as one-shot callbacks, which is a
better match for how clients actually use the Choreographer.

Bug: 5721047
Change-Id: I113180b2713a300e4444d0d987f52b8157b7ac15
indowManagerService.java
indowState.java
ec5b5156e7a6f46cb90f1b3e980b70a11384f43c 13-Feb-2012 Dianne Hackborn <hackbod@google.com> Merge "Fix issue where screen rotations would stop animating."
4dcece8e509027cd28e20b1f9f14d2c0446d84c0 10-Feb-2012 Dianne Hackborn <hackbod@google.com> Fix issue where screen rotations would stop animating.

If we went through the update loop multiple times, and had finished
animating the first time, we would blow away that information the
second time and never kill the animation.

Also moved killing the animation back up to the animation step --
this involves destroying surfaces and such, and so really should
be done as part of the surface transaction. We can also consider
the screen rotation animation object to be owned by the animation,
so it can destroy it when done.

Change-Id: If24356c509c66d046f2ddfd9ad5bfe12504d7716
creenRotationAnimation.java
indowManagerService.java
62d1058cc972a8fcb7739547abd3298f5d98a9b1 13-Feb-2012 Jeff Brown <jeffbrown@google.com> Merge "Remove the input dispatcher throttle."
d747dc8179df3cfcc68df78ec46b93992de52eaf 13-Sep-2011 Mike Lockwood <lockwood@android.com> Fix problems dispatching media button events on headless devices

Signed-off-by: Mike Lockwood <lockwood@android.com>

Conflicts:

policy/src/com/android/internal/policy/impl/PhoneWindowManager.java
indowManagerService.java
3a74bd36f8af1a12353db8ddbc5227d33c2ce680 12-Aug-2011 Mike Lockwood <lockwood@android.com> Add headless mode for running the framework without the surface flinger

Enabled by setting system property ro.config.headless to 1
This will allow the framework to run without starting activities,
system UI and the keyguard.
Framework can still run services, content providers and broadcast receivers.

Signed-off-by: Mike Lockwood <lockwood@android.com>

Conflicts:

policy/src/com/android/internal/policy/impl/PhoneWindowManager.java
services/java/com/android/server/PowerManagerService.java
services/java/com/android/server/am/ActivityManagerService.java
indowManagerService.java
308028049a75b36d5ed525c0bcef441da850c2a5 03-Feb-2012 Jeff Brown <jeffbrown@google.com> Remove the input dispatcher throttle.

This is part of a series of changes to improve input system pipelining.

Bug: 5963420
Change-Id: Iab33594bc5df8aa05232ef64c64e98fc61c5bf52
nputManager.java
61ac6bb250494db602b485491a493b64776eaf3b 03-Feb-2012 Craig Mautner <cmautner@google.com> Extract code from performLayoutAndPlaceSurfacesInnerLocked() into multiple methods.

Change-Id: I80152c38741ce73b92da9483cfed84efbac34f89
indowManagerService.java
659793bcd0e0d08306d841f3836a891e56e4e756 02-Feb-2012 Chet Haase <chet@google.com> Merge "Add Developer Option setting for Animator scaling."
c38fa1f63674971f9ac6ced1a449fb81026b62f7 02-Feb-2012 Chet Haase <chet@google.com> Add Developer Option setting for Animator scaling.

This new setting allows users to set a scale factor for the
duration and startDelay of all Animator-based animations. This
setting is very similar to the Transition animation scale and
Window animation scale settings, except this one applies specifically
to Animator animations. The property is only accessible by users
through the Settings UI, not programmatically. The value applies
system-wide and is picked up per-process at the time of the first
ValueAnimator construction.

This is an update to a previous CL; this approach uses the WindowManager
to store the animator scale settings, instead of SystemProperties.

Change-Id: I8295fab060aa6d597ae507ded8f9c9d6077be966
indowManagerService.java
8bcd54b98ad5d98d47364ff14e06910deadf9302 01-Feb-2012 Dianne Hackborn <hackbod@google.com> Use Choreographer for window manager animation timing.

Change-Id: Ic34aff698c63d383ecd06af7da9957475683a1db
indowManagerService.java
indowState.java
08cec4ee46f8b99a202b775c4eed8699be5165e8 24-Jan-2012 Dianne Hackborn <hackbod@google.com> am a5853595: am 47163685: Merge "Another attempt at issue #5823276: home repaints after full-screen app is exited" into ics-mr1

* commit 'a5853595165a6395ca41bbc17a3dd88e12259ad1':
Another attempt at issue #5823276: home repaints after full-screen app is exited
4fdbe9e55026b490d74eb36b0afb1e95836c501c 24-Jan-2012 Dianne Hackborn <hackbod@google.com> am 47163685: Merge "Another attempt at issue #5823276: home repaints after full-screen app is exited" into ics-mr1

* commit '47163685eb90f9520e7ae0ac0984b4e1535e8e5b':
Another attempt at issue #5823276: home repaints after full-screen app is exited
47163685eb90f9520e7ae0ac0984b4e1535e8e5b 24-Jan-2012 Dianne Hackborn <hackbod@google.com> Merge "Another attempt at issue #5823276: home repaints after full-screen app is exited" into ics-mr1
b7ff51bde92b76757a002bb5b1889f5790986513 24-Jan-2012 Dianne Hackborn <hackbod@google.com> Another attempt at issue #5823276: home repaints after full-screen app is exited

This is between the two previous attempts. I returned the part from the
original that was breaking gallery, but have some new code to detect when
something about the window params has changed that would require a
layout pass to make sure we still do a layout then, even if the window is
not currently visible.

Change-Id: I07745e1f66022583e3076b84cc8bbe8bd2acd48f
indowManagerService.java
indowState.java
eda775cc89b862e0637af132d78168e1b28820f8 24-Jan-2012 Jim Miller <jaggies@google.com> am 9f080e2a: am 44760b10: Merge "Revert "Fix 5797764: Increase lock screen\'s thread priority"" into ics-mr1

* commit '9f080e2a5bc6a268934e32201c69ea8a86900396':
Revert "Fix 5797764: Increase lock screen's thread priority"
879693917dcd007e3ba9ece63d9e8244758171ef 24-Jan-2012 Jim Miller <jaggies@google.com> am 44760b10: Merge "Revert "Fix 5797764: Increase lock screen\'s thread priority"" into ics-mr1

* commit '44760b106a4bafcf83fb356bf91683db40e0e5a2':
Revert "Fix 5797764: Increase lock screen's thread priority"
44760b106a4bafcf83fb356bf91683db40e0e5a2 24-Jan-2012 Jim Miller <jaggies@google.com> Merge "Revert "Fix 5797764: Increase lock screen's thread priority"" into ics-mr1
54dbbce1c3cd3b534b0bf7cb15c85f966ed029b7 24-Jan-2012 Jim Miller <jaggies@google.com> Revert "Fix 5797764: Increase lock screen's thread priority"

This reverts commit 6d6a70a33746ef5147ab146f1802f0db424dd2f1

This doesn't appear to have a measurable impact for this issue.
indowManagerService.java
fd1c5ed3705b885ce50b5ecad04ce699248b1d84 13-Jan-2012 Dianne Hackborn <hackbod@google.com> New screen rotation animation design.

We now have an animation that can start as soon as we detect to
rotate the screen, and have a different phase once the new UI
is ready to complete the transition into it.

Change-Id: I05b9c12a699232acbddc36b4a994a4452db71476
creenRotationAnimation.java
indowManagerService.java
8ffd2cccf0f0458b941d2a3c69d30a6ae06fc33b 23-Jan-2012 Jim Miller <jaggies@google.com> am b1c7785c: am eaa11a72: Merge "Fix 5797764: Increase lock screen\'s thread priority" into ics-mr1

* commit 'b1c7785c1110e171d3dd3deb259b1caeed0b9da6':
Fix 5797764: Increase lock screen's thread priority
02d37b9731eaf5d79f9eb395576e030934c37f3b 21-Jan-2012 Dianne Hackborn <hackbod@google.com> resolved conflicts for merge of 892d11f4 to master

Change-Id: I21eca0002100d898e167a25aaa46d896deca2a11
d3fe9abfb9a6a21a18abde6a98dceb423c04ebef 21-Jan-2012 Jim Miller <jaggies@google.com> am ab9601cd: am 230a7092: Merge "Fix 5863053: Add method to lock screen immediately." into ics-mr1

* commit 'ab9601cdbb95ae94088750eff9a926a572c1a4d6':
Fix 5863053: Add method to lock screen immediately.
374fa7dbbc91730315daeca7f2de7e64b932f51f 21-Jan-2012 Jim Miller <jaggies@google.com> am eaa11a72: Merge "Fix 5797764: Increase lock screen\'s thread priority" into ics-mr1

* commit 'eaa11a723150f1ea79446d7ba4bf77eb47b73337':
Fix 5797764: Increase lock screen's thread priority
eaa11a723150f1ea79446d7ba4bf77eb47b73337 21-Jan-2012 Jim Miller <jaggies@google.com> Merge "Fix 5797764: Increase lock screen's thread priority" into ics-mr1
6d6a70a33746ef5147ab146f1802f0db424dd2f1 20-Jan-2012 Jim Miller <jaggies@google.com> Fix 5797764: Increase lock screen's thread priority

This increases lock screen's thread priority from THREAD_PRIORITY_FOREGROUND
to THREAD_PRIORITY_DISPLAY to ensure it runs before other activities that
might stall lock screen when the screen turns on.

Change-Id: I14cf9f3f5c092817bc6cf2d0a254001a5d34f744
indowManagerService.java
4be9cff46e82bbb608f91fd3c9ed9fca3cf14e8b 20-Jan-2012 Dianne Hackborn <hackbod@google.com> am 1bae8066: Merge "Fix issue #5823276 again: home repaints after full-screen app is exited" into ics-mr1

* commit '1bae80668cc1d12bb4a4b93bce1960b2601de131':
Fix issue #5823276 again: home repaints after full-screen app is exited
cfbf7dedaddd825b608e87d3dcf46adf80a46976 12-Jan-2012 Dianne Hackborn <hackbod@google.com> Fix issue #5823276 again: home repaints after full-screen app is exited

Don't consider a window as a candidate for the top fullscreen window
if it is not going to be a candiate for layout.

This fix does not include the change to ignore app tokens that are
hidden. This causes problems in some dialogs that stay hidden until
their app is ready to display, but need to perform a series of relayouts
during that time to get to the right size. Dropping this part of
the change still (mostly?) seems to allow us to avoid the bad states.

Change-Id: Ic052cb1499d3287f47e9ffeac5cd2470ee5a308c
indowManagerService.java
indowState.java
b800f277cb02f0639b66ecaf0798b30419486ab7 20-Jan-2012 Justin Ho <justinho@google.com> am 820b45c0: Merge "DO NOT MERGE Revert "Fix issue #5823276: home repaints after full-screen app is exited"" into ics-mr1

* commit '820b45c0a21980a43532b9fb9823f8aa08c64a15':
DO NOT MERGE Revert "Fix issue #5823276: home repaints after full-screen app is exited"
170997a519ce79e93e4f6984e9663232475ce92c 19-Jan-2012 Justin Ho <justinho@google.com> DO NOT MERGE Revert "Fix issue #5823276: home repaints after full-screen app is exited"

This reverts commit 01b02a734d2988c22b00f5df6346ad03d8bf52b6.

Change-Id: I848c01fc44eb9a51ead1116b2647ed838ec1825f
indowManagerService.java
indowState.java
3bb3d41adbd78ab690378531d37aec369c79ead7 19-Jan-2012 Jim Miller <jaggies@google.com> am 230a7092: Merge "Fix 5863053: Add method to lock screen immediately." into ics-mr1

* commit '230a709285abc5dfd92f05d91a8997d52a59d3c7':
Fix 5863053: Add method to lock screen immediately.
230a709285abc5dfd92f05d91a8997d52a59d3c7 19-Jan-2012 Jim Miller <jaggies@google.com> Merge "Fix 5863053: Add method to lock screen immediately." into ics-mr1
93c518e4f8abd98f87cda1712b30a5a86cfa60dd 18-Jan-2012 Jim Miller <jaggies@google.com> Fix 5863053: Add method to lock screen immediately.

This fixes a bug where the device fails to lock when DevicePolicyManagerService
requests the device to be locked and the screen was off because the user hit
the power button.

The change allows DPMS to directly invoke screen lock, bypasssing the screen state.

Change-Id: Iecdda6fc61e9c519119de495be23c69c3b983921
indowManagerService.java
f88d1493aa968d3da551116f076edd5e21f7ccfc 13-Jan-2012 Dianne Hackborn <hackbod@google.com> am 10065177: am 2e282f35: Merge "Fix issue #5823276: home repaints after full-screen app is exited" into ics-mr1

* commit '100651779fde99f7ae2a10719d688b51115f08e9':
Fix issue #5823276: home repaints after full-screen app is exited
defda4de3d5965e87bdd8fedb248d6cd948ecb9d 13-Jan-2012 Dianne Hackborn <hackbod@google.com> am 2e282f35: Merge "Fix issue #5823276: home repaints after full-screen app is exited" into ics-mr1

* commit '2e282f35b009fe4c23daca35592dae2032641643':
Fix issue #5823276: home repaints after full-screen app is exited
01b02a734d2988c22b00f5df6346ad03d8bf52b6 12-Jan-2012 Dianne Hackborn <hackbod@google.com> Fix issue #5823276: home repaints after full-screen app is exited

Don't consider a window as a candidate for the top fullscreen window
if it is not going to be a candiate for layout.

Also don't consider windows a candidate for layout if their app token
is hidden. This fixes a transient state where we are preparing to
unhide the window but have not done so yet.

Change-Id: Ife5299ffa003c1df1a4f787b7a2809cbf614ec16
indowManagerService.java
indowState.java
ee4d45f3052c8d339035c4bb8eca9b7a724e5074 13-Dec-2011 Dianne Hackborn <hackbod@google.com> am 0be53567: am 19a06fe9: Merge "Fix issue #5755172: Soft menu key disappears when menu is open" into ics-mr1

* commit '0be53567c1c2299c548d3204d2b9240108fbd53a':
Fix issue #5755172: Soft menu key disappears when menu is open
4e2e2c2154f067f03e46b8c99eaa5642749cfd17 13-Dec-2011 Dianne Hackborn <hackbod@google.com> am 19a06fe9: Merge "Fix issue #5755172: Soft menu key disappears when menu is open" into ics-mr1

* commit '19a06fe93cccb4b1dd224b8456969821a19b07ef':
Fix issue #5755172: Soft menu key disappears when menu is open
73ab6a49db2b834ce1d56c7a1164938b409ee6fc 13-Dec-2011 Dianne Hackborn <hackbod@google.com> Fix issue #5755172: Soft menu key disappears when menu is open

We need to work more like before in determining whether the menu
key is needed -- in some cases look back in the window list to
determine this if we don't know the value from the current window.

This requires adding a new private flag indicating whether the
compat menu state is known for a window, which is set by
PhoneWindow as part of its existing process of computing the flag
for its own windows.

Now we can have a new API on WindowState to determine the value
of this flag for a window, which if needed walks back in the window list
to find a window the value is known for (or stops at what the policy
has determined is the top full-screen window, so we stop like we used
to at things like the lock screen or the bottom of an application).

Change-Id: I829de6d629b5af8bcb422cb85249ee4041c7205e
indowState.java
32cbc3855c2a971aa5a801fd339fb6a37db91a1a 01-Dec-2011 Jeff Brown <jeffbrown@google.com> Refactor InputQueue as InputEventReceiver.

This change simplifies the code associated with receiving input
events from input channels and makes it more robust. It also
does a better job of ensuring that input events are properly
recycled (sometimes we dropped them on the floor).

This change also adds a sequence number to all events, which is
handy for determining whether we are looking at the same event or a
new one, particularly when events are recycled.

Change-Id: I4ebd88f73b5f77f3e150778cd550e7f91956aac2
ragState.java
akeWindowImpl.java
indowManagerService.java
4952dfd16a0f839559ffa78f5016394caf85294f 01-Dec-2011 Jeff Brown <jeffbrown@google.com> Ensure input events are processed in-order in the application.

As it turns out, it used to be possible for there to be multiple
input events simultaneously in flight in an application. Although
it worked, it made it hard to reason about what was going on.
The problem was somewhat exacerbated by the introduction of a
queue of "InputEventMessage" objects as part of an earlier latency
optimization.

This change restores order from chaos and greatly simplifies the
invariants related to input event dispatch within the application.

Change-Id: I6de5fe61c1fe2ac3dd33edf770d949044df8a019
indowManagerService.java
bf30ac71a9bcfc97391dda650176f9a1f7146ecc 30-Nov-2011 Dianne Hackborn <hackbod@google.com> am 88f10c6c: Merge "Fix issue #5679504: Device stuck and sudden reboot - Watchdog reset?" into ics-mr1

* commit '88f10c6ce5a97b1990934148deb8ed6aa6ef7a48':
Fix issue #5679504: Device stuck and sudden reboot - Watchdog reset?
1fbee79eb31011fa260d9fe088c165cc9171d98b 30-Nov-2011 Dianne Hackborn <hackbod@google.com> Fix issue #5679504: Device stuck and sudden reboot - Watchdog reset?

Calls to get the display size no longer need to acquire the global
window lock.

Change-Id: I751ea6ed0e20f1f521783f4bd5a8f9c31cd43573
indowManagerService.java
5e3064c67fc56440a7d199aab00ea5f74dca5039 29-Nov-2011 Dianne Hackborn <hackbod@google.com> am b54980d1: Merge "Fix issue #5588689: Black camera preview after coming back from gmail" into ics-mr1

* commit 'b54980d1d4d903f68cdfa952256afff01902cd94':
Fix issue #5588689: Black camera preview after coming back from gmail
6d05fd3c795088ac60f86382df5a66d631e8a0cb 19-Nov-2011 Dianne Hackborn <hackbod@google.com> Fix issue #5588689: Black camera preview after coming back from gmail

Make surface management between SurfaceView and the window manager
much more controlled, to ensure that SurfaceView always gets to report
the current surface is destroyed before the window manager actually
destroys it.

Also a small tweak to allow windows that have a wallpaper background
to still have a preview window. This makes launching home after it
has been killed feel much more responsive.

Change-Id: I0d22cf178a499601a770cb1dbadef7487e392d85
ession.java
indowManagerService.java
indowState.java
2502262ddfd8dfedccd61df8967a35eba8e9a0ca 15-Nov-2011 Michael Jurka <mikejurka@google.com> am 4b7494e0: Merge "Updating recent apps visuals on tablet" into ics-mr1

* commit '4b7494e07a44c0aa363379be463de70455a895f3':
Updating recent apps visuals on tablet
bfd24acd318ef958bb7997c9cbf95c5fb15b10ac 13-Nov-2011 Michael Jurka <mikejurka@google.com> Updating recent apps visuals on tablet

- getting rid of blue glow (5529032)
- moving app icon position
- show message if there are no recent apps (5533332)
- fixing rare IllegalStateException on orientation change (5584344)

Change-Id: I2210e584957869c8f02339e6841daf39364a9dad
indowManagerService.java
391545ed2251909a9576d942eff82c67bf5fe6d9 12-Nov-2011 Dianne Hackborn <hackbod@google.com> am be70785f: Make activity manager more robust in the face of app activity leaks.

* commit 'be70785f9b2dbd2c52fd8676d99bc64b22784201':
Make activity manager more robust in the face of app activity leaks.
be70785f9b2dbd2c52fd8676d99bc64b22784201 11-Nov-2011 Dianne Hackborn <hackbod@google.com> Make activity manager more robust in the face of app activity leaks.

This came up from bug #5601885: Memory increase (leak?) in system_server
Stingray MR1

This isn't *really* a leak in the system process -- it is a leak in an
application process that is causing the system process to keep around
a bunch of ActivityRecord objects longer than it should, until that app
process is ultimately killed.

Unfortunately these days leaking an ActivityRecord also often means
leaking a thumbnail, which is a big slab of memory.

So make the activity manager better about this, using a weak reference
from the handle the object has so we can still clean away most of the
state associated with the ActivityRecord even if the client side leaks
its own reference.

Change-Id: Idbab45e09749cdfb54899203da7981e7b3576e25
indowManagerService.java
e5249ecbf4977cd185df6b0a52d713ded27c56b9 10-Nov-2011 Dianne Hackborn <hackbod@google.com> am 0f70e482: Merge "Fix issue #5470311: Activity with android:configChanges defined..." into ics-mr1

* commit '0f70e482c8aa7ce9c5676b1226ff98b63fb991e7':
Fix issue #5470311: Activity with android:configChanges defined...
42d4fea25c080b8e9d36035613e4f66b410b0bce 10-Nov-2011 Chet Haase <chet@google.com> am 41ffab86: Merge "increase the rate at which we dispatch events." into ics-mr1

* commit '41ffab86d92622679d4d2ad8307806e8099f8170':
increase the rate at which we dispatch events.
0f70e482c8aa7ce9c5676b1226ff98b63fb991e7 10-Nov-2011 Dianne Hackborn <hackbod@google.com> Merge "Fix issue #5470311: Activity with android:configChanges defined..." into ics-mr1
56b53b597f015fa73ca339deff62eadf287297ae 10-Nov-2011 Dianne Hackborn <hackbod@google.com> Fix issue #5470311: Activity with android:configChanges defined...

...should not be restarted when rotating screen on xoom

This was a side-effect of a previous fix to compute the screen layout
config class based on the actual space available to the application, not
the raw display size. On a device like Xoom, the system bar causes us
to switch between LONG and NOTLONG depending on whether the system bar
is on the short or long side of the screen.

To fix this, we now compute the screen layout class the same way
"smallest width" is computed: looking at all of the possible rotations
and using the smallest of them all. In addition to preventing the device
from toggling between long and notlong on a Xoom-like screen, this will
also avoid other possible undersireable behavior like changing screen
layout size when rotating.

This does mean that Xoom is no longer considered a long screen even when
in landscape, because it is not a long screen in portrait.

Change-Id: I85f90a16294ef5a7de94d5b9231abbc6f914fe90
indowManagerService.java
532147b308580ec6360dba4c19c41bf4708bfd93 10-Nov-2011 Chet Haase <chet@google.com> increase the rate at which we dispatch events.

Previously, the input dispatch rate was capped by default to 55.
This worked fine for systems with a refresh rate of 55 or lower. But on
devices with a higher frame rate (such as stingray at 60 fps), we do not
receive events as fast as the rendering system wants to redraw the frames, so
we would occasionally miss events between frames, resulting in a visual
stutter during drag operations where the dragged object would essentially
stay still for a frame.

This fix increases the default rate to 90, or 1.5 times the highest typical
refresh rate of our devices.

Change-Id: Id8622185b3da93f9f6505157d2e6f3f33e36bd04
nputManager.java
160b07cf0a68fadd61da1c6988df197108083a8c 08-Nov-2011 Mathias Agopian <mathias@google.com> am 7f1c94e1: Merge "Fix rotation displays frame N-1 briefly while rotating" into ics-mr1

* commit '7f1c94e198e051bf481fd2d286c7b33d00664f9d':
Fix rotation displays frame N-1 briefly while rotating
7f1c94e198e051bf481fd2d286c7b33d00664f9d 08-Nov-2011 Mathias Agopian <mathias@google.com> Merge "Fix rotation displays frame N-1 briefly while rotating" into ics-mr1
308b327fb6aa01bf4b34a937d74d62ad7dcc0629 05-Nov-2011 Mathias Agopian <mathias@google.com> am 3f24589e: Merge "workaround to set the WM refresh rate to 48 Hz for tuna devices only" into ics-mr1

* commit '3f24589edd860618ccf65d6653b002d13810e78b':
workaround to set the WM refresh rate to 48 Hz for tuna devices only
222357f33a105ce08177b94334c7d14af29df8f6 05-Nov-2011 Mathias Agopian <mathias@google.com> workaround to set the WM refresh rate to 48 Hz for tuna devices only

this is TEMPORARY until we can do this properly.

Bug: 5572464
Change-Id: I6537706d636a83a4a50e2900d6b829dd89b6f245
indowManagerService.java
e65beaabe4be554683417839594dd41b6c979cbb 01-Nov-2011 Mathias Agopian <mathias@google.com> Fix rotation displays frame N-1 briefly while rotating

The ScreenShot layer is now created hidden. The screenshot itself
is aquired during the transaction when the layer is made visible.
This guarantees the screenshot and the layer happen atomically
with respect to screen updates.

Bug: 5534521
Change-Id: Ida23e1f13d5716ec83b78a15712e0646d6cf8729
creenRotationAnimation.java
a243a6befe8f7d4352130edbfdec443366ba1ef1 04-Nov-2011 Dave Burke <daveburke@google.com> am a3af4c94: am 3ee47188: Frame rate to 48 fps

* commit 'a3af4c94dfbf3336004a38011f6453bfcd7fd638':
Frame rate to 48 fps
a3af4c94dfbf3336004a38011f6453bfcd7fd638 04-Nov-2011 Dave Burke <daveburke@google.com> am 3ee47188: Frame rate to 48 fps

* commit '3ee471889b09d90affddd00c409a515a64b6861b':
Frame rate to 48 fps
3ee471889b09d90affddd00c409a515a64b6861b 04-Nov-2011 Dave Burke <daveburke@google.com> Frame rate to 48 fps

Change-Id: I95645b3921db22dfeca97ad2743299ccda5de83b
indowManagerService.java
88175571f23ca7cff6d21cd1d5d6345cfacaa84a 01-Nov-2011 Dianne Hackborn <hackbod@google.com> am f136aa34: Merge "Various performance and other work." into ics-mr1

* commit 'f136aa341abaaf7fd6f7632d41a30b2989d93985':
Various performance and other work.
2c84cfc001fb92a71811bf7384b7f865ff31ff9d 31-Oct-2011 Dianne Hackborn <hackbod@google.com> Various performance and other work.

- IME service now switches between visible and perceptible depending on
whether it is being showm, allowing us to more aggressively free its
memory when not shown.

- The activity display time is no longer delayed by the activity
transition animation.

- New -R (repeat) option for launching activities with the am command.

- Improved some documentation on Loader to be clear about some methods
that apps should not normally call.

- FrameworkPerf test now allows you to select individual tests to run.

Change-Id: Id1f73de66dc93d63212183958a72119ad174318b
ppWindowToken.java
indowManagerService.java
92537e6ff21d4b20738fae851c2174ea568eb843 31-Oct-2011 Ed Heyl <ed@google.com> merged by hand (services/java/com/android/server/PowerManagerService.java needs to be reviewed)

Change-Id: I86d1111d86cd1646ebc8a88d58aa393089e9f928
e02c88af7935c72fb90a478375e61e4a94465587 28-Oct-2011 Dianne Hackborn <hackbod@google.com> Work on process management.

Introduce a new concept of "B" services. All running services are
classified as either A or B. B services are later in the LRU list.
Their oom_adj is after the home app. This allows us to better pick
services to kill based on how long they have running, and should
reduce the amount that we end up killing the home app.

This temporarly turns on a debug log when the oom_adj of a process
is changed. Sorry, I know it is noisy. This is needed to try to
track down why some processes are being killed.

Also add a flag to the SyncManager's service binding to allow the
syncing process to be more aggressively killed if it has done UI.
This is to address cases we have seen where sync is causing an 80MB
gmail process to be kept around, preventing other process from running.
Now what will happen is that the syncing process will aggressively be
killed by the system, and can then be restarted in a much lighter-weight
state.

Do a little tweak in the power manager to allow us to still do smooth
brightness changes even when the fancy TV off animation is in use.

And get rid of a debug log in the window manager that was accidentally
left in.

Change-Id: I64a8eeaaa1f096bab29c665fbff804c7f1d029e2
indowState.java
a8e5a2bcd6a0d35893187c6df42425c03be005da 28-Oct-2011 Chet Haase <chet@google.com> Optimize handling of scrolled wallpapers

Swiping the home screen causes the WindowManagerService to do
a bunch of work to keep the wallpapers in sync. First, it lays out
and places all windows. Also, it notifies the SystemUI process that
the wallpaper position has changed.

The layout/place operation is too much work - we only need to set
the position values for the wallpaper, not relayout the whole system.

The notification mechanism must exist, but should be optional. Most
wallpapers don't care (especially static ImageWallpapers). So we'll
give them a new API (WallpaperService.Engine.setWantsOffsets()) to
allow wallpapers to opt out of this process and avoid the performance
overhead.

Change-Id: I66c38375438937f14f6f5550565b28eb204b1e06
indowManagerService.java
d070dca89fdd40b6abf0862af6c49538775905d1 13-Sep-2011 Mike Lockwood <lockwood@android.com> Fix problems dispatching media button events on headless devices

Change-Id: I57444f2b0b51b08fda561d5acecb66316fb3f4a7
Signed-off-by: Mike Lockwood <lockwood@android.com>
indowManagerService.java
a0a8b249bcae9d05c4c973e7bfe23fcb40227f52 12-Aug-2011 Mike Lockwood <lockwood@android.com> Add headless mode for running the framework without the surface flinger

Enabled by setting system property ro.config.headless to 1
This will allow the framework to run without starting activities,
system UI and the keyguard.
Framework can still run services, content providers and broadcast receivers.

Change-Id: I96606609a4ede57a2c4c7fb2b6ff060ebf31e3b4
Signed-off-by: Mike Lockwood <lockwood@android.com>
indowManagerService.java
c6592d2eb808befedc3d9c842b61e21cc6bedbf3 26-Oct-2011 Dianne Hackborn <hackbod@google.com> am 67a1b7d6: Merge "Fix issue #5508024: Rotation jank seen in live wallpapers" into ics-mr0

* commit '67a1b7d6e5857d0ecdd1aa9d50d10189e5776c11':
Fix issue #5508024: Rotation jank seen in live wallpapers
3ec891ae8067dd7afac5c0b5a8af0b726f4a4726 25-Oct-2011 Dianne Hackborn <hackbod@google.com> Fix issue #5508024: Rotation jank seen in live wallpapers

Fix a few places where we would unfreeze the screen too early.
Now that we are no longer relying on surface flinger freezing, we
can't depend on it keeping the screen frozen until surfaces get
drawn.

Change-Id: Icb03bf30c9599a5e2016817bfa5ca6458adc7249
indowManagerService.java
indowState.java
1bfe6e95a175b45ee68921e3ffe2571b222864bf 25-Oct-2011 satok <satok@google.com> Merge "Fix a bug where surface crashes when the enter animation starts while the exit animation has not yet finished" into ics-mr1
cef37fb481d16eda2b304887a8738ed599bc1b21 24-Oct-2011 satok <satok@google.com> Fix a bug where surface crashes when the enter animation starts while the exit animation has not yet finished

Bug: 5446482
Change-Id: I2e9f2e91ab5e8b22896d12e08fac76c72c997274
indowManagerService.java
indowState.java
257e67e44c96a00316091535c90e820db3de6050 20-Oct-2011 Christopher Tate <ctate@google.com> Merge "Don't inappropriately kill ANRing drop recipients"
05e9c65a53002e39306a0581310b4b0fceed7433 20-Oct-2011 Christopher Tate <ctate@google.com> Don't inappropriately kill ANRing drop recipients

If an app takes the 5-second ANR timeout before responding to a
drop, but then recovers, we were inappropriately throwing an
exception back at it for having acknowledged the drop after we'd
abandoned the operation out from under it. Now we let such
responses slide without taking any punitive action: the app is
still okay, and the drag/drop operation was cleanly terminated
already anyway.

Bug 5045618

Change-Id: I0b7e76c61f0f8c97e41280b542a470a7d3c8d86f
ession.java
0c4ccff36930ff4f0292b94ad51e164c9fa060a3 19-Oct-2011 Daniel Sandler <dsandler@android.com> Add hasNavigationBar() to the window manager.

It is no longer sufficient to check the value of
internal.R.bool.config_showNavigationBar to determine if a
navigation bar (separate from the status bar) is shown on a
device, because the emulator needs to be able to override
this value (now possible by setting qemu.hw.mainkeys to "1"
or "0", for navbar or no navbar, respectively).

This logic is now contained in PhoneWindowManager, and any
clients wishing to know whether the system has a software
nav bar should consult the new hasNavigationBar() method.

Bug: 5404945
Change-Id: I119d32a8c84b88b2ef46f63244e7f11dc5de0359
indowManagerService.java
0ab84ef507f23505a72798fbe25cf4bb2c507ea3 14-Oct-2011 Mathias Agopian <mathias@google.com> Add a LayerScreenshot

A LayerScreenshot is a special type of layer that contains a screenshot of
the screen acquired when its created. It works just like LayerDim.

Make sure to call compositionComplete() after rendering into a FBO.

Bug: 5446982, 5467587, 5466259
Change-Id: I5d8a1b4c327f9973d950cd4f4c0bca7f62825cd4
creenRotationAnimation.java
526f0a0e158cf46c244edc57624c15ebce26c71f 19-Oct-2011 Mathias Agopian <mathias@google.com> Fix a hang in SF caused by invalid transform matrix from the WM

WindowManager could create by transforms because of divide by zero.

Bug: 5422468
Change-Id: I782f87ebb78b5ff23750e22837f36ca6cfed1f2f
indowState.java
840b8a678537519c27ddf2f818494eaa20a135d4 17-Oct-2011 Mathias Agopian <mathias@google.com> Revert "Add a LayerScreenshot"

This reverts commit d6809f40cf61203573ec5dbc437f695cd132cc18.
creenRotationAnimation.java
d6809f40cf61203573ec5dbc437f695cd132cc18 14-Oct-2011 Mathias Agopian <mathias@google.com> Add a LayerScreenshot

A LayerScreenshot is a special type of layer that contains a screenshot of
the screen acquired when its created. It works just like LayerDim.

Bug: 5446982
Change-Id: I7814aff2380e7e146937f2b641907be2a30c76cc
creenRotationAnimation.java
38cc8960cbe09f8cb028a0cf8798c8c6fc75df33 13-Oct-2011 Dianne Hackborn <hackbod@google.com> Fix issue #5446988: WindowManager warns BOOT TIMEOUT,...

...dev.bootcomplete flags is set before boot animation is out

Also:

- Fix crash in recent apps if the intent for an old app didn't
happen to have the new task flag set.
- Fix issue where a crash in system UI would cause the crash
dialog to be displayed below it, effectively locking the UI. Now
the crash dialog for persistent processes is shown above everything
else.

Change-Id: I0312001a92beeae5f644c7c3e5c5e19f6716df36
indowManagerService.java
f4b40de684b3574475205542f22b2d49a75f31eb 13-Oct-2011 Dianne Hackborn <hackbod@google.com> Merge "Fix issue #5445966: WindowManager reporting -long on prime when it shouldn't be." into ics-mr0
36991744a221c30a47085442e6416bdde40b85e8 12-Oct-2011 Dianne Hackborn <hackbod@google.com> Fix issue #5445966: WindowManager reporting -long on prime when it shouldn't be.

The window manager now uses the app screen dimensions to compute
the various configuration properties, as it should.

This means that prime is official a "not long" device. Poor prime.
It probably feels inadequate now.

Because it is.

Oh and all that other stuff? Debugging logs. Turned off. And
why the heck not, debugging logs are great.

Change-Id: Iaaf8ef270d986d34fd046d699ef4c0ecea1981fc
ragState.java
creenRotationAnimation.java
ession.java
indowManagerService.java
indowState.java
d5bb82d18cbd95bb9e751d8315b9ed0b69595033 12-Oct-2011 Jeff Brown <jeffbrown@google.com> DO NOT MERGE. Improve screenshot chord debouncing.
Bug: 5011907

Introduce a 150ms delay in handling volume down keys
while waiting to see if a power key will follow.

Don't trigger the screenshot chord if both volume up and
volume down are pressed together.

Don't trigger the long-press power menu if volume keys are
also pressed.

Require the user to press both keys in the chord within
the debounce time and continue long-pressing them in order
to trigger the screenshot action.

Change-Id: I248968d37b73c09d6d08e7f62667c443eba32da0
nputManager.java
nputMonitor.java
e2909e121c45d58fe587849b1474c80745fcd2b9 11-Oct-2011 Jamie Gennis <jgennis@google.com> SurfaceFlinger: update orientation via transactions

This change merges the ISurfaceComposer::setOrientation functionality
into ISurfaceComposer::setTransactionState. It enables the window
manager to atomically update both the display orientation and the
position and size of the windows in a single transaction with
SurfaceFlinger.

Bug: 5439574
Change-Id: I18a8ccc564d7d760ef8afb2d015ccdb7a7963900
indowManagerService.java
58f42a59bda3bc912d0d2f81dc65a9d31d140eaa 10-Oct-2011 Dianne Hackborn <hackbod@google.com> Fix issue #5405788: Device continuously opening and closing...

...the "Complete action using" dialog

When an application goes idle, it sends back to the activity manager
the configuration it last used, to make sure the two don't get out
of sync. Fix a bunch of edge cases here in dealing with that, and
be sure to also send the current configuration when launching an
activity so the client is always up-to-date when launching.

Also a small fix to not show the upgrading dialog during first boot.

Change-Id: I14ed366a87cd689d1c78787369e052422290ac6f
indowManagerService.java
df89e65bf0fcc651d20b208c8d8d0b848fb43418 07-Oct-2011 Dianne Hackborn <hackbod@google.com> Fix how we hide and show the nav bar.

The PhoneWindowManager is now responsible for hiding and showing
the nav bar.

For hiding, it just moves it off the screen (easy way to get a
nice slide animation on and off). At the same time, we use a
new WM facility to put up a fake input window to capture all
touch events.

When a touch event is received, we force the system UI to clear
the navigation hiding bit so it will be shown again.

This removes a bunch of code from the system UI for hiding and
showing the nav bar. Also removes the code calling from userActivity()
to the system UI, which was bad. (Also no longer using userActivity()
fixes bugs around re-showing the nav bar due to key presses and
other wrong things.)

Change-Id: I8c3174873b5bcaa36a92322a51e8f7993e88e551
ragState.java
akeWindowImpl.java
nputMonitor.java
indowManagerService.java
85b9edf2da0534bc53d139bb88cda8866d265afe 07-Oct-2011 Dianne Hackborn <hackbod@google.com> Merge "Fix issue #5371530: SYSTEMUI_FLAG_HIDE_NAVIGATION reasserts itself immediately"
9a230e01a1237749a8a19a5de8d46531b0c8ca6a 06-Oct-2011 Dianne Hackborn <hackbod@google.com> Fix issue #5371530: SYSTEMUI_FLAG_HIDE_NAVIGATION reasserts itself immediately

This cleans up how ui flags are managed between the client and window manager.
It still reports the global UI mode state to the callback, but we now only clear
certain flags when the system goes out of a state (currently this just means the
hide nav bar mode), and don't corrupt other flags in the application when the
global state changes.

Also introduces a sequence number between the app and window manager, to avoid
using bad old data coming from the app during these transitions.

Change-Id: I40bbd12d9b7b69fc0ff1c7dc0cb58a933d4dfb23
ession.java
indowManagerService.java
indowState.java
4dfce20cac7492882d366d053006795aefad59da 05-Oct-2011 Jeff Brown <jeffbrown@google.com> Make SENSOR orientation modes trump rotation lock.
Bug: 5371750

Change-Id: I4d18b6c8ba1de0afd5929ddb8d7123272e35fbe2
indowManagerService.java
edc633170fb28fd17395472d000875f19d157e18 05-Oct-2011 Dianne Hackborn <hackbod@google.com> Merge "Always unfreeze display."
161dc80ea754d987a905bc5814872168d581040d 05-Oct-2011 Dianne Hackborn <hackbod@google.com> Always unfreeze display.

Change-Id: I7a0f3be49fe723fe59cf6268861bc5fe7f49bc62
indowManagerService.java
09e5b9daf3c675b8943015abb3b420fd45f19fe8 05-Oct-2011 Dianne Hackborn <hackbod@google.com> Fix issue #5388352: font size change back to normal

This is another place where we are messed up by the stupid default
Configuration having a 1.0 font scale. Argh.

Change-Id: Iaa2550d4edab92fb8a52f98fbb9fd8ef5fab94b5
indowManagerService.java
4941dea00a3167addf14ac6bb962cf5bc3590466 27-Sep-2011 Romain Guy <romainguy@google.com> Do not blend opaque windows.

This change ensures the wallpaper is rendered into an opaque surface
which avoids a glClear() in SurfaceFlinger. This should save quite
a bit of work on every frame when panning the workspace in launcher.

Change-Id: I9c1b8c324edf29826d5dbb1fb39d883e43375310
indowState.java
4c253119db0ce753e46ec3809b54b9e357d363db 24-Sep-2011 Jeff Brown <jeffbrown@google.com> Merge "Prevent unintended rotations. Bug: 4981385"
c0347aa19f354a8e1ff4fcd5372b134c0c7c16ad 24-Sep-2011 Jeff Brown <jeffbrown@google.com> Prevent unintended rotations.
Bug: 4981385

Changed the orientation listener to notify the policy whenever
its proposed orientation changes, and changes the window manager
to notify the orientation listener when the actual orientation
changes. This allows us to better handle the case where the
policy has rejected a given proposal at one time (because the
current application forced orientation) but might choose
to accept the same proposal at another time.

It's important that the proposal always be up to date. A proposal
becomes irrelevant as soon as the phone posture changes such
that we can no longer determine the orientation with confidence
(such as when a device is placed flat on a table).

Simplified the orientation filtering. Now we just wait 200ms
for the device to be still before issuing a proposal. The idea
is that if the device is moving around a lot, we assume that
the device is being picked up or put down or otherwise in
the process of being moved. We don't want to change the rotation
until that's all settled down. However, we do want to tolerate
a certain amount of environmental noise.

(The previous confidence algorithm was also designed along
these lines but it was less direct about waiting for things
to settle. Instead it simply made orientation changes take
longer than usual while unsettled, but the extra delay was often
too much or too little. This one should be easier to tune.)

Change-Id: I09e6befea1f0994b6b15d424f3182859c0d9a530
indowManagerService.java
90c52de28691ca0bbbf7c039ef20f85ce46882cc 23-Sep-2011 Dianne Hackborn <hackbod@google.com> Fix issue #5173952: Opening a Notification From Lock Screen...

...Should Skip Unsecure Lockscreen (ICS)

Also while I am in there, clean up logging of intent objects to include
even less sensitive information, while showing the true Intent in dump
output (since apps can't get to that).

Change-Id: I35fed714645b21e4304ba38a11ebb9c4c963538e
indowManagerService.java
01a98ddbdfbaf1f0d2bc602537e6e314364902a3 21-Sep-2011 Jeff Brown <jeffbrown@google.com> Handle orientation changes more systematically.
Bug: 4981385

Simplify the orientation changing code path in the
WindowManager. Instead of the policy calling setRotation()
when the sensor determined orientation changes, it calls
updateRotation(), which figures everything out. For the most
part, the rotation actually passed to setRotation() was
more or less ignored and just added confusion, particularly
when handling deferred orientation changes.

Ensure that 180 degree rotations are disallowed even when
the application specifies SCREEN_ORIENTATION_SENSOR_*.
These rotations are only enabled when docked upside-down for
some reason or when the application specifies
SCREEN_ORIENTATION_FULL_SENSOR.

Ensure that special modes like HDMI connected, lid switch,
dock and rotation lock all cause the sensor to be ignored
even when the application asks for sensor-based orientation
changes. The sensor is not relevant in these modes because
some external factor (or the user) is determining the
preferred rotation.

Currently, applications can still override the preferred
rotation even when there are special modes in play that
might say otherwise. We could tweak this so that some
special modes trump application choices completely
(resulting in a letter-boxed application, perhaps).
I tested this sort of tweak (not included in the patch)
and it seems to work fine, including transitions between
applications with varying orientation.

Delete dead code related to animFlags.

Handle pausing/resuming orientation changes more precisely.
Ensure that a deferred orientation change is performed when
a drag completes, even if endDragLw() is not called because the
drag was aborted before the drop happened. We pause
the orientation change in register() and resume in unregister()
because those methods appear to always be called as needed.

Change-Id: If0a31de3d057251e581fdee64819f2b19e676e9a
ragState.java
indowManagerService.java
bc1aa7bbc753ebcd32da4507fa23215489b6d314 20-Sep-2011 Dianne Hackborn <hackbod@google.com> Fix issue #5312624: Lock screen very flickery

The key thing was to fix isVisibleOrBehindKeyguardLw() so that it
wouldn't count a window as not visible if it was just currently
in the process of drawing due to an orientation change.

Also improve logic in deciding when to turn screen on to better ensure
the screen is in a stable state, in particular treating screen off
as a frozen screen and not allowing it to turn on until the
update of the screen due to any config change is done.

Change-Id: If82199f3773270b2d07f9c7de9da2dad8c7b28d7
ppWindowToken.java
indowManagerService.java
indowState.java
38e29a61d0c87fe3e391d24e2eb11dd1800d107d 18-Sep-2011 Dianne Hackborn <hackbod@google.com> Fix issue #5242779: Device not responding to touch on unlock screen

Rework how we decide when it is okay to turn on the screen by having
the policy call back to the power manager when it knows the lock screen
has been drawn.

Change-Id: Ie8f3f72111dcf7f168723e6dce24e0343b4afe5d
indowManagerService.java
73db0d802ee4e1355d400329084eee6f5cff02a3 16-Sep-2011 Dianne Hackborn <hackbod@google.com> "Fix" issue #5276520: Noise on edges of rotation animation

I have no shame.

Change-Id: I9f40df670bba0f848097aad8afb978a29e42f85a
indowState.java
09bd49a8a74cafe7f03aee769bfe0748bf3c2b51 16-Sep-2011 Dianne Hackborn <hackbod@google.com> Fix issue #5328235: Wrong values for smallestScreenWidthDp

Maybe.

Change-Id: I88dfde1626376b3003bdd7a8068c55545255851e
indowManagerService.java
1f903c3b577d20f7db7e3d5875cafe577d0d845f 14-Sep-2011 Dianne Hackborn <hackbod@google.com> Fix issue #5283365: Rotating the device to portrait mode, hides the keyboard partly

PhoneWindowManager now takes full responsibility for deciding where the
navigation bar goes. This gets rid of a bunch of race conditions with
determining layout while the nav bar is moving itself at the same time
the window manager is computing a new configuration.

Note that this breaks the "nav bar on left" option. The current nav
bar code could also be cleaned up some more to completely drive its
behavior based on onSizeChanged() happening during relayout.

Change-Id: I1651d74c3464ba0d588aab3049e099c78420146a
indowManagerService.java
f809870f118663055dc0f8b626204e7bb1133fb5 13-Sep-2011 Dianne Hackborn <hackbod@google.com> Fix issue #4280324: Returning to Fullscreen Layout with WebView...

...Leads to Shifted Layout

Change-Id: I6cf3fd0dd066f73cd1ec6fce3d994f7e3eead293
indowState.java
d02a9e95f4cf6295f1a060b4e31c6fbe41123649 12-Sep-2011 Dianne Hackborn <hackbod@google.com> Get rid of some animation flickers and other bad things.

Change-Id: If7606286bf0bd01cf023d57719ccb27e39d5564c
imSurface.java
indowManagerService.java
8962028b6e2f4176e6ceded281e584d223e44982 11-Sep-2011 Dianne Hackborn <hackbod@google.com> Fix inflating of animations.

Need to define attributes for animation set, to have correct indices.

Also small fixes elsewhere.

Change-Id: If596147e8aee4ebffe4e184872070341eff6df73
creenRotationAnimation.java
indowManagerService.java
905577f6345c014fc2489a8068ea967ba8c18012 08-Sep-2011 Dianne Hackborn <hackbod@google.com> Fix issue #5263361: Browser instance not created in application picker

The resolver activity was hiding the following activity from recents.

Also some other fixes: a little better memory use debugging, removed
some unneeded code from window manager, moved some system activities
into their own process, added some more running process information for
manage apps.

Change-Id: I66687d16989ff965d524b92dc360f37c19199717
indowManagerService.java
7de6578f1c4bf97c9f856f819d4985d25163012a 02-Sep-2011 Dianne Hackborn <hackbod@google.com> Merge "Fix issue #4974633: Block the HOME button using TYPE_KEYGUARD"
ba24e4d8bbeb60e96d74f05e21691dad61ce497e 01-Sep-2011 Dianne Hackborn <hackbod@google.com> Fix issue #5229575: Youtube link shared through messaging is not...

...opening after selecting option "Youtube" as a luncher.

Also:

* Tweak window animations so that the wallpaper exist animations do not
stop too early (causing the wallpaper to suddenly disappear).
* Make sure no input is being processed while booting, to avoid
accidentally doing things especially in the upgrade dialog.
* Some other small cleanup.

Change-Id: I40a6b53731991d4e31ac4502e3d85f0e47507481
indowManagerService.java
0e60db221c80bb1c57eaa7989b7079e5ba5a27a4 01-Sep-2011 Dianne Hackborn <hackbod@google.com> Fix issue #4974633: Block the HOME button using TYPE_KEYGUARD

Applications shouldn't be able to change their window type after
the window is added to the window manager.

Change-Id: Iac63da65f96fb30683f68f8d89c3fd29199a750c
indowManagerService.java
d040edbae968d826aa2c82d382345811a45c646b 31-Aug-2011 Dianne Hackborn <hackbod@google.com> Use floating point window positions.

Gets rid of gapps between windows during animations.

Change-Id: I17d2ef0af214008f0eabd7eb19268f145fe83b39
lackFrame.java
ragState.java
creenRotationAnimation.java
ession.java
indowManagerService.java
indowState.java
dcc882edfe530e1bbd61e776a7d2c8b874768e1d 31-Aug-2011 Romain Guy <romainguy@google.com> Merge "Make ViewServer more quiet Bug #5231539"
cbe67d5b33a2b183266e4398b1797db65aba9403 31-Aug-2011 Romain Guy <romainguy@google.com> Make ViewServer more quiet
Bug #5231539

Change-Id: Ib1f3e0d7592b4af802efe4e9630a220c23450521
iewServer.java
9d4bc852ea459c2a4347a87ce0357b3328a25db8 31-Aug-2011 Jeff Brown <jeffbrown@google.com> Merge "Fix input channel leak. Bug: 5156144"
cc4f7db698f88b633a286d8ab1105b28a474cd09 31-Aug-2011 Jeff Brown <jeffbrown@google.com> Fix input channel leak.
Bug: 5156144

Input channels could leak or simply live longer than they should
in some cases.

1. Monitor channels (used by the pointer location overlay) are never
unregistered, so they would leak.

Added code to handle failures in the receive callback by closing
the input channel.

2. The DragState held onto its input window and application handles
even after the input channel was disposed.

Added code to null these handles out when they are no longer needed.

3. Input channels previously used as input event targets would stick
around until the targets were cleared (usually on the next
event).

Added code to detect when the input dispatcher is in
an idle state and to proactively clear the targets then
to ensure that resources are released promptly.

4. Native input window handles held onto the input channel even
after the input window was removed from the input dispatcher.
Consequently, the input channel would not be disposed until
the input window handle itself was freed. Since the input
window handle is held from managed code, this meant that the
window's input channel could stick around until the next GC.

Refactored the input window handle to separate the properties
(info) and identify (handle) state into different objects.
Then modified the dispatcher to release the properties (info)
when no longer needed, including the input channel.

7. The pointer location overlay does not actually use its
standard input channel, only the monitor input channel.

Added INPUT_FEATURE_NO_INPUT_CHANNEL to allow windows to
request that they not be provided with an input channel
at all.

Improved some of the error handling logic to emit the status
code as part of the exception message.

Change-Id: I01988d4391a70c6678c8b0e936ca051af680b1a5
ragState.java
nputApplicationHandle.java
nputMonitor.java
nputWindowHandle.java
indowManagerService.java
indowState.java
9e4e727b4a164c17944e8ae6eb2d2532a98737f8 30-Aug-2011 Dianne Hackborn <hackbod@google.com> Fix issues #5233826 and #5209847 -- live wallpapers.

5233826 when a live wallpaper starts, it does so regardless of its visibility

The WallpaperService is now very forceful about telling a wallpaper it is
not visible when it first starts.

5209847 Make launcher turn off the wallpaper in all apps.

Fix a bug in the window manager that would not correctly handle the wallpaper
flag changing.

Change-Id: Ie3314043a84664be72a1304a1705408efd789a15
indowManagerService.java
8d3feb6292ba7e87adeb4982e8cf27114a8ee2e4 29-Aug-2011 Jeff Brown <jeffbrown@google.com> Merge "Add a "show touches" option for demos and presentations. Bug: 4569045"
67ed6c7224b902ae56a109701a241210e18cf721 28-Aug-2011 Adam Powell <adamp@google.com> Fix bug 5133509 - Align holo menu panel windows along the bottom of
the screen

Alter preferred options panel gravity policy.

Integrate new menu panel assets for holo apps.

Change-Id: I9fa98ed9359148ea6d1f1d1e727ddcd437b16e2f
indowManagerService.java
daf4a127ba2af82a3fb477044b872719a0ab1827 27-Aug-2011 Jeff Brown <jeffbrown@google.com> Add a "show touches" option for demos and presentations.
Bug: 4569045

Change-Id: I8726ea292dd7def790a5e40d7d7e58968974f896
nputManager.java
cfb9f2bca39772aecd072e2a30342a67b6319bbb 24-Aug-2011 Dianne Hackborn <hackbod@google.com> Fix issue #5192141: systemui asplodes after enough tapping on the windowlist button

Change-Id: I5afb2d54b531d9eac9435660616579324f239812
indowManagerService.java
29aae6f36e565b8f2a99f2193597b964bb800ee8 19-Aug-2011 Dianne Hackborn <hackbod@google.com> Fix issue #4279860: previous UI flashes before showing lock screen...

...(when turning display on after recently turning it off)

Also clean up when we decide to turn the screen on to improve that
transition. There are still problems here with turning it on
before the wallpaper gets dispayed.

Change-Id: I2bc56c12e5ad75a1ce5a0546f43a845bf0823e66
indowManagerService.java
661cd52e0e1d527132eb1cae604d3e64da7ec0cb 22-Aug-2011 Dianne Hackborn <hackbod@google.com> Add progress dialog for booting after an upgrade.

This introduces a new facility for code during the boot process
to display messages to the user through a progress dialog. This
is only for use when performing longer-than-usual post-upgrade
operations such as running dexopt on applications or upgrading
databases.

Change-Id: I0e78439ccec3850fb67872c22f235bf12a158dae
indowManagerService.java
d9be36c897680361da2daadba9bbc9da3c16329b 17-Aug-2011 Christopher Tate <ctate@google.com> Don't crash if a drag recipient throws an uncaught exception

There turn out to be two distinct bugs leading to runtime restarts.

The first, dating from at least Android 3.1, is that following certain kinds
of app crashes we properly clean up the drag-state bookkeeping, but aren't
prepared in the case of the drag-target timeout clock firing with a now-
null drag state in effect. We now catch that edge condition and don't NPE
(and note that there was already similar code around the separate timeout
when an app is *starting* the drag process).

The second bug is that some new-in-ICS code in the input channel management
wasn't prepared for certain cases where the current touch window could have
become unusable and its input channel torn down summarily in the case of the
aforesaid app crash during drag. The code now makes sure that there really
is an input channel that needs to be flushed / cancelled prior to attempting
that operation.

Fixes bug 5173534

Change-Id: Idaae158ecfb4b93456ab1425769b669962893c00
indowManagerService.java
8b65c902ee25e9c38f64eef9f7af0cf9e86491e3 15-Aug-2011 Jeff Brown <jeffbrown@google.com> Merge "Use PARCELABLE_WIRTE_RETURN_VALUE flag in InputChannel. Bug: 5161290"
0a0ab128a65900a23f1018a14f5cbecec6443dd3 13-Aug-2011 Jeff Brown <jeffbrown@google.com> Use PARCELABLE_WIRTE_RETURN_VALUE flag in InputChannel.
Bug: 5161290

Replace mDisposeAfterWriteToParcel with code that takes advantage
of the standard Parcel API support for releasing resources after
writing a Binder reply.

This change makes it less likely that InputChannels will leak
accidentally when passed across a Binder.

Change-Id: Id37706e7b88d074e8e4ac687c88f0db8963200f2
indowManagerService.java
7c0d8472d003334fafd14f7c1e7d95dbd213088b 13-Aug-2011 Dianne Hackborn <hackbod@google.com> Merge "Fix some crashes that are happening in the system process."
8e8d65ff5fdef12c6af3d003dfef19aadc39bea9 12-Aug-2011 Dianne Hackborn <hackbod@google.com> Fix some crashes that are happening in the system process.

- When shutting down, if the screen goes to sleep there is code
that tries to do a notifyAll without holding the lock:

java.lang.IllegalMonitorStateException: object not locked by thread before notifyAll()
at java.lang.Object.notifyAll(Native Method)
at com.android.server.am.ActivityStack.checkReadyForSleepLocked(ActivityStack.java:776)
at com.android.server.am.ActivityStack$1.handleMessage(ActivityStack.java:282)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at com.android.server.ServerThread.run(SystemServer.java:603)

- If an invalid Uri object is sent to the system process it can crash because
the Uri class throws an assertion while unmarshalling. Change this to an
IllegalArgumentException so it gets sent back to the caller:

java.lang.AssertionError
at android.net.Uri$PathPart.readFrom(Uri.java:2224)
at android.net.Uri$HierarchicalUri.readFrom(Uri.java:1106)
at android.net.Uri$1.createFromParcel(Uri.java:1689)
at android.net.Uri$1.createFromParcel(Uri.java:1681)
at android.content.IContentService$Stub.onTransact(IContentService.java:53)
at android.content.ContentService.onTransact(ContentService.java:120)
at android.os.Binder.execTransact(Binder.java:338)
at dalvik.system.NativeStart.run(Native Method)

- StrictMode can try to access the first index in the stack crawl of a stack crawl
array of length 0. Not sure why this happens, but make the code more robust:

java.lang.ArrayIndexOutOfBoundsException: length=0; index=0
at android.app.ApplicationErrorReport$CrashInfo.<init>(ApplicationErrorReport.java:341)
at android.os.StrictMode$ViolationInfo.<init>(StrictMode.java:1978)
at android.os.StrictMode$AndroidBlockGuardPolicy.startHandlingViolationException(StrictMode.java:1097)
at android.os.StrictMode$AndroidBlockGuardPolicy.onReadFromDisk(StrictMode.java:1068)
at libcore.io.BlockGuardOs.read(BlockGuardOs.java:137)
at libcore.io.IoBridge.read(IoBridge.java:426)
at java.io.FileInputStream.read(FileInputStream.java:179)
at java.io.InputStream.read(InputStream.java:148)
at com.android.internal.os.ProcessStats.readFile(ProcessStats.java:804)
at com.android.internal.os.ProcessStats.getCpuSpeedTimes(ProcessStats.java:564)
at com.android.internal.os.ProcessStats.getLastCpuSpeedTimes(ProcessStats.java:545)
at com.android.server.am.ActivityManagerService.updateCpuStatsNow(ActivityManagerService.java:1470)
at com.android.server.am.ActivityManagerService.batteryNeedsCpuUpdate(ActivityManagerService.java:1522)
at com.android.internal.os.BatteryStatsImpl$MyHandler.handleMessage(BatteryStatsImpl.java:110)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at com.android.server.am.ActivityManagerService$AThread.run(ActivityManagerService.java:1302)

(Also fix this code to not cause strict mode to trigger at all, because there is
no need, because this is just reading stuff from /proc.)

- The system seems to crash during boot if it thinks it needs to rotate
the screen, when it is trying to take the freeze snapshot way too early.
There is no need to freeze the screen during boot or if the screen is off:

java.lang.NullPointerException
at android.view.Surface.init(Native Method)
at android.view.Surface.<init>(Surface.java:256)
at com.android.server.wm.ScreenRotationAnimation.<init>(ScreenRotationAnimation.java:91)
at com.android.server.wm.WindowManagerService.startFreezingDisplayLocked(WindowManagerService.java:8758)
at com.android.server.wm.WindowManagerService.startAppFreezingScreenLocked(WindowManagerService.java:3971)
at com.android.server.wm.WindowManagerService.startAppFreezingScreen(WindowManagerService.java:4003)
at com.android.server.am.ActivityRecord.startFreezingScreenLocked(ActivityRecord.java:515)
at com.android.server.am.ActivityStack.ensureActivityConfigurationLocked(ActivityStack.java:3997)
at com.android.server.am.ActivityManagerService.updateConfigurationLocked(ActivityManagerService.java:12535)
at com.android.server.am.ActivityManagerService.updateConfiguration(ActivityManagerService.java:12439)
at com.android.server.wm.WindowManagerService.systemReady(WindowManagerService.java:6161)
at com.android.server.ServerThread.run(SystemServer.java:521)

Change-Id: I85062bb5f6b0909a0f52feedaa75e7611d9d7fbd
indowManagerService.java
e99adc70c8e0a64cb8d13a2ec4c125adaf18904d 12-Aug-2011 Michael Jurka <mikejurka@google.com> On device startup, be in touch mode

- Solves bug where an icon showed focus state on startup in Launcher. Once the keyboard arrows are used, Launcher enters non-touch mode as usual

Change-Id: I0080f3b72f6c22833c600a1026af0abc35024510
indowManagerService.java
c269dc55f160762c78e6360472630ef33b5061cf 11-Aug-2011 Jeff Brown <jeffbrown@google.com> Merge "Add input system to Watchdog. Bug: 5094994"
89ef0720ee8e0ac6ae1758faa917e4d6c9606fb4 11-Aug-2011 Jeff Brown <jeffbrown@google.com> Add input system to Watchdog.
Bug: 5094994

Change-Id: I153866958efc64ac19bda8b997c1c9f6ad425ec4
nputManager.java
a44abeb125a0c8a8e5a065f868d316e41354286a 09-Aug-2011 Dianne Hackborn <hackbod@google.com> Improve window manager debug output.

Cleaned this up while I was debugging another issue.

Change-Id: I0663b9ed581c6868b59655a0f994d870971ec1a6
indowManagerService.java
indowState.java
7d608423b721e0153f37bfd5eba78fcd2489562d 08-Aug-2011 Dianne Hackborn <hackbod@google.com> Move OOM kernel settings to activity manager.

The activity manager now take care of plugging the correct settings
into the OOM killer in the kernel. This is a lot cleaner because
it is really central to how the activity manager works, and nobody
else cares about them.

Taking advantage of this, the activity manager computes what it
thinks are appropriate OOM levels based on the RAM and display
size of the device.

Also a small optization to the package manager to keep a binding
to the package install helper for a bit after done using it, to
avoid thrashing on it.

And some new APIs that are now needed by Settings.

Change-Id: I2b2d379194445d8305bde331c19bde91c8f24751
indowManagerService.java
dfee59afb3e4cdcde38f6338f9360655de76da92 06-Aug-2011 Adam Powell <adamp@google.com> Fix bug 5011824 - New Holo overflow menu for physical menu key devices

The new Holo-style overflow menu now appears from the edge of the screen
where the device's physical menu key can be found. The policy determining
this lives in getPreferredOptionsPanelGravity() in WindowManagerService.

Change-Id: I8851a2265547156591e82044e50b5cfc58d3eefa
indowManagerService.java
6311d0a079702b29984c0d31937345be105e1a5e 03-Aug-2011 Dianne Hackborn <hackbod@google.com> Clear the bitmap from the canvas in a lot of places.

Change-Id: I6b2071ac7b348c473b9bdd1b972d095aebbb4fb3
indowManagerService.java
bc68a59c024bdb745dac8e2ec7408a9f30595f1a 25-Jul-2011 Jeff Brown <jeffbrown@google.com> Report the external display size to the input reader.

The input reader needs this information so that it knows how to
interpolate touches on an external touch screen.

Changed Display so that it asks the WindowManager what the real
display size is (as opposed to the raw display size). This means
it now takes into the forced display size set by
adb shell am display-size.

Replaced all calls to getRealWidth() / getRealHeight() /
getRealMetrics() in the WindowManager and replaced them with direct
usages of the mCurDisplayWidth / mCurDisplayHeight so that the WM
doesn't end up making a reentrant Binder call into itself.

Fixed the table status bar HeightReceiver so that it updates the
height on all configuration changes since it is possible that the
display size changed independently of an external HDMI display
being plugged / unplugged.

Improved the Display class documentation to make the distinctions
betweeen the various sizes clearer.

Change-Id: I3f75de559d3ebffed532ab46c4ae52c5e7f1da2b
ragState.java
nputManager.java
creenRotationAnimation.java
trictModeFlash.java
atermark.java
indowManagerService.java
indowState.java
91c9ac05efd7425565b5c8f0f3f8b7b9658ce143 22-Jul-2011 Dianne Hackborn <hackbod@google.com> Fix issue #5050039: Launcher is sometimes rendering...

...underneath the system/status bar

Change-Id: If65aba64df9362d4721051846a6da6d096a3dc9b
lackFrame.java
ea4265512c3a2c352f6b99b65094138b96f6de75 19-Jul-2011 Jeff Brown <jeffbrown@google.com> Fix drag and drop regression.
Bug: 5032496

Change-Id: I6504df1261f563092dadc84155d413f43e921ab8
ragState.java
nputMonitor.java
9302c8796fc4dcda08d4bd1e11733848fd4fafaf 14-Jul-2011 Jeff Brown <jeffbrown@google.com> Refactor input dispatcher use of window/app handles.

This change moves the cached window and application input state
into the handle objects themselves. It simplifies the dispatcher
somewhat because it no longer needs to fix up references to
transient InputWindow objects each time the window list is updated.

This change will also make it easier to optimize setInputWindows
to avoid doing a lot of redundant data copying. In principle, only
the modified fields need to be updated. However, for now we
continue to update all fields in unison as before.

It turns out that the input dispatcher was inappropriately retaining
pointers to InputWindow objects within the mWindows InputWindow
vector. This vector is copy-on-write so it is possible and the
item pointers to change if an editing operation is performed on
the vector when it does not exclusively own the underlying
SharedBuffer. This bug was uncovered by a previous change that
replaced calls to clear() and appendVector() with a simple use
of operator= which caused the buffer to be shared. Consequently
after editItemAt was called (which it shouldn't have, actually)
the buffer was copied and the cached InputWindow pointers became
invalid. Oops. This change fixes the problem.

Change-Id: I0a259339a6015fcf9113dc4081a6875e047fd425
ppWindowToken.java
nputApplication.java
nputApplicationHandle.java
nputManager.java
nputMonitor.java
nputWindow.java
nputWindowHandle.java
nputWindowList.java
indowState.java
cb925e7a563d06dde5273b73033822a3bae0d4db 07-Jul-2011 Jim Miller <jaggies@google.com> Merge "Fix 4689527: Fix rendering issue with thumbnails on phones"
28637bacfdde4b2b110462c97fdd52854c5288d5 07-Jul-2011 Jim Miller <jaggies@google.com> Fix 4689527: Fix rendering issue with thumbnails on phones

This fixes a bug where the phone thumbnail scale was being miscalculated
for the square aspect of thumbnails on phones. The code now constrains
thumbnails to fit the smaller of screen width and screen height.

Change-Id: I174abacd4cf3dcf124e10fe8980fb01fe299ec6a
indowManagerService.java
a4d1bc517207d7ca8d56f0004cd04f0f1dd4567d 02-Jul-2011 Jeff Brown <jeffbrown@google.com> Drop obsolete touch screen hacks.

Change-Id: I47354c37ee2cc2b36340eb709bb5043b3ba78ed9
nputManager.java
58b868417755805ebdfe4feb65664ad98c00bf35 23-Jun-2011 Dianne Hackborn <hackbod@google.com> Merge "Fix issue #4770360: older app compatibility mode is really tiny on ICS phones"
2b31d53161789358de57fd396716a6503855c5da 23-Jun-2011 Dianne Hackborn <hackbod@google.com> Fix issue #4770360: older app compatibility mode is really tiny on ICS phones

We were applying the density compat mode scaling multiple times to
display metrics, causing bad values.

Change-Id: Iafafd9a5e94b9d774cd2715bf968e91602a1bd82
indowManagerService.java
bd67cddd0d7b1f6e971228eeb883291875ba721f 22-Jun-2011 Dianne Hackborn <hackbod@google.com> Merge "Don't report a resize unless the window's surface actually changed."
b961cd2c80abf1d2834e5ad690904da4fe56d755 21-Jun-2011 Dianne Hackborn <hackbod@google.com> Don't report a resize unless the window's surface actually changed.

Change-Id: I133cf8e417753dba60d23a3bfc1c84ace983b335
nputMonitor.java
ession.java
indowManagerService.java
indowState.java
7961be75f4161769f620e44dec3f5911e50ebe03 21-Jun-2011 Svetoslav Ganov <svetoslavganov@google.com> AccessibilityNodeInfo bounds inconsistent with compatibility mode.

1. In compatibility mode a window wide scaling is applied to stretch
the content. However, AccessibilityNodeInfos retrieved from that
window contain bounds in application's view of the world and need
to be scaled to properly relect what a sighted user sees.

Change-Id: Iebbb99526fc327f45b5cede89ba8c32e6ebd8845
indowManagerService.java
474dcb5c3ddff737c4ac9fc44a1f7be569605e5f 15-Jun-2011 Jeff Brown <jeffbrown@google.com> Add support for disabling pointer gestures.

Made it possible for individual windows to disable pointer gestures
while the window has focus using a private API.

Cleaned up the InputReader configuration code to enable in-place
reconfiguration of input devices without having to reopen them all.
This change makes changing the pointer speed somewhat nicer since the
pointer doesn't jump back to the origin after each change.

Change-Id: I9727419c2f4cb39e16acb4b15fd7fd84526b1239
nputMonitor.java
nputWindow.java
bc38d3e44e698f4db749c2feed34e13a94c54a1b 11-Jun-2011 Jeff Brown <jeffbrown@google.com> Merge "Optimize orientation changes."
24572375323dee79e3b456af07640ca194fd40bf 10-Jun-2011 Jeff Brown <jeffbrown@google.com> Optimize orientation changes.

Modified setRotation to allow it to restart a rotation in
progress as long as the rotation animation has not yet started.
This enables the system to recover more quickly from mispredicted
orientation changes.

Removed the call to System.gc() when freezing the display, which
added 60-80ms before we even started the orientation change.
We used to need this to make it less likely that an upcoming GC
would cause a pause during the window animation, but this is
not longer a concern with the concurrent GC in place.

Changed the wallpaper surface to be 32bit. This accelerates
drawing and improves the overall appearance slightly.

Reduced code duplication in the WallpaperManager.

Change-Id: Ic6e5e8bdce4b970b11badddd0355baaed40df88a
indowManagerService.java
7bbf6f7d11877496502c20e8998a6984ab05cd39 10-Jun-2011 Dianne Hackborn <hackbod@google.com> am 8297f669: am 3aabdeac: am 5ba2e872: Merge "Fix for not reporting correct "sw" in compat mode." into honeycomb-mr2

* commit '8297f669356ee997c5faa745815e8b9a7009fba7':
Fix for not reporting correct "sw" in compat mode.
f741e679c496f7345304a6543f01d7048e31d1a7 10-Jun-2011 Dianne Hackborn <hackbod@google.com> resolved conflicts for merge of e2aa0490 to master

Change-Id: Id0448a1598fc93aca0652b29253e02586e35a067
48a7651823030ed3c0f4c084b423430044425fea 09-Jun-2011 Dianne Hackborn <hackbod@google.com> Fix for not reporting correct "sw" in compat mode.

Change-Id: Ia225c94b36ccc3589d417aafd5680247678eddfd
indowManagerService.java
5fd2169eabd77e6bfafaf456e58051a3bafb2bca 07-Jun-2011 Dianne Hackborn <hackbod@google.com> Work on issue #4518815: Compatibility mode introduces compatibility regression...

...for Market App iRunner

There were a lot of serious issues with how we updated (or often didn't update)
the display and resource state when switching compatibility mode in conjunction
with restarting and updating application components. This addresses everything
I could find.

Unfortunately it does *not* fix this particular app. I am starting to think this
is just an issue in the app. This change does fix a number of other problems
I could repro, such as switching the compatibility mode of an IME.

Also a few changes here and there to get rid of $#*&^!! debug logs.

Change-Id: Ib15572eac9ec93b4b9966ddcbbc830ce9dec1317
lackFrame.java
imAnimator.java
imSurface.java
creenRotationAnimation.java
indowManagerService.java
indowState.java
774ed9d9537c15482e8baca2f2890c5d2f4ffe75 08-Jun-2011 Jeff Brown <jeffbrown@google.com> resolved conflicts for merge of 8b2c0014 to master

Change-Id: I33a5a2949dc6c2d09e8196ba8c7128caa7ac2361
aefc94f19acc29ae9b6abc32dcdbb2ff453984cb 08-Jun-2011 Dianne Hackborn <hackbod@google.com> am 4bd50588: am fc3fa5dc: am 1b405592: Merge "Fix issue #4539687: At least one compatibility-mode app (Androminion)..." into honeycomb-mr2

* commit '4bd505883df3d8ca7583d854f1c71302c615519d':
Fix issue #4539687: At least one compatibility-mode app (Androminion)...
ed48fa89a8e31b04681347a9235c2a566e7dbb8e 07-Jun-2011 Jeff Brown <jeffbrown@android.com> Merge "Touch pad improvements. Bug: 4124987" into honeycomb-mr2
bb3fcba0caf697f1d238a2cbefdf1efe06eded99 07-Jun-2011 Jeff Brown <jeffbrown@android.com> Touch pad improvements.
Bug: 4124987

Only show one spot per touch point instead of one spot per
finger for multitouch gestures.

Tweaked the pointer acceleration curves.

Dissociated the hover/tap timeouts from the "tap" timeout
since they mean very different things.

Change-Id: I7c2cbd30feeb65ebc12f6c7e33a67dc9a9f59d4c
nputManager.java
bc7386c2615a7c496deea59ac1b5ab2da7f7b61f 07-Jun-2011 Dianne Hackborn <hackbod@google.com> Fix issue #4539687: At least one compatibility-mode app (Androminion)...

...will only launch when held in portrait mode.

There was a bug in the window manager that caused all of the careful code to
update the configuration in sync with movements between activities to break.
Now it is fixed, so this app works, and we no longer see the bad slow orientation
changes when switching between activities that want to be in different
orientations.

Change-Id: I5d93f99649849bdaca2e8bebade6b91b8b6cf645
indowManagerService.java
7218d830e27d81141588cd6e37f206d141a18f62 04-Jun-2011 Jeff Brown <jeffbrown@google.com> resolved conflicts for merge of ca2b552d to master

Change-Id: I2f3693a59042ac5aa2d7bcdc3a504c78dc99a18b
50469db07167e3a837e10f215baa4eacb1319604 03-Jun-2011 Dianne Hackborn <hackbod@google.com> am 7322e557: am a4cfcf10: am 75d6b3c2: Merge "Fix issue #4502672: Wrong xml resources used for homescreen widgets." into honeycomb-mr2

* commit '7322e557cfe42da42779625d69ced2db74a9df90':
Fix issue #4502672: Wrong xml resources used for homescreen widgets.
f3b57def9345d6d3cac3604d6a970f6d48f345ec 03-Jun-2011 Dianne Hackborn <hackbod@google.com> resolved conflicts for merge of 7e193916 to master

Change-Id: If06892419319c3a2d4ab6b03dd3ceb99b83803b5
9313a2779732aaaec1f61f85f260499036c7927a 03-Jun-2011 Dianne Hackborn <hackbod@google.com> am 096762d6: am 8075fe48: am 78470718: Fix various places that were using the wrong display metrics.

* commit '096762d6efcae6300c02919bc6b3eaeeffccf91d':
Fix various places that were using the wrong display metrics.
1a84fd1fb7a51f3fe4f8865e1cdd09f3490f696c 02-Jun-2011 Jeff Brown <jeffbrown@android.com> Add a preference panel for mouse speed.

Bug: 4124987
Change-Id: I3ce175d268a1d043cf5878481261b1049a15a149
nputManager.java
indowManagerService.java
ed60f81940c5f2125518c7c31ad4f61b8a9baf3e 02-Jun-2011 Dianne Hackborn <hackbod@google.com> resolved conflicts for merge of 76450622 to master

Change-Id: I26ccd8f264e65f100d894f43cf597a781552db83
75d6b3c2a24224e41e87685db0d9d0b8abea091d 01-Jun-2011 Dianne Hackborn <hackbod@google.com> Merge "Fix issue #4502672: Wrong xml resources used for homescreen widgets." into honeycomb-mr2
2f0b17573d4324832f7a20402a3d2b5920bc4866 01-Jun-2011 Dianne Hackborn <hackbod@google.com> Fix issue #4502672: Wrong xml resources used for homescreen widgets.

There was a race in the system process between applying the initial
configuration and executing code in higher-level system services
like the app widget service that relies on the config. For some
reason it starting showing up more after my code changes; it should
now be completely fixed.

Also fix the activity starting window to run in compatibility mode
if its application is going to be in compatibility mode.

And some various cleanup and small fixes.

Change-Id: I0566933bf1bbb4259c1d99a60c0a3c19af1542e5
tartingData.java
indowManagerService.java
c272d4279493000928b8b7c6dbcf2d2b7d8d08b2 01-Jun-2011 Jeff Brown <jeffbrown@android.com> Merge "Use ViewConfiguration to seed input system configuration." into honeycomb-mr2
214eaf48878bba00cbd5831871bcbd82632b6e34 27-May-2011 Jeff Brown <jeffbrown@android.com> Use ViewConfiguration to seed input system configuration.

Fix bug where the pointer presentation would be updated on
any input reader timeout rather than only when a pointer gesture
is in progress.

Bug: 4124987
Change-Id: Ie9bba4a0b3228d55e45e65fa2ede5cd6ba887a08
nputManager.java
784707187d96b731df5256c1c2adb0aaf9037239 28-May-2011 Dianne Hackborn <hackbod@google.com> Fix various places that were using the wrong display metrics.

Change-Id: I1ac2a0c4a1b7c851dbc99d26f295c7dd49b0bd5c
creenRotationAnimation.java
trictModeFlash.java
atermark.java
81e56d535c853d73ff537357da5b935f51cb779d 26-May-2011 Dianne Hackborn <hackbod@google.com> Rework how we decide whether to use system or status bar.

The PhoneWindowManager is now responsible for determing this,
since it needs to do this before we can generate the configuration
since we need to take into account the system bar size we will use.

Also the Display should now report the screen height without
including the system bar.

Change-Id: I82dfcc5e327e4d13d82c373c6c870f557a99b757
indowManagerService.java
8c1132e3ceed8e1a8c696e2afe0e6fe456ccd7ef 26-May-2011 Daniel Sandler <dsandler@android.com> Merge "Framework support for Android Dreams."
2a3c67c0e99bd3d8c6c538ff323a27df19cad109 26-May-2011 Joe Onorato <joeo@google.com> am cfb046de: am 2c09a9c0: am 5520610c: Merge "Make adb shell am display-size persistent." into honeycomb-mr2

* commit 'cfb046dead49568de6f6808a697e0508ef39a3a6':
Make adb shell am display-size persistent.
86ea1f5f521981d075aef56f11693e4f3bc32fdb 13-Apr-2011 Jeff Brown <jeffbrown@google.com> Initial checkin of spot presentation for touchpad gestures. (DO NOT MERGE)

Added a new PointerIcon API (hidden for now) for loading
pointer icons.

Fixed a starvation problem in the native Looper's sendMessage
implementation which caused new messages to be posted ahead
of old messages sent with sendMessageDelayed.

Redesigned the touch pad gestures to be defined in terms of
more fluid finger / spot movements. The objective is to reinforce
the natural mapping between fingers and spots which means there
must not be any discontinuities in spot motion relative to
the fingers.

Removed the SpotController stub and folded its responsibilities
into PointerController.

Change-Id: Ib647dbd7a57a7f30dd9c6e2c260df51d7bbdd18e
nputManager.java
571ae90801d943a4c0c8897d1cf74c9cfe04b1ec 24-May-2011 Joe Onorato <joeo@google.com> Make adb shell am display-size persistent.

Change-Id: If3d5d18729f4e89eb7e689994deadd996fd487e9
indowManagerService.java
0601eb7953cbf77d92826bef3ca37e208d922de7 13-Apr-2011 Daniel Sandler <dsandler@android.com> Framework support for Android Dreams.

A Dream is an activity that is launched by the window
manager after a specified idle time. You might think of this
as a "screen saver", but with the same capacity for
interactivity as any other application.

The window manager maintains a timer (like the screen lock
timer) that is reset on userActivity; the timer is suspended
during wakelocks and when the screen is off.

When the timer elapses, the user's preferred dream module is
launched (by reading Settings.Secure.DREAM_COMPONENT, which
is configured through the Settings app UI).

Like a dock app, the user can install new dreams and a
single application package may contain multiple dream
activities. Unlike the dock mode, however, there is no
"screensaver mode" for the system to manage. This allows us
to offer the user the ability to run a dream at any time, in
addition to making the overall mechanism quite simple.

There is no public API for this facility.

There is, however, a useful/recommended base class for dream
activities in the support library (change I4559a958).

Change-Id: Ied691856f88cfa38a7aca496d015f9a595da72f2
indowManagerService.java
161e67ff3ba26408eea09221734ad2e29a1eed11 20-May-2011 Dianne Hackborn <hackbod@google.com> resolved conflicts for merge of 06a8ceac to master

Change-Id: Id51574c825affddfac14ad7214c5496d6a3d6e69
69cb87576ba163b61bb0e6477a3b7c57a9b11d40 20-May-2011 Dianne Hackborn <hackbod@google.com> Add new "-swNNNdp" resource qualifier.

Change-Id: I0101e88ca9d8d44138bdcaf571f24b0352f4f6ce
indowManagerService.java
71fcc865e3ac3a3b05ffa204e6a2eaa8bad48a8c 20-May-2011 Romain Guy <romainguy@google.com> Merge "Code cleanup."
88b4f153e2be863d79f4d7f68af95e0f9375e4ec 20-May-2011 Romain Guy <romainguy@google.com> Code cleanup.

Change-Id: Ia6ea04b83832db2f39e3168ef2596c24273a7ef3
iewServer.java
d37b84edf55e5c242de23f1e7dfc61cc150e7b54 19-May-2011 Dianne Hackborn <hackbod@google.com> am ba8fc5b0: am 8416e5cf: am 6ad07db7: Merge "Fix fake display size when rotated." into honeycomb-mr2

* commit 'ba8fc5b059228402afa965e175d5f6655e3fe555':
Fix fake display size when rotated.
8f7c271ac9daa35708246bf279f71db5ff103b58 19-May-2011 Dianne Hackborn <hackbod@google.com> Fix fake display size when rotated.

Change-Id: Ic8a1dbe32cf0cb3c5cdc9b9294b98e810558f875
indowManagerService.java
fb03c4fafee3a5bd6a26ec0b85162b45fd9dd57e 18-May-2011 Dianne Hackborn <hackbod@google.com> am 4f9bb17f: am c2db2144: am a429d5df: Merge "Improve compat mode scaling implementation." into honeycomb-mr2

* commit '4f9bb17f7e74746c4296100f2fbd47f0f6ead3a7':
Improve compat mode scaling implementation.
ffb3d939cc78cae523f14a0f8ab37061b5bffc20 18-May-2011 Dianne Hackborn <hackbod@google.com> Improve compat mode scaling implementation.

Rip out the old funky code for trying to restrict the app window
sizes to be within the compat mode range. Instead, we know rely
entirely on scaling -- we deal with windows always with the scaling
applied so that the window manager doesn't have to deal with them
specially. Instead, we just apply the inverse scale at the few
points we need to do something the app sees.

Change-Id: I785409dd4513b5f738684e1635dc8f770c249651
ragState.java
adeInOutAnimation.java
nputMonitor.java
indowManagerService.java
indowState.java
9d31154d0b0ecbc5a36733ac3a8b70dcae18bf9c 17-May-2011 Dianne Hackborn <hackbod@google.com> am b68c768d: am 41744836: am 7916ac65: Add new command line option to change global screen size.

* commit 'b68c768ddb57407bc253230c677056329c9e4bae':
Add new command line option to change global screen size.
7916ac65dc492e4e1431879875c77d7121fbf82e 17-May-2011 Dianne Hackborn <hackbod@google.com> Add new command line option to change global screen size.

For example:

adb shell am display-size 1024x600

Change-Id: I5df462acd3323bdaaaefa3126faea7dd8595b726
lackFrame.java
creenRotationAnimation.java
indowManagerService.java
68066c2f38e47b56f0510c56eafd827731a0dc08 22-Apr-2011 Dianne Hackborn <hackbod@google.com> DO NOT MERGE. From main -- Start work on simulating landscape/portrait when orientation is locked.

Not yet working, so turned off.

Also fix a bug where the display size configuration became inconsistent
after a configuration change -- we now figure out everything about the
display size when computing a new configuration.

Change-Id: Id155f133c0bf108508a225ef64ed3ca398a90a58
indowManagerService.java
29735689cea7bf52998c1911542dcfdd1c1d9628 22-Apr-2011 Dianne Hackborn <hackbod@google.com> DO NOT MERGE: From master -- Fix bug in deciding which rotation to use for an orientation.

Change-Id: Ie271123271a662f3f753f381ce4c43ad7904dc4a
imSurface.java
indowManagerService.java
ac8dea12c17aa047e03a358110aeb60401d36aa2 21-Apr-2011 Dianne Hackborn <hackbod@google.com> DO NOT MERGE. Integrate from master: Rework display size access.

Applications now get the display size from the window manager. No
behavior should be changed yet, this is just prep for some real
changes.

Change-Id: I47bf8b55ecd4476c25ed6482494a7bcc5fae45d2
nputMonitor.java
indowManagerService.java
indowState.java
ebff8f92f13513ce37bd74759eb1db63f2220590 13-May-2011 Dianne Hackborn <hackbod@google.com> DO NOT MERGE. Integrate add new screen width/height in "dp" configs.

You can now specify resource configuration variants "wNNNdp"
and "hNNNdp". These are the minimum screen width/height in "dp"
units. This allows you to do things like have your app adjust
its layout based only on the about of horizontal space available.

This introduces a new configuration change flag for screen size.
Note that this configuration change happens each time the orientation
changes. Applications often say they handle the orientation change
to avoid being restarted at a screen rotation, and this will now
cause them to be restarted. To address this, we assume the app can
handle this new config change if its target SDK version is < ICS.

Change-Id: I4acb73d82677b74092c1da9e4046a4951921f9f4
indowManagerService.java
aa9d84c37e05f696ec158dac98ce38cf41e18314 10-May-2011 Dianne Hackborn <hackbod@google.com> resolved conflicts for merge of 05be6d6f to master

Change-Id: Ic6a6c5bb300f6f1d43f9ed550b284282b4f16212
e2515eebf42c763c0a2d9f873a153711778cfc17 28-Apr-2011 Dianne Hackborn <hackbod@google.com> Better compat mode part one: start scaling windows.

First step of improving app screen size compatibility mode. When
running in compat mode, an application's windows are scaled up on
the screen rather than being small with 1:1 pixels.

Currently we scale the application to fill the entire screen, so
don't use an even pixel scaling. Though this may have some
negative impact on the appearance (it looks okay to me), it has a
big benefit of allowing us to now treat these apps as normal
full-screens apps and do the normal transition animations as you
move in and out and around in them.

This introduces fun stuff in the input system to take care of
modifying pointer coordinates to account for the app window
surface scaling. The input dispatcher is told about the scale
that is being applied to each window and, when there is one,
adjusts pointer events appropriately as they are being sent
to the transport.

Also modified is CompatibilityInfo, which has been greatly
simplified to not be so insane and incomprehendible. It is
now simple -- when constructed it determines if the given app
is compatible with the current screen size and density, and
that is that.

There are new APIs on ActivityManagerService to put applications
that we would traditionally consider compatible with larger screens
in compatibility mode. This is the start of a facility to have
a UI affordance for a user to switch apps in and out of
compatibility.

To test switching of modes, there is a new variation of the "am"
command to do this: am screen-compat [on|off] [package]

This mode switching has the fundamentals of restarting activities
when it is changed, though the state still needs to be persisted
and the overall mode switch cleaned up.

For the few small apps I have tested, things mostly seem to be
working well. I know of one problem with the text selection
handles being drawn at the wrong position because at some point
the window offset is being scaled incorrectly. There are
probably other similar issues around the interaction between
two windows because the different window coordinate spaces are
done in a hacky way instead of being formally integrated into
the window manager layout process.

Change-Id: Ie038e3746b448135117bd860859d74e360938557
nputMonitor.java
nputWindow.java
indowManagerService.java
indowState.java
ed30fd8e9a2d65ee5c8520de55b0089c219f390c 23-Apr-2011 Chet Haase <chet@google.com> Add ability for hierarchyviewer to output displaylist info

Clicking on a node in hierarchyviewer1 and hierarchyviewer2 and then
clicking the new "Dump DisplayList" button will cause the display
list for the selected node (including its children) to be output into
logcat.

Change-Id: Iad05f5f6cca0f8b465dccd962b501dc18fe6e053
iewServer.java
a17de9b493123f0d6e6d0b842150bf29322b7a88 05-May-2011 Chet Haase <chet@google.com> Revert "Add ability for hierarchyviewer to output displaylist info"

This reverts commit b2a4b52e8d5e499d33e2765e8c47851bf0266299.
iewServer.java
b2a4b52e8d5e499d33e2765e8c47851bf0266299 23-Apr-2011 Chet Haase <chet@google.com> Add ability for hierarchyviewer to output displaylist info

Clicking on a node in hierarchyviewer1 and hierarchyviewer2 and then
clicking the new "Dump DisplayList" button will cause the display
list for the selected node (including its children) to be output into
logcat.

Change-Id: Id32f62569ad1ab4d533bc62987f3a7390c1bb4e6
iewServer.java
736c2756bf3c14ae9fef7255c119057f7a2be1ed 23-Apr-2011 Svetoslav Ganov <svetoslavganov@google.com> Touch exploration feature, event bubling, refactor

1. Added an Input Filter that interprets the touch screen motion
events to perfrom accessibility exploration. One finger explores.
Tapping within a given time and distance slop on the last exlopred
location does click and long press, respectively. Two fingers close
and in the same diretion drag. Multiple finglers or two fingers in
different directions or two fingers too far away are delegated to
the view hierarchy. Non moving fingers "accidentally grabbed the
device for the scrren" are ignored.

2. Added accessibility events for hover enter, hover exit, touch
exoloration gesture start, and end. Accessibility hover events
are fired by the hover pipeline. An accessibility event is
dispatched up the view tree and the topmost view fires it.
Thus predecessors can augment the fired event. An accessibility
event has several records and a predecessor can optionally
modify, delete, and add such to the event.

3. Added onPopulateAccessibilityEvent and refactored the existing
accessibility code to use it.

4. Added API for querying the currently enabled accessibility services
by feedback type.

Change-Id: Iea2258c07ffae9491071825d966dc453b07e5134
nputFilter.java
3fb3d7c4e756bd32d5abde0abca9ab52d559bc84 23-Apr-2011 Adam Powell <adamp@google.com> Revert "Touch exploration feature, event bubling, refactor"

This reverts commit ac84d3ba81f08036308b17e1ab919e43987a3df5.

There seems to be a problem with this API change. Reverting for now to
fix the build.

Change-Id: Ifa7426b080651b59afbcec2d3ede09a3ec49644c
nputFilter.java
f9fa622cc04028fd7c5f5036ea2e0ccfb80d55f3 23-Apr-2011 Svetoslav Ganov <svetoslavganov@google.com> Merge "Touch exploration feature, event bubling, refactor"
dacea8ce503369e7b82ff1c0e1a5a8a48863a25a 22-Apr-2011 Dianne Hackborn <hackbod@google.com> Start work on simulating landscape/portrait when orientation is locked.

Not yet working, so turned off.

Also fix a bug where the display size configuration became inconsistent
after a configuration change -- we now figure out everything about the
display size when computing a new configuration.
indowManagerService.java
ac84d3ba81f08036308b17e1ab919e43987a3df5 05-Apr-2011 Svetoslav Ganov <svetoslavganov@google.com> Touch exploration feature, event bubling, refactor

1. Added an Input Filter that interprets the touch screen motion
events to perfrom accessibility exploration. One finger explores.
Tapping within a given time and distance slop on the last exlopred
location does click and long press, respectively. Two fingers close
and in the same diretion drag. Multiple finglers or two fingers in
different directions or two fingers too far away are delegated to
the view hierarchy. Non moving fingers "accidentally grabbed the
device for the scrren" are ignored.

2. Added accessibility events for hover enter, hover exit, touch
exoloration gesture start, and end. Accessibility hover events
are fired by the hover pipeline. An accessibility event is
dispatched up the view tree and the topmost view fires it.
Thus predecessors can augment the fired event. An accessibility
event has several records and a predecessor can optionally
modify, delete, and add such to the event.

3. Added onPopulateAccessibilityEvent and refactored the existing
accessibility code to use it.

4. Added API for querying the currently enabled accessibility services
by feedback type.

Change-Id: Iec03c6c3fe298de3f14cb6efdbb9b198cd531a0c
nputFilter.java
9d13264f6b5818812e61d66baaada599b8ad1faf 22-Apr-2011 Dianne Hackborn <hackbod@google.com> Fix bug in deciding which rotation to use for an orientation.

Change-Id: Icc928c2188a5865035cafcdab2efd5bae3132b1f
imSurface.java
indowManagerService.java
44bc17c6b517aef35a390c81b5aa79c4f284f744 21-Apr-2011 Dianne Hackborn <hackbod@google.com> Rework display size access.

Applications now get the display size from the window manager. No
behavior should be changed yet, this is just prep for some real
changes.

Change-Id: I2958a6660895c1cba2b670509600014e55ee9273
nputMonitor.java
indowManagerService.java
indowState.java
2352b978a3c94cd88f41d0d908f961333fdac1e9 13-Apr-2011 Jeff Brown <jeffbrown@google.com> Initial checkin of spot presentation for touchpad gestures.

Added a new PointerIcon API (hidden for now) for loading
pointer icons.

Fixed a starvation problem in the native Looper's sendMessage
implementation which caused new messages to be posted ahead
of old messages sent with sendMessageDelayed.

Redesigned the touch pad gestures to be defined in terms of
more fluid finger / spot movements. The objective is to reinforce
the natural mapping between fingers and spots which means there
must not be any discontinuities in spot motion relative to
the fingers.

Removed the SpotController stub and folded its responsibilities
into PointerController.

Change-Id: I5126b1e69d95252fda7f2a684c9287e239a57163
nputManager.java
3fc982f41fda1f254bfbc35490d81cd82a0ed90a 31-Mar-2011 Dianne Hackborn <hackbod@google.com> Add new resource configurations for screen width/height in "dp".

You can now specify resource configuration variants "wNNNdp"
and "hNNNdp". These are the minimum screen width/height in "dp"
units. This allows you to do things like have your app adjust
its layout based only on the about of horizontal space available.

This introduces a new configuration change flag for screen size.
Note that this configuration change happens each time the orientation
changes. Applications often say they handle the orientation change
to avoid being restarted at a screen rotation, and this will now
cause them to be restarted. To address this, we assume the app can
handle this new config change if its target SDK version is < ICS.

Change-Id: I22f8afa136b4f274423978c570fa7c9855040496
indowManagerService.java
21bc5c917d4ee2a9b2b8173091e6bba85eaff899 01-Mar-2011 Jeff Brown <jeffbrown@google.com> Add a little input event consistency verifier.

The idea is to assist with debugging by identifying cases in which
the input event stream is corrupted.

Change-Id: I0a00e52bbe2716be1b3dfc7c02a754492d8e7f1f
nputFilter.java
0029c66203ab9ded4342976bf7a17bb63af8c44a 30-Mar-2011 Jeff Brown <jeffbrown@google.com> Add input filter mechanism for accessibility.

This patch adds a mechanism for capturing, filtering, transforming
and injecting input events at a very low level before the input
dispatcher attempts to deliver them to applications. At this time,
the mechanism is only intended to be used by the accessibility
system to implement built-in system-level accessibility affordances.

The accessibility input filter is currently just a stub.
It logs the input events receives and reinjects them unchanged,
except that it transforms KEYCODE_Q into KEYCODE_Z.

Currently, the accessibility input filter is installed whenever
accessibility is enabled. We'll probably want to change that
so it only enables the input filter when a screen reader is
installed and we want touch exploration.

Change-Id: I35764fdf75522b69d09ebd78c9766eb7593c1afe
nputFilter.java
nputManager.java
indowManagerService.java
5c9248f668201a751500f67cc60bd45ff905751a 09-Mar-2011 Jim Miller <jaggies@google.com> Merge "Fix 4027057: Improve resolution of RecentApps thumbnail images." into honeycomb-mr1
e70d506ab329f1f96b0ee132317aa36edea1b94e 09-Mar-2011 Jim Miller <jaggies@google.com> Fix 4027057: Improve resolution of RecentApps thumbnail images.

This fix ensures captured thumbnails in portrait mode have the
same resolution as those in landscape by fixing the horizontal
resolution and vertical resolution of the target image.

The returned image is now always the same size and matches
the landscape screen exactly. In portrait mode, it grabs
the upper portion of the screen based on the vertical dimension
of the target image.

Change-Id: I203c39843f2f21ca28f6ef0dffec308ce5cb39fb
indowManagerService.java
3de6a9b692437d5ce14d672cad4eff4c7ed0ae23 09-Mar-2011 Jim Miller <jaggies@google.com> Merge "Fix 4025684: Don't include wallpaper dimensions in bounds calculation" into honeycomb-mr1
2aded18b0ef9f189771f70f05091493a44ec46ae 09-Mar-2011 Jim Miller <jaggies@google.com> Fix 4025684: Don't include wallpaper dimensions in bounds calculation

This fixes a bug where we would capture the statusbar region in
thumbnails because the wallpaper was used in the bounds calculation.

Change-Id: I572221e83c4c363afe90e59bece9a291ce694a15
indowManagerService.java
cc1d9f7942f7e70c240f0cc745840262345f506f 08-Mar-2011 Dianne Hackborn <hackbod@google.com> Fix issue #3505861: Need to decide large/xlarge screen size limits

Decided.

Change-Id: I8292d65e3d47755778fdf85207c49f160c756452
indowManagerService.java
88dd6e665a6cf6f0ffca456a8f8dcf979075b856 03-Mar-2011 makarand.karvekar <makarand.karvekar@motorola.com> set max_events_per_sec to 55

reduce touch lag.
no Dispatcher fix w/throttle at 60: 75.9ms (range is 71.4ms - 80.1ms)
InputDispatcher fix w/throttle at 60: 49.0ms (range is 38.1ms - 66.7ms)
InputDispatcher fix w/throttle at 55: 41.2ms (range is 28.6ms - 66.7ms)

Change-Id: I76c0ba83abcd6a3d408a29ec76997a2e07e48a70
Signed-off-by: makarand.karvekar <makarand.karvekar@motorola.com>
nputManager.java
63e1cea248cde3db3e89f49e5fcc3458aa87951e 03-Mar-2011 Dianne Hackborn <hackbod@google.com> Merge "Fix issue #3485923: Gmail crash"
648251710162cdaf7371012a1cbb79b9bc5bc0e4 03-Mar-2011 Dianne Hackborn <hackbod@google.com> Fix issue #3485923: Gmail crash

Allow application to try to recover if a surface OOM error
happens on the client side.

Change-Id: I0308bd99647a35e4bcac448340b7fc6330a828f6
ession.java
indowManagerService.java
indowState.java
a454767b09ecb7d25d00beae0e5a1fdd48605c63 03-Mar-2011 Jeff Brown <jeffbrown@google.com> Get key repeat timeout and delay from ViewConfiguration.

Replaces previously hardcoded values. This ensures that key repeat
takes the accessibility long press timeout setting into account.

Unfortunately the system must be rebooted for the change to take
effect. We will fix that later.

Change-Id: I3ab70bb037331620b7e532170c1727287b5c6f91
nputManager.java
55acdf7dcd0cf5b9aacfe48808e98056c7d60e5b 03-Mar-2011 Jeff Brown <jeffbrown@google.com> Merge "Wake screen from external HID peripherals."
56194ebec6212e229f4ccdaa4b187166d20013ef 03-Mar-2011 Jeff Brown <jeffbrown@google.com> Wake screen from external HID peripherals.

Added some plumbing to enable the policy to intercept motion
events when the screen is off to handle wakeup if needed.

Added a basic concept of an external device to limit the scope
of the wakeup policy to external devices only. The wakeup policy
for internal devices should be based on explicit rules such as
policy flags in key layout files.

Moved isTouchEvent to native.

Ensure the dispatcher sends the right event type to userActivity
for non-touch pointer events like HOVER_MOVE and SCROLL.

Bug: 3193114
Change-Id: I15dbd48a16810dfaf226ff7ad117d46908ca4f86
nputManager.java
nputMonitor.java
cbf9cb35bb7064f303c6dd9da4485cd5344b6779 03-Mar-2011 Dianne Hackborn <hackbod@google.com> Merge "Fix issue #3400119: API to specify a black background behind a window transition"
de75cb4738376c4cfe15c56aba7cd78d90e3100e 03-Mar-2011 Dianne Hackborn <hackbod@google.com> Fix issue #3400119: API to specify a black background behind a window transition

There is now an API, which is used for task switching.

Also improved how we handle rotation animation when we can't take a
screen shot, to cleanly revert to the old freeze behavior. This removes
the need to special case the emulator.

Change-Id: I7227432a2309370437ec6ac78db02c6f1e7eedd5
imAnimator.java
imSurface.java
creenRotationAnimation.java
indowManagerService.java
05dc66ada6b61a6bdf806ffaa62617ac5394695d 02-Mar-2011 Jeff Brown <jeffbrown@google.com> Fade out the mouse pointer after inactivity or other events.

Fades out the mouse pointer:
- after 15 seconds of inactivity normally
- after 3 seconds of inactivity in lights out mode
- after a non-modifier key down
- after a touch down

Extended the native Looper to support enqueuing time delayed
messages. This is used by the PointerController to control
pointer fade timing.

Change-Id: I87792fea7dbe2d9376c78cf354fe3189a484d9da
nputManager.java
indowManagerService.java
99aac7beca18b6d73e40db5e8e49f52f94be638e 26-Feb-2011 Dianne Hackborn <hackbod@google.com> You can now specify a custom display size as NxM.

Change-Id: Ieb6df51aab009689f0f19b8887025261c5ceb69f
indowManagerService.java
3c85a4e6396dabf7f0061ff2c6e9f9b35793eadd 22-Feb-2011 Mike Lockwood <lockwood@android.com> Merge "KeyguardManager: Add isKeyguardLocked() and isKeyguardSecure()"
a9c40ef176d36c8adaa40d3d768ef94a9c8fb647 22-Feb-2011 Dianne Hackborn <hackbod@google.com> Merge "Add missing header comment."
f56e1021aaa04c0ee4a0d4e1d4741bb48e41e2b8 22-Feb-2011 Dianne Hackborn <hackbod@google.com> Add missing header comment.

Change-Id: Iec0c0c90153560d256b95212b7dcf969edf22143
nputMonitor.java
2ed6ad6aeca5f9829ea7dad4e092064ee4baad47 22-Feb-2011 Daniel Sandler <dsandler@google.com> Fix the flipping orientation lock.

We were setting ACCELEROMETER_ROTATION to 0 before putting
in the proper USER_ROTATION value, and PhoneWindowManager's
content observer would eagerly rotate the screen to the last
locked orientation before re-rotating to the updated locked
rotation.

Now we set USER_ROTATION first. Additionally, the
content observer is now the only place we set
mUserRotation{,Mode} (previously we would race with it in
setUserRotationMode()).

Bug: 3425657
Change-Id: I04ba1a3631c6d985c2e406c4d148c39fb5c36216
indowManagerService.java
520d8bc1d840966b5519195aaa514597a662c053 18-Feb-2011 Mike Lockwood <lockwood@android.com> KeyguardManager: Add isKeyguardLocked() and isKeyguardSecure()

BUG: 3402847

Change-Id: I725838c9d96617dd4497f9c80417cd623eceb846
Signed-off-by: Mike Lockwood <lockwood@android.com>
indowManagerService.java
6e1eb76f02ccc9dbc309b938f62d39312da8cafe 18-Feb-2011 Dianne Hackborn <hackbod@google.com> Explode WindowManagerService.

Change-Id: I3d73ed4c9a1b5d730aeffeb2df24ce5e6117d698
ppWindowToken.java
imAnimator.java
ragState.java
adeInOutAnimation.java
nputApplicationHandle.java
nputMonitor.java
creenRotationAnimation.java
ession.java
tartingData.java
trictModeFlash.java
atermark.java
indowManagerService.java
indowState.java
indowToken.java
a924dc0db952fe32509435fdb8dc9c84a9e181f3 17-Feb-2011 Dianne Hackborn <hackbod@google.com> Start window manager refactoring.

Move all of the pieces into a new com.android.server.wm package.

Change-Id: I942b7bcfb84ee0f843f47d58e55ffc5a93c0da94
nputApplication.java
nputApplicationHandle.java
nputManager.java
nputWindow.java
nputWindowHandle.java
nputWindowList.java
creenRotationAnimation.java
trictModeFlash.java
iewServer.java
indowManagerService.java