Commit Graph

548 Commits

Author SHA1 Message Date
Adam Powell
89e0645b41 Added context modes to ActionBar API.
Change-Id: I7c3e782cbf01be7bc671b377fb4d706040888833
2010-06-29 14:04:58 -07:00
Chris Tate
f40e4928b9 am 96725326: am 31e0ffe8: Merge "Native input event dispatching." into gingerbread
Merge commit '96725326149687168937cf62f75364cf9cc3e96b'

* commit '96725326149687168937cf62f75364cf9cc3e96b':
  Native input event dispatching.
2010-06-28 19:16:42 -07:00
Jeff Brown
349703effc Native input event dispatching.
Target identification is now fully native.
Fixed a couple of minor issues related to input injection.
Native input enabled by default, can be disabled by setting
WindowManagerPolicy.ENABLE_NATIVE_INPUT_DISPATCH to false.

Change-Id: I7edf66ed3e987cc9306ad4743ac57a116af452ff
2010-06-28 19:10:54 -07:00
Romain Guy
bd6b79b402 Add implementations for saveLayerAlpha() and textured rects.
Even though there's an implementation for textured rects, drawBitmap() is not
hooked up yet as it will require a good texture cache.

This method is implemented using FBOs. There's currently an issue either in the
driver or in the Canvas renderer that forces the FBO to be fullscreen, which is
extremely expensive and yields terrible performance.

Change-Id: I148419195e12d45653c60186938aa78c23a68e2c
2010-06-26 00:13:53 -07:00
Romain Guy
c7d53494f1 Implement quickReject() and drawRect().
The OpenGL ES 2.0 renderer can now draw colored rectangles. At least there's
something on screen now.

Change-Id: I80a13ccc1dd56784edf74f2670a364f30700234a
2010-06-25 13:41:57 -07:00
Romain Guy
9d5316e3f5 Add colored rectangles implementation in OpenGLRenderer.
Drawing two rectangles one after the other discards the second one because of
Z buffering issues. This will be fixed in another changelist.

Change-Id: Ida1b3cde8a78e60cacc07e477abc44def527ff67
2010-06-24 19:30:36 -07:00
Romain Guy
038ecb097a Merge "Add support for transformations." 2010-06-23 17:50:02 -07:00
Romain Guy
f6a11b8a9e Add support for transformations.
This change adds partial support for the following transforms:
- scale()
- translate()
- rotate()
- setMatrix()
- getMatrix()

The transform is stored in a snapshot and saved/restored as needed.
The transform is currently not applied to the clip rect and is not
mapped to the vertex shader.

Change-Id: Id48993453311200804149917d0c126a4d0471226
2010-06-23 17:47:49 -07:00
Dianne Hackborn
f92f8686f9 am 98f7aed6: am 1e4b9f39: Remove InputConsumer, replacing with InputQueue.
Merge commit '98f7aed66b54c365f816fe990de978f61155cde1'

* commit '98f7aed66b54c365f816fe990de978f61155cde1':
  Remove InputConsumer, replacing with InputQueue.
2010-06-23 14:43:31 -07:00
Dianne Hackborn
1e4b9f3936 Remove InputConsumer, replacing with InputQueue.
Change-Id: Ib06907278457aaee842b123adc072840ca3602d8
2010-06-23 14:37:30 -07:00
Adam Powell
c047b95636 am bc337d2f: am 73ccafb5: Merge "Fix a bug where requestDisallowInterceptTouchEvent does not get called when scrolling is resumed after stopping a fling." into gingerbread
Merge commit 'bc337d2f675e8417be5534439e1b4ed1bc45a9c7'

* commit 'bc337d2f675e8417be5534439e1b4ed1bc45a9c7':
  Fix a bug where requestDisallowInterceptTouchEvent does not get called
2010-06-23 12:41:46 -07:00
Romain Guy
bb9524b6bd Add implementations for clipRect(), save() and restore().
The current implementation of clipRect() does not apply local transformations
before setting the new clip.

