578 Commits

Author SHA1 Message Date
Adam Lesinski
18d5d1107d am 3cd840f4: Merge "AAPT: Fix an issue where a resource name was incorrectly derived on Windows" into lmp-dev
* commit '3cd840f4b5a2988700a6b366fa32f4565c319900':
  AAPT: Fix an issue where a resource name was incorrectly derived on Windows
2014-10-17 22:55:25 +00:00
Adam Lesinski
9306a474e1 AAPT: Fix an issue where a resource name was incorrectly derived on Windows
Calling String8::getLeaf() will assume the system's file path separator,
however the source string was already converted to a unix path.
getLeaf() would therefore not find any occurence of '\' and would
return the full path.

Bug:18036805
Change-Id: Ic2bfac0cc553406740204a296327e266b05c0eff
2014-10-17 21:46:52 +00:00
Jerome Dochez
fc07eb1c7f am f47f8855: Merge "Added a daemon mode to aapt to receive streams of commands from gradle." into lmp-dev
* commit 'f47f8855175213b4bf1014593f97bc81c042dfd1':
  Added a daemon mode to aapt to receive streams of commands from gradle.
2014-10-10 19:24:33 +00:00
Jerome Dochez
f47f885517 Merge "Added a daemon mode to aapt to receive streams of commands from gradle." into lmp-dev 2014-10-10 19:21:49 +00:00
Adam Lesinski
865acc7439 am a80aba70: Merge "AAPT: Gate v21 resource synthesizing logging behind -v flag" into lmp-dev
* commit 'a80aba70728c2843df94474dbd7829dadb77855f':
  AAPT: Gate v21 resource synthesizing logging behind -v flag
2014-10-03 22:12:16 +00:00
Adam Lesinski
f15de2e215 AAPT: Gate v21 resource synthesizing logging behind -v flag
This is verbose information and should be hidden behind the -v flag.

Bug:17822471
Change-Id: I36e2c6beb54669a31cde73416427477a80ded8a6
2014-10-03 14:57:28 -07:00
Jerome Dochez
6f1280cf17 Added a daemon mode to aapt to receive streams of commands from gradle.
When crunching png, we used to spawn a separate aapt process from java
which is slow and resource intensive.
Introduced a daemon mode to appt which when invoked with -m parameter
will listen from commands on stdin and give report of command execution
on stdout.

One one command is supported so far :
s f1 f2

This command perform a single png crunch, f1 pointing to the input
png file to crunch, and f2 pointing to the path for the resulting
crunced file.

Expected output from the command is "Done" or "Error".

Change-Id: Iaf1d865e8d5ee5d36abe39dea6443715865a98d3
2014-10-02 15:43:55 -07:00
Andreas Gampe
e1b180e21e am 152d9aae: am 31629651: Merge "Frameworks/base: Fix more aapt issues"
* commit '152d9aae631381ea28f5701168d372a1486a7502':
  Frameworks/base: Fix more aapt issues
2014-10-02 07:07:13 +00:00
Andreas Gampe
8daabceb2e resolved conflicts for merge of 1dcc75b2 to lmp-dev-plus-aosp
Change-Id: I8e1c6ee2025b6acd90803545fb95ab1b98560d92
2014-10-01 23:35:41 -07:00
Andreas Gampe
b8dc7bc582 Frameworks/base: Fix more aapt issues
Change-Id: I6da7dc674e9f9e3b0886a3cfd1e3194d6b5ac948
2014-10-01 20:42:00 -07:00
Andreas Gampe
2412f84064 Frameworks/base: Fix AAPT warnings
Turn on -Wall -Werror. Fix warnings.

Change-Id: I287fb3c1e851c654479bcf9ea8c73bd354a6b2a1
2014-10-01 16:18:06 -07:00
Stephen Hines
95fc18f38b am 70de9c0d: Merge "include direct.h for _mkdir" into lmp-dev
* commit '70de9c0d585dcfe71e2cfd921438071e69ff5c45':
  include direct.h for _mkdir
