2082 Commits

Author SHA1 Message Date
Deepanshu Gupta
b318ff54fc Make DatePicker rendering not fail (style search fix). [DO NOT MERGE]
Only cherry picked for the style not found fix.

Change-Id: Ied2b71de5b32bcb640bf4ec445e8a39509f800e9
(cherry picked from commit d5b82845450beac2d3c7db9cd80e9fc34d43a297)
2015-08-25 12:06:44 -07:00
Deepanshu Gupta
cc5e69e4fe Inject anonymous inner classes of injected classes [DO NOT MERGE]
When injecting classes in LayoutLib (eg. CreateInfo), so that LayoutLib
can refer back to the changes, also inject the anonymous inner classes.
Without this, the injected classes are not loadable. Although, LayoutLib
itself doesn't load these classes, but some tests do.

Change-Id: Ib5f6b779ef4d79dec8d614d3dbb26eeac88a1064
(cherry picked from commit bfc9c3bcbe3b7056d3330f754811c1506f181b88)
2015-08-25 12:06:44 -07:00
Deepanshu Gupta
d7e89906a4 Update platformDir search in tests. [DO NOT MERGE]
When trying to find the SDK Platform Dir for LayoutLib tests, also
test if the dir from which the tests are run is module dir.

Change-Id: Id5c6038d07ebbb122e38f907ad488ed1f2bcde32
(cherry picked from commit 612a05e7e15184b21437731b9aa5db2d1d4fc54c)
2015-08-25 12:06:43 -07:00
Deepanshu Gupta
afedbc47b3 Make Context.getClassLoader() work. [DO NOT MERGE]
Context.getClassLoader() is used by the LayoutInflater and can be used
by custom views. However, when called from the LayoutInflater, this
needs to return only the Framework classes. This is so that the IDE gets
a chance to instantiate the custom views, which helps in better error
reporting and better fallback in case of exceptions, like MockView.

To workaround this need of the same method returning different results
based on where it's called from, the method call in LayoutInflater is
renamed to getFrameworkClassLoader() and the new method is injected in
Context. The implementation of getFrameworkClassLoader() maintains the
existing behaviour of getClassLoader().

Context.getClassLoader() is now modified to return classes from both
Framework and the app namespace.

Also, update the list of packages to search for Framework views.

Change-Id: I1a6be4aa1fc5c1c5520b5440a348a52f10b6eb3b
(cherry picked from commit f8ea750455eec81e4e6d877b3e18e29a86d4ec95)
2015-08-25 12:06:43 -07:00
Deepanshu Gupta
92480a9ad8 Fix include tag rendering. [DO NOT MERGE]
A missing catch clause caused rendering to be failed when there is an
include tag that doesn't specify layout_width and layout_height. Also
improve the error messages to make debugging easier next time.

Change-Id: I617762636973a010b34da167c7b5fcd328b7d178
(cherry picked from commit 21b564573327b1ed2f7e06146b8a01c47ede3089)
2015-08-25 12:06:42 -07:00
Deepanshu Gupta
f6b0854745 Show better error message for color attr not found. [DO NOT MERGE]
Change-Id: I1ca32989522d30fec336eb607ee81f9e5cb5f48f
(cherry picked from commit 5f1bf496948fb6383ae17e5467a26a00489d7564)
2015-08-25 12:06:42 -07:00
Deepanshu Gupta
b1370c2687 Fix build: udpate parser factory method [DO NOT MERGE]
Change-Id: I78ad55bc924427b44451ec32fbd1032d6cd77544
(cherry picked from commit 3dc19883c571a829c36aa603c04a55c91b00dd57)
2015-08-25 12:06:41 -07:00
Deepanshu Gupta
aa72988955 Don't keep LayoutlibCallback reference. [DO NOT MERGE]
Switch to the newer API that enables keeping a reference only to the
ParserFactory which is a much leaner object as compared to
LayoutlibCallback.

 Conflicts:
	tools/layoutlib/bridge/tests/src/com/android/layoutlib/bridge/android/BridgeXmlBlockParserTest.java

Change-Id: I9b7afd93226db23786a00b2951cbf5ae5b8f3e5f
(cherry picked from commit f2d408b51debadca830eefbf8131185ac55ce699)
2015-08-25 12:06:41 -07:00
Deepanshu Gupta
5c90c4f459 Remove kxml dependency [DO NOT MERGE]
Create XmlPullParser using callback provided by the client. This enables
clients to choose which XmlPullParser implementation they want.

