462 Commits

Author SHA1 Message Date
Xavier Ducrohet
4c9d691a01 am 57f7ccc4: am 63e5d07e: Merge "Fix issue with project resources overriding framework resources." into gingerbread 2010-10-27 11:59:05 -07:00
Xavier Ducrohet
57f7ccc422 am 63e5d07e: Merge "Fix issue with project resources overriding framework resources." into gingerbread 2010-10-27 11:23:58 -07:00
Xavier Ducrohet
4f291d33e1 Reimplement the native matrix method using the new delegate way.
Instead of renaming the old Matrix class into _Original_Matrix
and have layoutlib provide a full new implementation of Matrix,
we keep the old one by only modifying it to implement the native
methods which calls out to a new Matrix_Delegate class.

The goal is to not have to maintain the java portion in
sync between the framework and the layoutlib version.

Change-Id: I3e1aefffbae45e91b75331c0c6ff2260323deacd
2010-10-27 09:55:58 -07:00
Xavier Ducrohet
c2e28dd748 Fix issue with project resources overriding framework resources.
Framework resources loaded through Drawable.createFromXml could
be overriden by project resources if there were loaded through
a  state list drawable where the final resource name was used
by a project resource (of the same type).

This ensures that the XML parser knows that it's a framework
resource being parsed and that the resource resolution uses
that information.

Change-Id: I39cf9eba755e55f1604b968637aeecff969a558d
2010-10-26 17:14:55 -07:00
Xavier Ducrohet
d815e37048 Fix rendering of digitalClock/Gallery in Eclipse editors.
Change-Id: Iedcd3184cd9f34be8d0695a51eda953ac68683ce
2010-10-26 14:29:23 -07:00
Raphael
f241c40476 Revert "Fix rendering of digitalClock/Gallery in Eclipse editors."
This reverts commit 25e96ce7b99f9736a6024d25bd65a83774c7640f.
2010-10-26 13:55:10 -07:00
Xavier Ducrohet
68404a0125 am a44a5e02: am 1b6180ec: Merge "Fix rendering of digitalClock/Gallery in Eclipse editors." into gingerbread 2010-10-26 12:13:32 -07:00
Xavier Ducrohet
a44a5e02d2 am 1b6180ec: Merge "Fix rendering of digitalClock/Gallery in Eclipse editors." into gingerbread 2010-10-26 12:10:28 -07:00
Xavier Ducrohet
25e96ce7b9 Fix rendering of digitalClock/Gallery in Eclipse editors.
Change-Id: I80f4f90b173529632eaf2fbc3bb5471b7ede8216
2010-10-26 11:18:39 -07:00
Xavier Ducrohet
a6ca66af0c Merge "Layoutlib_Create: Fix order of class adapters." 2010-10-22 15:42:40 -07:00
Xavier Ducrohet
c08e175f14 Merge "Layoutlib_create: fix binary name of delegate methods." 2010-10-22 15:42:26 -07:00
Raphael
e2e8ba904b Layoutlib_Create: Fix order of class adapters.
The Transform adapter was running last, instead of
running on the output of the Delegate adapter.

Change-Id: I2cd777add7b0972c6bb197aaac6693d39dd5a103
2010-10-22 15:29:04 -07:00
Xavier Ducrohet
2191b4b22f Merge "Remove dependency on ASM util classes." 2010-10-22 14:03:07 -07:00
Raphael
280372e2c7 Layoutlib_create: fix binary name of delegate methods.
Change-Id: Iebd7d730b23e12f770e6ecadafb2f5c3459958db
2010-10-22 13:58:31 -07:00
Xavier Ducrohet
ee9642c2ba am 2051a1be: am c5371fad: Merge "Make layoutlib use the prebuilt of layoutlib_api" 2010-10-22 13:41:08 -07:00
Xavier Ducrohet
2051a1be52 am c5371fad: Merge "Make layoutlib use the prebuilt of layoutlib_api" 2010-10-22 13:38:58 -07:00
Raphael
d556d8ba36 Remove dependency on ASM util classes.
Change-Id: I975b103f8c207e727699e4135170755f6ba2a084
2010-10-22 13:33:50 -07:00
Xavier Ducrohet
0db3844925 Make layoutlib use the prebuilt of layoutlib_api
Change-Id: Ie04a9e847acacf7b2aeb179589517fc75688c75b
2010-10-21 18:32:37 -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
Xavier Ducrohet
79d433dd87 am 556866a2: am 656d2165: Merge "Parser is optional in obtainStyledAttributes." into gingerbread
Merge commit '556866a2ea1f4758a79fe4f207153b71815ed400'

