745 Commits

Author SHA1 Message Date
Dianne Hackborn
e289bff0ec Add new landscape and portrait orientation features.
Updates aapt to know about these.  Also updates aapt badging to:

- No longer crash due to the change to how we match unspecified
configuration resources.
- Report the new "smallest screen" supported screen configs.
- Infer old screen size buckets based on new smallest width attrs.
- Report all of the different labels and icons in an app.

Change-Id: I7376042b817391bd070f549cebbc7f03be4635c8
2011-06-14 11:23:52 -07:00
Dianne Hackborn
f795e9a86d Okay *now* really enforce the limit on non-public styles.
Change-Id: Ie8df6acf7cc3dec00f615b2fa9a5122ec79a0aae
2011-06-09 16:17:53 -07:00
Dianne Hackborn
8821ba8606 Ummm... f*, stop breaking the build.
Change-Id: I6a42cb60e7cebda6d17222e6af1f327889323c40
2011-06-09 16:09:15 -07:00
Dianne Hackborn
426431adcc Enforce public resource restriction on bag parents.
Need to put some more styles in the SDK to avoid breaking apps.

Also, welcome Android 3.2.

Change-Id: Ia31d07c9b1b91ad868d8630437fdc1b5ae24f37d
2011-06-09 15:27:39 -07:00
Xavier Ducrohet
45b662e1bc Merge 06942bc4 from hc-mr1.
Layoutlib - use the new getParser callback when possible.

Change-Id: Idbb70f5391addd539afa5c2f5b55c70beefed223
2011-06-08 17:11:40 -07:00
Xavier Ducrohet
beb5fb622b Merge 988eeeb5 from hc-mr1.
Support for custom declare-styleable attr with enum/flag in layoutlib.

Change-Id: I10426a3f2c76bed207c03fab7885b4269337a70f
2011-06-08 17:10:11 -07:00
Xavier Ducrohet
fb93ce9684 Import the Layoutlib from hc-mr1.
This is squash commit of all the missing patches.

Change-Id: Ie081c46a173290646deddbde503a720d50c4400f
2011-06-03 19:38:14 -07:00
Dianne Hackborn
b96cbbd11c Add "tv" density for 720p screens.
Change-Id: I028969b007f2fceea66947d77a2ae31ef1d1a630
2011-05-27 13:40:26 -07:00
Jeff Brown
5b2b4d9c0a Improve VelocityTracker numerical stability. (DO NOT MERGE)
Replaced VelocityTracker with a faster and more accurate
native implementation.  This avoids the duplicate maintenance
overhead of having two implementations.

The new algorithm requires that the sample duration be at least
10ms in order to contribute to the velocity calculation.  This
ensures that the velocity is not severely overestimated when
samples arrive in bursts.

The new algorithm computes the exponentially weighted moving
average using weights based on the relative duration of successive
sample periods.

The new algorithm is also more careful about how it handles
individual pointers going down or up and their effects on the
collected movement traces.  The intent is to preserve the last
known velocity of pointers as they go up while also ensuring
that other motion samples do not count twice in that case.

Bug: 4086785
Change-Id: I95054102397c4b6a9076dc6a0fc841b4beec7920
2011-05-23 17:19:59 -07:00
Dianne Hackborn
e360bb6bd8 Add "television" mode.
Change-Id: Ida1fdb61b036a8b489dbeda196fb4bc82e651b2b
2011-05-23 15:11:08 -07:00
Dianne Hackborn
69cb87576b Add new "-swNNNdp" resource qualifier.
Change-Id: I0101e88ca9d8d44138bdcaf571f24b0352f4f6ce
2011-05-19 18:23:29 -07:00
Xavier Ducrohet
b18e700cb9 am aa0834e3: Merge "LayoutLib: support the new baseline/margin query API." into honeycomb-mr1
* commit 'aa0834e3e6c3ceef6f78e3e03d1d27046e5237a0':
  LayoutLib: support the new baseline/margin query API.
