Commit Graph

278 Commits

Author SHA1 Message Date
Craig Mautner
acafd19c5e 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
2012-05-10 10:41:02 -07:00
Craig Mautner
393295fabf Merge "Keep layout from overwriting translate dimensions" into jb-dev 2012-05-09 11:17:19 -07:00
satok
e0a99414bd Fix the issue that the insets linger after closing the voice input
Bug: 6456954
Change-Id: Idf7700271cf882dfbf35c9d16f0f173a791221bc
2012-05-10 02:57:11 +09:00
Craig Mautner
a83580614f 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
2012-05-09 10:37:41 -07:00
Craig Mautner
79b7742cf1 Merge "Fix wallpaper exposure bugs." into jb-dev 2012-05-08 17:01:43 -07:00
Craig Mautner
0afddcb7f1 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
2012-05-08 16:32:50 -07:00
Jeff Brown
c042ee2acd Disable input dispatch until boot finished.
Bug: 6263070
Change-Id: I25e15e3d8af8eb3343c7b684fec345337d9f6aab
2012-05-08 13:58:32 -07:00
Jeff Brown
e19dbd9f9d Merge "Separate the internal and external display rotations." into jb-dev 2012-05-03 11:56:25 -07:00
Jeff Brown
93de746e55 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
2012-05-02 16:29:42 -07:00
Craig Mautner
be4f5bb7fc Merge "Fix Home key causes wrong animation" into jb-dev 2012-05-02 16:17:24 -07:00
satok
e849230f44 Merge "DO NOT MERGE : Backport I5723f627ce323b0d12b Reduce window resizing during IME transition" into jb-dev 2012-05-02 01:41:23 -07:00
satok
1bc0a49e3c DO NOT MERGE : Backport I5723f627ce323b0d12b Reduce window resizing during IME transition
Bug: 5137498
Change-Id: Ieb8fd700d193eddaa31b0c5ebd8c7f7885586372
2012-05-02 17:30:45 +09:00
Craig Mautner
83339b465c 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
2012-05-01 22:13:23 -07:00
Jeff Brown
0632b35b68 Merge "Improve handling of built-in keyboard." into jb-dev 2012-05-01 18:39:00 -07:00
Jeff Brown
daa3753a04 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
2012-05-01 16:34:20 -07:00
Jeff Brown
c5c33c363e Merge "Add support for using the lid switch to turn off the screen." into jb-dev 2012-04-30 17:15:57 -07:00
Jeff Brown
c458ce98ce 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
2012-04-30 15:48:42 -07:00
Dianne Hackborn
5c58de3a52 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
2012-04-30 12:11:43 -07:00
Dianne Hackborn
79c6346100 Merge "When a window is first shown only draw once while animating." into jb-dev 2012-04-27 17:42:48 -07:00
Craig Mautner
de7ff082c4 Merge "Call deferred windowFocusChange when draw complete" into jb-dev 2012-04-27 15:37:59 -07:00
Dianne Hackborn
12d3a94397 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
2012-04-27 15:21:44 -07:00
Craig Mautner
c8e372031c Merge "Don't resize WindowStates without a Surface." into jb-dev 2012-04-27 14:46:30 -07:00
Craig Mautner
51bb12b3e5 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
2012-04-27 14:39:53 -07:00
Craig Mautner
1efacf7fca 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
2012-04-27 12:58:21 -07:00
Dianne Hackborn
1ded0b1f6a Add traces for window manager and activity manager.
Change-Id: I525d762db328e4c597da27b6b56d9a808e199756
2012-04-26 14:14:50 -07:00
Winson Chung
38cb84fd4b Merge "Reverting min scale in the previous animation changes." 2012-04-24 19:03:55 -07:00
Winson Chung
108b0607cd Reverting min scale in the previous animation changes.
Change-Id: Ia21169386a038026d76a0bb3cf8c74576786e5ba
2012-04-24 18:53:11 -07:00
Winson Chung
069ac9a78d Merge "Updating activity/task transition animations." 2012-04-24 18:24:08 -07:00
Winson Chung
dc6f79bf43 Updating activity/task transition animations.
Change-Id: I0d4295d269222310a5a6594fb379b9592dd9ced0
2012-04-24 18:14:45 -07:00
Craig Mautner
35af2fff43 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
2012-04-24 14:30:15 -07:00
Craig Mautner
fbf378c736 Various debugging enhancements.
Also moved DummyAnimation into AppWindowAnimator where it belongs.

Change-Id: I7da254a8b99030b898e2ff8d983500d7ce0b2b65
2012-04-24 09:56:59 -07:00
Dianne Hackborn
8ff0c9204e Merge "You can now long press on the power off menu to reboot to safe mode." 2012-04-20 18:58:53 -07:00
Dianne Hackborn
19caadc08f You can now long press on the power off menu to reboot to safe mode.
Change-Id: I3aa575285058cf5a3d89486d6b944f6ea13d645c
2012-04-20 17:50:26 -07:00
Craig Mautner
4d7349bb6d 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
2012-04-20 15:09:51 -07:00
Dianne Hackborn
68c33ca7ce Add new API to find smallest/largest screen size.
Change-Id: I790801fceaf84ee2e3b1c9d32828285ad3231d0e
2012-04-19 14:55:13 -07:00
Dianne Hackborn
08ce91a1a4 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.
2012-04-18 20:45:45 -07:00
Dianne Hackborn
7f58b95f7c 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
2012-04-18 14:58:03 -07:00
p13451
0445bc6e4e 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
2012-04-18 15:13:26 +09:00
Craig Mautner
a51a9564fd 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
2012-04-17 17:25:50 -07:00
Craig Mautner
c843642fbb Merge changes I4752bdf1,I37690cf2
* changes:
  Move Surface operations into existing transaction.
  Clear orientation variable until rotation is done.
2012-04-17 13:18:45 -07:00
Craig Mautner
acaf9cca86 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
2012-04-17 11:55:00 -07:00
Dianne Hackborn
eabfb3a36e Add new scale-up window manager animation.
Like zoom thumbnail, but without the thumbnail.

Change-Id: I9486dd204398b87c9e70ff0d05d03f4a22449cd6
2012-04-16 17:32:50 -07:00
Craig Mautner
3255a28b6a 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
2012-04-16 15:52:48 -07:00
Craig Mautner
7d8df3905d 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
2012-04-14 10:45:48 -07:00
Craig Mautner
7358fbfeb2 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
2012-04-13 10:01:32 -07:00
Dianne Hackborn
0c2acffec8 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
2012-04-12 15:26:11 -07:00
Justin Mattson
2f63cfda76 am 4ea7bfea: Merge "Check if WallpaperService is enabled" into ics-aah
* commit '4ea7bfea312e4ddf815eabdef04d3f3b4878a51a':
  Check if WallpaperService is enabled
2012-04-11 17:44:53 -07:00
Craig Mautner
1e1edaa60d Merge "Check WindowState when looking for animation." 2012-04-11 17:18:44 -07:00
Craig Mautner
f20588fdc6 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
2012-04-11 17:15:09 -07:00
Craig Mautner
f8d4fbb9c8 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
2012-04-11 09:25:53 -07:00