1149 Commits

Author SHA1 Message Date
Deepanshu Gupta
1a10ca7e52 Correct PorterDuff filters.
1. Remove unused modes - makes the class more manageable, and missing
modes can always be readded from the git history.
2. Reuse the existing BlendComposite instances where possible.
3. Fix incorrect alpha computation for multiply mode.
4. Change the alpha computation for all blend modes to compenstate for
the fact that the color filter image that we create extends beyond the
image it is inteded to be applied to.

Change-Id: Iedebf289a23325ee4c6d406dcad46a9edb1855c7
2015-02-26 15:02:16 -08:00
Deepanshu Gupta
68501b87d2 Better error msg for StateList/Hexadecimal Color.
Throw a better error message when resolving a hexadecimal color value
but the user gave a Color State List. The two are easy to confuse since
the only way to distinguish between the two is to look at the
definition.

Bug: http://b.android.com/70110
Change-Id: Ic78962bd0674a92296a0fdd0de184cfe4d85a8e4
2015-02-23 12:00:38 -08:00
Deepanshu Gupta
ad879adb65 Merge "Add Asset management support for fonts." into lmp-dev 2015-02-13 22:34:36 +00:00
Diego Perez
0dfba38010 Do not paint shadow if outside of the clip area
Change-Id: I064ccc1d1b206a29d9d0db1384782cb5dd5c65ca
2015-02-04 11:57:20 +00:00
Deepanshu Gupta
d51834bdfa Add Asset management support for fonts.
Change-Id: I10ca67dcffe244667d4ae0bda65dbc1aa6691d50
2015-02-03 19:00:43 -08:00
Deepanshu Gupta
224e931fed Limited AppCompat support
Change-Id: I4ac7234c9533b9f47f070335c4cb6ae605d8a89f
2015-01-28 11:32:30 -08:00
Deepanshu Gupta
b6864ac6cd Resource resolution fixes.
1. Some dynamic ids weren't created and resulted in ResourceNotFound
exceptions.
2. Prevent NPE if a style attribute (eg. style="?attr/foo"), which
cannot be resolved, is resolved. This effectively, also results in
making it harder to catch misconfigured themes. However, support
library does it, and we don't want to throw errors when the library is
working as intended.

Change-Id: I731d8fb9209eb72b464d235d1072d416e132970b
2015-01-15 15:25:49 -08:00
Deepanshu Gupta
ca67a24929 am bb600de6: am 74147527: am 8505c387: Special case AppCompat to show action bar.
* commit 'bb600de6e7c5c7a0a1d4b872d2ee100ccc353213':
  Special case AppCompat to show action bar.
2015-01-10 03:51:05 +00:00
Deepanshu Gupta
bb600de6e7 am 74147527: am 8505c387: Special case AppCompat to show action bar.
* commit '74147527357b9abd9d30b3a2dbd72a5172a35625':
  Special case AppCompat to show action bar.
2015-01-10 02:16:44 +00:00
Deepanshu Gupta
dbd64f7c90 Support Locale.toLanguageTag on Java 6
Change-Id: I255e79e2c288cd24b350b7c26128bbbb0b2cb9a3
(cherry picked from commit 5cd9dde5a2a77c5095f985186d8f03147fd22870)
2015-01-09 17:43:12 -08:00
Deepanshu Gupta
8505c3870a Special case AppCompat to show action bar.
Bug: http://b.android.com/78944
Change-Id: I02d68d592d812016744716f99376cfefd519b21b
2015-01-10 00:29:52 +00:00
Deepanshu Gupta
d657b14927 Fix tests on jenkins, take 2.
Change-Id: I67386c34a7abd7c3afdf9f0768f36f4786399be0
2015-01-07 11:22:22 -08:00
Deepanshu Gupta
48603a39d4 Fix tests on jenkins
When the tests are run on the build server, they are run from the jar,
as opposed to the extracted build, which is default when run from an
IDE. Thus, when class.getResourceAsStream() is called with ".." in the
path, it is not resolved properly. This change explicitly resolves the
relative path, so that the test is run properly on the server.

