Commit Graph

893 Commits

Author SHA1 Message Date
Jeff Brown
b0418da0e7 Add plumbing for volume mute key.
Full support for the volume mute key will be implemented in a
later change.

Bug: 2912307
Change-Id: I98c27d6360f159c8b7447e04b45f442eff87b38a
2010-11-02 17:31:39 -07:00
Adam Cohen
a32edd4b4c Adding click feedback to widget collections
Change-Id: I97fceb6c68ca6eb1b703eafacf201e1aed7c38e7
2010-11-01 20:53:38 -07:00
Chet Haase
c9acd7d2f0 Merge "Fixed null deref when view parent null during invalidation" 2010-11-01 16:56:15 -07:00
Chet Haase
ea40e9abb0 Fixed null deref when view parent null during invalidation
Change-Id: I4896b4af69f3a44351465e7524dd7b621050b415
2010-11-01 16:54:22 -07:00
Jeff Brown
4d396052de Fix policy issues when screen is off.
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.

Fixed a couple of issues where media keys were being handled inconsistently
or not at all, particularly in the case of the new PAUSE, PLAY
and RECORD keys.

Bug: 3144874
Change-Id: Ie630f5fb6f128cfdf94845f9428067045f42892c
2010-11-01 15:00:25 -07:00
Dianne Hackborn
8eb2e244f9 Various PreferenceActivity and related improvement.
This is all about making the preferences implementation better.

Well, mostly all about that.

Change-Id: I8efa98cb5680f3ccfa3ed694a1586de3fb3a9e11
2010-11-01 14:48:34 -07:00
Chet Haase
70d4ba15b1 Performance optimizations for animations and toolkit
Change-Id: I316a48273a9cbb428a965e4b849b3e5e9e8202f1
2010-11-01 10:19:44 -07:00
Dianne Hackborn
dea3ef7967 Add new resize mode to not resize, new web input types.
Change-Id: Ib098c03793d08532c3c099b59d0cc6b567e54900
2010-10-29 16:59:15 -07:00
satok
06487a58be Add a functionarity for showing / hiding IME button on the system bar
Bug: 3077030

- IME communicates with status bar directly.

Change-Id: Ic5b6b5b7a2b8ea62372dcc9b9c36d81b9f2db651
2010-10-30 03:17:40 +09:00
satok
04d5020470 Show Subtype Icon properly in the system status bar
- Added API for getting the current subtype
- Added functions for show/hide status icon

Change-Id: Ifcaad00f7f4c658cdb3af367387476bbf316eb19
2010-10-28 16:18:50 +09:00
Romain Guy
0d9275e565 Enable display lists.
Change-Id: Id0d9b987251da5b7ecbb5497a55dbb5937430316
2010-10-26 14:22:30 -07:00
Romain Guy
c361da845a Don't initialize the hw renderer without a valid surface.
Bug #3054952

Change-Id: I5b4074391dbd84b04a14f7d2fb1b9a4a2487e1e2
2010-10-25 15:29:10 -07:00
Chris Tate
d4533f1469 Report drag success/fail in the DRAG_ENDED message
DragEvent.getResult() returns 'true' if the drop was ultimately accepted;
false otherwise.  The validity of this datum is only guaranteed when the
DragEvent's action verb is ACTION_DRAG_ENDED.

Also fixes the drag-start timeout handling (though the offending app is
not yet officially declared ANR).

Implements bug 3097807

Change-Id: I6908ac628c72ff7d6193d87060d769a559a78d0e
2010-10-21 14:25:06 -07:00
Chet Haase
5c13d89c13 Optimizing display lists by referencing pointers to resources instead of copying them
Change-Id: I81ad3551d74aa1e5bb64d69e33d2eb29a6c1eb6a
2010-10-21 12:02:42 -07:00
Chris Tate
c02c7af0ec Fix obtain() when the pool is still empty
Fixes bug 3116798

Change-Id: I187e79892cd2b60173ef4ebef5d2eab56eb5eb42
2010-10-20 19:01:55 -07:00
Patrick Dubroy
fb0547d2c0 Fix memory leak with TouchTargets not being recycled. 2010-10-19 17:36:18 -07:00
Chris Tate
32affef4f8 Introduce an OnDragListener mechanism
If the listener's onDrag(view, event) returns 'false', the view's own
onDragEvent() will be called.  If the listener returns 'true', it
consumes the event (and declares that it will handle the rest of the
drag event sequence, in the case of DRAG_STARTED actions).