2014-10-01 23:01:40 +00:00
Dan Albert
864272f3eb resolved conflicts for merge of fe50cfd5 to lmp-dev-plus-aosp
Change-Id: Iea93ad20b44f0183f1868f078dd7982b2798fcd3
2014-10-01 13:47:12 -07:00
Dan Albert
0de19adc80 Use std::sort instead of qsort_r wrapper.
The HAVE_(BSD|GNU)_QSORT_R in AndroidConfig.h has never worked, and we
should just be using something standard anyway.

Change-Id: I784d6212f6c890a11c4af2f83d1ce2d279708652
2014-10-01 11:34:17 -07:00
Andrew Hsieh
c9d32390e5 include direct.h for _mkdir
Bug: 14416410

The new mingw-w64 toolchain x86_64-w64-mingw32-4.8 no longer
declares _mkdir in io.h.

Change-Id: I624b52d2f35db54a7f28df09f997fc883b0f0557
2014-09-30 02:28:05 -07:00
Adam Lesinski
86641af81d am 0a6c5ea4: Merge "AAPT: Fix issue with synthesized resource not actually showing up" into lmp-dev
* commit '0a6c5ea412bc1e49aa1e98a6a3fe268081883d4a':
  AAPT: Fix issue with synthesized resource not actually showing up
2014-09-26 01:04:51 +00:00
Adam Lesinski
978ab9d929 AAPT: Fix issue with synthesized resource not actually showing up
AAPT keeps around a few pieces of state that are disjoint, so
simply adding to a collection won't add the resource to the final
flattened output. Instead, we create the resource from the top
and then copy over the values into the newly created resource.

Bug:17647890
Change-Id: I214263e84c18f9370c6e6a5aa53aa2d833fc842d
2014-09-24 19:02:52 -07:00
Adam Lesinski
94ea10844c am 36b5795f: am 81745c51: Merge "AAPT: Continuation of public/private attribute fix" into lmp-dev
* commit '36b5795fc9e9a2eed320a0d626bce44a8c231f6b':
  AAPT: Continuation of public/private attribute fix
2014-09-22 18:23:20 +00:00
Adam Lesinski
e572c011fe AAPT: Continuation of public/private attribute fix
XML files like layouts are now scanned and checked
for v21 attributes. If those kinds of attributes
are found, then we remove them in the original
version and synthesize a new xml file under the
v21 configuration.

Bug:17520380
Change-Id: Icf984cb96134180a2e35349c1dbf2cef9a8f0bda
2014-09-22 10:51:20 -07:00
Dan Albert
c04d92cac9 resolved conflicts for merge of 1a4527ce to lmp-dev-plus-aosp
Change-Id: Iee4e93e3a2b049ec5f13166dbbffdd77b301fe5c
2014-09-19 15:57:26 -07:00
Adam Lesinski
8d2556f0de am 8bdb265f: am 19f9d54f: Merge "Fix backwards compat problem with AAPT public attrs" into lmp-dev
* commit '8bdb265f0a73bc6f2114ca70f141c214a23696c7':
  Fix backwards compat problem with AAPT public attrs
2014-09-19 18:37:15 +00:00
Adam Lesinski
82a2dd8efe Fix backwards compat problem with AAPT public attrs
AAPT has traditionally assigned resource IDs to public attributes,
and then followed those public definitions with private attributes.

--- PUBLIC ---
| 0x01010234 | attr/color
| 0x01010235 | attr/background

--- PRIVATE ---
| 0x01010236 | attr/secret
| 0x01010237 | attr/shhh

Each release, when attributes are added, they take the place of the private
attributes and the private attributes are shifted down again.

--- PUBLIC ---
| 0x01010234 | attr/color
| 0x01010235 | attr/background
| 0x01010236 | attr/shinyNewAttr
| 0x01010237 | attr/highlyValuedFeature

--- PRIVATE ---
| 0x01010238 | attr/secret
| 0x01010239 | attr/shhh

Platform code may look for private attributes set in a theme. If an app
compiled against a newer version of the platform uses a new public
attribute that happens to have the same ID as the private attribute
the older platform is expecting, then the behavior is undefined.

We get around this by detecting any newly defined attributes (in L),
copy the resource into a -v21 qualified resource, and delete the
attribute from the original resource. This ensures that older platforms
don't see the new attribute, but when running on L+ platforms, the
attribute will be respected.

