Commit Graph

393 Commits

Author SHA1 Message Date
Dianne Hackborn
432ab6ac04 am 6b497a04: am 4b7c1cac: am bb2e1ef8: Merge "Fixing possible race condition."
* commit '6b497a0446ebad24305d5e29d5fd5e65014b9778':
  Fixing possible race condition.
2011-02-07 08:02:00 -08:00
Dianne Hackborn
4b7c1cacca am bb2e1ef8: Merge "Fixing possible race condition."
* commit 'bb2e1ef87fe4c5123340035766c759155e6bb90c':
  Fixing possible race condition.
2011-02-07 07:33:38 -08:00
Dianne Hackborn
3e4f9d0452 Fix issue #3414328: A couple panics observed during an attempted...
...pairing to IHF1700 - IKXEVEREST-3627

Change-Id: I3d5b42d65a03ed19b8460c607ff5de862bccb4e6
2011-02-04 14:05:55 -08:00
Dianne Hackborn
ac1471a4ff Fix issue #3420898: More wallpaper issues
- The ImageWallpaper wasn't watching for the desired dimensions to
  change, at which point it needs to resize its surface.
- The system process has been running with the small dalvik heap
  limit, which is too tight with these huge wallpapers; this would
  cause switching wallpapers to eventually stop working as it
  couldn't get the memory it needed to load the new one.
- The compatibility mode background surface had a bunch of issues,
  such as moving its windows to the right by the window size to
  make them disappear.  This of course doesn't play well with the
  now super-sized wallpaper surface.  This code is re-worked to
  not require such shenanigans.

Change-Id: I64fde4059645d8507f1c4761ba6c17b89877a5c0
2011-02-03 16:54:24 -08:00
Dianne Hackborn
50660e2728 Fix issue #3418265: Rotation animation on wallpaper is broken
Two problems:

1. The wallpaper offsets were being applied at the wrong place in the xform.
2. The background black needs become a clip around the newly revealed UI.

Change-Id: I3b46aea2ace3c8c5a36fc5e37b4e2b67fff1b289
2011-02-02 18:32:27 -08:00
Dianne Hackborn
dd962ee163 Fix issue #3415137: New wallpaper size breaks thumbnails.
Change-Id: I3ce4fa8f532cc378c390138bab0ff3126fe0f0c3
2011-02-02 11:29:41 -08:00
Jozef BABJAK
06e57b5d46 Fixing possible race condition.
That return statement is effectively a reading of asynchronously modified
field. The reading and writing is elsewhere protected by locking on thread
instance, except this one occurence. Moving 'return' statement into
synchronized block ensures that it reads updated value.

Don't be afraid of deadlock - wait() releases the lock and acquires it
back when notified.

Change-Id: I940c24c04a1a2d4508d14d11b6174ff4fb2ab7d5
2011-02-01 08:53:52 +01:00
Jeff Brown
597eec8c3d Fix keyboard hidden flag.
Configuration.hardKeyboardHidden should be set to
HARDKEYBOARDHIDDEN_YES when no keyboard is present or when it is
disabled.  The code in PhoneWindowManager.adjustConfigurationLw
does the right thing.  It also takes care of setting keyboardHidden
correctly when only a soft keyboard is available.

So it turns out that all we need to do to disable the hard keyboard
is to set Configuration.keyboard to KEYBOARD_NOKEYS *before* asking
the policy to adjust the configuration.

Bug: 3406101
Change-Id: I3519d02af30d8068198cb3d6b8fdde601c2fe8b4
2011-01-31 17:12:25 -08:00
Joe Onorato
ac0ee89bd9 Check for the STATUS_BAR permission for the system UI properties.
If the app doesn't have that permission, just mask out the bits.
Also makes the systemUiVisibility field visible in hierarchyviewer.

Change-Id: Ic3d3a3aed96b5c6448832755b4b2e6175117e5be
2011-01-30 15:38:30 -08:00
Jeff Brown
3c89f6d1bd Merge "Add "Use physical keyboard" option to system bar IME button." into honeycomb 2011-01-30 12:07:49 -08:00
Dianne Hackborn
e97a12e340 Fix screen size compatibility mode.
Change-Id: I2c06bbb586b4e54fc7ec52ec914cf95a18006217
2011-01-30 10:31:30 -08:00
Dianne Hackborn
71bb59f9e6 am c12cdda9: Merge "DO NOT MERGE: Fix screen size compatibility mode." into gingerbread
* commit 'c12cdda949e6b916dd9e6fa4b30ab8b0d1898faa':
  DO NOT MERGE: Fix screen size compatibility mode.
2011-01-29 22:30:57 -08:00
Dianne Hackborn
726318b56a DO NOT MERGE: Fix screen size compatibility mode.
Cherry-picked from HC.