Change-Id: I01aff0e4f59f71e55f5eea1049905c80714f0607
2010-10-19 13:56:17 -07:00
Jeff Brown
3b2b354ec1 Add support for secure system overlays.
Manual merge from Gingerbread.

This change adds a new window type for secure system overlays
created by the system itself from non-secure system overlays that
might be created by applications that have the system alert permission.
Secure views ignore the presence of secure system overlays.

Bug: 3098519
Change-Id: Id876736fd8bf332ff9a5428bde59f5268aa49c3a
2010-10-15 17:10:55 -07:00
Jeff Brown
497a92cc5b Add keycodes and meta-key modifiers to support external keyboards.
Added new key maps for external keyboards.  These maps are intended to
be shared across devices by inheriting the "keyboards.mk" product
makefile as part of the device's product definition.

One of the trickier changes here was to unwind some code in
MetaKeyKeyListener that assumed that only the low 8 bits of the meta key
state were actually used.  The new code abandons bitshifts in favor
of simple conditionals that are probably easier to read anyways.
The special meta key state constants used by MetaKeyKeyListener
are now (@hide) defined in KeyEvent now so as to make it clearer that they
share the same code space even if those codes are not valid for KeyEvents.

The EventHub now takes care of detecting the appropriate key layout
map and key character map when the device is added and sets system
properties accordingly.  This avoids having duplicate code in
KeyCharacterMap to probe for the appropriate key character map
although the current probing mechanism has been preserved for legacy
reasons just in case.

Added support for tracking caps lock, num lock and scroll lock and
turning their corresponding LEDs on and off as needed.

The key character map format will need to be updated to correctly support
PC style external keyboard semantics related to modifier keys.
That will come in a later change so caps lock doesn't actually do
anything right now except turn the shiny LEDs on and off...

Added a list of symbolic key names to KeyEvent and improved the toString()
output for debug diagnosis.  Having this list in a central place in the
framework also allows us to remove it from Monkey so there is one less
thing to maintain when we add new keycodes.

Bug: 2912307
Change-Id: If8c25e8d50a7c29bbf5d663c94284f5f86de5da4
2010-10-15 16:00:07 -07:00
Chris Tate
6b3912865c Drag thumbnail fixes / improvements
* Properly wipe the thumbnail canvas before handing it to the app for
  its contents to be drawn

* Provide a getView() method in DragThumbnailBuilder that allows
  clients or subclasses to get at the associated view.  This is
  especially for clients that want to draw entire (sub)layouts as
  the drag thumbnail, by overriding onDrawThumbnail(Canvas c)
  like this:

  // Override specifically for drawing a whole ViewGroup into
  // the drag thumbnail canvas
  @Override
  public void onDrawThumbnail(Canvas c) {
      getView().dispatchDraw(c);
  }

Change-Id: Ib43ddd7cf1d44faf2d7f6ba79f102bc3c7f14596
2010-10-14 16:43:39 -07:00
Chris Tate
a32dcf7f72 Actually draw the drag thumbnail
Now sets the layer and thumbnail dimensions correctly.  Also removed the
leftover bits of the now-replaced thumbnail measurement/drawing mechanism.

Fixes bug 3077339

Change-Id: I02983648e0a7ce2ce5fee10825f744e20a3a5b8d
2010-10-14 14:41:07 -07:00
Romain Guy
909cbaf8f9 Don't draw TextView's alpha layers when not needed.
Change-Id: Iedf42cbc62d727f18500c78fcccf2d081a761fec
2010-10-13 18:19:48 -07:00
Romain Guy
67a2f7b5a1 Never skip drawing SurfaceViews.
Change-Id: I07fbc632b01d96cee16b6e000e0cbf05238a442b
2010-10-13 17:24:41 -07:00
Daniel Sandler
db6303e51e Merge "Dynamically show the menu button on the system bar." 2010-10-13 16:32:07 -07:00
Adam Powell
d8404b2373 Allow icon+text action buttons
Change-Id: I96d1f3958de3ac13cadbab108b87d6bae96e9473
2010-10-13 14:35:19 -07:00
Romain Guy
41030da168 Add a getNativeMatrix() API.
This API can be used by WebView to apply the appropriate transform
on its rendering.