Change-Id: Ib5fabd617dca4052220e5173a8bf4fb4234254ff
2015-01-06 17:32:26 -08:00
Deepanshu Gupta
58df125bbc Add image comparison to LayoutLib tests.
The LayoutLib rendering tests now compares the rendered image with a
golden file from a previous execution. This will help catch any
unexpected changes in the final rendering.

Change-Id: I80251a778e89df7d7ec13863a8f299967f3d747d
2015-01-05 11:32:41 -08:00
Deepanshu Gupta
eae390a94e Add DatePicker, CalendarView to LayoutLib tests
Change-Id: Ice8c41ff90ccb0ffe90fcbfcccc91ea24225a3d9
2015-01-02 11:20:19 -08:00
Deepanshu Gupta
e64a5bd2fb Fix DatePicker rendering.
1. Return AccessibilityManager service from context.
2. Don't throw an exception if no style specifited in
obtainStyledAttributes. Specifying no style is valid and it's supposed
to use the default theme in that case.

Bug: http://b.android.com/82712 and http://b.android.com/79218
Change-Id: Iba7097f36996e4d6f1e9db778dc73294f2854c79
2014-12-29 12:29:16 -08:00
Deepanshu Gupta
0ff4568ca0 Make Preference-cookie map non static.
Moved the map from Preference to View Cookie to BridgeContext. This
means the map need not be static anymore.

NO_SQ: Depends on unsubmitted changes.
Change-Id: I662513def17bd6ec3a2646c3bec9bf4f9f89fc15
2014-12-23 12:04:30 -08:00
Deepanshu Gupta
dfeffd4c0a Fix default initial value for preferences
NO_SQ: Depends on unsubmitted changes.
Change-Id: I061cf71f6167d382e9ef060abeb4d5cff83c4104
2014-12-23 12:04:30 -08:00
Deepanshu Gupta
10bb1371dc Add preferences rendering.
NO_SQ: Depends on updating layoutlib-api-prebuilt.jar
Change-Id: Iae93ab74c478e6f2158e1528467bec9ee2d7ee9b
2014-12-23 12:04:30 -08:00
Deepanshu Gupta
5ceb7f6431 Ensure that RandomAccessFile is not leaked.
This change ensures that RandomAccessFile is always closed. Also, it
changes the BufferIterator implementation to delegate to the byte buffer
directly instead of mainitaining the position itself.

Change-Id: I8f93e80c91a7c35e6a7fb015185b8b11e36b6286
2014-12-02 14:24:36 +05:30
Deepanshu Gupta
17a6170c62 Fix AnalogClock rendering
1. Change calls to java.lang.System.log* since they don't exist on the
host.
2. Clean up method rewrite mechanism in ReplaceMethodCallsAdapter.
3. Stub out creation of uninitialized GregorianCalendar.
4. Memory map the time zone data base file and provide a custom
implementation of BufferIterator for use by ZoneInfoDB
5. Delete unused Time_Delegate

Also fixed a comment in BridgeAssetManager and an error message in
FontFamily_Delegate.

Bug: http://b.android.com/79160
Change-Id: Iae5ef65678f0e6c7c5af520c45bd15980ce3fa55
2014-11-26 12:03:39 +00:00
Deepanshu Gupta
cb09bc45c5 Fix typos in previous bugfixes.
The commits 2c9fbdd and 12b6d29 introduced minor bugs. This change fixes
them.
2014-11-20 13:35:47 +00:00
Deepanshu Gupta
4104abf875 Merge "Fix setTextAppearance for styles with dots." into lmp-dev 2014-11-19 22:30:20 +00:00
Deepanshu Gupta
2c9fbdd29c Fix setTextAppearance for styles with dots.
Bug: http://b.android.com/78842
Change-Id: I65923134b2d3812030e2b7dd8ab96363b0647c1f
2014-11-18 22:52:10 +00:00
Deepanshu Gupta
12b6d29b7b LayoutLib: Stub AM/PM keycodes in Time Picker.
TimePickerSpinnerDelegate doesn't need to deal with input when running
inside LayoutLib. So, we just return the keycodes as if it's running in
English locale.

