142 Commits

Author SHA1 Message Date
Romain Guy
236092a362 Fixes crash in HierarchyViewer when windows hash code exceed int capacity.
Bug: 2321018
2009-12-14 16:20:01 -08:00
Dianne Hackborn
8091424ea3 am 9b52a218: Fix #2269582 Sometimes camera preview screen is truncated
Merge commit '9b52a2184e99565bcd7f77effb321c95a2a4837e' into eclair-mr2

* commit '9b52a2184e99565bcd7f77effb321c95a2a4837e':
  Fix #2269582 Sometimes camera preview screen is truncated
2009-12-13 12:25:10 -08:00
Dianne Hackborn
9b52a2184e Fix #2269582 Sometimes camera preview screen is truncated
There were a few places in the window manager where we wouldn't cause
a layout after making a window visible.  This would leave it using
whatever size and position it last have since we don't layout windows
when they are not visible.

Also includes a little part I missed in the security issue that
allowed wallpapers to see input on the lock screen.

Change-Id: Icd7e037ad9a67ac936bc7039d87ed68f49502d73
2009-12-11 18:35:07 -08:00
Christopher Tate
af1255dab8 resolved conflicts for merge of 2624fbca to eclair-mr2 2009-12-11 13:16:41 -08:00
Christopher Tate
2624fbcaaa Fix #2320798: Device hang then runtime restart
The system_server process is deadlocking between event dispatch and window
manager code.  This change fixes the lock scoping to eliminate the deadlock.

Change-Id: I00f029e4d51d7432119ad3aeec260df215b52546
2009-12-11 12:49:33 -08:00
Dianne Hackborn
221fa91030 am d3cfb1bd: Merge change Ia48b3f2a into eclair
Merge commit 'd3cfb1bd84affbf740256f5e9804c93ef7722b37' into eclair-mr2

* commit 'd3cfb1bd84affbf740256f5e9804c93ef7722b37':
  Fix #2313887: Device doesn't boot after rebooting device...
2009-12-10 17:56:39 -08:00
Dianne Hackborn
f3bea9cb75 Fix #2313887: Device doesn't boot after rebooting device...
...in setup wizard ->Wifi setup screen.

We were stopped waiting for the wallpaper to draw, which it would never do
because it had been obscured and thus hidden.

Change-Id: Ia48b3f2a46ca970f143cbaee99f5f2a054378986
2009-12-09 18:26:21 -08:00
Dianne Hackborn
4c8454d869 am e851cdc6: Merge change Ifd95b9f5 into eclair
Merge commit 'e851cdc6c48c977d05096847001a0601d892fd55' into eclair-mr2

* commit 'e851cdc6c48c977d05096847001a0601d892fd55':
  Fix #2313382: SECURITY: Live wallpapers get touch events through the lock screen.
2009-12-08 18:44:03 -08:00
Dianne Hackborn
00c1fc97c1 Fix #2313382: SECURITY: Live wallpapers get touch events through the lock screen.
This is a quick and dirty hack to not deliver touch events to the wallpaper when
they are being sent to the keyguard.  Perhaps we should have a separate window
flag for this, but...  bleah.  Maybe later.  Or maybe I'll use that secure flag.
Or something.

Change-Id: Ifd95b9f5b10db24a0854a93b925a833b24331b4c
2009-12-08 15:51:43 -08:00
Doug Zongker
ab5c49c7e7 move event log tags used by system server into this package
We can now locate event log tag definitions in individual packages
(and java constants for the tag numbers get auto-generated), so move
all the tags used by the system server into the package.
2009-12-04 10:31:43 -08:00
Mike Lockwood
c1bb46e9d5 am abf7fed2: Merge change I2b7c8a32 into eclair
Merge commit 'abf7fed21bfa7eb899be558477d928a7c9f3e1f6' into eclair-mr2

* commit 'abf7fed21bfa7eb899be558477d928a7c9f3e1f6':
  Fix more of bug 2290852: Don't wake screen when bluetooth headset is connected or disconnected.
2009-12-01 18:30:12 -08:00
Mike Lockwood
5db4240012 Fix more of bug 2290852: Don't wake screen when bluetooth headset is connected or disconnected.
This fixes another case where the screen would turn on when the keyguard is open but hidden by another activity.