Change-Id: I79aa39a29805f462fb08226370328815e74bdc52
2010-10-13 13:40:37 -07:00
Daniel Sandler
e02d808abf Dynamically show the menu button on the system bar.
Windows with FLAG_NEEDS_MENU_KEY (or windowNeedsMenuKey=true
in their theme) will cause the system bar to show a menu
icon. (Note that the phone's status bar currently ignores
this, but phones tend to have hardware menu keys anyway.)

Additionally, all windows whose package's SDK version is
pre-Honeycomb will have FLAG_NEEDS_MENU_KEY set by default.

Bug: 3003728

Change-Id: I2d983763a726ea4f32cd1af9b0390e30478b11d1
2010-10-13 16:25:43 -04:00
Chris Tate
048691cfac Don't stomp on the drag-focus bookkeeping inadvertently.
Also don't update the focus tracking redundantly.
Fixes bug 3076468

Change-Id: I021e1bb91134d5226735d9510ad7f9a7b650f93f
2010-10-12 17:39:18 -07:00
Chris Tate
91e9bb3b46 Elide undelivered drag-location messages
The recipient app could be receiving drag location updates faster than
it handled them, leading to progressive poor responsiveness.  Now we
discard any undelivered pending location updates and replace them with
the newest data point when the location is updated.

Change-Id: I7299d205a0ef8ef8f5f32fd14e9ef87383d92717
2010-10-12 12:58:43 -07:00
Romain Guy
a3496a9e60 Fix invisible views issue in Launcher.
Change-Id: Ic7cb8f418b5879110eaea5a9c5fdb4f237ca4cab
2010-10-12 11:53:24 -07:00
Romain Guy
c00972bb16 Don't recreate a new texture every time we draw a layer.
Change-Id: I3c28aff5acffc7c6f1ac74805869725426c62d28
2010-10-12 11:31:07 -07:00
Romain Guy
d10cd5765a Always create OpenGL accelerated windows in RGBA 8888.
Bug #3081600

The OpenGL renderer in libhwui uses a single EGL context per process and
thus create it with an RGBA 8888 EGL configuration. To ensure that all
windows are compatible with this configuration, this change modifies
the window manager and SurfaceFlinger.

The window manager now checks the window's flags and if the window is
hardware accelerated, it forces the window's pixel format to be
translucent when creating the surface. The window itself is still
marked as opaque if we know that the window will be opaque on screen.
This keeps existing optimizations in place.

Similarly in SurfaceFlinger, a translucent Surface can now be created
with the Surface.OPAQUE flag, indicating SurfaceFlinger that the surface
does not require blending, despite its RGBA 8888 configuration.

Change-Id: Ic747b6b12564ba064412d842117880fcc199eb7c
2010-10-12 11:00:18 -07:00
Romain Guy
53ca03d9a3 Don't set hwAccelerated=true when libhwui is not present.
Change-Id: I6df5a89e4b4d94d76e96b5d0a678b7a8f646268a
2010-10-12 10:34:25 -07:00
Jeff Brown
4231124c9d Merge "Fix an event injection bug when the policy is bypassed." 2010-10-11 18:15:38 -07:00
Romain Guy
d5d2b7382c Merge "Don't draw fully transparent views/primitives." 2010-10-11 18:00:43 -07:00
Romain Guy
dbc26d2ba1 Don't draw fully transparent views/primitives.
Change-Id: Icd7d8ef1f57b51a24faf32f7004125e6300d4fdc
2010-10-11 17:58:29 -07:00
Jeff Brown
e20c9e0264 Fix an event injection bug when the policy is bypassed.
Added the concept of a "trusted" event to distinguish between events from
attached input devices or trusted injectors vs. other applications.
This change enables us to move certain policy decisions out of the
dispatcher and into the policy itself where they can be handled more
systematically.

Cherry pick of b931a1b4 from gingerbread into master.

Change-Id: I700a5f07b8b227878cea9437a289a45a245c0424
2010-10-11 17:54:12 -07:00
Jeff Brown
dd8b0c9040 am 41aabeb5: am 1e6a3a53: Merge "Added more robust tracking and cancelation of events." into gingerbread
Merge commit '41aabeb51305d19747687f246080f44fc2a74435'

* commit '41aabeb51305d19747687f246080f44fc2a74435':
  Added more robust tracking and cancelation of events.
2010-10-11 17:42:30 -07:00
Romain Guy
101e2ae00c Redraw the screen when needed.
Bug #3085265

