Commit Graph

3891 Commits

Author SHA1 Message Date
Jeff Brown
d9f98c8106 Fix build break due to merge.
Change-Id: I08c39690ee9de825ff51afc7d102ee622af6ba13
2013-02-11 11:34:43 -08:00
Jeff Brown
110fe9b303 am fe1f3a1b: Merge "Fix ViewRootImpl to find missing focus using D-pad."
# By Ki-Hwan Lee
# Via Gerrit Code Review (1) and Ki-Hwan Lee (1)
* commit 'fe1f3a1beff9f73f6a04bcc35239038a21bc38ff':
  Fix ViewRootImpl to find missing focus using D-pad.
2013-02-08 15:49:46 -08:00
Jeff Brown
fe1f3a1bef Merge "Fix ViewRootImpl to find missing focus using D-pad." 2013-02-08 23:29:11 +00:00
Jeffrey Brown
edc933318c am a0d547b4: am dac4a90d: Merge "fix hover events consume issue"
# By Masanori Ogino
# Via Android Git Automerger (1) and others
* commit 'a0d547b43b3508c7253da234f529acf60d00fd13':
  fix hover events consume issue
2013-02-06 20:53:21 -08:00
Jeffrey Brown
a0d547b43b am dac4a90d: Merge "fix hover events consume issue"
# By Masanori Ogino
# Via Gerrit Code Review (1) and Masanori Ogino (1)
* commit 'dac4a90d656dca86bd14cd91d685c07d8a6b29a4':
  fix hover events consume issue
2013-02-06 20:50:13 -08:00
Jeffrey Brown
dac4a90d65 Merge "fix hover events consume issue" 2013-02-07 04:40:30 +00:00
Ki-Hwan Lee
4ef158baa3 Fix ViewRootImpl to find missing focus using D-pad.
By using D-pad, no-focus in non touch mode is rare but legal in a case like below.

1. The first request to get focus for a new activity is handled in the first
   performTraversals() call when activity is not ready for a complete view hierarchy.
   So there might be no focusable yet.
2. If the activity has some menus, ActionMenuView can be attached to the view hierarchy
   in the PhoneWindow.preparePanel() soon.
   So there can be focusables but still not focused.

Fixed ViewRootImpl.deliverKeyEventPostIme() to handle this case to resurrect a focus
if there are focusables.

How to reproduce:
(1) Open "API Demos" application -> Views -> Search View
(2) Select "Action Bar" item using the D-pad
(3) Try to focus the Search View, using the D-pad.

Change-Id: Ic379774f0307f168f0ed775d0f6a9078ac5c9713
2013-02-07 13:26:14 +09:00
Dake Gu
bfb64e85e6 am 96111ddf: Merge "SimulatdDpad: fix NPE for event without device" into jb-mr1-aah-dev
# Via Android (Google) Code Review (1) and Dake Gu (1)
* commit '96111ddff7af61ce37fa8d9020d8e1eeba9095e8':
  SimulatdDpad: fix NPE for event without device
2013-02-06 15:01:17 -08:00
Craig Mautner
246a283c00 am fd5a0b36: Merge "Fix unexpected rotation change when re-enabling auto-rotate"
# By Sangkyu Lee
# Via Gerrit Code Review (1) and Sungmin Choi (1)
* commit 'fd5a0b3681499cbee0d1156b3b6f93fc91320848':
  Fix unexpected rotation change when re-enabling auto-rotate
2013-02-05 14:24:10 -08:00
Dake Gu
9f811fd447 SimulatdDpad: fix NPE for event without device
Fix a rare case that We lost device(due to network issue)
and SimulatedDpad received the MotionEvent without device.

b/8121964

Change-Id: Ie2948e6ff14a84422b05dda8ea87a3571f26f252
2013-02-01 16:31:42 -08:00
Masanori Ogino
f449c0c381 fix hover events consume issue
View#onHoverEvent() would always consume hover events over the view
if an application window has the clickable view/widget on it.
That's happened even if accessibility/talkback is disabled.
So those events will not dispatch to activity#onGenericMotionEvent().

The onHoverEvent method should return a real consumed state.

