Commit Graph

3851 Commits

Author SHA1 Message Date
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
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
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
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
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
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
a98cd5122b Merge "Use asynchronous messages for input method events." into jb-mr1-aah-dev 2012-12-10 14:37:38 -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
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
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
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
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
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
4626336957 am 66cedab6: Merge "Fix time-related ScaleGestureDetector methods" into jb-mr1.1-dev
* commit '66cedab63bf0c17e59a5815200bd9200164d89ec':
  Fix time-related ScaleGestureDetector methods
2012-11-28 19:50:46 -08:00
Adam Powell
7232b0ad67 Fix time-related ScaleGestureDetector methods
Bug 7626515

Change-Id: Ie7abf9c166284a74b4e7bcf9de25520cf08e3b2d
2012-11-28 18:29:22 -08:00
Svetoslav Ganov
02c6fca90a Cannot move edit text cursor to first position using character granularity.
Navigating over text backwards by character does not allow the cursor to get
at the beginning of the text and it stops one position before the start. Now
the cursor can get to index zero which is before the first character.

bug:7307336

Change-Id: I109b579835cc080907b20b01e0cf07811e962c6c
2012-11-26 17:52:06 -08:00
Fabrice Di Meglio
d689e8c3a0 am b0f895b3: Merge "Fix Javadoc for View layoutDirection / textDirection / textAlignment" into jb-mr1.1-dev
* commit 'b0f895b330d0d2b6725e7deee158ff20ed9155f8':
  Fix Javadoc for View layoutDirection / textDirection / textAlignment
2012-11-19 14:31:02 -08:00
Fabrice Di Meglio
7d529cd6eb Fix Javadoc for View layoutDirection / textDirection / textAlignment
Change-Id: I2fa2f02bd2f59ee93ccd56fc6bd28b93e4713cc4
2012-11-14 18:09:30 -08:00
Ben Pietrzak
ffb5bdef63 Make tap events less sensitive.
Change-Id: I4d6f70b56373fbc51a414510897854078eeb0c40
2012-11-12 10:11:52 -08:00
Jim Miller
a2bf6181df am 2c29deaa: am 6be441c5: Merge "Add mechanism to kick keyguard to show the assistant" into jb-mr1-lockscreen-dev
* commit '2c29deaa2650091d9206b8fa93f8a447ee247d52':
  Add mechanism to kick keyguard to show the assistant
2012-11-08 13:13:23 -08:00
Jim Miller
4eeb4f664a Add mechanism to kick keyguard to show the assistant
Fixes bug 7499778

Change-Id: Ic9ea514feb489feeee6716f40bdb9792842f9515
2012-11-08 00:39:04 -08:00
Justin Koh
cd38c32d85 Merge "Catch exception of nonfound activities" into jb-mr1-aah-dev 2012-11-07 17:10:24 -08:00
Ben Pietrzak
6b1d912b25 Catch exception of nonfound activities
Change-Id: Id019c71937e73c38eb7a7c0a0cccfc2b9e87d069
2012-11-07 15:07:18 -08:00
Jim Miller
c7dc250d5a am fe7e94a0: am 088fb915: Merge "Add isSafeModeEnabled() API to WindowManagerService" into jb-mr1-lockscreen-dev
* commit 'fe7e94a094746b608eb926fadc3ee1446bbb0d58':
  Add isSafeModeEnabled() API to WindowManagerService
2012-11-07 11:17:08 -08:00
Justin Koh
41048d670d Merge "Support new touchpad event protocol." into jb-mr1-aah-dev 2012-11-06 13:22:26 -08:00
Justin Koh
58e0fb9adb Merge "Trigger Google Now intent with swipe from bottom" into jb-mr1-aah-dev 2012-11-06 13:20:51 -08:00
Jim Miller
bfec0a8616 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
2012-11-05 20:27:38 -08:00
Svetoslav Ganov
c9300f1963 am 0f4d5df5: Merge "View\'s visibility to the user not checking predecessor alpha." into jb-mr1-dev
* commit '0f4d5df5d815466398dba5f2d07aa98f18c35aaa':
  View's visibility to the user not checking predecessor alpha.
