Commit Graph

926 Commits

Author SHA1 Message Date
Adam Powell
759dc706ba Fix bug 3176330 - Improve documentation around MenuItem.setShowAsAction
Change-Id: Ibc8babd3668d0d8e1ed50ac330aac06a4f57dc1e
2010-11-15 15:12:20 -08:00
Dianne Hackborn
7eec10e6c9 Get rid of the extended themes.
We now decide whether to use a bitmap background based on whether the
window's drawing is hardware accelerated.  To do this, there is a new
"state_accelerated" that state list drawables can be parameterized on,
and the standard window background uses this to select a solid color
or bitmap drawable as appropriate.

Introduces a little hackery to have wm preview windows pretend like
they are hardware accelerated even if they aren't, so the preview looks
closer to the actual app.

Also Add a DialogWhenLarge variation for the light theme.

Change-Id: I215a79d5df65ba3eed52ab363cade9d8218a6588
2010-11-14 14:23:42 -08:00
satok
b66d287e30 Add a setter of InputMethodSubtype to InputMethodManager
- Public API: void setCurrentInputMethodSubtype(int pos)

Change-Id: I55daa19ba924999def544bf841f00bf54852f3e1
2010-11-13 09:49:59 +09:00
satok
735cf38b8c Add a function to switch back to the last used IME
Change-Id: Iac7bcc2ee16dd04d91a3e75b160622d246788c9a
2010-11-13 08:00:25 +09:00
Jason Bayer
3adf490a5a Add new keycodes initially used for GoogleTV devices.
Change-Id: I1b901037d6d401931dd3ec6f7d5e1e6ad165d1c9
2010-11-11 18:36:11 -08:00
Chet Haase
449bb119c9 Merge "Add invalidation to Drawable when its properties change" 2010-11-11 14:04:10 -08:00
Chet Haase
9891e1fce5 Add invalidation to Drawable when its properties change
invalidateSelf() already exists on Drawable. This triggers a call to
callback listeners so that they know the drawable has been invalidated.
For example, the background drawable on View will cause the View itself
to be invalidated.

Change-Id: I45b231a7600dcf3bc139e4059b7c9940ff49f60c
2010-11-11 13:20:08 -08:00
Chet Haase
0d200833fd Fix GL rendering of translucent surfaces
GL renderer was not initializing scissor correctly for translucent
surfaces, resulting in invisible window backgrounds in some cases
like fading popup windows

Change-Id: I87a964986e1ba2c4f59708c8892c5fa71903e6fc
2010-11-09 06:38:56 -08:00
Adam Powell
848ae6e48b am 6bb4f67a: am 26153a33: Fix bug 3163052 - always use 32-bit drawing caches when destination window is 32-bit
* commit '6bb4f67ac29b916b8ea4f08b79a7bc46c5844646':
  Fix bug 3163052 - always use 32-bit drawing caches when destination window is 32-bit
2010-11-08 19:25:54 -08:00
Mathias Agopian
0440f023dc am f704645b: am 5fd30540: Merge "possibly fix [2265804] OpenGL GLSurfaceView apps don\'t draw status bar drop shadow correctly" into gingerbread
* commit 'f704645b0ccf6feac9f41c82caf0ec34370a3bd0':
  possibly fix [2265804] OpenGL GLSurfaceView apps don't draw status bar drop shadow correctly
2010-11-08 19:24:13 -08:00
Adam Powell
6bb4f67ac2 am 26153a33: Fix bug 3163052 - always use 32-bit drawing caches when destination window is 32-bit
* commit '26153a33df8e6608bd37da7d44214b2a0db3195f':
  Fix bug 3163052 - always use 32-bit drawing caches when destination window is 32-bit
2010-11-08 18:35:22 -08:00
Adam Powell
26153a33df Fix bug 3163052 - always use 32-bit drawing caches when destination
window is 32-bit

Change-Id: I0b6de28eb2de583e1d10d0a65c1ab534ef5bb047
2010-11-08 18:09:12 -08:00
Dianne Hackborn
6908cd154c Fix animations to use correct interpolator.
Also some fragment fixes.

Change-Id: I3906199e541a86379d07c8a4e4d5f9e99830c44a
2010-11-08 15:28:12 -08:00
Mathias Agopian
f704645b0c am 5fd30540: Merge "possibly fix [2265804] OpenGL GLSurfaceView apps don\'t draw status bar drop shadow correctly" into gingerbread
* commit '5fd3054048b41b033700be3f30e4bca69f4f13a6':
  possibly fix [2265804] OpenGL GLSurfaceView apps don't draw status bar drop shadow correctly
2010-11-08 13:48:08 -08:00
Jeff Brown
3915bb845b Tell system server whether the app handled input events.
Refactored ViewRoot, NativeActivity and related classes to tell the
dispatcher whether an input event was actually handled by the application.

This will be used to move more of the global default key processing
into the system server instead of the application.

Change-Id: If06b98b6f45c543e5ac5b1eae2b3baf9371fba28
2010-11-08 12:49:43 -08:00
Joe Onorato
51387974f0 Merge "Move the volume, media, call, camera and search key handling from PhoneWindow to a new PhoneFallbackEventHandler class that is used for all windows, not just ones with decors." 2010-11-08 10:59:27 -08:00
Joe Onorato
86f6786032 Move the volume, media, call, camera and search key handling from
PhoneWindow to a new PhoneFallbackEventHandler class that is used
for all windows, not just ones with decors.

Bug: 3155146
Change-Id: Ib070fa3e523e3564b225bca576c08012fef4f416
2010-11-05 18:58:29 -07:00
Jeff Brown
51e7fe7545 Rename the locked meta key constants for clarity.
Also added some tests for LED setting.