We still need to address this problem in the platform moving forward,
as this will only help us in the transition from pre L to L.

Bug:17520380
Change-Id: Ia2a985798b50006c21c7c3431d30d9598f27cd91
2014-09-18 14:05:24 -07:00
Dan Albert
88ba339aef Clean up makefile cruft.
The build system already takes care of all these things.

Change-Id: Idef80b554e07cef5e5ed2adf1b5740a76f13ef6d
2014-09-11 16:21:19 -07:00
Marcin Kosiba
0bdcb84b55 am 972628dc: am 5128e88e: Merge "Don\'t use reflection when generating the onResourcesLoaded callback." into lmp-dev
* commit '972628dc8c63b02b75f9e976b3ab67e3913da1a8':
  Don't use reflection when generating the onResourcesLoaded callback.
2014-09-11 18:49:07 +00:00
Marcin Kosiba
a0a9466476 Merge "Don't use reflection when generating the onResourcesLoaded callback." into lmp-dev 2014-09-11 18:34:33 +00:00
Marcin Kosiba
0f3a5a6559 Don't use reflection when generating the onResourcesLoaded callback.
BUG: 17466240
Change-Id: I74608f3d8b3617281639a9d387face97e15fb616
2014-09-11 16:02:13 +01:00
Adam Lesinski
017d1bdca7 am 716c7279: am 799dc748: Merge "AAPT: Don\'t crash on illegal symbol name" into lmp-dev
* commit '716c7279854318eeabad39b7bb187aa69ad41c97':
  AAPT: Don't crash on illegal symbol name
2014-09-10 00:51:15 +00:00
Adam Lesinski
3fb8c9b50e AAPT: Don't crash on illegal symbol name
We never checked the return value when adding a nested
symbol, which would be NULL if the symbol name was invalid.

External bug: https://code.google.com/p/android/issues/detail?id=75876

Change-Id: I5211f4d4b87897d52f2b6e5907113d31930bb92d
2014-09-09 16:05:10 -07:00
Dan Albert
6800165351 resolved conflicts for merge of 1d99636f to lmp-dev-plus-aosp
Change-Id: Ic5f808de7d9722056112c6a73c718892e00bc9df
2014-09-09 09:51:01 -07:00
Dan Albert
8085477fb9 Merge "Don't check for null references." 2014-09-09 16:25:41 +00:00
Dan Albert
20ec4fa229 resolved conflicts for merge of 6c585756 to lmp-dev-plus-aosp
Change-Id: I5a25f2bac44ac5efcd7462af91005e09680a1d96
2014-09-08 22:25:54 -07:00
Dan Albert
ddb605d4b2 am de86cf13: am 5a6934c0: Merge "Don\'t pollute the namespace for two uses."
* commit 'de86cf1362ef0461b589fa85bdd5c58921010c6a':
  Don't pollute the namespace for two uses.
2014-09-09 05:19:06 +00:00
Dan Albert
2ffa4aabd7 Merge "Use char16_t for char things." 2014-09-09 04:30:35 +00:00
Dan Albert
1c6c7573e9 Don't pollute the namespace for two uses.
Clang complains about ambiguity between std::hash and ::hash (locally
defined). There's no need to pull in the whole namespace for two uses of
std::map anyway.

Change-Id: Icbaa7ebbaad05999988784ad34662c721fb12b29
2014-09-08 18:44:12 -07:00
Dan Albert
a8995adc2b Don't check for null references.
The address of a reference will never be null in well formed C++ code.
The function returning the value being checked simply returns a
dereferenced pointer (which is just going to segfault if it is null!).

Change-Id: I3a4eb6adfc003c63ebf21b81d46088d52154d99d
2014-09-08 18:34:29 -07:00
Dan Albert
f348c15ecf Use char16_t for char things.
When compiling in C++ mode, the compiler will complain about conversions
from uint16_t to char16_t. Be consistent in using char16_t for strings.

Change-Id: I052b6176ced635162920b31560052d9a64f92764
2014-09-08 18:30:08 -07:00
Adam Lesinski
5283faba4a Change platformBuildVersionCode to name in aapt dump badging
Change-Id: Ie3972105b3f6a727682f91851f7a99b05bb28e1a
2014-08-29 11:27:00 -07:00
Adam Lesinski
ad2d07d2d9 Stamp platform version code into app Apks
The versionCode of theframework resources that an app is built against
gets stamped inside an app's AndroidManifest.xml in the <manifest>
tag as "platformBuildVersionCode" and "platformBuildVersionName"
attributes.