Bug: http://b.android.com/79189
Change-Id: Ife0ae91a1e34a8dac379bc1dda1c1c8ed461c164
2014-11-18 22:02:40 +00:00
Deepanshu Gupta
2c5cddbd07 Don't skip loading object animator.
This is used by Buttons as part of StateListAnimator.

Change-Id: Id370869e71898d46e11bbd17ad31169c9f9f5274
2014-11-11 15:21:19 +00:00
Deepanshu Gupta
8657baa06d Fix setting styles in custom views.
Bug: http://b.android.com/78842
Change-Id: I5d4571d94d96b00419acc258c9e2b519367b689d
2014-11-10 20:10:55 +00:00
Deepanshu Gupta
796e9b7f99 Add primitive shadows support to LayoutLib
The shadows rendered are not the same as rendered by the framework. The
main purpose of the shadows here is let the user know when shadows will
be cast.

Currently rectangular shadows are available in only two intensities. Any
elevation below 10dp uses one shadow and any elevation over 10 dp uses
the other.

Also, even though the code for arbitrary shapes exist, it doesn't quite
work yet. No shadows are visible when that code is run.

Change-Id: Ie8235ffccf1d3809713f5d8f82afde434817d6b2
2014-11-07 22:26:11 +00:00
Deepanshu Gupta
9173c8a2e9 Remove needlessly thrown IOException.
Change-Id: If34986367554c98f96f6f9a1088f5e25077a1be1
2014-11-06 11:43:37 -08:00
Deepanshu Gupta
9b64954cb5 Merge "Fix BridgeContext.get*ResourceValue()" into lmp-dev 2014-11-03 23:15:03 +00:00
Deepanshu Gupta
c23487aa18 Merge "Support framework menus in ActionBar" into lmp-dev 2014-11-03 23:14:46 +00:00
Deepanshu Gupta
84a89ed0f5 Merge "Use the right layout for inflating Action Bar." into lmp-dev 2014-11-03 23:13:15 +00:00
Deepanshu Gupta
9fa48b09ad Fix BridgeContext.get*ResourceValue()
getFrameworkResourceValue() and getProjectResourceValue() never really
returned the defValue passed to them, instead creating a new id for
non-existent resources. We now checks for the existence of the resources
before trying to obtain the id.

Change-Id: Ie3103ba32af6186651a5f77c27d1efc33dc2bcc7
2014-10-30 12:18:56 -07:00
Deepanshu Gupta
df0ebab0f9 Support framework menus in ActionBar
Add support for adding menus in the framework namespace to the ActionBar
preview. If a menu id name begins with the android namespace prefix
(android:) we find the framework menu and render it.

Change-Id: If52910b46154591883af2b2f357e72eea6f84235
2014-10-30 11:58:37 -07:00
Deepanshu Gupta
0bffc736e1 Use the right layout for inflating Action Bar.
The choice of Action Bar layout depends on the theme. This also affects
the widget used to render the Action Bar.

Bug: http://b.android.com/77853
Change-Id: I6219a02853b4cd207a6125a5ed96fa5d16699460
2014-10-30 11:58:37 -07:00
Deepanshu Gupta
617e809731 Add missing delegate for AnimatorInflater.
Change-Id: I96ef2b1085dadfae280df6740aebc10f57e3b949
2014-10-28 18:47:28 -07:00
Deepanshu Gupta
75bf1b1c6a Merge "Skip loading animations." into lmp-dev 2014-10-29 00:13:54 +00:00
Deepanshu Gupta
c55eb170cc Merge "Fix multiple styles case in resource resolution." into lmp-dev 2014-10-29 00:07:59 +00:00
Deepanshu Gupta
92a52142fd Merge "Use right theme for drawable inflation." into lmp-dev 2014-10-29 00:07:42 +00:00
Deepanshu Gupta
0b42936d86 Skip loading animations.
This is a temporary fix until Path.approximate() is supported.