Change-Id: I9cac13b82866e5cdda0b03befb0de752a0a2e741
2013-01-22 18:10:52 +09:00
Dake Gu
85a06152ce am fe88f1be: Merge "Fix bug of SimulatedTrackball" into jb-mr1-aah-dev
* commit 'fe88f1be3d197987a874f6c29fefdeb11db183f6':
  Fix bug of SimulatedTrackball
2013-01-18 13:26:02 -08:00
Dake Gu
f8739b992f Fix bug of SimulatedTrackball
Simulated trackball should not generate KeyEvent if dispatchGenericMotionEvent
returns true

b/8022205

Change-Id: I1857e25407c508c98ef4db85fe146b1e25a0803e
2013-01-17 18:15:44 -08:00
Jeff Brown
31ea5707fa am 9afb2e1a: Optimize focused input event dispatch in view root. DO NOT MERGE
* commit '9afb2e1a95b92d5dfb0612bbb606a09aa528ee5d':
  Optimize focused input event dispatch in view root. DO NOT MERGE
2013-01-14 17:26:22 -08:00
Jeff Brown
9afb2e1a95 Optimize focused input event dispatch in view root. DO NOT MERGE
The efficiency of key, trackball and generic motion event
dispatch is greatly influenced by the IME dispatch cycle.
This change simplifies the dispatch of focused input events
and avoids causing event processing to be requeued on the
handler and delayed unnecessarily.

Bug: 7984576
Change-Id: Id82624a3f32c05efe6ee5c322bd55bf2ab21525d
2013-01-14 15:55:35 -08:00
Dianne Hackborn
9e6575bc52 am 854458f4: am 0287ca3c: am e62fa825: Merge from master: fix issue #7966357: Super lights out mode vs. volume dialog
* commit '854458f4d52937f9a1385559d759bd8019eb3294':
  Merge from master: fix issue #7966357: Super lights out mode vs. volume dialog
2013-01-09 19:01:26 -08:00
Dianne Hackborn
854458f4d5 am 0287ca3c: am e62fa825: Merge from master: fix issue #7966357: Super lights out mode vs. volume dialog
* commit '0287ca3ca36ad98004ddabfa189105e6324a820e':
  Merge from master: fix issue #7966357: Super lights out mode vs. volume dialog
2013-01-09 19:00:06 -08:00
Dianne Hackborn
e62fa82579 Merge from master: fix issue #7966357: Super lights out mode vs. volume dialog
The volume panel now forces us out of the UI modes while it
is up.

Change-Id: If39fa33b1c52579bf5d376ce4722408cee3ca951
2013-01-09 18:51:51 -08:00
Sangkyu Lee
15a3380dba Fix unexpected rotation change when re-enabling auto-rotate
getProposedRotation() method returns old value when re-enabling
auto-rotate option. So you can see unexpected rotation change
with the following steps.

settings -> display -> enable auto-rotate
-> rotate device to landscape -> disable auto-rotate
-> rotate device to portrait -> enable auto-rotate

This patch makes mSensorEventListener reset before it is registered again.

Bug: 7964531

Change-Id: I6a8d287bbd9809ef31de67c54efb885e9a4fd76f
Signed-off-by: Sangkyu Lee <sk82.lee@lge.com>
2013-01-09 12:00:29 +09:00
Justin Koh
a90c92a1c9 am 86903699: Merge "Start RecognitionActivity with an upswipe gesture." into jb-mr1-aah-dev
* commit '86903699692a0b3229062da2995d829629e64e7b':
  Start RecognitionActivity with an upswipe gesture.
2012-12-19 11:46:34 -08:00
Justin Koh
8690369969 Merge "Start RecognitionActivity with an upswipe gesture." into jb-mr1-aah-dev 2012-12-19 11:42:26 -08:00
Ben Pietrzak
05cb363bf3 Start RecognitionActivity with an upswipe gesture.
Change-Id: I7dd91bef3eb551bb7617307cc9a4777226b5ded7
2012-12-18 11:12:47 -08:00
Robert Ly
bfb69176db am d4f4d14a: am 5042b051: am e7c3fba7: Merge "change onEnd() to withEndAction() in javadocs" into jb-mr1-dev
* commit 'd4f4d14a91492384c4553b82be27b5f135a41227':
  change onEnd() to withEndAction() in javadocs