2011-05-18 17:40:08 -07:00
Xavier Ducrohet
05b7b69c6c LayoutLib: support the new baseline/margin query API.
Change-Id: I856489df655960820b8eaa4c6179515a5c069b00
2011-05-16 16:29:03 -07:00
Xavier Ducrohet
738c5e6072 am 2fae858d: LayoutLib: implement data binding for most AdapterView
* commit '2fae858db55fc6984ef923a6226b9408c37c72cb':
  LayoutLib: implement data binding for most AdapterView
2011-05-13 16:30:44 -07:00
Xavier Ducrohet
2fae858db5 LayoutLib: implement data binding for most AdapterView
Change-Id: I27be96ed2c37573eb22cfbb391d96b6137b3df8c
2011-05-13 15:55:49 -07:00
Dianne Hackborn
ebff8f92f1 DO NOT MERGE. Integrate add new screen width/height in "dp" configs.
You can now specify resource configuration variants "wNNNdp"
and "hNNNdp".  These are the minimum screen width/height in "dp"
units.  This allows you to do things like have your app adjust
its layout based only on the about of horizontal space available.

This introduces a new configuration change flag for screen size.
Note that this configuration change happens each time the orientation
changes.  Applications often say they handle the orientation change
to avoid being restarted at a screen rotation, and this will now
cause them to be restarted.  To address this, we assume the app can
handle this new config change if its target SDK version is < ICS.

Change-Id: I4acb73d82677b74092c1da9e4046a4951921f9f4
2011-05-12 18:39:51 -07:00
Xavier Ducrohet
515a08b018 Merge 59aad78e from master. do not merge.
LayoutLib: don't render when shader's local matrix is set to 0 scale.

Change-Id: I02c0ddd856026357f468dcc8b81e0520470118de
2011-04-07 12:02:31 -07:00
Xavier Ducrohet
c5aeac7f15 LayoutLib: Fix issue with rendering mode.
When the layout content is embedded inside a decor layout
to emulate system bar (top or bottom) and title bar (or action bar)
then the code computing the full required size based on the RenderingMode
would fail because the decor layout would prevents the content layout to
take as much room as possible.
There is also an issue with the way we know render dialogs as the
dialogs usually as a frame with some padding and the previous measurements
would not take into account the dialog padding when increasing the
screen size.

This fix makes the code measure the size of the content layout in the
normal rendering, and then separately from the root layout with the proper
MeasureSpec to let the content grown. The difference in size is then added
to the screen size.

Bug: http://code.google.com/p/android/issues/detail?id=15892

Change-Id: Ibb9ca2a67c6c450d10d9f9a8050536e094650f8b
2011-04-05 20:45:48 -07:00
Xavier Ducrohet
67450db03e LayoutLib: TypedArray.getDimensionPixelSize can actually return <0
Change-Id: I17853dc242e28f0c59916cad1b2a57beed480a57
2011-03-17 14:11:23 -07:00
Xavier Ducrohet
9d76581faf LayoutLib: Fix Arc rendering.
Looks like Java2D and Skia go in different directions for angles.

Change-Id: Ia0c9c70cd66c9a0941fa9921fecf8e4e83538af3
2011-03-14 15:12:21 -07:00
Xavier Ducrohet
adaa12cd9e LayoutLib: fix Capabilities and getDimensionPixelSize
Commented out a Capability that is not in ADT 10.

BridgeTypedArray.getDimensionPixelSize shouldn't call
getDimension since most of the code is duplicated, and
it prevents use from properly detecting malformed attribute
values.

Change-Id: I005b17061590dc0668729af16e896fad815f1973
2011-03-08 15:00:35 -08:00
Xavier Ducrohet
6f2fb57064 LayoutLib: Fix dimension parsing to handle negative value.
Also make TypedArray.getDimensionPixelSize properly
handle negative values (which are not allowed).