2012-11-05 17:06:25 -08:00
Svetoslav Ganov
0f4d5df5d8 Merge "View's visibility to the user not checking predecessor alpha." into jb-mr1-dev 2012-11-05 17:03:37 -08:00
Baligh Uddin
19f8aa180a am 00b5ed8f: Merge commit \'b3f87c24ee86227e22b2db9b04f3d94519f230f9\' into jb-mr1-dev
* commit '00b5ed8fa9f2f38e15894519f3afeaae56e97e94': (21 commits)
  Clearing connected message in stop fixes 7401152
  bouncer: hide more text and frame less.
  Recover from badly behaving 3rd party secure cameras.
  Show bouncer mode for Slide mode in keyguard if widget isn't expanded
  Making challenge come back if within the same gesture you return to the original page (issue 7422999)
  Ensure edge swiping is enforced immediately upon showing keyguard (issue 7453156)
  Fix issue 7468224, make sure to size pages if page changes
  If a default keyguard layout isn't specified, fallback to the default layout
  Use better signal for camera launch.
  Render camera widget on a background thread.
  Fully block user interactions when transitioning to camera.
  Fixing up overscroll / hints on tablet
  Cleaning up the overscroll effect
  Updating UI to new design, widget shouldn't expand until page settles (issue 7467435)
  Making screen hints just side page outlines, as per new design (issue 7467968)
  Clean up separator string in keyguard view
  Attempt to fix MENU key issue.
  Update DevicePolicyManager documentation with new keyguard flags
  Polish user selector accessibility.
  Fix pages disappearing (issue 7456885)
  ...
2012-11-05 15:58:55 -08:00
Ben Pietrzak
ad6a9c992b Support new touchpad event protocol.
Change-Id: Ib690f7a1abd367870c8b633d77d2c18d6ada9b05
2012-11-05 13:10:14 -08:00
Svetoslav Ganov
11f19f15ea View's visibility to the user not checking predecessor alpha.
1. A view is visible to the user if is attached to a visible window,
   its visibility is VISIBLE, its alpha is not zero, all its
   predecessors have visibility VISIBLE and non zero alpha, the
   view is not fully covered by predecessors and is within the
   screen.

   The function that computes whether a view is visible for
   accessibility purposes was not taking into account the
   predecessors' alpha.

bug:7454355

Change-Id: I7609f4366da260091d68e5b25832498843fd3d0a
2012-11-02 16:39:16 -07:00
Svetoslav Ganov
f74d0c39b6 Merge "Polish user selector accessibility." into jb-mr1-lockscreen-dev 2012-11-02 15:55:11 -07:00
Svetoslav Ganov
fc9c4cd51b Polish user selector accessibility.
1. The current user was not announced as such.

2. The event for a user switch was not sent.

Change-Id: Ib3caf1f9e93ea1f0b5450246601bc37f416be6da
2012-11-02 15:32:25 -07:00
Svetoslav Ganov
5e27e55aec am 28e8f76c: Merge "Cannot click on partially visible views in touch exploration." into jb-mr1-dev
* commit '28e8f76c50b26efd657bc0740fee25ac18520f9e':
  Cannot click on partially visible views in touch exploration.
2012-11-02 11:54:36 -07:00
Ben Pietrzak
2988022306 Trigger Google Now intent with swipe from bottom
Change-Id: I546f108a8bd9a136e57311233d482f89066c306d
2012-11-02 11:04:35 -07:00
Svetoslav Ganov
a94c3194ff Cannot click on partially visible views in touch exploration.
1. In touch exploration mode the system clicks in the center of the
   accessibility focus rectangle. However, if this rectangle is only
   partially shown on the window or on the screen the system may not
   be able to perform the click, if the accessibility focus center
   is not on the screen, or click on the wrong window, if the access
   focus center is outside of the window.

   This change clips the rectangle to the window bounds which and the
   display bounds. This will ensure no clicks are sent to the wrong
   window and no clicks are sent outside of the screen.

bug:7453839

Change-Id: I79f98971e7ebcbb391c37284467dc76076172c5f
2012-11-01 16:27:05 -07:00