Change-Id: I2b7c8a329036401709e96ded4f4c138041192a71
Signed-off-by: Mike Lockwood <lockwood@android.com>
2009-11-30 14:51:51 -05:00
Mike Lockwood
db727a8a03 Remove some unused window manager methods.
Change-Id: I1c28150416b92b96b9f434270652c4be2613434c
Signed-off-by: Mike Lockwood <lockwood@android.com>
2009-11-28 22:28:17 -05:00
Dianne Hackborn
9ad091ab10 am 118d92f7: Merge change I16925b91 into eclair
Merge commit '118d92f73fe9dd1cc9cb900205cd1ec0dac28a1b' into eclair-mr2

* commit '118d92f73fe9dd1cc9cb900205cd1ec0dac28a1b':
  Finish fixing issue #2228381: android.view.InflateException...
2009-11-24 15:01:51 -08:00
Dianne Hackborn
195f6a0ff3 Finish fixing issue #2228381: android.view.InflateException...
...Binary XML file line #37: Error inflating class <unknown> after adding a secondary account

The problem was that we weren't dealing well with the situation where we start a transition
from activity A to B, then transition back to A before B is shown (it finishes before being
shown), then transition from A to C.  At this point we had some state showing that we
were in the process of showing A from it being hidden (due to the middle transition from
B to A), which would cause the layout pass to ensure its window is hidden before the
transition starts.

The solution is to detect the case where we are showing a token and it is already actually
shown, and in this case not do all of the token setup for it to wait for its windows to
be displayed before it is shown.  This isn't needed, the windows are already displayed
or the token is already set up to wait for them to be displayed.

Change-Id: I16925b91e1e2449dd65ade162a5758173c6e2695
2009-11-24 11:34:55 -08:00
Mike Lockwood
fb73f79340 Add window manager support for overriding button and keyboard backlight values.
The new backlightBrightness field works similarly as the existing WindowManager.LayoutParams.screenBrightness field

Needed for bugs:
    b/2233655 (under low ambient light the touch keys remain illuminated during video playback and never timeout)
    b/2221079 (Backlight for home/search/back/etc buttons should turn off when in dock in night mode)

Change-Id: I60dfecdc7bb653b0db38094464de651220b3d438
2009-11-23 15:16:55 -05:00
Dianne Hackborn
4103924742 am 8abd5f0d: Fix issue #2267665 IME keyboard appears as Blank in compose view...
Merge commit '8abd5f0d519afa787e7c64e429df17ccc661ce75' into eclair-mr2

* commit '8abd5f0d519afa787e7c64e429df17ccc661ce75':
  Fix issue #2267665 IME keyboard appears as Blank in compose view...
2009-11-23 11:05:54 -08:00
Dianne Hackborn
8abd5f0d51 Fix issue #2267665 IME keyboard appears as Blank in compose view...
...if you re-lunch messaging application after deleting the
character and pressing home key

Change-Id: Idc7da05e54730958644e80069764237e5db6f288
2009-11-23 10:58:56 -08:00
Mike Lockwood
34c5813e48 am 174b7269: Merge change Id886fb28 into eclair
Merge commit '174b726917c12d61f9135a180afc8413d845dc2d' into eclair-mr2

* commit '174b726917c12d61f9135a180afc8413d845dc2d':
  Fix deadlock in WindowManagerService.reenableKeyguard()
2009-11-23 10:40:13 -08:00
Mike Lockwood
983ee099de Fix deadlock in WindowManagerService.reenableKeyguard()
If reenableKeyguard() is called before the previous disableKeyguard() call is processed,
then TokenWatcher.sendNotificationLocked() will cancel the request, resulting in neither
the TokenWatcher acquired() or released() methods being called.
In that case, reenableKeyguard() will hang waiting for released() to set
mWaitingUntilKeyguardReenabled to false.  Now we only wait in reenableKeyguard()
if the TokenWatcher acquired() method is called and the keyguard has actually been disabled.

This should fix bug b/2270192

Change-Id: Id886fb28df607dbb4543124f2db6997121d6a682
Signed-off-by: Mike Lockwood <lockwood@android.com>
2009-11-22 02:00:13 -05:00
Dianne Hackborn
a2f4c2543a am 1d62ea9d: Fix issue #2249821: Unable to start passion in safe mode
Merge commit '1d62ea9d8c2646d198b6967e2c6ae3dad5c18f9e' into eclair-mr2