Change-Id: I960fc1c9e8ad97852d4a14e4f0f71a2c2034b4e7
2011-03-07 20:50:21 -08:00
Xavier Ducrohet
c12b409351 LayoutLib: Implement some missing add###() method in Path.
Change-Id: Ib62b5df0361ba81846483b1e5f8d7cbdbcb57d40
2011-03-07 20:19:38 -08:00
Dianne Hackborn
6482517101 Fix issue #3485923: Gmail crash
Allow application to try to recover if a surface OOM error
happens on the client side.

Change-Id: I0308bd99647a35e4bcac448340b7fc6330a828f6
2011-03-02 22:38:58 -08:00
Xavier Ducrohet
defdae61b1 Add notice files for aapt and aidl.
Change-Id: I51da138475618287760043059790aba87f4c3f35
2011-02-28 18:36:41 -08:00
Xavier Ducrohet
7719436342 am b732b7b5: am ce57a7f3: am 6504490c: am dff6b8e7: Merge "Add --non-constant-id to aapt."
* commit 'b732b7b5e8192501360edc15fb8c6399d11fb97d':
  GpsLocationProvider: Clean up HAL initialization/cleanup sequence
  Fixed GSM encoded network initiated position request
  Ensuring thread-safe usage of DateFormat.
  Fixing infinite loop for zero duration.
  Fix for an infinite loop while scrolling lists.
  WAPPushManager, WAP Push over SMS message handler
  Add --non-constant-id to aapt.
2011-02-28 10:15:48 -08:00
Xavier Ducrohet
b732b7b5e8 am ce57a7f3: am 6504490c: am dff6b8e7: Merge "Add --non-constant-id to aapt."
* commit 'ce57a7f35344e76689d30f45964d1e37b78280cb':
  GpsLocationProvider: Clean up HAL initialization/cleanup sequence
  Fixed GSM encoded network initiated position request
  Ensuring thread-safe usage of DateFormat.
  Fixing infinite loop for zero duration.
  Fix for an infinite loop while scrolling lists.
  WAPPushManager, WAP Push over SMS message handler
  Add --non-constant-id to aapt.
2011-02-28 10:10:38 -08:00
Xavier Ducrohet
ce57a7f353 am 6504490c: am dff6b8e7: Merge "Add --non-constant-id to aapt."
* commit '6504490cde3ec5d48321d539e654d1f2072b33f9':
  GpsLocationProvider: Clean up HAL initialization/cleanup sequence
  Fixed GSM encoded network initiated position request
  Ensuring thread-safe usage of DateFormat.
  Fixing infinite loop for zero duration.
  Fix for an infinite loop while scrolling lists.
  WAPPushManager, WAP Push over SMS message handler
  Add --non-constant-id to aapt.
2011-02-28 09:51:38 -08:00
Xavier Ducrohet
6504490cde am dff6b8e7: Merge "Add --non-constant-id to aapt."
* commit 'dff6b8e71dda9f5d841fa26408714aec2aef1505':
  GpsLocationProvider: Clean up HAL initialization/cleanup sequence
  Fixed GSM encoded network initiated position request
  Ensuring thread-safe usage of DateFormat.
  Fixing infinite loop for zero duration.
  Fix for an infinite loop while scrolling lists.
  WAPPushManager, WAP Push over SMS message handler
  Add --non-constant-id to aapt.
2011-02-28 09:16:38 -08:00
Xavier Ducrohet
a4510a7575 LayoutLib: fix incorrect indices in one of the 2 native_drawTextRun methods.
Fixes http://b.android.com/15007

Change-Id: Iff06180def92c5fa25e82520b76192c089edd8cc
2011-02-24 18:58:27 -08:00
Xavier Ducrohet
b052ecaa7e resolved conflicts for merge of 86e43034 to honeycomb-plus-aosp
Change-Id: Ia9ad4c3b79821fef6ab8493f4c93ca58f877f9ce
2011-02-24 17:19:38 -08:00
Xavier Ducrohet
db1acf52bb am 1175ef7e: Merge "LayoutLib: Adapt the HC layoutlib to GB. do not merge." into gingerbread
* commit '1175ef7e2e4f68532d8ade672d7f5502d9946ce4':
  LayoutLib: Adapt the HC layoutlib to GB. do not merge.