Change-Id: I3fd86322afd07ae8de52d1ccbc2fae2c6d586641
2010-11-05 13:27:35 -07:00
satok
9ef0283bdc Change API for getting InputMethodSubtype's mode from resource id to String
Change-Id: I00aa99f8ab9901d40806a6bb336ab718eb857e8b
2010-11-05 11:40:56 +09:00
Mathias Agopian
1bd80ad7fd possibly fix [2265804] OpenGL GLSurfaceView apps don't draw status bar drop shadow correctly
request a layout when asking the transparent region to be recomputed, without this
it may never happen, since the transparent region is only calculated during layout.

this also fixes an issue where some fullscreen apps will run slower than expected
because their transparent region is never processed.

Change-Id: Iba187ef7b23f08ad3454aaa6707a3d262551e30c
2010-11-04 17:13:39 -07:00
Dianne Hackborn
e213677037 Push the jumpDrawablesToCurrentState() thing off everywhere it should be.
Also add a new interface that items in AbsListView can implement to
adjust the bounds of the selection shown for them.  This will allow
contacts to use list view's regular selection facility rather than
implementing something special in their item views.

Change-Id: I29cbdbc7122111ee97e47fe7d6ec55ff07be79cc
2010-11-04 15:34:41 -07:00
Daniel Sandler
084f3ae952 Merge "Rotation lock." 2010-11-04 14:15:56 -07:00
Daniel Sandler
b73617de46 Rotation lock.
IWindowManager now supports two new methods,
freezeRotation() and thawRotation(), that allow a caller to
temporarily stash the device's current rotation as the
default rotation (when no other constraints are present).

The system bar uses this to implement a user-accessible
rotation lock by calling freezeRotation() and then turning
off accelerometer-based display rotation; unless overridden
by an app, the display will continue to appear in the frozen
rotation until the rotation is unlocked by the user (either
via the rotation lock icon in the system bar or by checking
"rotate screen automatically" in Settings).

Bug: 2949639
Change-Id: Icd21c169d1053719590e72401f229424b254622f
2010-11-04 16:55:29 -04:00
Chet Haase
6e0ecb4eed Adding JNI methods as a faster reflection mechanism
This approach is only for the common cases of void-return,
single-argument float/int methods.

Change-Id: Ifb31535a6f717b85417eced93c579be6e461e039
2010-11-04 13:37:45 -07:00
Dianne Hackborn
079e235750 Add new fade in/out feature for drawable containers.
This is used to allow list view's pressed and activated indicators
to fade in an out, though of course it can be used elsewhere as well.

There is a lot of complexity in supporting this in list view.  The
two main things that are being dealt with:

- When recycling views, we need to make sure that the view's drawable
  state doesn't get animated from an old row's state.  The recycler
  now keeps track of which position a view was last in, and if it is
  reused at a new position there is a new View/Drawable API to tell
  it to jump to its current state instead of animating.

- For the pressed indicator to fade out, we need to keep displaying it
  after it is hidden.  There are new variables and code to keep track
  of this state, and tweaks in various places to be able to remember
  the last selected position and continue updating the drawable bounds
  as needed.

Change-Id: Ic96aa1a3c05e519665abf3098892ff2cc4f0ef2f
2010-11-03 19:11:19 -07:00
Chet Haase
079fd674fb invalidate() View when backgroundColor changes
Change-Id: I5dd41b6ccffe35a784eec74495649fede65e78f2
2010-11-03 18:07:45 -07:00
Chet Haase
7c608f25d4 optimizing for primitive types in animations
The animator classes caused autoboxing by converting primitive types (by far
the most typical types used in animations) to be converted to their
Object equivalents because of various APIs that required Object
(like getValue() to get the animated value). This change creates
factory methods on some classes instead of the former constructors
so that we can create and return private type-specific subclasses
which operate directly on the primitive types instead.

In particular, float and int are natively supported by the animators
now. Support in the APIs for double and long was removed because it
seemed like these less common types did not justify the extra
baggage of the added API and code.

Change-Id: I6008a3883e3d6dd5225005f45f112af148e5a4ea
2010-11-03 17:42:04 -07:00
Chris Tate
5f4b7d8a8a Merge "Fix drag enter/exit reporting" 2010-11-03 12:00:56 -07:00
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
Chris Tate
9d1ab88329 Fix drag enter/exit reporting
Now, each ViewGroup is tracking which of its child views [which might
themselves be ViewGroups] is currently under the drag point, and when the
drag leaves that child, a DRAG_EXITED is synthesized and dispatched all
the way down to the leaf view previously under the point.  ENTERED is
still *not* dispatched down like this; instead, it's calculated and
synthesized directly at each level based on the new LOCATION.

The ViewRoot still tracks the leaf drag target, but solely for the
purpose of reporting changes to the OS after full dispatch of a new
LOCATION -- the entered/exited messaging is no longer initiated at the
ViewRoot level.

Change-Id: I0089cc538b7e33a0440187543fcfd2f8b12e197d
2010-11-02 15:55: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
6ba052b484 am c1a564b1: Merge "Add support for secure system overlays. (DO NOT MERGE)" into gingerbread
Merge commit 'c1a564b108c511c0bdd699567c245b031930e718' into gingerbread-plus-aosp

* commit 'c1a564b108c511c0bdd699567c245b031930e718':
  Add support for secure system overlays.  (DO NOT MERGE)
2010-10-15 18:40:39 -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
2d3f159aa9 Add support for secure system overlays. (DO NOT MERGE)
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: I8f8398f4fdeb0469e5d71124c21bedf121bd8c07
2010-10-15 16:03:35 -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