2012-12-17 15:39:34 -08:00
Robert Ly
d4f4d14a91 am 5042b051: am e7c3fba7: Merge "change onEnd() to withEndAction() in javadocs" into jb-mr1-dev
* commit '5042b051b395f36d3c582202e9e78758934b79a6':
  change onEnd() to withEndAction() in javadocs
2012-12-17 15:37:21 -08:00
Robert Ly
5042b051b3 am e7c3fba7: Merge "change onEnd() to withEndAction() in javadocs" into jb-mr1-dev
* commit 'e7c3fba7929a1cb73bbe6ca84a5140febc09a62a':
  change onEnd() to withEndAction() in javadocs
2012-12-17 15:35:26 -08:00
Robert Ly
8ee2a70f08 change onEnd() to withEndAction() in javadocs
Change-Id: Ic9a04bf86d62249b47dc654052d58797dfc3990c
2012-12-17 15:00:08 -08:00
Mita Yun
ebcbfb3fc7 am a98cd512: Merge "Use asynchronous messages for input method events." into jb-mr1-aah-dev
* commit 'a98cd5122be643a51f563d02069e8f9409d44394':
  Use asynchronous messages for input method events.
2012-12-10 15:35:05 -08:00
Mita Yun
a98cd5122b Merge "Use asynchronous messages for input method events." into jb-mr1-aah-dev 2012-12-10 14:37:38 -08:00
Sascha Prueter
961ce2afbf am 2588648b: am 203f69f0: Merge "Call setSize to sync Surface to SurfaceFlinger. DO NOT MERGE" into jb-mr1.1-dev
* commit '2588648b5268526bdc9ed7fb4e9eac36c8c693dc':
  Call setSize to sync Surface to SurfaceFlinger. DO NOT MERGE
2012-12-07 12:40:32 -08:00
Sascha Prueter
2588648b52 am 203f69f0: Merge "Call setSize to sync Surface to SurfaceFlinger. DO NOT MERGE" into jb-mr1.1-dev
* commit '203f69f0998d982205b1c9f550576024654e6bc3':
  Call setSize to sync Surface to SurfaceFlinger. DO NOT MERGE
2012-12-07 12:38:15 -08:00
Craig Mautner
4abf3f987f Call setSize to sync Surface to SurfaceFlinger. DO NOT MERGE
RecentsActivity screenshots are called for very quickly after
WindowStateAnimator prepareSurface(). Without enough delay the
Surface.setLayer call does not propagate to the SurfaceFlinger
and the screenshot is incorrect (black) because it stops sampling
the layers too early.

This fix calls Surface.setSize() for each sampled Surface in
screenshots. setSize forces the SurfaceFlinger to process all
transactions queued before returning from closeTransaction.

Bug 7552304 fixed.

Change-Id: I1911dfa0b09cab713c55f5ba0c612496337a77df

Conflicts:

	services/java/com/android/server/wm/WindowManagerService.java
2012-12-07 11:21:35 -08:00
Chris Craik
a98776723f am 780a53df: am 07efb030: Merge "Defer process mode upon draw" into jb-mr1.1-dev
* commit '780a53dfb5176165286ff4f1483b408e28ad6eb7':
  Defer process mode upon draw
2012-12-06 18:58:20 -08:00
Mita Yun
ed218c706d Use asynchronous messages for input method events.
Improves the throughput of IME event handling by ensuring that
input events do not get serialized behind UI traversal and
drawing messages such as when the UI is animating.

Added support for creating an asynchronous Handler as part of a
HandlerCaller.  It turns out we should be using an asynchronous
Handler not only in IME dispatch but also in accessibility and
wallpaper events where HandlerCaller is used.  So fixed those
services to also use an asynchronous Handler.

