357 Commits

Author SHA1 Message Date
Jeff Brown
bc68a59c02 Report the external display size to the input reader.
The input reader needs this information so that it knows how to
interpolate touches on an external touch screen.

Changed Display so that it asks the WindowManager what the real
display size is (as opposed to the raw display size).  This means
it now takes into the forced display size set by
adb shell am display-size.

Replaced all calls to getRealWidth() / getRealHeight() /
getRealMetrics() in the WindowManager and replaced them with direct
usages of the mCurDisplayWidth / mCurDisplayHeight so that the WM
doesn't end up making a reentrant Binder call into itself.

Fixed the table status bar HeightReceiver so that it updates the
height on all configuration changes since it is possible that the
display size changed independently of an external HDMI display
being plugged / unplugged.

Improved the Display class documentation to make the distinctions
betweeen the various sizes clearer.

Change-Id: I3f75de559d3ebffed532ab46c4ae52c5e7f1da2b
2011-07-25 20:10:12 -07:00
Xavier Ducrohet
4f727fbdc3 am ed07215e: am 55775e5f: am e70b2b8f: am 9bcf26ea: Merge "Layoutlib_create flag -p: don\'t change all accesses to public."
* commit 'ed07215e482cae1ffedbba707284821b3afc310f':
  Layoutlib_create flag -p: don't change all accesses to public.
2011-07-25 17:24:56 -07:00
Xavier Ducrohet
ed07215e48 am 55775e5f: am e70b2b8f: am 9bcf26ea: Merge "Layoutlib_create flag -p: don\'t change all accesses to public."
* commit '55775e5f34af8d7c22ab3212c253b3a7d34a6f8a':
  Layoutlib_create flag -p: don't change all accesses to public.
2011-07-25 12:21:17 -07:00
Xavier Ducrohet
55775e5f34 am e70b2b8f: am 9bcf26ea: Merge "Layoutlib_create flag -p: don\'t change all accesses to public."
* commit 'e70b2b8fe0c265171f3a367a66c99b36c62567c7':
  Layoutlib_create flag -p: don't change all accesses to public.
2011-07-21 16:25:50 -07:00
Xavier Ducrohet
e70b2b8fe0 am 9bcf26ea: Merge "Layoutlib_create flag -p: don\'t change all accesses to public."
* commit '9bcf26ea7aa108ce4bf4e973b4774d3e60eebafe':
  Layoutlib_create flag -p: don't change all accesses to public.
2011-07-21 16:23:18 -07:00
Raphael Moll
caed59d90d Layoutlib_create flag -p: don't change all accesses to public.
Change-Id: Icb1709ed0cb275a5a51ca34030695a5e94091499
2011-07-19 22:36:13 -07:00
Xavier Ducrohet
af64556de0 Layoutlib: misc fix + start of AndroidBidi support.
Change-Id: If2ce0b683da8cce01679322d503eed8dd474e521
2011-07-19 15:10:23 -07:00
satok
91e88122cf Enable IMEs to set additional subtypes in background
Bug: 4591792

Change-Id: I7e61a576c56d1a3a56001bdf2fd51ad3801add01
2011-07-19 04:59:48 +09:00
Xavier Ducrohet
37b3cc3bbe am 9163a4a6: am aa4b1d8b: am d292d2a0: Merge 36a3a392 from mr1.
* commit '9163a4a686fc25fefc77d5b41c24a4538486a48e':
  Merge 36a3a392 from mr1.
2011-07-13 14:53:54 -07:00
Xavier Ducrohet
96131eef38 LayoutLib: updated fake accessbility manager and ensure there's an InputMethodManager
We had replaced the accessibility Manager but it lacked some new API. Obvisouly
this is fragile and should be fixed, but this works for now.

After fixing this there was another issue with the lack of InputMethodManager.
To fix this I had to create an implementation of IInputMethodManager which
normally comes from a binder object.

I may want to do a similar trick with the accessibility manager later.

Change-Id: I28c6494e333f39072f348d0199124efac93256a5
2011-07-12 12:35:50 -07:00
Xavier Ducrohet
0a49635b17 LayoutLib: Delegate for Display and IWindowManager implementation.
This allows ViewConfiguration to be properly implemented which is now
required for the rendering to happen.