Change-Id: Icce2a64f187a56deefcddc3d9b22fa94effce431
2011-01-29 18:02:18 -08:00
Jeff Brown
2992ea782f Add "Use physical keyboard" option to system bar IME button.
Bug: 3391067
Change-Id: I136087ca4f726d0068d5983d7d3686787ba60c55
2011-01-28 22:06:36 -08:00
Dianne Hackborn
420829ef78 Fix issue #3291173: Problem report for NewsRoom - RSS News Reader
The framework had started using the LayoutInflator's factory
for itself, which breaks apps that want to use it.  Add a hack for
the framework to insert its own private factory.

Also fix a deadlock in the system process.

Change-Id: Iaf80186a5d7e4029faf89e968e184abdaabe514a
2011-01-28 12:21:54 -08:00
Dianne Hackborn
e75d87266b Fix issue #3392073: At times soft keyboard comes up in...
...gallery while attaching picture to gmail message

In various places we could block switching the IME target incorrectly.

Change-Id: I7e647fb35f4ea6f2e39eb7efd911420ea9ee64fa
2011-01-27 21:56:33 -08:00
Dianne Hackborn
428ecb65b5 Fix another part of #3387855: Menu flashes on left side of screen
When task switching while dialog windows were up, the exit animation
wouldn't be seen.  The animation needs to force Z-order its windows
to the top.

Also fix a bug where the lock screen fade-out was immediately
Z-ordering the wallpaper to the bottom if the activity behind was
not on top of the wallpaper.

Change-Id: Icd45cd8ccfff9829822c1682931413246eb9601b
2011-01-26 16:26:48 -08:00
Jeff Brown
2e44b0788f Fix regression setting input windows.
Change-Id: I24d58a02f69ae40f03b133d487354a883585e93e
2011-01-24 16:44:18 -08:00
Joe Onorato
4c541b1303 Merge "visibility ("lights out") API." into honeycomb 2011-01-23 19:26:13 -08:00
Joe Onorato
664644d9e0 visibility ("lights out") API.
1. Views may setSystemUiVisibility() to recommend that
the system chrome (status bar or other UI) show or hide
itself.  (This functionality was previously available only
via the FLAG_FULLSCREEN window flag for some SystemUI
implementations.)

2. Views may register a OnSystemUiVisibilityChangedListener
on a view, and find out when the system UI actually
appears or disappears, allowing apps to coordinate the
appearance of their own UI if desired.

Bug: 3241144
Change-Id: Ia1758d94099182d49a1e3688ea2738ae4995b829
2011-01-23 19:22:52 -08:00
Dianne Hackborn
89ba6750e5 Fix issue #3215261: NPE in WiFi Settings
And also fix #3343369: EGL_BAD_DISPLAY and/or broadcast intent
TIME_SET before boot completion

And a few more tweaks to animations to keep the wallpaper displayed
when needed.

And make more use of the drag and drop "rotation disabled" thing to
also use it while animating the screen rotation, since if we try to
start a new rotation while doing the animation we end up with a mess.

Change-Id: I373af305a6e23a92835abed96229a83e173f67ce
2011-01-23 17:35:08 -08:00
Jeff Brown
c9ce1f24df Merge "Fix spurious resizes during rotation animation." into honeycomb 2011-01-23 13:39:10 -08:00
Jeff Brown
fbae722d2a Fix spurious resizes during rotation animation.
Fixed a bug in WindowManagerService where it would set mSurfaceResized
to true even if the surface was just moved and not resized.  As a result,
we would send dozens of spurious resize messages to all applications
during orientation changes since the rotation animation changes the
positions of surfaces as they swing into place.  Among other things,
the spurious resizes caused the wallpaper to be redrawn dozens of time.

Change-Id: I2be7278c0d6a00aaef665a65e268d8da1771e51f
2011-01-23 13:07:25 -08:00
Dianne Hackborn
ff801ec713 Fix issue #3302006: Cannot see the dialog lunched from a transparent activity.
The activity manager was not performing the layout pass on the new window,
because its app token was still hidden, because the activity manager / window
manager were still waiting for it to be ready to show.

Just ignore whether the app token is hidden for this case.

Also fixes some problems with animations, and tweaks the ViewConfiguration
values for xlarge screens.

Change-Id: Icbe9c77ba8127d1e02df2d6f27b8e86ec842e50a
2011-01-22 18:13:13 -08:00
Jeff Brown
cab114906d Merge "Reduce number of calls to updateInputWindows by 60%." into honeycomb 2011-01-21 15:29:39 -08:00
Jeff Brown
3a22cd90bc Reduce number of calls to updateInputWindows by 60%.
Change-Id: Ida9069dd58be2070f3c9d312aa9d868bd98eb8e2
2011-01-21 14:09:43 -08:00
Christopher Tate
a159579778 Make the drag input window fullscreen touchable again
Having it non-touchable was making it possible to e.g.
touch buttons and launch new activities out from under
an in-flight drag operation.

