Commit Graph

807 Commits

Author SHA1 Message Date
Jeff Brown
8667174067 Make View transformation matrix updating more explicit.
The original code depends on side-effects of hasIdentityMatrix()
to update the View transformation matrix.  This change adds an
explicit updateMatrix() method to make it more explicit when
we are relying on the matrix having been updated.  Among other
things, getInverseMatrix() did not update the matrix so the
caller had to know to call hasIdentityMatrix() first (which was
always the case, but still potentially error-prone).

Change-Id: I16d56f60a785a15c65f73e57b9aded9e4e3bca55
2010-10-01 13:30:07 -07:00
Romain Guy
0bb5667b4e Fix INVALID_OPERATION error with layers rendering.
This change is a workaround for a driver bug that causes an INVALID_OPERATION
to be thrown on every glCopyTexSubImage() call. This change also adds a new
test for gradients local matrices.

Change-Id: I41b7437481026702d0a3a9677f099b4557c0a84e
2010-10-01 00:25:02 -07:00
Christopher Tate
a53146c556 Drag/drop APIs and infrastructure
A View initiates a drag-and-drop operation (hereafter just called a "drag")
by calling its startDrag(ClipData) method.  Within the processing of that
call, two callbacks are made into the originating View.  The first is to
onMeasureDragThumbnail().  Similarly to the core onMeasure() method, this
callback must respond by calling setDragThumbnailDimension(width, height) to
declare the size of the drag thumbnail image that should be used.  Following
this, the View's onDrawDragThumbnail(canvas) method will be invoked to
actually produce the bits of the thumbnail image.

If all goes well, startDrag() will return 'true', and the drag is off and
running.  (The other arguments to startDrag() provide reconciliation between
the current finger position and where the thumbnail should be placed on
the screen relative to it.)

Potential receipients of the ClipData behind the drag are notified by a
new dispatch mechanism, roughly parallel to motion event dispatch.  The core
routine is the View's onDragEvent(event) callback, with the mechanics of
dispatch itself being routed through dispatchDragEvent(event) -- as in
the case of motion events, the dispatch logic is in ViewGroup, with leaf
View objects not needing to consider the dispatch flow.

Several different event 'actions' are delivered through this dispatch
mechanism:

ACTION_DRAG_STARTED: this event is propagated to every View in every window
(including windows created during the course of a drag).  It serves as a
global notification that a drag has started with a payload whose matching
ClipDescription is supplied with the event.  A View that is prepared to
consume the data described in this event should return 'true' from their
onDragEvent() method, and ideally will also make some visible on-screen
indication that they are a potential target of the drop.

ACTION_DRAG_ENTERED: this event is sent once when the drag point
enters the View's bounds.  It is an opportunity for the View to set up
feedback that they are the one who will see the drop if the finger goes
up now.

ACTION_DRAG_LOCATION: when the drag point is over a given View, that
View will receive a stream of DRAG_LOCATION events, providing an
opportunity for the View to show visual feedback tied to the drag point.

ACTION_DRAG_EXITED: like DRAG_ENTERED, but called when the drag point
leaves the View's bounds.  The View should undo any visuals meant to
emphasize their being the hovered-over target.

ACTION_DROP: when the drag ends at a given point, the View under that
point is sent this event, with the full ClipData of the payload.

ACTION_DRAG_ENDED: paralleling the DRAG_STARTED action, this is the global
broadcast that the drag has ended and all Views should return to their
normal visual state.  This happens after the DROP event.

Change-Id: Ia8d0fb1516bce8c735d87ffd101af0976d7e84b6
2010-09-30 16:29:07 -07:00
Jeff Brown
20e987bfc3 Add MotionEvent Matrix transformations.
Fixed issued in ViewGroup's transformation of MotionEvents to ensure
that the entire historical trace is transformed, not just the current
pointer.