Change-Id: I9ad97a4777820cdbe5c8fc3716f74ddec9065c70
(cherry picked from commit 78af25584633462e4ab8cf9bafe10f43e7cb2d83)
2015-08-25 12:06:30 -07:00
Filip Gruszczynski
ad98eeb16c Fix build.
Change-Id: I4be1b58cb5348ffe8b6dd5b1a2c612de737d0d91
2015-08-19 15:12:11 -07:00
Diego Perez
6a199fd543 am e56287ed: am 62db64f4: am 83ec22a8: am af8c19e7: am 7d85b543: Merge "Make DelegateManager thread safe" into mnc-dev
* commit 'e56287edcd564f2dfa57c0a9f6fe829f20c22377':
  Make DelegateManager thread safe
2015-08-11 21:18:19 +00:00
Diego Perez
e56287edcd am 62db64f4: am 83ec22a8: am af8c19e7: am 7d85b543: Merge "Make DelegateManager thread safe" into mnc-dev
* commit '62db64f4f3bf93ee25cc54b74f906e74db2dbf1c':
  Make DelegateManager thread safe
2015-08-11 21:11:34 +00:00
Diego Perez
7d85b5435d Merge "Make DelegateManager thread safe" into mnc-dev 2015-08-11 20:44:40 +00:00
Deepanshu Gupta
847b0d3ad2 Revert "LayoutLib: Switch SimpleDateFormat to icu."
This reverts commit b556decf75b2b084e1aed54ac7fa23a141eedb7f.

This is no longer needed as the SimpleDateFormat has been switched in
the framework. Also, the revert leaves the change to intellij inspection
profiles as is, because that change was independent of the main issue.