Change-Id: I55629689fa8f5f874b43fcac2aa0789ce02d58f4
2011-07-12 11:49:22 -07:00
Xavier Ducrohet
77eaa10949 new button graphics for layoutlib.
Change-Id: I12a6bf9df87552321452ca3344449814cd3102bb
2011-07-11 14:40:48 -07:00
Xavier Ducrohet
9163a4a686 am aa4b1d8b: am d292d2a0: Merge 36a3a392 from mr1.
* commit 'aa4b1d8ba9d5e317b67638b764d92d17fb810aa0':
  Merge 36a3a392 from mr1.
2011-07-11 12:46:07 -07:00
Xavier Ducrohet
d292d2a031 Merge 36a3a392 from mr1.
Protect against OOB index in BridgeTypedArray.

Change-Id: I40be1e039f9eb36c182b6522bd50d6ed98e15b5c
2011-07-11 12:02:51 -07:00
Xavier Ducrohet
842725fc64 am 4d825e1f: Merge "Bring in more layout lib changes from hc-mr1." into gingerbread
* commit '4d825e1f3bb6b52ecbea6f0c4aa2081b7f1edc89':
  Bring in more layout lib changes from hc-mr1.
2011-06-28 18:55:46 -07:00
Xavier Ducrohet
9bce27a9ce am 4753498d: Merge "CherryPick 06942bc4 from hc-mr1. do not merge." into gingerbread
* commit '4753498d5c1ac3cf93b0730e77946a95b6913a82':
  CherryPick 06942bc4 from hc-mr1. do not merge.
2011-06-28 18:55:42 -07:00
Xavier Ducrohet
155cf6c1e1 am 9918ffb0: Merge "CherryPick 988eeeb5 from hc-mr1. do not merge." into gingerbread
* commit '9918ffb07f47430e22f6e53576d59b599f5a3534':
  CherryPick 988eeeb5 from hc-mr1. do not merge.
2011-06-28 18:53:54 -07:00
Raphael Moll
b02367778d am f9705ef6: am 2b5f2d01: am e2b41b0d: Merge "Laoutlib_creator: keep original of delegate methods."
* commit 'f9705ef6d3f1502991dd312bfdbfb93cb07fe672':
  Laoutlib_creator: keep original of delegate methods.
2011-06-23 14:30:25 -07:00
Raphael Moll
f9705ef6d3 am 2b5f2d01: am e2b41b0d: Merge "Laoutlib_creator: keep original of delegate methods."
* commit '2b5f2d01558ba338042f486c754f63873c4061fe':
  Laoutlib_creator: keep original of delegate methods.
2011-06-22 18:05:22 -07:00
Raphael Moll
2b5f2d0155 am e2b41b0d: Merge "Laoutlib_creator: keep original of delegate methods."
* commit 'e2b41b0d5c8db85a60cd190c7094052db61114b2':
  Laoutlib_creator: keep original of delegate methods.
2011-06-22 17:44:29 -07:00
Brian Carlstrom
98e1e18c1c Fix build.
git cherry-pick --no-commit  22a614142aacce13fc46a0e524dbfb6ca56bf237

Change-Id: I1409bc3dd1f1b3027c12355e8b6aeffa2d857c83
2011-06-22 11:35:11 -07:00
Xavier Ducrohet
e86c5b2e9f Merge "Add missing delegate to the layoutlib." 2011-06-21 12:19:07 -07:00
Brett Chabot
3523325159 Merge "Include testdata in layoutlib-tests." 2011-06-21 11:27:29 -07:00
Xavier Ducrohet
fc511683b6 Add missing delegate to the layoutlib.
Change-Id: I8de5c1093052c40c0cd327a4d02b01651d3b76b5
2011-06-21 11:03:29 -07:00
Raphael Moll
865c3bef54 Laoutlib_creator: keep original of delegate methods.
For specific methods, Layoublib_create can rewrite the implementation
of a method to invoke a delegate instead of the original code. This
allows layoutlib to implement native code or override existing behavior.

This patch also 'saves' the original implementation of a rewritten
method so that the delegate can access the original implementation
as needed. Obviously this is only done for non-native methods.

Given a non-native SomeClass.MethodName, we generate 2 methods:
- A copy of the original method named "SomeClass.MethodName_original".
  The content is the original method as-is from the reader.
- A brand new implementation of SomeClass.MethodName which calls to a
  non-existing method named "SomeClass_delegate.MethodName".
  The implementation of this 'delegate' method is done in layoutlib_brigde.