Simplified the code in ViewGroup for splitting events across Views.
The new code also handles the case where some pointers are dispatched
to the ViewGroup in addition to its children whereas the previous
code would drop some pointers on the floor.

Change-Id: I56ac31903e1de8a9c376d9c935b7217b0c42d93e
2010-09-30 11:52:48 -07:00
Romain Guy
e17c054d34 Merge "Add display lists caching." 2010-09-29 13:37:37 -07:00
Romain Guy
b051e895cc Add display lists caching.
Change-Id: Iac3a248a81ed8cb076a83ef9d186b8ebba685b4c
2010-09-29 13:29:04 -07:00
Jeff Brown
464fb74e28 am 9785bf0f: am 14a288da: Merge "Add suuport for splitting touch events across windows." into gingerbread
Merge commit '9785bf0f2b6b8758aed7ded3b996a2ef0be89919'

* commit '9785bf0f2b6b8758aed7ded3b996a2ef0be89919':
  Add suuport for splitting touch events across windows.
2010-09-27 14:40:38 -07:00
Jeff Brown
9785bf0f2b am 14a288da: Merge "Add suuport for splitting touch events across windows." into gingerbread
Merge commit '14a288da6a372230d9af41da12241fe500eec837' into gingerbread-plus-aosp

* commit '14a288da6a372230d9af41da12241fe500eec837':
  Add suuport for splitting touch events across windows.
2010-09-27 12:37:03 -07:00
Jeff Brown
14a288da6a Merge "Add suuport for splitting touch events across windows." into gingerbread 2010-09-27 12:33:14 -07:00
Jeff Brown
01ce2e9eee Add suuport for splitting touch events across windows.
This feature is currently used to enable dragging the start and end
selection handles of a TextView at the same time.  Could be used for
other things later.

Deleted some dead code in ArrowKeyMovementMethod and CursorControllers.

Change-Id: I930accd97ca1ca1917aab8a807db2c950fc7b409
2010-09-26 22:20:12 -07:00
Jean-Baptiste Queru
79d716f7de am 74a8df20: am dcfb271b: Merge "Fix if ACTION_DOWN and lost focus time too close, it will become long press."
Merge commit '74a8df2026514025b186aba80a810a03377a80e9'

* commit '74a8df2026514025b186aba80a810a03377a80e9':
  Fix if ACTION_DOWN and lost focus time too close, it will become long press.
2010-09-26 08:44:07 -07:00
Jean-Baptiste Queru
74a8df2026 am dcfb271b: Merge "Fix if ACTION_DOWN and lost focus time too close, it will become long press."
Merge commit 'dcfb271b7fa364d567ffd7c495b2baa28a755251' into gingerbread-plus-aosp

* commit 'dcfb271b7fa364d567ffd7c495b2baa28a755251':
  Fix if ACTION_DOWN and lost focus time too close, it will become long press.
2010-09-26 08:38:59 -07:00
Dianne Hackborn
405e012681 am deaa8ff1: am a7ef18fc: Merge "Some debugging support." into gingerbread
Merge commit 'deaa8ff1b10d38add4f7c276e7be2ffc19359a14'

* commit 'deaa8ff1b10d38add4f7c276e7be2ffc19359a14':
  Some debugging support.
2010-09-24 15:58:25 -07:00
Dianne Hackborn
deaa8ff1b1 am a7ef18fc: Merge "Some debugging support." into gingerbread
Merge commit 'a7ef18fca50d0db99a161d8c7e2d8979f0445503' into gingerbread-plus-aosp

* commit 'a7ef18fca50d0db99a161d8c7e2d8979f0445503':
  Some debugging support.
2010-09-24 15:32:51 -07:00
Dianne Hackborn
f123e49bf0 Some debugging support.
- New feature to "am monitor" to have it automatically launch
  gdbserv for you when a crash/ANR happens, and tell you how to
  run the client.

- Update dumpstate to match new location of binder debug logs