* commit '1d62ea9d8c2646d198b6967e2c6ae3dad5c18f9e':
  Fix issue #2249821: Unable to start passion in safe mode
2009-11-18 11:51:05 -08:00
Dianne Hackborn
1d62ea9d8c Fix issue #2249821: Unable to start passion in safe mode
Holding down the trackball now works.

Also fix a little API check warning from Intent.

Change-Id: Icb1f901535cb521917bf7f847a93c4ff7861d20e
2009-11-18 11:42:32 -08:00
Dianne Hackborn
acbd9fdaf0 am 48515f49: Merge change I0de7979b into eclair
Merge commit '48515f495b29c01b473579825d5ba5e690ff5db7' into eclair-mr2

* commit '48515f495b29c01b473579825d5ba5e690ff5db7':
  Fix issue #2170897: wallpaper touch-up event not seen when exiting lock screen
2009-11-11 09:58:38 -08:00
Dianne Hackborn
6adba2467c Fix issue #2170897: wallpaper touch-up event not seen when exiting lock screen
Make sure to deliver events to the wallpaper until the final up.

Also fix behavior in the case where a window goes away while the pointer is still
down in it, which is a fairly novel situation introduced by the new lock screen.

Also add infrastructure for delivering motion events during preview.

Change-Id: I0de7979be27e00caf0b1eff794ea899a815142f6
2009-11-10 13:02:30 -08:00
Marco Nelissen
949ffa3da5 am 11cff8cd: Merge change Ie211adae into eclair
Merge commit '11cff8cd30f03b5adb137e985532543da5e960c4' into eclair-mr2

* commit '11cff8cd30f03b5adb137e985532543da5e960c4':
  Add a way for wallpapers to know the delta between virtual screens.
2009-11-09 19:34:42 -08:00
Marco Nelissen
bf6956b1d9 Add a way for wallpapers to know the delta between virtual screens. 2009-11-09 17:39:33 -08:00
Charles Mendis
6b07bf3d8f am 3cba7288: Merge change I6ccd2ebc into eclair
Merge commit '3cba72880b78b81cda2868136462c9e261a3e403' into eclair-mr2

* commit '3cba72880b78b81cda2868136462c9e261a3e403':
  Expose PowerManager.isScreenOn in the public api.
2009-11-06 11:46:43 -08:00
Charles Mendis
322591cb4b Expose PowerManager.isScreenOn in the public api.
Change-Id: I6ccd2ebcbf3f8ad9ffa4b86a9c037cb0c25a7b78
2009-11-06 14:37:07 -05:00
Suchi Amalapurapu
750e82e519 am bf50200b: Merge change Ic9568e39 into eclair
Merge commit 'bf50200ba494db0ac2ce655a95f76640f49355ee' into eclair-mr2

* commit 'bf50200ba494db0ac2ce655a95f76640f49355ee':
  When tasks are moved to top or bottom, the app tokens are being rearranged.
2009-11-06 00:23:03 -08:00
Suchi Amalapurapu
c9568e3989 When tasks are moved to top or bottom, the app tokens are being rearranged.
The window token rearrangement is defered if an animation is
underway. Force a focus recomputation when the window tokens are finally
rearranged so that we have a valid focused window.
2009-11-05 19:13:18 -08:00
Suchi Amalapurapu
18eedbacac am a47a1e77: Merge change Ic03d28b9 into eclair
Merge commit 'a47a1e77a4dc9510187f57d5cdf12f5ecf6b3ab0' into eclair-mr2

* commit 'a47a1e77a4dc9510187f57d5cdf12f5ecf6b3ab0':
  Check that the window which wants to force hide is visible before setting the flag forceHiding to true. If we do layout the surfaces
2009-10-29 13:45:05 -07:00
Suchi Amalapurapu
c03d28b9e9 Check that the window which wants to force hide is visible before setting the flag forceHiding to true. If we do layout the surfaces
again this flag gets set no matter what since the keyguard window is always present in the list of tokens and this hides the window which would
have become visible since the keyguard just got dismissed.
This causes unnecessary focus changes due to changes in visibility of current window.