Change-Id: I5997871bb638dfcd1a8ef96354846af52427e445
2010-06-23 12:36:03 -07:00
Dianne Hackborn
320742b15a am e3e2883f: am e24a60aa: Merge "First stab at attaching native event dispatching." into gingerbread
Merge commit 'e3e2883f2232007174ead562610eb01201890d9b'

* commit 'e3e2883f2232007174ead562610eb01201890d9b':
  First stab at attaching native event dispatching.
2010-06-23 10:32:25 -07:00
Daniel Sandler
6c55b8b143 am 71764c4c: am 613dde4a: Revised "immersive mode" API.
Merge commit '71764c4ce5b248a79542238b171a783e82e0fe37'

* commit '71764c4ce5b248a79542238b171a783e82e0fe37':
  Revised "immersive mode" API.
2010-06-23 10:31:21 -07:00
Jeff Brown
e981c883d5 am b1efc3f6: am 7fbdc84e: More native input event dispatching.
Merge commit 'b1efc3f68277a8c38c21e2d2e8ce05287118ecfe'

* commit 'b1efc3f68277a8c38c21e2d2e8ce05287118ecfe':
  More native input event dispatching.
2010-06-23 10:17:22 -07:00
Adam Powell
110486f932 Fix a bug where requestDisallowInterceptTouchEvent does not get called
when scrolling is resumed after stopping a fling.

Change-Id: I6796c5082cb81b3116de5baf1f27fe3addb40d00
2010-06-22 17:14:44 -07:00
Romain Guy
85bf02fc16 Fix the simulator build.
Change-Id: Ie404f7c2c308f0657f273af19a56e8c039b61898
2010-06-22 13:11:24 -07:00
Dianne Hackborn
a95e4cb62f First stab at attaching native event dispatching.
Provides the basic infrastructure for a
NativeActivity's native code to get an object representing
its event stream that can be used to read input events.

Still work to do, probably some API changes, and reasonable
default key handling (so that for example back will still
work).

Change-Id: I6db891bc35dc9683181d7708eaed552b955a077e
2010-06-22 11:21:50 -07:00
Daniel Sandler
613dde4aa6 Revised "immersive mode" API.
No longer a window bit, FLAG_IMMERSIVE is now set on
ActivityInfo.flags and in the Activity's manifest as
android:immersive="true" (ActivityInfo).