2011-02-24 16:21:41 -08:00
Xavier Ducrohet
86e43034a6 resolved conflicts for merge of a4350fc0 to gingerbread-plus-aosp
Change-Id: I065af5d555fa2197847ad47c84003dcd11fe26c7
2011-02-24 16:15:11 -08:00
Xavier Ducrohet
1911a6f781 LayoutLib: move tests to their own project.
Change-Id: I8a9e128e4a17ab57ec7b126a378035d9ce5bc168
2011-02-24 13:51:26 -08:00
Xavier Ducrohet
031d2f8b6d LayoutLib: Adapt the HC layoutlib to GB. do not merge.
Change-Id: I0b2016987a65fabbc0ce7011514543349e9fb929
2011-02-23 19:47:18 -08:00
Xavier Ducrohet
4b52ec49fe LayoutLib: Original import of Honeycomb's layoutlib. do not merge.
frameworks/base.git @ f0a53435f14d23d9555fc46014352ee6a7baa647

Change-Id: Ibc215751693dc7650683b61bb458f7c8beaf8060
2011-02-23 19:47:02 -08:00
Xavier Ducrohet
f0a53435f1 LayoutLib: Add debug mode.
Change-Id: If4263c7dba63a063f84e0c6988c270eb6d291ac3
2011-02-23 18:12:49 -08:00
Xavier Ducrohet
b2c7dd5986 LayoutLib: downsize the SparseArray when possible.
Change-Id: I570b93ab161414b7729f8d2dce8ddadb706f186b
2011-02-23 15:02:58 -08:00
Xavier Ducrohet
c6083f2c9e LayoutLib: misc fixes.
- implement some Paint methods that are needed for 2.x
- fix the phone system bar to display the icons on the right.

Change-Id: I3a938b14ec9a449dbc23a33303a3c8405a5369a8
2011-02-23 12:00:42 -08:00
Xavier Ducrohet
cc4977d0fd LayoutLib: Hold onto delegate references.
When an object is given a delegate to hold onto, keep
the reference to the delegate instead of its native integer.

Also change the way the finalizer works by not explicitely deleting
the delegate. Instead we want the delegate to be deleted when
nothing holds a reference to it. To do this, instead of using
a regular SparseArray, we use a SparseArray of WeakReferences.
Because the main Java object that "owns" the delegate does not
actually holds a reference to the delegate, we fake this by
having the delegate manager hold a reference to delegates for
the main object. This is added/removed as the object is created
and the native finalized is called.

This makes layoutlib behave more like the JNI code where the native
objects are reference counted, and where the Java object can be
deleted but the delegate it owns is kept around (usually because
another type of delegates hold a reference on it.)

To properly handle the WeakReferences, we need to be able to
regularly clear the SparseArray of WeakReference that were
referencing objects that have been GC'ed.
Since the SparseArray is regularly being compacted (actually only
when items are removed), we use a custom SparseWeakArray (started
as a straight copy of SparseArray) that handles the WeakReference
and takes care of compacting the array by removing deleted indices
and WeakReference that returns null. Since our specific use case
doesn't call actually delete() or remove(), the compacting
only happens when the array needs to be resized.

Change-Id: Iacc5c1ff5b21732b8816fda87eb090da12d034e0
2011-02-23 12:00:41 -08:00
Xavier Ducrohet
8cb6fc184d LayoutLib: Import of SparseArray as SparseWeakArray.
This is a straight copy for easy review of the customization.