Bug: http://b.android.com/77865
Change-Id: I28739e58f51fabaaf1dcc1c9be61cd0b17e84eec
2014-10-28 15:07:25 -07:00
Deepanshu Gupta
b6444c4309 Fix multiple styles case in resource resolution.
When multiple styles are applied to a theme, we only remembered the last
one. This change fixes the issue.

Change-Id: I46490e882edc3eabe522a641c83366234b5bb25d
2014-10-28 11:11:10 -07:00
Deepanshu Gupta
4a605c6fa0 Use right theme for drawable inflation.
The theme information was lost when inflating drawables. As a result,
drawables inflated in the ActionBar did not have the right tint.

Change-Id: I13d5c78039e35085ed4902289fcb735bb15d972e
2014-10-28 11:11:09 -07:00
Deepanshu Gupta
b69ec7708b Check Bridge init before disposing.
In some cases ADT may dispose the Bridge even before init is called on
it. This caused an NPE. Fixed this by checking for the initialization
before disposing resources.

Bug: http://b.android.com/77726
Change-Id: I741d6ea3595a3b7cb816abd0417f23aecca6370e
2014-10-20 11:12:53 -07:00
Deepanshu Gupta
11b14e3996 LayoutLib: Use ICU's line break algo. [DO NOT MERGE]
Change-Id: I7e5b0ab7423a72f5a4b0e1163d0a537f0b03ba07
(cherry picked from commit 760f6394d0f65fbb5365186e8e068d53c506b653)
2014-10-08 02:05:05 +00:00
Deepanshu Gupta
3c8140ab4b Minor style changes.
Addressing code review comments on previous change: 171804201dd

Change-Id: I2c9e0ce35e755c23d8292749828d15a87109d6dc
2014-10-02 11:45:07 -07:00
Deepanshu Gupta
409bd3d774 Resource resolution bug fix. [DO NOT MERGE]
Fix a bug where "?attr/foo" in framework resources wasn't resolved
properly.

Change-Id: I9a56974f526774fde79685f668f01021136d68f1
(cherry picked from commit 19c7842082d831ad432abe906f4c37c6ed08e414)
2014-10-01 12:45:26 -07:00
Deepanshu Gupta
fea51feb5c Fix Tests after cherry picks. [DO NOT MERGE]
1. Updated the intelliJ run configuration for the layoutlib_create tool.
2. Updated the code to search for the platform.dir.
3. Update tests to use AppTheme and Target SDK 19

Change-Id: I6f1cc6ff2a53e4474c746537029c7f89c6dd6dc1
(cherry picked from commit 8592eeafd01370d1a17e34602290becf7f611c75)
2014-10-01 12:44:24 -07:00
Deepanshu Gupta
6fb5fdc233 Add layoutlib tests to DIST_DIR [DO NOT MERGE]
Add the layoutlib and layoutlib-create tests to DIST_DIR for sdk
targets. These can be used for continuous testing on the build server.

Change-Id: I747dddcddfd8009937668bec4d75cb99bf63235f
(cherry picked from commit f9c749c9901c459f77ffc6f4fbbc15f4142c6e0a)
2014-10-01 12:43:52 -07:00
Deepanshu Gupta
3f0e467a06 Remove ANDROID_BUILD_TOP from intelliJ path variables. [DO NOT MERGE]
The variable is not actually needed and it makes working with different
API levels a lot easier since everything now depends on $PROJECT_DIR$.

This change also makes the tests more robust by improving the way it
tries to find the SDK.

Change-Id: I3502ad4a0ba85fd88b497e47964fddb2a89e520c
(cherry picked from commit 5377695d4ecf3cc6dc1abe59bbfca63f6137b722)
2014-10-01 12:43:32 -07:00
Deepanshu Gupta
2f3715aaaa Get filename from File faster [DO NOT MERGE]
Use the direct call from a File object to get the filename instead of
going through Path which depends on Java 7 making the LayoutLib tests
incompatible with Java 6.

Change-Id: I815895eedbc10245ee09bdb53b11e5548b076aad
(cherry picked from commit 7dbf91fee96790fbeb9858740be1bb375f29ecb5)
2014-10-01 12:43:19 -07:00