This will resolve issues related to current focus and time outs when dispatching key events.
2009-10-28 14:47:45 -07:00
Christopher Tate
405d089863 DO NOT MERGE: Fix loss of focus after wakeup into incall screen
Because of the asynchronous behavior of keyguard, and incall explicitly
disabling keyguard, sometimes the window manager would wind up in a state in
which the "correct" app and activity window were shown, but focus was
recalculated "too soon," at a time when keyguard was just about gone but not
quite, and incall was not yet fully shown.  In this case there was no currently
valid event target, but the final show of the incall window would not prompt a
focus recalculation, so that "no current focus" state would incorrectly persist,
resulting in spurious ANRs until some other phone activity forced a focus
update.

We now detect the problematic case when windows are shown, and make sure to
recalculate focus explicitly thereafter.  This change does *not* fix the
underlying race conditions that have been resulting in mismatched state within
the window manager, but it does force a validation pass that puts things in
order so that normal operation can continue.

Change-Id: I8e7f5f0795f0042a0da074aeed385e3fbc210360
2009-10-28 11:52:58 -07:00
Dianne Hackborn
7580493b01 Implement feature #2117336: Create event communication APIs for live wallpaper
Note: currently only implements an async version (no result), and not yet
actually tested.

Change-Id: Id47ed045a4b0eb309ea8c58daf41a0e03eff1d3a
2009-10-22 20:10:53 -07:00
Mike Lockwood
3d0ea72dd7 Add WindowManagerPolicy.allowKeyRepeat() method for disabling key repeats.
Part of a fix for bug b/2198537

Change-Id: I99dc64772fa7644b12432d5549603025196ea3e2
Signed-off-by: Mike Lockwood <lockwood@android.com>
2009-10-21 23:08:13 -04:00
Dianne Hackborn
73e92b4291 Improve wallpaper offset handling.
Fiddle around with the offsets of wallpapers to have better defaults, and
update the offset when the currently wallpaper target is not setting an
offset itself.

Change-Id: I1864d098fb4813fb0c67857af8ebf398b35e6876
2009-10-19 15:53:45 -07:00
Mike Lockwood
dd8846886a Fix race condition in WindowManagerService.disableKeyguard()
TokenWatcher.acquire() synchronizes on mTokens, not this,
so we need to synchronize on mKeyguardDisabled in disableKeyguard()
to synchronize properly with reenableKeyguard().

This should fix b/2180142 (Stuck in enable keyguard when receiving phone call)

Change-Id: Iad66a2748c7fbf2c516fdb8a00988696719ea80c
Signed-off-by: Mike Lockwood <lockwood@android.com>
2009-10-11 17:07:55 -04:00
Dianne Hackborn
3d163f073f More fix #2163209: alarm clock rings but is hidden behind lock screen
There was another way we could ignore the application windows flags
while the lock screen was displayed.  This is the infrastructure to
deal with that.

Change-Id: Id8c9cb2f7081df6757ccb797a7cde618e82f7b38
2009-10-07 21:26:57 -07:00
Dianne Hackborn
9830a4ac42 Fix issue #2161169: onStop not being called.
There was a bug with the starting window where it could be added to
the app window list twice, so the buddy list would end up with one
left over after all was done.  This would result in visibility
changes not being delivered to it correctly, delaying the dispatch
of onStop.

Change-Id: If1993eaf9cfbba1f523ce5aaa478be0239d0c7db
2009-10-05 12:50:38 -07:00
Romain Guy
9825ec61b4 Prevents the WindowManager from requesting empty or negative surfaces.
Windows with a negative Y position can end up in createSurfaceLocked()
with mFrame containing a negative height, causing SurfaceFlinger to go
crazy when asked to create the surface. This change simply guards
against such a situation by instead asking for a 1x1 surface and relying
or later layout operations to resize the window to the appropriate size.

Change-Id: I66f2058f4cd1cf069b12d3d23e6fd340dc76b74e
2009-10-01 01:16:06 -07:00
Dianne Hackborn
a33e3f7925 Fix issue #2154794: Force close when start facebook application.
I think when we were scanning the updated app in the system image,
from an older version on the data partition, we were not setting
the existing package to have the system flag, so not auto-granting
any new permissions.