Change-Id: I5ca2cd3ac55991a8e8a51c417e75ee447bf9e9e6
2011-06-17 19:07:13 -07:00
Brett Chabot
01f0fd84d0 Include testdata in layoutlib-tests.
Change-Id: I79fff895a13d171079b59db54d4b9d2bec555b3c
2011-06-17 17:03:20 -07:00
Xavier Ducrohet
ea5f0d0543 Bring in more layout lib changes from hc-mr1.
fe051bb2 : Change the way the layoutlib instantiate its XmlPullParser.

A lot of the init code was duplicated so I made a ParserFactory class.

Also created an extension of the KXmlPullParser to override toString().
This allows easier debugging when dealing with multiple parsers (which
is always the case).

Also added some (disabled) debugging printf to deal with parser stack
as it can be tricky figuring out which parsers are in the stack at
which point.

8969147c : Fix case where the int[] attrs doesn't directly match a styleable.

In the case of the FastScroller the int[] is a custom mix of attr
instead of a int[] that exists as R.styleable.foo.

This makes our reflection based mechanism used to find the styleable
fail, so instead we search for each attribute separately (like
we probably should have done from the beginning).

0c264b35: Fix various cases of getDimension to report error if unit is missing.

if getDimention###() is called for a string that has no unit,
then an error is output through LayoutLog, but the rendering keeps
going by using dp as a default.

0beb7eea: Make (Bridge)TypedArray.getInteger() call out to getInt()

Only getInt() resolved attribute flags/enum and I'm not sure why
there's two to begin with.

Change-Id: I015111263d2a2bee76834978ae71eef79defdae3
2011-06-16 18:26:25 -07:00
Xavier Ducrohet
d6465e10c2 CherryPick 06942bc4 from hc-mr1. do not merge.
Layoutlib - use the new getParser callback when possible.

Change-Id: I72b867aa573fcc07d610f139da3c90b1b654633c
2011-06-16 18:26:25 -07:00
Xavier Ducrohet
6b62c82848 CherryPick 988eeeb5 from hc-mr1. do not merge.
Support for custom declare-styleable attr with enum/flag in layoutlib.

Change-Id: I8a5b7cc629d61996ffade9aabd9d4d10961eb411
2011-06-16 18:26:24 -07:00
Xavier Ducrohet
9340ab4a21 am 0be8522b: am d1abd94f: am 04ce8111: Bring in more layout lib changes from hc-mr1.
* commit '0be8522b430aca8d90023d7c7e5ef510aa48adc7':
  Bring in more layout lib changes from hc-mr1.
2011-06-16 14:04:18 -07:00
Xavier Ducrohet
04ce811131 Bring in more layout lib changes from hc-mr1.
fe051bb2 : Change the way the layoutlib instantiate its XmlPullParser.

A lot of the init code was duplicated so I made a ParserFactory class.

Also created an extension of the KXmlPullParser to override toString().
This allows easier debugging when dealing with multiple parsers (which
is always the case).

Also added some (disabled) debugging printf to deal with parser stack
as it can be tricky figuring out which parsers are in the stack at
which point.

8969147c : Fix case where the int[] attrs doesn't directly match a styleable.

In the case of the FastScroller the int[] is a custom mix of attr
instead of a int[] that exists as R.styleable.foo.

This makes our reflection based mechanism used to find the styleable
fail, so instead we search for each attribute separately (like
we probably should have done from the beginning).

0c264b35: Fix various cases of getDimension to report error if unit is missing.

if getDimention###() is called for a string that has no unit,
then an error is output through LayoutLog, but the rendering keeps
going by using dp as a default.

0beb7eea: Make (Bridge)TypedArray.getInteger() call out to getInt()

Only getInt() resolved attribute flags/enum and I'm not sure why
there's two to begin with.
2011-06-16 13:23:53 -07:00
Xavier Ducrohet
66743a1ec0 Fix changed native method delegates in layoutlib for ICS.
Change-Id: I49306868cd8a41b6b7d919c3e8b108d5c014530e
2011-06-15 14:43:42 -07:00
Xavier Ducrohet
2dcb6e80b9 am 48305f32: am 2e0f7118: am 8ee28811: Merge changes Idbb70f53,I10426a3f into honeycomb-mr2
* commit '48305f327ff3839ddbfa5a6fb42a57150a69480c':
  Merge 06942bc4 from hc-mr1.
  Merge 988eeeb5 from hc-mr1.
2011-06-10 10:31:52 -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
f18e311ee5 am abc83871: am f6e47999: am 2a6dc7f1: Merge "Import the Layoutlib from hc-mr1." into honeycomb-mr2
* commit 'abc838716816107754ab0479242d03807ce79fc2':
  Import the Layoutlib from hc-mr1.