- Various commented out logs that are being used to track down
  issues.

Change-Id: Ia5dd0cd2df983a1fc6be697642a4590aa02a26a5
2010-09-24 13:11:55 -07:00
Romain Guy
1abe452515 Merge "Add drawing profiling to the HardwareRenderer." 2010-09-23 16:34:05 -07:00
Romain Guy
9a40babc62 Add drawing profiling to the HardwareRenderer.
Change-Id: Idf410f1764f3e73590b587d0d76a8d10c021f056
2010-09-23 16:32:47 -07:00
Romain Guy
d1fbcbb3cc Merge "Don't clip alpha layers if the flag is not set." 2010-09-23 16:18:32 -07:00
Romain Guy
fd880425e0 Don't clip alpha layers if the flag is not set.
Change-Id: I820fa66bc3699357677f37a769de52fd176d9416
2010-09-23 16:16:04 -07:00
Jeff Brown
5bd069fe1e am 27917946: am de04fb0a: Merge "Enforce serial ordering of MotionEvents." into gingerbread
Merge commit '279179461edccaa4217fe752a9abf6fcc2efa5a1'

* commit '279179461edccaa4217fe752a9abf6fcc2efa5a1':
  Enforce serial ordering of MotionEvents.
2010-09-23 14:57:14 -07:00
Jeff Brown
279179461e am de04fb0a: Merge "Enforce serial ordering of MotionEvents." into gingerbread
Merge commit 'de04fb0a0366057028369eb3b3efcb75367f74db' into gingerbread-plus-aosp

* commit 'de04fb0a0366057028369eb3b3efcb75367f74db':
  Enforce serial ordering of MotionEvents.
2010-09-23 14:53:52 -07:00
Jeff Brown
93ed4e3052 Enforce serial ordering of MotionEvents.
This change modifies ViewRoot to wait until the MotionEvent has been
delivered before telling the input dispatcher that it is finished.
The serial ordering guarantee will be required by new features that
may need to transfer touch focus from one window to another.

Change-Id: I0a64d1f0c8bc3f08846f213d6e28ce48b1d48e58
2010-09-23 13:56:30 -07:00
Amith Yamasani
085002c5ef am 847810f0: am 6e98c280: Merge "Fix for IndexOutOfBounds in setComposingRegion." into gingerbread
Merge commit '847810f0cdccd10e6e233281d4eb984b7ce8d680'

* commit '847810f0cdccd10e6e233281d4eb984b7ce8d680':
  Fix for IndexOutOfBounds in setComposingRegion.
2010-09-23 11:56:40 -07:00
Amith Yamasani
847810f0cd am 6e98c280: Merge "Fix for IndexOutOfBounds in setComposingRegion." into gingerbread
Merge commit '6e98c280f792932d60bf9374c8979d9eadce2d9c' into gingerbread-plus-aosp

* commit '6e98c280f792932d60bf9374c8979d9eadce2d9c':
  Fix for IndexOutOfBounds in setComposingRegion.
2010-09-23 11:34:11 -07:00
Amith Yamasani
6e98c280f7 Merge "Fix for IndexOutOfBounds in setComposingRegion." into gingerbread 2010-09-23 11:03:49 -07:00
satok
ab751aa085 Add methods for managing subtypes
- added showInputMethodSubtypePicker to public API
-- show the selector dialog for subtypes
- added getter, setter and event handler to InputMethodManagerService
- extract InputMethodSubtype to the top level class for using it in aidl
- TODO: make an enabler for input method subtypes
- TODO: handle the event of changing an input method subtype in LatinIME

Change-Id: I49f8c6675ac4b06511635d14a37bd398738eff33
2010-09-23 16:25:07 +09:00
Romain Guy
806de5b1c5 Remove unused constant.
Change-Id: I02e8f76cc1406e693f822822808b3485d2158884
2010-09-22 20:08:33 -07:00
Steve Howard
66df755834 am 1d056cd6: am 127146ee: Merge "Decrease sensitivity of orientation changes a bit." into gingerbread
Merge commit '1d056cd6ef6d6bdea00a92f411b0eaec7694b624'