Change-Id: I6f4d7d9ddc10262b087ad6a2604fa50562fac043
2015-08-07 10:31:54 -07:00
Diego Perez
511e48728a Make DelegateManager thread safe
We have been seeing crashes on the Theme editor related to an assertion
on getDelegate when the object does not exist
(http://b.android.com/181951).
When debugging, the crash was happening without seeing a previous call
to removeJavaReference. This seems to completely remove that crash.
Since the DelegateManager can be called at least from two threads
(main thread and the finalizer), it should be thread safe.

Bug: http://b.android.com/181951
Change-Id: I1b28f863ff198f8592f170a98f9de391b2ac3ea2
2015-08-07 11:24:38 +01:00
Deepanshu Gupta
12985e04c6 am 3a133801: am c344ac57: am fbdf2032: am cfe5778d: am 8f26616d: Merge "LayoutLib: Switch SimpleDateFormat to icu." into mnc-dev
* commit '3a133801776fd51342cf1f0896bb7aff34ad6c60':
  LayoutLib: Switch SimpleDateFormat to icu.
2015-08-07 00:08:55 +00:00
Deepanshu Gupta
3a13380177 am c344ac57: am fbdf2032: am cfe5778d: am 8f26616d: Merge "LayoutLib: Switch SimpleDateFormat to icu." into mnc-dev
* commit 'c344ac576f79b5ba7940007b712fb79a220ab4b0':
  LayoutLib: Switch SimpleDateFormat to icu.
2015-08-07 00:01:24 +00:00
Deepanshu Gupta
022f5e80b2 am 7fe85fa7: am 63790291: am 2081769f: am 618d96da: am 385ce0a3: Merge "Replace Locale.getDefault with custom impl." into mnc-dev
* commit '7fe85fa70b22c70a9a9eb90664f0aa4442cacdbe':
  Replace Locale.getDefault with custom impl.
2015-08-06 23:55:07 +00:00
Deepanshu Gupta
7fe85fa70b am 63790291: am 2081769f: am 618d96da: am 385ce0a3: Merge "Replace Locale.getDefault with custom impl." into mnc-dev
* commit '63790291a4c385d3e92680af816f4fe32d6535ef':
  Replace Locale.getDefault with custom impl.
2015-08-06 23:44:08 +00:00
Deepanshu Gupta
b556decf75 LayoutLib: Switch SimpleDateFormat to icu.
Use ICU's implementation of SimpleDateFormat in LayoutLib. The format
patterns used are not supported by java.text.SimpleDateFormat.

The change required adding a mechanism for promoting visibility of
fields in the framework in the create tool.
TODO: Add additional tests in the create tool for this new
functionality.

Change-Id: Id0f4be41f9731c42a28919c32cc5ef271a656982
2015-08-06 16:04:04 -07:00
Deepanshu Gupta
82c7fdb1f6 Replace Locale.getDefault with custom impl.
In LayoutLib the default locale should always be the locale set the
rendering params. This change replaces all calls to Locale.getDefault in
the framework with calls to AndroidLocale.getDefault() which tries to
find the locale from the current context, but falls back to the original
call.

Change-Id: I496b35dcfc17fd61fedee21c7495541ab870b1fc
2015-08-06 16:03:19 -07:00
Wale Ogunwale
861aaa9b67 Fixed build breakage.
Change-Id: I338e6469da24b5ed30961cf66dbacbe1424eb204
2015-08-06 12:34:44 -07:00
Deepanshu Gupta
f22a58d1de am 0889fd29: am 0e0d254c: am c34288be: am 2c1a22d9: Merge changes I85106f37,I7db398aa into mnc-dev
* commit '0889fd295974ce589ccd0e7a44932012ede577db':
  Make getInt in BridgeTypedArray accept empty String.
  Fix layout mirroring.
2015-08-06 02:48:39 +00:00
Deepanshu Gupta
0437cac76c Make getInt in BridgeTypedArray accept empty String.
The XML editor already warns about the empty strings in places where an
int value is required. There's no need to show another warning for it in
the rendering panel. Also, the rendering might have also failed when the
empty string is encountered. Try an continue the rendering, because no
rendering state is really bad.

Change-Id: I85106f37e4462f237e85f0b065b4ce8a4bfabf4d
2015-08-04 11:57:10 -07:00
Deepanshu Gupta
a9090705ef Fix layout mirroring.
Change-Id: I7db398aa2d11dac1210e84922138f78f0c23bb9b
2015-08-04 11:56:44 -07:00
Diego Perez
529be16e61 am daacad45: am 616ae85e: am 126973d4: am 405eceb2: Merge "Restore session params "no decoration" flag" into mnc-dev
* commit 'daacad45fd19d35b2b8f8bce9c4cd19d4f735200':
  Restore session params "no decoration" flag
2015-08-03 22:03:02 +00:00
Deepanshu Gupta
534d9485f2 am e92b2645: am 33bdfe75: am df776b76: am d985e3b6: Merge changes Ib5f53f3b,I7debf3ee,Ic494ee7f,Ia8d223ae,Iff7dbbf6 into mnc-dev
* commit 'e92b2645b234a7e3555a26aacb964706509269df':
  Revert to using AppTheme for LayoutLib tests.
  Fix Matrix_Delegate.native_getValues()
  Update test image for upated nav icons.
  Fix typo: s/FullScreen/Fullscreen/ in LayoutLib.
  Fix bugs introduced in 78aa664.
2015-08-03 22:02:57 +00:00
Diego Perez
405eceb20a Merge "Restore session params "no decoration" flag" into mnc-dev 2015-08-03 21:33:24 +00:00
Deepanshu Gupta
89a045c31f Revert to using AppTheme for LayoutLib tests.
Use AppTheme for all tests other than testExpand. AppTheme contains an
attribute needed by testArrayCheck. Also, since the AppTheme extends
Theme.Material.Light.DarkActionBar, other tests should be unaffected.

Also, update the golden image for the testArrayCheck.

Change-Id: Ib5f53f3b029c5aceef2b622e5ac63952d6b1972a
2015-08-03 11:42:33 -07:00
Yusuke Sato
82e7807430 am b98e2353: am 158560ad: Merge "Distinguish user-requested shutdown from power-related ones"
* commit 'b98e235364c2b221521f622c546733b2862e4677':
  Distinguish user-requested shutdown from power-related ones
2015-08-03 17:56:37 +00:00
Deepanshu Gupta
9f280a9301 Fix Matrix_Delegate.native_getValues()
The bug manifested itself by not rendering the wifi icon in the status
bar.

Change-Id: I7debf3eef387965d774bf66e856812e67c8552a7
2015-08-03 10:24:57 -07:00
Diego Perez
71a85575d4 Restore session params "no decoration" flag
This seems to have removed from a previous version and the theme editor
relies on it to remove the decoration around the preview.

Change-Id: Ifab99e9c1689bfe44ca593e8c66c24e57c3e8c4c
2015-08-03 14:20:18 +01:00
Deepanshu Gupta
c2622d8923 Update test image for upated nav icons.
The image shows the nav icons to be separated by a significant distance.
This is because the switch to wide-screen layout happens based on
shortest width. The layout has a small shortest width and hence it uses
the phone layout for a horizontal nav bar and it doesn't look nice. Real
devices will never have this config, so it's okay.

Change-Id: Ic494ee7fdfb1116db39bcab6d6ee7a1e514b23df
2015-07-31 13:17:15 -07:00
Deepanshu Gupta
5a8f33f1b0 Fix typo: s/FullScreen/Fullscreen/ in LayoutLib.
Change-Id: Ia8d223ae01f08df945ab05615b07075b98a54a32
2015-07-31 13:10:18 -07:00
Deepanshu Gupta
7b1e486e87 Fix bugs introduced in 78aa664.
Fix a couple of bugs (ArrayIndexOutOfBoundsException due to
miscalculation and a typo - swapped src and dst) introduced in the CL:
78aa664 Poor implementation of Path.approximate()

Change-Id: Iff7dbbf66d2714df51699ddb9a4169c38feefa7b
2015-07-31 13:00:05 -07:00
Dianne Hackborn
e5d926deb2 Fix build.
Change-Id: I9c6b6cd354039ff2914837cfe97a783564ded66f
2015-07-31 11:17:43 -07:00
Yusuke Sato
705ffd1efe Distinguish user-requested shutdown from power-related ones
With this patch, when the user requested shutdown,
PowerManagerService sets sys.powerctl is set to
"shutdown,userrequested", and init runs fsck on shutdown.

When shutdown is triggered due to a low power state etc.,
the service sets the property to "shutdown,", and init
immediately shuts down the system without running the
command.

This is a follow-up CL for http://r.android.com/158525.

Bug: 21853106
Change-Id: Iae72990130fe9aa479c802f77301438190dbbfb3
2015-07-30 23:47:13 -07:00
Deepanshu Gupta
7676e403bd Merge changes I4c215676,Ib476302c,I0aede288,I9241dec7,Ibe7167a6, ... into mnc-dev
* changes:
  Update status bar time.
  Fix imports.
  Add MockView constructor used by LayoutInflater.
  Poor implementation of Path.approximate()
  Include EpicenterTranslateClipReveal in LayoutLib
  Fix theme namespace in tests.
  LayoutLib: fix layout when nav bar is absent.
  LayoutLib: Fix Status/Navigation Bar color.
2015-07-30 21:58:03 +00:00
Deepanshu Gupta
36e3fa55b6 Update status bar time.
Copy the value from the demo mode (commit 33b60bb45f)

Change-Id: I4c215676e7ae26a68aa370e99db005226d8a05d9
2015-07-29 17:01:33 -07:00
Deepanshu Gupta
671b7f9b99 Fix imports.
Also remove null checks on return value of ReflectionUtils.getMethod()
as the method always return non null.

Change-Id: Ib476302c2cf0504a0f54db4e795955ad10e5df3f
2015-07-29 15:34:48 -07:00
Deepanshu Gupta
9bf4b6f8c0 Add MockView constructor used by LayoutInflater.
Change-Id: I0aede28866c1b87fb66c8a416c5026a9b2cb04fe
2015-07-29 15:34:47 -07:00
Deepanshu Gupta
78aa664b02 Poor implementation of Path.approximate()
Include a very poor implementation of Path.approximate() in LayoutLib
that only returns the first and last coordinate of the path. This avoids
crashing the rendering when certain assumptions are made on the value
returned from the method.

Also change the error to a warning.

Change-Id: I9241dec734d4df90a9eebd1e6de8b3e443eee3c8
2015-07-29 15:34:38 -07:00
Deepanshu Gupta
214466c777 Include EpicenterTranslateClipReveal in LayoutLib
Needed by Spinner to create transitions that are then ignored :)