2011-06-07 17:17: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
Xavier Ducrohet
156a211b21 Cherrypick d1ed33c4 from hc-mr1. do not merge.
Fix zombie threads in the Layoutlib.

Some widgets can create (indirectly) HandlerThread which are started
but never stopped.

This patch use the delegate methods to override the thread run method
to record which threads are started to be able to call quit() on them
after a render.

Note that we should really fix layoutlib_create to be able to call
the default implementation from a delegate to remove code duplication.

Change-Id: Iaf5432623e9704bb3114a8e0583c8553282c205e
2011-06-03 18:37:09 -07:00
Xavier Ducrohet
21726044a9 Cherrypick 5b61ea6b from hc-mr1
Fix drawCircle in layoutlib.

Change-Id: I035c48b925cad246ed821e9e59a93d37174982ef
2011-06-03 16:02:12 -07:00
Xavier Ducrohet
f174cd86bd LayoutLib: enable the LAYOUT_ONLY capability.
Change-Id: Ib302af47d2a83a7ac3def6256bf0b892823f594f
2011-06-02 16:38:38 -07:00
Xavier Ducrohet
8f17523dca Merge dba35f1b from honeycomb-mr1. do not merge.
Change-Id: Iebda5ea67fd40cac76a8ca3fe3c3cd4ee95ddebe
LayoutLib: Properly configure KXmlParser to read UTF8
2011-06-01 18:32:57 -07:00
Xavier Ducrohet
34f5991ebe Merge 6103e22c from honeycomb-mr1. do not merge.
LayoutLib: custom styles override the default style instead of replacing it.

Intead of reading either the custom or the default style for a widget, we
read both and use the values from the custom style if it exists, or
from the default style otherwise.

Change-Id: Ibcec2e9b1e8a95295ab26ede145c287ff2f30be4
2011-05-24 10:55:30 -07:00
Xavier Ducrohet
c7b87766b2 Merge 2402ad60 from honeycomb-mr1. do not merge.
LayoutLib: Fix Canvas_Delegate.native_concat().

Change-Id: I863c43d65a929816ac7c9e69addcc647dac1878b
2011-05-23 17:51:22 -07:00
Xavier Ducrohet
4c1e73b69a Merge e57aa434 from honeycomb-mr1. do not merge.
LayoutLib: Fix issue where <include> with no layout params wouldn't display.

The issue is that the layout params from the root element of the included
layout should be used but this failed because loading the layout params
from the <include> tag didn't throw a RuntimeException in our modified
code (BridgeTypedArray).

Because we don't want to throw exception in general we only throw it
when reading the layout params of an include node which is pretty crappy,
but works for now.

Change-Id: I83ccf956e8b476f34dfc9a70aebae2288d53746e
2011-05-20 14:50:45 -07:00
Xavier Ducrohet
d9af22e204 Merge 05b7b69c from honeycomb-mr1. do not merge.
Change-Id: I1aca5774dec2e18ab5f9e860f6fd90b481b2857c
LayoutLib: support the new baseline/margin query API.
2011-05-19 16:52:41 -07:00
Xavier Ducrohet
e172a3fc23 Merge 2fae858d from Honeycomb-mr1. do not merge.
Change-Id: I648f9ffa9745331ce4104dc4772f78ed933a4909
LayoutLib: implement data binding for most AdapterView
2011-05-19 16:52:29 -07:00
Xavier Ducrohet
9f23e60b20 am a13462a9: am 582841e7: am b18e700c: am aa0834e3: Merge "LayoutLib: support the new baseline/margin query API." into honeycomb-mr1
* commit 'a13462a947e634a6893119146a7271369e509586':
  LayoutLib: support the new baseline/margin query API.
2011-05-19 08:58:18 -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
8c2f85d941 am d0054160: am 6d040a7f: am 738c5e60: am 2fae858d: LayoutLib: implement data binding for most AdapterView
* commit 'd00541603fbbb4e38264e75a2b6abf8705efeb49':
  LayoutLib: implement data binding for most AdapterView
2011-05-13 16:43:37 -07:00
Xavier Ducrohet
2fae858db5 LayoutLib: implement data binding for most AdapterView
Change-Id: I27be96ed2c37573eb22cfbb391d96b6137b3df8c
2011-05-13 15:55:49 -07:00