* commit '1d056cd6ef6d6bdea00a92f411b0eaec7694b624':
  Decrease sensitivity of orientation changes a bit.
2010-09-22 17:04:15 -07:00
Amith Yamasani
4198918eed Fix for IndexOutOfBounds in setComposingRegion.
Bug: 3000457

Check upper and lower bounds of the composing region and clip them.

Change-Id: I8128a2b581ce3d8a9ff6c71cc648c3e87163b3f5
2010-09-22 16:58:13 -07:00
Romain Guy
29d8997bd4 Fix OpenGL errors in various places.
Change-Id: I3a4e115d8fb13b6c443e65460d92987b16f2524c
2010-09-22 16:44:49 -07:00
Steve Howard
1d056cd6ef am 127146ee: Merge "Decrease sensitivity of orientation changes a bit." into gingerbread
Merge commit '127146ee1c716d785fd70207045625c0c1f1d1ef' into gingerbread-plus-aosp

* commit '127146ee1c716d785fd70207045625c0c1f1d1ef':
  Decrease sensitivity of orientation changes a bit.
2010-09-22 16:05:03 -07:00
Steve Howard
127146ee1c Merge "Decrease sensitivity of orientation changes a bit." into gingerbread 2010-09-22 15:57:12 -07:00
Dianne Hackborn
625ac271f8 Work on fragments in layouts.
- Change semantics if IDs associated with these fragments, to
  work correctly when placed in a container.  If the container
  has an ID or you have supplied a tag, the fragment's ID is
  optional.

- To do this, there is a new LayoutInflater API that allows code
  creating views to access the parent container that view will
  be in.

- Fix issues with state management around these fragments.  Now
  correctly retains state when switching to a layout that doesn't
  include the fragment.

Also:

- Add new simple list layouts for items that want to show an
  activated state.
- Add new Activity.dump() that can be invoked with adb shell
  dumpsys; the default implementation dumps fragment state.

Change-Id: I192f35e3ea8c53fbd26cf909095f2a994abfc1b6
2010-09-21 22:08:50 -07:00
Adam Powell
879fb6b5d6 Text selection anchors changed to use windows
Manually cherry-picked

Change-Id: Id080dfad0e2f324fef3a5175abc78f76c8bad4c8
2010-09-21 17:56:48 -07:00
Adam Powell
770a681b2f am 9aed3002: Text selection anchors changed to use windows
Merge commit '9aed300279db6953356aed5ef24a42291f5829cb' into gingerbread-plus-aosp

* commit '9aed300279db6953356aed5ef24a42291f5829cb':
  Text selection anchors changed to use windows
2010-09-21 17:20:40 -07:00
Adam Powell
9aed300279 Text selection anchors changed to use windows
Change-Id: I14f138039f5e3175a8c07f21985715b8447708e5
2010-09-21 17:11:41 -07:00
Steve Howard
85b53adc75 Decrease sensitivity of orientation changes a bit.
I've noticed over the past couple weeks that my phone was flipping to
landscape when I placed it down too often, more like it did in Eclair.
I think my previous changes to make orientation changes quicker were a
bit too aggressive, so I'm backing off a couple of the time constants.

Change-Id: Ifffd45ac934984cc9091da56958bc2b6bcaa280a
2010-09-21 15:13:39 -07:00
Adam Powell
5d8f9dd357 am 99f0f367: am 4258bfb7: Merge "Fix some drawing artifacts/bugs around overlays/text anchors" into gingerbread
Merge commit '99f0f3676f50640dbb22bd12960f771fc414862e'

* commit '99f0f3676f50640dbb22bd12960f771fc414862e':
  Fix some drawing artifacts/bugs around overlays/text anchors