* commit '556866a2ea1f4758a79fe4f207153b71815ed400':
  Parser is optional in obtainStyledAttributes.
2010-10-08 17:59:13 -07:00
Xavier Ducrohet
556866a2ea am 656d2165: Merge "Parser is optional in obtainStyledAttributes." into gingerbread
Merge commit '656d21656ad9b33f7d7e1e4960a2f03076a5fc7a' into gingerbread-plus-aosp

* commit '656d21656ad9b33f7d7e1e4960a2f03076a5fc7a':
  Parser is optional in obtainStyledAttributes.
2010-10-07 07:16:51 -07:00
Xavier Ducrohet
f8e4c1f57b Parser is optional in obtainStyledAttributes.
If the parser is null it just means the default style/values are
used.

Change-Id: I5ff3d632fd5dfc5a1ce42796b2fef7b30f9fbf34
2010-10-04 18:11:50 -07:00
Raphael
3cff14ca77 Merge "layoutlib_create: Generate delegate to implement native methods." 2010-10-04 12:46:37 -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
Raphael
bc10180624 layoutlib_create: Generate delegate to implement native methods.
- Some new parameters are added to CreateInfo with the list of methods
  or classes to override with delegates.
- DelegateClassAdapter and DelegateMethodAdapter do the work... see javadoc.

Change-Id: I0657cd929837181d81c65db7051d8ccbdc59c741
2010-09-29 14:45:20 -07:00
Ying Wang
1e57996f47 am 0e8dc464: am 292c246b: Merge "Call functions to calculate deps and classes.jar" into gingerbread
Merge commit '0e8dc464bdfa29785aab7be6343154fee361f6a0'

* commit '0e8dc464bdfa29785aab7be6343154fee361f6a0':
  Call functions to calculate deps and classes.jar
2010-09-28 17:38:19 -07:00
Ying Wang
0e8dc464bd am 292c246b: Merge "Call functions to calculate deps and classes.jar" into gingerbread
Merge commit '292c246b27319bc2195e2b3dbc3c3adea22db672' into gingerbread-plus-aosp

* commit '292c246b27319bc2195e2b3dbc3c3adea22db672':
  Call functions to calculate deps and classes.jar
2010-09-28 15:09:49 -07:00
Ying Wang
c486da4887 Call functions to calculate deps and classes.jar
Instead of hard-coding them.

Change-Id: Ia5818a1a69efb0964d5aa7de7e8d30ef04dfeccc
2010-09-28 14:33:58 -07:00
Xavier Ducrohet
cdde57ae5c Merge "Improve error reporting in the layoutlib class replacement test." 2010-09-28 10:59:46 -07:00
Xavier Ducrohet
e335914c7e Improve error reporting in the layoutlib class replacement test.
Change-Id: I451253ebb902171d67683784ef7a6de65588865d
2010-09-28 10:55:24 -07:00
Dianne Hackborn
cca1f0e347 Allow all apps to call ContentResolver.getType().
I can't find the bug number for this, but it is needed for some things
we are doing where the app building an intent may not have access to the
URI in the data field.  This is for HC, but doing in GB to avoid introducing
integration issues.

Change-Id: I0cac971854198b18775d2a73deb80f23431bfbe2
2010-09-27 18:05:44 -07:00
Dianne Hackborn
a8bce7c8ac am d8691d73: Merge "Allow all apps to call ContentResolver.getType()." into gingerbread
Merge commit 'd8691d73d158acd9ffc63748126e822afd656707' into gingerbread-plus-aosp

* commit 'd8691d73d158acd9ffc63748126e822afd656707':
  Allow all apps to call ContentResolver.getType().
2010-09-27 12:45:31 -07:00
Dianne Hackborn
8313fc7e94 Allow all apps to call ContentResolver.getType().
I can't find the bug number for this, but it is needed for some things
we are doing where the app building an intent may not have access to the
URI in the data field.  This is for HC, but doing in GB to avoid introducing
integration issues.

Change-Id: I0cac971854198b18775d2a73deb80f23431bfbe2
2010-09-26 21:31:47 -07:00
Raphael
dcc9dced33 am cb7c5498: am 91512f57: Layoutlib_create: Unittest for ClassHasNativeVisitor.
Merge commit 'cb7c5498709526e2a2367a7f36f83caf05be5f1a'