[An "immersive" activity is one that wishes to avoid being
paused by full-screen notifications (like an incoming call).
An activity that sets FLAG_IMMERSIVE/android:immersive is
sending a signal to the notification manager, status bar,
etc. that they should try to find some other way to get the
user's attention in high-priority situations.]

[Originally: change Ie290c2e.]

Change-Id: I967bb10b930b8f0772b10f81f2957a03fa3f1736
2010-06-22 12:30:12 -04:00
Jeff Brown
7fbdc84e87 More native input event dispatching.
Added ANRs handling.
Added event injection.
Fixed a NPE ActivityManagerServer writing ANRs to the drop box.
Fixed HOME key interception.
Fixed trackball reporting.
Fixed pointer rotation in landscape mode.

Change-Id: I50340f559f22899ab924e220a78119ffc79469b7
2010-06-21 13:59:34 -07:00
Adam Powell
7ade1be822 Action bar button layout changes.
Theme attribute added for spacing between action buttons. Action
buttons are now allowed to fill up to half of the total action bar's
width.

Change-Id: Iabbc67e695684529dfae9681d4d9580cd30839d0
2010-06-18 10:12:20 -07:00
Daniel Sandler
53f2bb549e am fddf19f6: am a2650db7: Merge "Fix SDK docs build." into gingerbread
Merge commit 'fddf19f671dc91b9c50fa82870e1b3df29ce397a'

* commit 'fddf19f671dc91b9c50fa82870e1b3df29ce397a':
  Fix SDK docs build.
2010-06-17 19:18:31 -07:00
Daniel Sandler
a2650db770 Merge "Fix SDK docs build." into gingerbread 2010-06-17 19:14:44 -07:00
Daniel Sandler
ae069f76ee Fix SDK docs build.
Change-Id: I2d11682cdf2cdcd48f0299f8c168fddd5994dc65
2010-06-17 21:56:26 -04:00
Romain Guy
3b970e78d2 Merge "Add libhwui, to hardware accelerate the Canvas API using OpenGL ES 2.0." 2010-06-17 13:42:37 -07:00
Romain Guy
e4d011201c Add libhwui, to hardware accelerate the Canvas API using OpenGL ES 2.0.
This is the initial checkin to setup the library and turn on OEGL ES 2.0
in ViewRoot, not a functional renderer.

Change-Id: I6655c54166e2967da2e21e7d6dcfba78bf113b44
2010-06-17 13:40:11 -07:00
Jeff Brown
4e74ae3d5b am 42bb545a: am 5c225b16: Even more native input dispatch work in progress.
Merge commit '42bb545a54d89f0ddbb230d7a01ea4210c0f6c00'

* commit '42bb545a54d89f0ddbb230d7a01ea4210c0f6c00':
  Even more native input dispatch work in progress.
2010-06-17 13:32:45 -07:00
Daniel Sandler
733c6f2e9b am 747f75dc: am 3a0146cd: Merge "New API for "immersive" activity windows." into gingerbread
Merge commit '747f75dc0882138828ac2b2752c2872ccae49747'

* commit '747f75dc0882138828ac2b2752c2872ccae49747':
  New API for "immersive" activity windows.
2010-06-17 13:27:47 -07:00
Jeff Brown
5c225b1680 Even more native input dispatch work in progress.
Added more tests.
Fixed a regression in Vector.
Fixed bugs in pointer tracking.
Fixed a starvation issue in PollLoop when setting or removing callbacks.
Fixed a couple of policy nits.

Modified the internal representation of MotionEvent to be more
efficient and more consistent.

Added code to skip/cancel virtual key processing when there are multiple
pointers down.  This helps to better disambiguate virtual key presses
from stray touches (such as cheek presses).

Change-Id: I2a7d2cce0195afb9125b23378baa94fd2fc6671c
2010-06-17 13:27:16 -07:00
Adam Powell
96675b1df3 Merging ActionBar menu with options menu.
Options menu items may now specify if they would like to appear in the
action bar. Menu items defined in xml may set the showAsAction
attribute to one of "never"(default), "ifRoom", or "always". Action
buttons are populated as follows:

* All showAsAction="always" items become action buttons, even if it
  would crowd the navigation area of the action bar.

* If there is space remaining, showAsAction="ifRoom" items are added
  until no more will fit comfortably.

Action button click events are now handled by the
onOptionsItemSelected method used by the standard options menu.

The construction of options menus now happens earlier in order to
provide data to the action bar. Activities with an action bar can now
expect to have onCreateOptionsMenu called when activity start-up is
complete.

Activity#invalidateOptionsMenu can be used to force a refresh of menu
items where the previous API would use ActionBar#updateActionMenu.

Change-Id: If52ddf1cf9f6926206bcdeadf42072ea2c24fab9
2010-06-17 11:35:43 -07:00
Gilles Debunne
e6ac8b9aad Removed API changes from CL 54712.
onLoadClass(Class ) was replaced by onLoadClass(Class<?> ) in CL 54712.
This changes the API and may introduce errors in users' implementations.

Change reverted.

Change-Id: Ie578a444168423959b44857f22e13f004e108965
2010-06-17 10:57:42 -07:00
Daniel Sandler
611fae4c39 New API for "immersive" activity windows.
An "immersive" activity (as indicated by the new
FLAG_IMMERSIVE) is one that wishes to avoid being paused by
full-screen notifications (like an incoming call).
An activity that sets FLAG_IMMERSIVE on its window is
sending a signal to the notification manager, status bar,
etc. that they should try to find some other way to get the
user's attention in high-priority situations.

FLAG_IMMERSIVE should be used exclusively in conjunction
with FLAG_FULL_SCREEN (that is, only activities that hide
the status bar should consider themselves immersive).

Change-Id: Ie290c2e92fc391bcf55edfdb1fbd626cd284e3e2
2010-06-17 11:43:35 -04:00
Gilles Debunne
3030193dc1 Removed warnings in LayoutInflater.
These changes are similar to those of CL 49296. They do not include the
generic fixes done on GenericInflater.java, which had issues and broke the build.

Added a asSubClass method in LayoutInflater which will (correctly) throw a
ClassCastException when the inflated class is not a View subclass.

Performance testing on these changes showed a 10% performance improvement,
which is still to be explained.

Change-Id: Id4d3b45f0945baccdbbda15fcce095e855b23c9a
2010-06-16 18:38:13 -07:00
Chet Haase
4846032ac7 Fix bug with layout animations when apps are auto-scaled.
The pivot points in RotateAnimation and ScaleAnimation are in pixel coordinates. When an app is being autoscaled, these values are incorrect and should be adjusted for the current scale factor. The fix adds API to Animation to allow ViewGroup to pass in the scaling factor.

Change-Id: I978c48f9b5aea6760148435e74e1a8d49e2f785d
2010-06-16 14:17:55 -07:00
Romain Guy
9295ada0ec Allow the use of styles with LinearLayout, make "useLargestChild" attr public.
Change-Id: I044f3f5bd9b90c684ded7a37ff85e3aa8d15af96
2010-06-15 14:00:52 -07:00
Scott Main
84b51c8eb7 am fb48f3a2: am e4bca7ee: am 322e7e47: Merge "docs: fix markup error" into froyo
Merge commit 'fb48f3a25d821a9037591aa76faa7bae46d1debd'

* commit 'fb48f3a25d821a9037591aa76faa7bae46d1debd':
  docs: fix markup error
2010-06-15 10:50:30 -07:00
Scott Main
e4bca7ee60 am 322e7e47: Merge "docs: fix markup error" into froyo
Merge commit '322e7e477d89aca18d65cbd289343e716c45a699' into gingerbread

* commit '322e7e477d89aca18d65cbd289343e716c45a699':
  docs: fix markup error
2010-06-15 10:42:52 -07:00
Mathias Agopian
15f87c6e4b am 5126633a: am 2d468c5d: Make sure SurfaceView use a 565 surface when requesting an OPAQUE format.
Merge commit '5126633a3e7d04754792e0702231b1b6be2d1498'

* commit '5126633a3e7d04754792e0702231b1b6be2d1498':
  Make sure SurfaceView use a 565 surface when requesting an OPAQUE format.
2010-06-14 22:03:33 -07:00
Mathias Agopian
2d468c5d73 Make sure SurfaceView use a 565 surface when requesting an OPAQUE format.
this is needed for backward compatibility with somewhat buggy applications.
not a big deal, since the app can request another format explicitely.

Change-Id: Ic73f8acedf94ffc0115637efac28fa8ffaa7e5a4
2010-06-14 21:56:34 -07:00
Jeff Brown
8e03b7566c resolved conflicts for merge of 9e660c82 to master
Change-Id: Ic4bd85cbaa5b9a10dcb474a0dad46490bf967e43
2010-06-13 19:16:55 -07:00
Jeff Brown
46b9ac0ae2 Native input dispatch rewrite work in progress.
The old dispatch mechanism has been left in place and continues to
be used by default for now.  To enable native input dispatch,
edit the ENABLE_NATIVE_DISPATCH constant in WindowManagerPolicy.

Includes part of the new input event NDK API.  Some details TBD.

To wire up input dispatch, as the ViewRoot adds a window to the
window session it receives an InputChannel object as an output
argument.  The InputChannel encapsulates the file descriptors for a
shared memory region and two pipe end-points.  The ViewRoot then
provides the InputChannel to the InputQueue.  Behind the
scenes, InputQueue simply attaches handlers to the native PollLoop object
that underlies the MessageQueue.  This way MessageQueue doesn't need
to know anything about input dispatch per-se, it just exposes (in native
code) a PollLoop that other components can use to monitor file descriptor
state changes.

There can be zero or more targets for any given input event.  Each
input target is specified by its input channel and some parameters
including flags, an X/Y coordinate offset, and the dispatch timeout.
An input target can request either synchronous dispatch (for foreground apps)
or asynchronous dispatch (fire-and-forget for wallpapers and "outside"
targets).  Currently, finding the appropriate input targets for an event
requires a call back into the WindowManagerServer from native code.
In the future this will be refactored to avoid most of these callbacks
except as required to handle pending focus transitions.

End-to-end event dispatch mostly works!

To do: event injection, rate limiting, ANRs, testing, optimization, etc.

Change-Id: I8c36b2b9e0a2d27392040ecda0f51b636456de25
2010-06-13 17:42:16 -07:00
Scott Main
f10e6331e3 docs: fix markup error
Change-Id: Icea017095f58068c55dd3c1c18cecbdf06afb595
2010-06-11 09:03:22 -07:00
Romain Guy
e392499273 Refactor HardwareRenderer to allow the use of OpenGL ES 2.0.
The current OpenGL ES 2.0 HardwareRenderer will fail and does not
even attempt to create a Canvas. The next step will be to create
a new native-backed Canvas that relies on OpenGL ES 2.0 and bypasses
the current OpenGL ES 1.0 implementation done in Skia.

Change-Id: I7a8e9f87f316e9137ef191bb5609213e160eaa4c
2010-06-10 18:51:21 -07:00
Romain Guy
c613328582 Fix native crash when enabling hardware acceleration.
This change also prevents hardware acceleration when the ViewRoot is in the
system process. This causes problem in EGL intialization because of having
both a SurfaceControl and a Surface. This is not needed and better to leave
it off anyway (so that preview windows don't get unnecessary hw acceleration.)

Change-Id: I1cc55d7fb9a4c1a9c4c59f11f49d3e44de78acef
2010-06-10 16:17:24 -07:00
Romain Guy
2d6145993e Move OpenGL support out of ViewRoot into a new HardwareRenderer class.
Change-Id: Iffaed924a5defc3c4df26223c390dc27eee115b1
2010-06-09 18:27:08 -07:00
Dianne Hackborn
b31e84bc45 Add Fragment option menu APIs.
Also fix up how transactions are handled so that a series of transactions
can correctly be created and committed.

Change-Id: I948ba47d49e9b2246a1958bd9eac9dd36dc5a855
2010-06-09 12:26:29 -07:00
Adam Powell
db479c9af0 Merge "Dropdown mode for ActionBar; style and API updates" 2010-06-08 17:27:09 -07:00
Adam Powell
a408291e22 Dropdown mode for ActionBar; style and API updates 2010-06-08 14:25:24 -07:00
Romain Guy
8d49cd77df am c62c4c8b: am 804d0496: am 71d73a0d: Merge "Add a method to hide/show a SurfaceView\'s surface." into froyo 2010-06-08 13:05:31 -07:00
Romain Guy
804d04969d am 71d73a0d: Merge "Add a method to hide/show a SurfaceView\'s surface." into froyo
Merge commit '71d73a0dfc110d0bdfc1b7ba385db3e2cfe007e5' into kraken

* commit '71d73a0dfc110d0bdfc1b7ba385db3e2cfe007e5':
  Add a method to hide/show a SurfaceView's surface.
2010-06-08 13:00:30 -07:00