2010-09-18 00:16:35 -07:00
Adam Powell
99f0f3676f am 4258bfb7: Merge "Fix some drawing artifacts/bugs around overlays/text anchors" into gingerbread
Merge commit '4258bfb7a9fb18907fbfbe79ec0a937b4e7382b1' into gingerbread-plus-aosp

* commit '4258bfb7a9fb18907fbfbe79ec0a937b4e7382b1':
  Fix some drawing artifacts/bugs around overlays/text anchors
2010-09-17 19:30:03 -07:00
Adam Powell
23bd5f5075 Fix some drawing artifacts/bugs around overlays/text anchors
Change-Id: I28170d4e120506c09a1cfea721244fbcd3c2576a
2010-09-17 18:57:25 -07:00
Adam Powell
f37df070ea resolved conflicts for merge of b39470b5 to master
Change-Id: If441c8684c576b6cbc485a37088d6869ad3fb23f
2010-09-17 17:59:06 -07:00
Adam Powell
b39470b57d am b08013c3: Added overlay support for drawing/responding to text anchors.
Merge commit 'b08013c312e3d849029a2f4c11889274c00f438d' into gingerbread-plus-aosp

* commit 'b08013c312e3d849029a2f4c11889274c00f438d':
  Added overlay support for drawing/responding to text anchors.
2010-09-17 14:53:43 -07:00
Adam Powell
b08013c312 Added overlay support for drawing/responding to text anchors.
Overlays let views draw and respond to touch events outside of their
bounds. This allows selection anchors to be friendlier and easier to
grab. This is currently private API, pending further evaluation.

Added themes/styles for text selection anchors.

Added assets for text selection anchors as provided by UX. The
left/right anchors are currently not suitable for use. They are here
for bookkeeping and replacement later. The theme currently uses the
'middle' anchor asset for all three. This will be changed once assets
are ready.

Change-Id: I01b21e5ae90cab201f86f38f2f5eeaf2bd7f6bcd
2010-09-17 13:31:33 -07:00
Romain Guy
a977120681 Merge "Add support for drawLines(), with anti-aliasing" 2010-09-16 20:51:45 -07:00
Romain Guy
759ea80dca Add support for drawLines(), with anti-aliasing
Change-Id: I16c0593c5671490909dec13a85df601e1428a1a6
2010-09-16 20:49:46 -07:00
Dianne Hackborn
c6669ca632 Add API for showing breadcrumbs of fragment back stack.
This adds a simple API to have your back stack automatically
shown as bread crumbs in the action bar.  Introduces some APIs
to retrieve the current back stack.

Also fix a little bug in the "activated" state where it was
being propagated down the hierarchy as "selected". :p  And from
that, fix the standard colors to be reasonable when in the
activated state.

Finally PreferenceActivity is updated to take advantage of
bread crumbs to show your place in the preferences.

Change-Id: I9d633bedf8d7c6e4ed9b25cb9698faa66c7dd9a4
2010-09-16 18:36:04 -07:00
Romain Guy
885b1f21d9 Merge "Better error handling in the OpenGL renderer." 2010-09-16 14:18:22 -07:00
Romain Guy
b025b9c8b4 Better error handling in the OpenGL renderer.
Add a glGetError() check on every frame
Don't attempt to create textures larger than the maximum size allowed

Change-Id: Iee4afae16089406dbe8bf10fc93b674f1271a0ca
2010-09-16 14:16:48 -07:00
Joe Onorato
8fca21d0fa Merge "Fix broken javadoc." 2010-09-16 13:55:45 -07:00
Jeff Brown
707929d6f8 am 61cf67a2: am 24326f72: Merge "Input API review." into gingerbread
Merge commit '61cf67a220ba3205737c646c1c836a92074220de'

* commit '61cf67a220ba3205737c646c1c836a92074220de':
  Input API review.
2010-09-16 13:05:50 -07:00