Change-Id: I351ec570c3e7a025561939ab05c1ae7eded30b38
2011-02-23 12:00:41 -08:00
Jeff Brown
6f2fba428c Add new axes for joysticks and mouse wheels.
Added API on InputDevice to query the set of axes available.
Added API on KeyEvent and MotionEvent to convert keycodes and axes
to symbolic name strings for diagnostic purposes.
Added API on KeyEvent to query if a given key code is a gamepad button.
Added a new "axis" element to key layout files to specify the
mapping between raw absolute axis values and motion axis ids.
Expanded the axis bitfield to 64bits to allow for future growth.
Modified the Makefile for keyboard prebuilts to run the keymap
validation tool during the build.
Added layouts for two game controllers.
Added default actions for game pad button keys.
Added more tests.
Fixed a bunch of bugs.

Change-Id: I73f9166c3b3c5bcf4970845b58088ad467525525
2011-02-19 05:23:10 -08:00
Xavier Ducrohet
1ca584a2bb LayoutLib: remove assert in resource resolution.
These code paths were valid in case there's a mismatch
between the style/theme/version of Android

Change-Id: I8cb3b2a3f3a1ef5c37ccec0c8ddbb7add69bfbe0
2011-02-18 18:48:08 -08:00
Xavier Ducrohet
3e87bfa191 LayoutLib: support defStyleRes in obtainStyledAttributes.
This fix the Spinner rendering.

Change-Id: I20a71d9e07f6c86652a74fba3fc05a027a057ff8
2011-02-18 17:50:38 -08:00
Xavier Ducrohet
f20999965b LayoutLib: properly handle @null references in more places.
Change-Id: I240298ab79c19ab0e49cb6da19d6b0187493d3b5
2011-02-18 17:19:08 -08:00
Xavier Ducrohet
10df650f0d LayoutLib: add support for layout_only render.
Change-Id: I1cd791cf9560156c1ac488f8e454240c84e29cc6
2011-02-17 10:24:46 -08:00
Xavier Ducrohet
d06c1afbb9 Add --non-constant-id to aapt.
This option enbables creating resource constant in the R class
that are not actual constant, but simply static fields.

The goal is to build library projects with these types of
IDs so that the constant does not get inlined in the library
code, since the ID for the library resources only are not
the final values.

The final resource IDs, generated from the main project and
its library(ies), will have proper constant with the final
values.

This allows us to generate binary library bundle (a jar file
and associated resources) that can be distributed. Additionally,
this will let us make the library project support in Eclipse
much more robust and a better user experience overall.

Change-Id: Ibe2f08d68493fde658fc3f7606abf7446f312ad2
2011-02-14 17:06:19 -08:00
Xavier Ducrohet
559358fdf6 am 1858c95e: am 02d2b5a4: LayoutLib: When possible ensure parsers are popped from the stack.
* commit '1858c95e99f81ac46eea93288cb8866260b3d5d8':
  LayoutLib: When possible ensure parsers are popped from the stack.
2011-02-14 09:59:58 -08:00
Xavier Ducrohet
1858c95e99 am 02d2b5a4: LayoutLib: When possible ensure parsers are popped from the stack.
* commit '02d2b5a4031c80bfe1012ce2f4f7b3695762abd9':
  LayoutLib: When possible ensure parsers are popped from the stack.
2011-02-14 09:57:17 -08:00
Xavier Ducrohet
02d2b5a403 LayoutLib: When possible ensure parsers are popped from the stack.
Some parser consumers (seems to be mostly resource inflation)
don't use the pull parser up to the END_DOCUMENT tag, making
the parser not pop itself from the parser stack automatically.

This is likely due to the XML resources being very shallow (1-2 levels
max), and the inflater just reading the content that it expects instead
of parsing till the document is done.

This ensures that *some* parsers are pop'ed from the stack when
used. Some other parsers we don't really control and hope the
user will parse till END_DOCUMENT.

Change-Id: Ie1f5762983fed2b2ae97b896218ae12b493e7ad9
2011-02-14 09:42:19 -08:00