Change-Id: Ibb47500f819b823eb4f3dee829f0396dce9a3d65
2010-10-11 12:41:21 -07:00
Jeff Brown
325b05f611 am b13998f2: am d00b4386: Merge "Clarify some comments on individual key codes." into gingerbread
Merge commit 'b13998f2b482ff0ebe96cd683801758a01d10799'

* commit 'b13998f2b482ff0ebe96cd683801758a01d10799':
  Clarify some comments on individual key codes.
2010-10-10 17:45:25 -07:00
Romain Guy
fd5072606b Reset the dirty region after drawing in hardware.
Change-Id: I687419f2a95d5d7c51913467bd80249244102725
2010-10-10 15:46:46 -07:00
Jeff Brown
41aabeb513 am 1e6a3a53: Merge "Added more robust tracking and cancelation of events." into gingerbread
Merge commit '1e6a3a53fc4d56e3a0f86c8721dedfd46e738a32' into gingerbread-plus-aosp

* commit '1e6a3a53fc4d56e3a0f86c8721dedfd46e738a32':
  Added more robust tracking and cancelation of events.
2010-10-10 14:50:38 -07:00
Jeff Brown
b699726018 Added more robust tracking and cancelation of events.
This change fixes several issues where events would be dropped in the
input dispatch pipeline in such a way that the dispatcher could not
accurately track the state of the input device.

Given more robust tracking, we can now also provide robust cancelation
of input events in cases where an application might otherwise become
out of sync with the event stream due to ANR, app switch, policy decisions,
or forced focus transitions.

Pruned some of the input dispatcher log output.

Moved the responsibility for calling intercept*BeforeQueueing into
the input dispatcher instead of the input reader and added support for
early interception of injected events for events coming from trusted
sources.  This enables behaviors like injection of media keys while
the screen is off, haptic feedback of injected virtual keys, so injected
events become more "first class" in a way.

Change-Id: Iec6ff1dd21e5f3c7feb80ea4feb5382bd090dbd9
2010-10-10 14:45:51 -07:00
Dianne Hackborn
ca33268ef8 am 18e225b4: am bfba7cab: Fix issue #3001362: API REVIEW: android.view.InputQueue.Callback
Merge commit '18e225b42b77c48efa63f245a4137c5f74302e26'

* commit '18e225b42b77c48efa63f245a4137c5f74302e26':
  Fix issue #3001362: API REVIEW: android.view.InputQueue.Callback
2010-10-08 17:59:52 -07:00
Mike Dodd
9568a5ab2e Merge "HardwareRenderer: When throwing an exception because of an EGL error, include the specific error." 2010-10-08 15:33:45 -07:00
Mike Dodd
5d3e2ea6f3 HardwareRenderer: When throwing an exception because of an EGL
error, include the specific error.

Change-Id: I8e4b0cdbc207824df4f4bb55c3b379b0ee4aeec2
2010-10-08 14:43:16 -07:00
Jeff Brown
b13998f2b4 am d00b4386: Merge "Clarify some comments on individual key codes." into gingerbread
Merge commit 'd00b4386aed2ef58077490ca7de7d93b98ed51fb' into gingerbread-plus-aosp

* commit 'd00b4386aed2ef58077490ca7de7d93b98ed51fb':
  Clarify some comments on individual key codes.
2010-10-08 12:48:27 -07:00
Dianne Hackborn
c4dfe3d5c0 am 92d29c66: am a2a0a98a: Merge "Fix NPE if there is no accelerometer." into gingerbread
Merge commit '92d29c66f5cb69627172d21057e672eaba2eb03f'

* commit '92d29c66f5cb69627172d21057e672eaba2eb03f':
  Fix NPE if there is no accelerometer.
2010-10-08 12:39:14 -07:00
Jeff Brown
224d4a1535 Clarify some comments on individual key codes.
Change-Id: I03cce0ad69aaab5b71e5017982b01afd27285d2f
2010-10-07 20:28:53 -07:00
Chet Haase
e0ee2e9f31 New TimeInterpolator interface for android.animation package.
The new animation package's reliance on the old Interpolator interface (in
android.view.animation) was an eyesore. Adding TimeInterpolator, and having the
old Interpolator interface extend it, allows the new Animator classes to break
the tie to the older animation package completely. However, developers can still
use the older Interpolator-based classes, such as AccelerateInterpolator,
because they all implicitly extend the new TimeInterpolator class.

Change-Id: I41132fa56167ba564f4839113289114d0ea31a92
2010-10-07 12:27:06 -07:00