This also includes some other cleanup in the package manager to
remove old files in various places, and tighten up logging.

Also similar logging cleanup elsewhere.

Change-Id: I6d113c7cf7e736ab9be512d6d7c94c806a24199a
2009-09-30 15:09:33 -07:00
Dianne Hackborn
6b1cb352b8 Fix issue #2149126: unable to answer incoming call, various problems
Now that we can have a non-app-window cross-wallpaper animation,
we need to make sure to not access a null app token.

Change-Id: Ia00debd4b2b431d15bd074927a9035e1bc0a6445
2009-09-28 19:56:43 -07:00
Mike Lockwood
733fdf34b6 Disable keyguard while docked when the lock screen is insecure.
Change-Id: If6e11bb49a2cbbe904517e6037d1e8b99fe2717c
Signed-off-by: Mike Lockwood <lockwood@android.com>
2009-09-28 19:21:07 -04:00
Dianne Hackborn
6af0d50a8e Fix issue #2149145: Safe Mode does not work on Sholes device
The APIs for checking whether keys are held down now also look
at virtual keys.

However it turns out there is less than a second between the time we
start the input thread and check for safe mode, so there is not enough
time to actually open all of the devices and get the data from them
about the finger being down to determine if a virtual key is down.

So now you can also hold DPAD center, trackball center, or s to
enter safe mode.  Also give some vibrator feedback.

Change-Id: I55edce63bc0c375813bd3751766b8070beeb0153
2009-09-28 13:40:45 -07:00
Dianne Hackborn
7433e8aebd Fix issue #2148939: Sholes slow to wake up in landscape mode
This was introduced when I did the fading of the lock screen,
which relies on setting the policy visibility of the windows behind
it to be hidden.  As a result, when the orientation changed or
the activity was restarted, they wouldn't be resized or reported
as drawn, and the activity manager would wait until its timeout
before unfreezing the screen.

We now have a new method on WindowState to find out if a window
has drawn itself, which is used in the appropriate places.

Change-Id: If05f8b1947d3029917f62ad0f89b43544bd0a4dc
2009-09-27 13:21:20 -07:00
Dianne Hackborn
8b571a817c Fix Activity.overridePendingTransition().
Change-Id: I4ce995bd58efbbedbe4d0d1e9e0d0f4a8e261843
2009-09-25 16:09:43 -07:00
Dianne Hackborn
3b3e145d3c A variety of work on animations.
- The lock screen now fades in and out.
- Fixed a bug where we would accidentally freeze the screen when switching
  to an activity with a different orientation than the current (but
  the screen itself is in the current orientation).  This would mess up
  the animations on the car dock.
- New API to force a particular animation for an activity transition
  (untested).
- New wallpaper animations.
- Resources now uses the next API version when in a development build,
  to help applications being developed against such builds.

Change-Id: I2d9998f8400967ff09a04d693dc4ce55f0dbef5b
2009-09-25 00:48:02 -07:00
Dianne Hackborn
ffa424800d Fix issue #2133206: dialogs/menus should auto-dismiss when screen turns off
Lot of infrastructure for more things to go away when "clear system dialogs"
happens, and now do this when we turn on the lock screen.

Change-Id: I567130296fe47ce82df065ed58ef21b37416ceaf
2009-09-23 23:17:07 -07:00
Dianne Hackborn
5baba16989 Newer animations.
Change-Id: I1bb8e52f91dc60a6ec9496e2c66623bc8080b95d
2009-09-23 17:03:41 -07:00
Dianne Hackborn
9bfb707597 Various fixes and improvements to window, activity.
- New meta-data you can add to a dock activity to have it launched by the
  home key when the device is in that dock.

- Fix a deadlock involving ActivityThread's internal content provider lock.

- New window flag to have a non-secure keyguard entirely dismissed when a
  window is displayed.

- New WindowManagerPolicy APIs to allow the policy to tell the system when
  a change it makes during layout may cause the wall paper or
  overall configuration to change.

- Fix a bug where an application token removed while one of its windows is
  animating could cause the animating window to get stuck on screen.

Change-Id: I6d33fd39edd796bb9bdfd9dd7e077b84ca62ea08
2009-09-22 13:39:34 -07:00