Change-Id: I0b19140c9d5ca6ee300c1a150c48312fd55ed8eb
2012-12-06 18:11:32 -08:00
Chris Craik
780a53dfb5 am 07efb030: Merge "Defer process mode upon draw" into jb-mr1.1-dev
* commit '07efb0303ff031512b7c38c6e7e9c2fcdb5849c0':
  Defer process mode upon draw
2012-12-05 12:25:13 -08:00
Chris Craik
07efb0303f Merge "Defer process mode upon draw" into jb-mr1.1-dev 2012-12-05 12:22:41 -08:00
Jeff Brown
1edc61119d am 61e21940: am 7fcb5dc5: Merge "Pin electron beam surface to natural orientation." into jb-mr1.1-dev
* commit '61e21940ffd643dad1aa6c7c3dc9933815aecd74':
  Pin electron beam surface to natural orientation.
2012-12-04 17:21:00 -08:00
Jeff Brown
61e21940ff am 7fcb5dc5: Merge "Pin electron beam surface to natural orientation." into jb-mr1.1-dev
* commit '7fcb5dc5e9fbad0f183f425e88e576aaca98b0d7':
  Pin electron beam surface to natural orientation.
2012-12-04 17:18:52 -08:00
Chris Craik
9efa222b34 Defer process mode upon draw
Process mode functor execution can be expensive, and cause dropped frames if it
runs between two expensive frames (when there isn't cpu time to spare). Avoid
this by delaying the process mode by an additional 4 ms every time we hit a draw

bug:7670326
Change-Id: I27f42458d4a815183a4b24c7748e05bc361fb943
2012-12-04 15:45:41 -08:00
Jeff Brown
7f3994ec2a Pin electron beam surface to natural orientation.
If a rotation occurred while the electron beam surface was showing,
the surface may have appeared in the wrong orientation.  We fix this
problem by adjusting the transformation matrix of the electron beam
surface according to the display orientation whenever a display
transaction occurs.

The rotation itself is allowed to proceed but it is not visible
to the user.  We must let this happen so that the lock screen
is correctly oriented when the screen is turned back on.

Note that the electron beam surface serves two purposes.

First, it is used to play the screen off animation.
When the animation is finished, the surface remains visible but is
solid black.  Then we turn the screen off.

Second, when we turn the screen back on we leave the electron beam
surface showing until the window manager is ready to show the
new content.  This prevents the user from seeing a flash of the
old content while the screen is being turned on.  When everything is
ready, we dismiss the electron beam.

It's important for the electron beam to remain visible for
the entire duration from just before the screen is turned off until
after the screen is turned on and is ready to be seen.  This is
why we cannot fix the bug by deferring rotation or otherwise
getting in the way of the window manager doing what it needs
to do to get the screen ready when the screen is turned on again.

Bug: 7479740
Change-Id: I2fcf35114ad9b2e00fdfc67793be6df62c8dc4c3
2012-12-04 14:40:23 -08:00
Dianne Hackborn
f9ae5f75af am 23307cbb: am e0a676a3: Merge "Fix issue #7649590: Background windows sometimes not being hidden for secondary users" into jb-mr1.1-dev
* commit '23307cbb6b432b658b0fd7437dacfedd6298af94':
  Fix issue #7649590: Background windows sometimes not being hidden for secondary users
2012-12-03 16:08:35 -08:00
Dianne Hackborn
23307cbb6b am e0a676a3: Merge "Fix issue #7649590: Background windows sometimes not being hidden for secondary users" into jb-mr1.1-dev
* commit 'e0a676a3bb0e7b9aced9359a021e4c5d2ffef752':
  Fix issue #7649590: Background windows sometimes not being hidden for secondary users
2012-12-03 15:54:34 -08:00
Dianne Hackborn
bb4ca5271a Fix issue #7649590: Background windows sometimes not being hidden for secondary users
There are two things going on here:

(1) In secondary users, some times theme information such as whether
the window is full screen opaque was not being retrieved, so the window
manager didn't know that it could hide the windows behind the app.
This would just be a performance problem, except that:

(2) There appear to be a number of applications that declare that they
are full screen opaque, when in fact they are not.  Instead they are
using window surfaces with an alpha channel, and setting some pixels
in their window to a non-opaque alpha level.  This will allow you to
see whatever is behind the app.  If the system happens to completely
remove the windows behind the app, and somebody is filling the frame
buffer with black, then you will see what the app intends -- those
parts of its UI blended with black.  If one of those cases doesn't
hold (and though we have never guaranteed they would, in practice this
is generally what happens), then you will see something else.

At any rate, if nothing else than for performance reasons, we need to
fix issue #1.

It turns out what is happening here is that the AttributeCache used
by the activity manager and window manager to retreive theme and other
information about applications has not yet been updated for multi-user.

One of the things we retrieve from this is the theme information telling
the window manager whether an application's window should be treated
as full screen opaque, allowing it to hide any windows behind it.  In
the current implementation, the AttributeCache always retrieves this
information about the application as the primary user (user 0).

So, if you have an application that is installed on a secondary user but
not installed on the primary user, when the AttributeCache tries to retrieve
the requested information for it, then from the perspective of the primary user
it considers the application not installed, and is not able to retrieve that
info.

The change here makes AttributeCache multi-user aware, keeping all of its
data separately per-user, and requiring that callers now provide the user
they want to retrieve information for.  Activity manager and window manager
are updated to be able to pass in the user when needed.  This required some
fiddling of the window manager to have that information available -- in
particular it needs to be associated with the AppWindowToken.

Change-Id: I4b50b4b3a41bab9d4689e61f3584778e451343c8
2012-12-03 14:09:06 -08:00
Fabrice Di Meglio
8794c80dd7 am a9854ce9: am ce463847: Merge "Fix bug #7651552 resetRtlProperties() is called way too often" into jb-mr1.1-dev
* commit 'a9854ce9dfac086533e9d49ac75076bcc579303b':
  Fix bug #7651552 resetRtlProperties() is called way too often
2012-11-30 16:46:00 -08:00
Fabrice Di Meglio
a9854ce9df am ce463847: Merge "Fix bug #7651552 resetRtlProperties() is called way too often" into jb-mr1.1-dev
* commit 'ce463847db68afbb796377c6a55209e102774f8c':
  Fix bug #7651552 resetRtlProperties() is called way too often
2012-11-30 16:41:12 -08:00
Fabrice Di Meglio
ce463847db Merge "Fix bug #7651552 resetRtlProperties() is called way too often" into jb-mr1.1-dev 2012-11-30 16:37:17 -08:00
Fabrice Di Meglio
cb5f9db47a Fix bug #7651552 resetRtlProperties() is called way too often
- remove unnecessary calls to resetRtlProperties().
- now reset of RTL properties will only be done when adding a View
(and no more when removing it)

Change-Id: I0d42128c9f7df6085fb92bb5af5c9bd4d1ba88a3
2012-11-30 15:32:56 -08:00
Svetoslav Ganov
d902dbb2ea am ed734d98: am 0e7adaff: am 438a3b35: Merge "Cannot move edit text cursor to first position using character granularity." into jb-mr1-dev
* commit 'ed734d98d014945cf28aa5e49ba1fd2ff5c82c01':
  Cannot move edit text cursor to first position using character granularity.
2012-11-30 13:21:53 -08:00
Svetoslav Ganov
ed734d98d0 am 0e7adaff: am 438a3b35: Merge "Cannot move edit text cursor to first position using character granularity." into jb-mr1-dev
* commit '0e7adaff99778c596bfd3f4c1e42710592c472a2':
  Cannot move edit text cursor to first position using character granularity.
2012-11-30 13:17:08 -08:00
Svetoslav Ganov
0e7adaff99 am 438a3b35: Merge "Cannot move edit text cursor to first position using character granularity." into jb-mr1-dev
* commit '438a3b35f7a6184a19919de90f733be82e21a84c':
  Cannot move edit text cursor to first position using character granularity.
2012-11-30 12:40:37 -08:00
Adam Powell
8912a72cb2 am 46263369: am 66cedab6: Merge "Fix time-related ScaleGestureDetector methods" into jb-mr1.1-dev
* commit '462633695774a3cfd84b5c729266d039ec686a64':
  Fix time-related ScaleGestureDetector methods
2012-11-29 14:27:01 -08:00