Bug:17207635
Change-Id: Id573c3dffcbca38eec9c0eb3e89f4a547e3361d3
2014-08-27 18:28:49 -07:00
Adam Lesinski
3aa6076083 Merge "Have R classes generate their own reference rewrite logic" into lmp-dev 2014-08-26 18:23:57 +00:00
Adam Lesinski
1e466385d4 Have R classes generate their own reference rewrite logic
Change-Id: I0e5b8311fc3479d966a49f9acf0d4c32a6a024d3
2014-08-25 20:04:07 -07:00
Adam Lesinski
31245b4f06 Introduce anydpi density resource qualifier
This is meant to be used with scaleable vector
drawables, and are chosen as the best match unless
there is a configuration that matches the density
requested exactly.

Bug:17007265
Change-Id: Ic3288d0236fe0bff20bb1599aba2582c25b0db32
2014-08-25 17:47:30 -07:00
Adam Lesinski
a5cc002bfe AAPT: Filtering resource fix
Previously, when filtering resources from an APK using
-c option, if one qualifier matched, we would keep the resource.
However, in the case of something like

-c fr-FR,sw360dp

and with a resource in the APK like so

drawable-fr-FR-sw600dp-v13

we would want this resource to be excluded, as it does not
match the sw360dp qualifier (must be less than or equal to it).

This CL fixed the behavior of the filter to require that all
defined qualifier axis be matched.

Bug:17142358
Change-Id: Ie48f3d516a0e610abc7ba8a7ced4eb3ab52534d4
2014-08-22 16:09:54 -07:00
Adam Lesinski
caf797c84a AAPT: Dump installLocation in badging
Bug:17033144
Change-Id: I87dea9af47eef8bcba1465df9b49e355ac6346ec
2014-08-22 13:01:11 -07:00
Adam Lesinski
d255aba093 Merge "Add better error message for AAPT file conflicts" into lmp-dev 2014-08-21 22:00:25 +00:00
Adam Lesinski
27f69f4e06 AAPT: mipmaps should not end up in Splits
Mipmaps are never filtered, and so they will always
end up in the base APK. Make sure they get omitted from
any split.

Change-Id: Id24b082bc9bd2d3f031a58bd0de4d30b4f0de7e0
2014-08-21 13:59:46 -07:00
Adam Lesinski
48f05d29f3 Add better error message for AAPT file conflicts
Some resource directories may be the same even though
their names are different. For instance, the
"smallest width" qualifier was added in API 13,
so the resource directory "values-sw600dp" and
"values-sw600dp-v13" are the same and cause
a conflict. The error reports that this might be the
case.

Change-Id: Ia35f1d670edd48265b3a7fe3d55656128421f612
2014-08-21 20:54:01 +00:00
Adam Lesinski
6a7d2757a9 Use the correct versionCode for Split APKs
Insert the correct versionCode into the generated
Split AndroidManifest.xml.

Change-Id: I0aec797b5a4ff8bd70f9394b18aee5ad292b37c8
2014-08-21 11:00:09 -07:00
Adam Lesinski
6022debdbc AAPT: Fix regression generating dynamic ref table for shared libraries
AAPT stopped generating dynamic reference tables for shared libraries.

Change-Id: Ib0025811bdca1a4756eb21080dd6b6bb3fc1ca3d
2014-08-20 17:55:33 -07:00
Adam Lesinski
43a0df04b0 Allow enum generated IDs to reuse existing IDs
Change-Id: Ida5dbbce1c4ecb0a4e57511555cec6448737be25
2014-08-19 03:46:00 +00:00
Adam Lesinski
ad75122440 Include build number in aapt version
Teams are constantly confused over which version of aapt
they are running. Include the build number from the
Android build system in the binary. Can be retrieved by executing
'aapt version'.

Change-Id: I9165c7d01f977344e143c2cb4dd963310ab28b72
2014-08-18 23:42:21 +00:00