Bug 3370698

Change-Id: I46fe70a8fe8fbaa5cca48f6bb478ed7ded1f1cc3
2011-01-19 17:26:50 -08:00
Christopher Tate
f01af7551b Fail more gracefully when window state changes during drags
In particular, if a new window was created out from under the drag,
the drag-move event dispatch logic would wind up blithly assuming
that it would find a valid touch-dispatchable window under the
finger.  When this was untrue, it would NPE, but the NPE was caught
and discarded safely by higher-level guard code.

With this change, we now avoid the NPE entirely and report the
spurious condition as part of the debugging log stream.

(Also add the local-state object to DragEvent.toString()'s output.)

Change-Id: Idfa5f45d049e48415ee59c8b0ffb5b0ed4098ce3
2011-01-19 16:25:22 -08:00
Christopher Tate
1fc014fd00 Fix a couple of drag & drop crashes
1. ViewGroups being removed from the layout during a drag would wind up
crashing the app with an NPE at drag-ended time, due to blind dereference
of now-cleared object pointers.

2. Passing a 'null' ClipData to startDrag() would crash the system
process with an NPE.  Should this even be valid?  I'm inclined to say
yes, though it means that apps will need to guard against it.

Fixes bug 3369542

Change-Id: I168fc1284d6fd4403999946609725414cf254df0
2011-01-19 13:02:24 -08:00
Dianne Hackborn
08121bca5b Fix issue #3362666 Activities launched from ongoing notifications don't animate
The phone-oriented code for turning off animations when the screen is entirely
covered by the status bar was not appropriate for the tablet.

Change-Id: Ica3e0db989f16b9187eacd6ecf4ac3d17661dd6d
2011-01-18 11:08:40 -08:00
Jeff Brown
fbf0977321 Support non-rectangular input regions.
This enables the system bar to carve out a region through which
events will be sent to the IME behind it.

Bug: 3238092
Change-Id: I69b855a8d9b5b3ee525266c0861826e53e5b5028
2011-01-16 18:58:49 -08:00
Jeff Brown
c8276990df Merge "Add volume down as a safe mode key for Stingray." into honeycomb 2011-01-14 17:22:53 -08:00
Jeff Brown
b09abc1dd2 Add volume down as a safe mode key for Stingray.
Fixed a race condition during startup.  We need to wait for the input
devices to actually be ready before trying to detect safe mode.

Fixed a problem during safe mode activation where we would try to add
the overlay window but the display was not initialized.  Now we do it
after the system is ready.

Bug: 3134825
Change-Id: I4c043c142ae6bf0d865c79d266d36154eaf00709
2011-01-13 21:18:16 -08:00
Dianne Hackborn
8454370513 Merge "Fix issue #3330037: Unnecessary orientations appear..." into honeycomb 2011-01-13 21:14:12 -08:00
Dianne Hackborn
94cb2ebfc3 Fix issue #3330037: Unnecessary orientations appear...
...when the device's physical orientation is portrait.

We now hold off on computing app token orientation while preparing
to open or close app tokens.

Also clean up a few other little issues.

Change-Id: Iae125a975c7706fb4d068c872fd172e69854ff15
2011-01-13 21:11:09 -08:00
Jeff Brown
00ae87d4fd Fix NPE in interceptKeyBeforeDispatching.
Bug: 3349786
Change-Id: Ic2f969ff8a654fdcfeca06199acca531ae5596d3
2011-01-13 19:58:24 -08:00
Dianne Hackborn
8eca7a1e11 Merge "Fix issue #3153930: orphan window left on screen" into honeycomb 2011-01-13 15:45:37 -08:00
Dianne Hackborn
f99f9c5f92 Fix issue #3153930: orphan window left on screen
The problem is that if a window containing children is removed
before the children are, the children may be lost.  This change
(amongst the huge amount of new debugging code) now ensures at
this point that all children windows are removed when the parent
is.

Note that this results in a bunch of error messages now as the
client app tries to continue to do things with that child window.
This is correct, it shouldn't be doing that, and needs to be
fixed to stop it.  But at least it now can't cause the window
manager to leak surfaces.

Change-Id: I7b80dd89ff9de7cb5af1dc759cfa4b31ac29cddc
2011-01-13 14:24:16 -08:00
Christopher Tate
6458202abe Merge "Suppress orientation changes during drag operations" into honeycomb 2011-01-13 14:20:48 -08:00
Christopher Tate
994ef9296a Turn off debugging logspam for release
Fixes bug 2679101

Change-Id: I94cf1b1d0b732b2030008118eff3534f0e0608f7
2011-01-12 20:06:07 -08:00
Christopher Tate
ccd24de8a9 Suppress orientation changes during drag operations
Fixes bug 3322455

Change-Id: I21d4dbc3aaf6c8ba7afcb73a823d6443c61a4d1b
2011-01-12 17:52:31 -08:00
Dianne Hackborn
2e7ffa54c1 Fix issue #3344089: runtime restart due to java.lang.StackOverflowError...
...in WindowManager after app force closed a few times

Change-Id: I9d5ff16b01d14030150ba0904a47635f9c7a158f
2011-01-12 13:21:28 -08:00
Christopher Tate
02d2b3ba9b API CHANGE: startDrag() now takes "int flags" instead of "boolean localOnly"
There will be, in the future, a flag (View.DRAG_FLAG_GLOBAL) that means
for the drag to be cross-application.  For now that flag constant is @hide
and furthermore the server-side implementation strips it, enforcing
local-only drags.

Change-Id: I8db840480ab90e18a5b8ecf29d62b4e6eafd405e
2011-01-11 18:30:23 -08:00
Jeff Brown
928e054931 Prevent events from getting backlogged.
This change implements two heuristics.

1. When events are older than 10 seconds, they are dropped.

2. If the application is currently busy processing an event and
   the user touches a window belonging to a different application
   then we drop the currently queued events so the other application
   can start processing the gesture immediately.

Note that the system takes care of synthesizing cancelation events
automatically for any events that it drops.

Added some new handle types to allow the native dispatcher to
indirectly refer to the WindowManager's window state and app window
token.  This was done to enable the dispatcher to identify the
application to which each window belongs but it also eliminates
some lookup tables and linear searches through the window list
on each key press.

Bug: 3224911
Change-Id: I9dae8dfe23d195d76865f97011fe2f1d351e2940
2011-01-10 17:23:05 -08:00
Dianne Hackborn
7eab094722 Fix flicker issue in IME.
When IME is being moved as part of a window going away, it could flicker
as it immediately moves behind the window.  Fix this.

Also make the default soft input mode for PopupWindow to be to not change
the IME visibility, since it is a rare pop-up window that should cause your
IME to close.

Change-Id: I0b43e080ad012739e9a3e5842794c778c859ac1a
2011-01-01 13:32:30 -08:00
Jeff Brown
fa93584a4f am c6f2b3b3: Merge "Fix policy issues when screen is off. (DO NOT MERGE)" into gingerbread
* commit 'c6f2b3b302c06b8b7b81ec7e3a43a7df1813d0e0':
  Fix policy issues when screen is off. (DO NOT MERGE)
2010-12-23 12:43:48 -08:00
Jeff Brown
eb9f7a01b0 Fix policy issues when screen is off. (DO NOT MERGE)
Rewrote interceptKeyBeforeQueueing to make the handling more systematic.
Behavior should be identical except:
- We never pass keys to applications when the screen is off and the keyguard
  is not showing (the proximity sensor turned off the screen).
  Previously we passed all non-wake keys through in this case which
  caused a bug on Crespo where the screen would come back on if a soft key
  was held at the time of power off because the resulting key up event
  would sneak in just before the keyguard was shown.  It would then be
  passed through to the dispatcher which would poke user activity and
  wake up the screen.
- We propagate the key flags when broadcasting media keys which
  ensures that recipients can tell when the key is canceled.
- We ignore endcall or power if canceled (shouldn't happen anyways).

Changed the input dispatcher to not poke user activity for canceled
events since they are synthetic and should not wake the device.

Changed the lock screen so that it does not poke the wake lock when the
grab handle is released.  This fixes a bug where the screen would come
back on immediately if the power went off while the user was holding
one of the grab handles because the sliding tab would receive an up
event after screen turned off and release the grab handles.

Bug: 3144874
Change-Id: Iebb91e10592b4ef2de4b1dd3a2e1e4254aacb697
2010-12-22 16:00:21 -08:00
Mattias Petersson
658ecc1869 am 2f209e88: am 1622eee2: Improve performance of WindowState.toString()
* commit '2f209e885a86b8396fe1344043cf9858751fcb64':
  Improve performance of WindowState.toString()
2010-12-22 12:04:43 -08:00
Mattias Petersson
2f209e885a am 1622eee2: Improve performance of WindowState.toString()
* commit '1622eee2e48678b17a4668641957f09213f98905':
  Improve performance of WindowState.toString()
2010-12-22 11:25:32 -08:00
Mattias Petersson
1622eee2e4 Improve performance of WindowState.toString()
This fix improves the performance by caching the string that should
be returned, and reuse it next time if possible.
This will make it faster to switch between activities, approximately
half the time to create the new view when changing from landscape to
portrait. Also, the time for starting a new application is be reduced
as WindowState.toString is being called thousands of times in this
case.

Change-Id: I2b8b9bc1e251d1af43b6c85f049c01452f2573a2
2010-12-22 10:42:47 -08:00