Change-Id: Ibe7167a643ecb186e97c9af446c0e1d2eb2d6f86
2015-07-29 14:30:05 -07:00
Deepanshu Gupta
4a6ee98d39 Fix theme namespace in tests.
The tests used framework theme (Material), but the ResourceResolver was
created with project theme. This caused tests to fail becasue of missing
resources.

Change-Id: Ia17ee19054f6689f85e3423e83c1f47a2cc4364f
2015-07-29 14:27:02 -07:00
Svet Ganov
f1b7f20bb8 Remove dependencies on the package installer's package name
bug:22700053

Change-Id: I8540eb8577fbec84e1a67e31e1c31ba654c828a4
2015-07-29 08:33:46 -07:00
Deepanshu Gupta
6e8d8ad2b7 LayoutLib: fix layout when nav bar is absent.
Change-Id: I0d3ee6fd5a4656156a630d3b298533ea13eb8415
2015-07-28 18:30:48 -07:00
Deepanshu Gupta
e3f9834ebd LayoutLib: Fix Status/Navigation Bar color.
If the color value for status bar or navigation bar is declared directly
in the theme (i.e. doesn't reference a color resource via @color/foo),
the ResourceType for the attribute is not assigned by the IDE. LayoutLib
used to ignore resources that were not of type color. This change fixes
the issue by also checking the resources without a type.

Change-Id: I94735ec225415282db06ab9db5c3233ad89c052f
2015-07-27 11:54:49 -07:00
Deepanshu Gupta
f199ac84f3 Merge "Set support flag for custom layouts for RecyclerView." into mnc-dev 2015-07-23 23:47:10 +00:00
Deepanshu Gupta
f7712d3524 Set support flag for custom layouts for RecyclerView.
Change-Id: I3a0349c0482ae45e226b2016a0f24707c85edff4
2015-07-23 16:40:23 -07:00
Deepanshu Gupta
49fcfdd4ba Merge changes I9c294329,Ie4db5d28 into mnc-dev
* changes:
  LayoutLib: translucent sys ui bars
  Move the layout code out of RenderSessionImpl.
2015-07-23 23:02:57 +00:00