* commit 'cb7c5498709526e2a2367a7f36f83caf05be5f1a':
  Layoutlib_create: Unittest for ClassHasNativeVisitor.
2010-09-24 17:02:00 -07:00
Raphael
cb7c549870 am 91512f57: Layoutlib_create: Unittest for ClassHasNativeVisitor.
Merge commit '91512f579e7a1bf91d23254471ee47d3a88d342f' into gingerbread-plus-aosp

* commit '91512f579e7a1bf91d23254471ee47d3a88d342f':
  Layoutlib_create: Unittest for ClassHasNativeVisitor.
2010-09-24 16:43:28 -07:00
Raphael
91512f579e Layoutlib_create: Unittest for ClassHasNativeVisitor.
Change-Id: Id101bb3fc2644e450847e73c933cb6f616982f24
2010-09-24 14:04:04 -07:00
Dianne Hackborn
adaba84ad7 Merge "Work on fragments in layouts." 2010-09-21 22:17:52 -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
Raphael Moll
1ad0e9a1a2 am 98699c8f: am f2960b8d: Refresh the layoutlib_create doc.
Merge commit '98699c8fc44358d168183dae47e10758b2d1cb08'

* commit '98699c8fc44358d168183dae47e10758b2d1cb08':
  Refresh the layoutlib_create doc.
2010-09-21 20:21:43 -07:00
Raphael Moll
98699c8fc4 am f2960b8d: Refresh the layoutlib_create doc.
Merge commit 'f2960b8d66d7a20f590716f5e51160e77d0d1b24' into gingerbread-plus-aosp

* commit 'f2960b8d66d7a20f590716f5e51160e77d0d1b24':
  Refresh the layoutlib_create doc.
2010-09-21 18:58:14 -07:00
Raphael Moll
f2960b8d66 Refresh the layoutlib_create doc.
Change-Id: I43e92c33d824ace9edd77d90a1b36a5f69d85e7f
2010-09-21 17:39:35 -07:00
Romain Guy
1639351139 Make libhwui entirely optional.
The makefile variable USE_OPENGL_RENDERER must be set to true to compile
libhwui and the related code in the JNI layer.

This change also removes obsolete APIs from Canvas that must not be used
and would be confusing if left in. These APIs were remnants of our first
attempt at an OpenGL renderer for the view hierarchy and had not been
taken out before Android 1.0 was released.

Change-Id: I2475ff1307212bab26c926724f3c508681c7dae1
2010-08-08 17:45:07 -07:00
Xavier Ducrohet
80e62ac61c Fix the layoutlib Paint.set(Paint) method. Do not merge.
It would change the text rendering info but not recompute
the Java Font objects. The effect is a broken font rendering
in the EditText (which use this method to copy some Paint
object before using the copy for the actual drawing)

Change-Id: I9e7fbf9bd57b421fd793876a6de4ade1ecac372d
2010-07-19 10:19:49 -07:00
The Android Open Source Project
b5b37f3bcc am 3d02b48b: merge from open-source master
Merge commit '3d02b48bd95293c767563729264f007dbcff82b3'

* commit '3d02b48bd95293c767563729264f007dbcff82b3':
  Fix the layoutlib Paint.set(Paint) method.
2010-07-19 09:11:17 -07:00
The Android Open Source Project
3d02b48bd9 merge from open-source master
Change-Id: I84a8efc2d58476c72e84170c19dc692dc180b97d
2010-07-19 09:04:02 -07:00
Xavier Ducrohet
b8bb8ac5bb Fix the layoutlib Paint.set(Paint) method.
It would change the text rendering info but not recompute
the Java Font objects. The effect is a broken font rendering
in the EditText (which use this method to copy some Paint
object before using the copy for the actual drawing)

Change-Id: I6d8d1bf86f0d77d088f60ad81c71dd3ebab727b0
2010-07-16 16:46:39 -07:00
Joe Onorato
dcd077179c am 92a47ea3: am 562124e8: Merge "Clean up some style in the makefiles." into gingerbread
Merge commit '92a47ea3a7b82708e46c9d1710355f5e5fdd4f07'

* commit '92a47ea3a7b82708e46c9d1710355f5e5fdd4f07':
  Clean up some style in the makefiles.
2010-07-15 11:54:00 -07:00
Joe Onorato
80a60ba85b Clean up some style in the makefiles.
Change-Id: I993702808395f37c2e9d3c7e457d2952be51d795
2010-07-14 19:58:30 -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