716 Commits

Author SHA1 Message Date
Matt Sarett
3b1b68d6c7 Allow ninepatches to be encoded using non-RGBA modes
The original intention for forcing ninepatches to be encoded as
RGBA (with alpha) was to avoid the possibility of the decoder
producing 565 output.

565 output is bad for ninepatches because dithering tiny images
that we intend to scale later leads to bad results.  I would
argue that, since the new BitmapFactory does not dither, we might
now be ok to allow 565 decodes for ninepatches.  However, we
will maintain the old behavior by disabling 565 decodes for
ninepatch.

There are two changes to PNG encodings:
(1) Allows ninepatch images to be encoded in any mode.  Forcing
    them to RGBA makes things awkward for the decoder.  Currently,
    BitmapFactory's png decoder checks every pixel for alpha.
    That way, RGBA images that are actually opaque can be marked
    as opaque, in order to optimize drawing.  We want to remove
    this complexity from the decoder.
(2) Make sure ninepatch chunks are stored in the png header.  That
    way we know immediately that the png is a ninepatch, and can
    refuse to decode to 565 (if we feel this is best).

Change-Id: I724f5dbefb1be7b412f9b362dff83cbc0603f0bf
2016-01-07 18:17:33 +00:00
Adam Lesinski
5f3b2ecb3e AAPT: Dump uses-permission-sdk-23
Include <uses-permission-sdk-23> permissions in dump badging and dump permissions.

This will also add implied features for that permission, marked as -sdk-23 features.

Ex:

uses-permission: name='android.permission.ACCESS_FINE_LOCATION'
uses-permission-sdk-23: name='android.permission.CAMERA'

feature-group: label=''
  uses-feature: name='android.hardware.location'
  uses-implied-feature: name='android.hardware.location' reason='...'
  uses-feature-sdk-23: name='android.hardware.camera'
  uses-implied-feature-sdk-23: name='android.hardware.camera' reason='...'

Bug:24939655
Change-Id: Ifb374696ed4760b0ba2f1cc3516f3bf08e6cb6a3
2015-12-10 14:17:52 -08:00
Adam Lesinski
78713998f9 Specify private resource package in Android.mk
Private resource package shouldn't be buried in some resource file.
It can now be specified on the command line via the Android.mk file.

Change-Id: I9e3cb0bf54830d6b021077af271913306c024701
2015-12-07 14:52:53 -08:00
Elliott Hughes
43aecc85e8 Merge "Track rename from base/ to android-base/." am: 9f6a2ae67c am: 8aa8fe2c64
am: 7e7047ea0a

* commit '7e7047ea0aba2099408fba70937a758a91cebbca':
  Track rename from base/ to android-base/.
2015-12-04 17:51:41 -08:00
Elliott Hughes
be5474da4b Track rename from base/ to android-base/.
Change-Id: I31be831de812052d1c0d4c0781178d0756124bcf
2015-12-04 15:33:35 -08:00
Marco Nelissen
90d5052bd7 Don't try to compress .webm resources
Bug: 25822610
Change-Id: I40a93c9daac258a8e9a41668c0040353e44ed5bb
2015-12-01 18:37:12 +00:00
Adam Lesinski
07dfd2d864 Implement AAPT Bundle format
AAPT will scan XML files looking for the <aapt:attr> XML tag.

<!-- @layout/bundle.xml -->
<ImageView xmlns:aapt="http://schemas.android.com/aapt">
  <aapt:attr name="android:src">
    <vector android:pathData="..." ...>
    </vector>
  </aapt:attr>
</ImageView>

The SINGLE child element of the <aapt:attr> tag is extracted into its own top
level resource. It is given a generated name.

The parent element of <aapt:attr> is then given the resource attribute that was assigned
to the `name' attribute. The value is set to a reference to the generated resource.

<!-- @layout/bundle.xml -->
<ImageView android:src="@drawable/bundle_1.xml">
</ImageView>

<!-- @layout/bundle_1.xml -->
<vector android:pathData="..." ...>
</vector>

Bug:22627686
Change-Id: I8575fc4f739011402662fbf6b3db96df0012f598
2015-11-30 14:43:43 -08:00
Adam Lesinski
5b9847ca3f Revert "Implement AAPT Bundle format"
This reverts commit 9d0f7d44d5cc5322415f52f7ce03cc37a478b350.

Caused a build breakage when parsing some attributes.

Change-Id: I89ca958b2f2e820d353648df8aadd90bbe8d8339
2015-11-30 21:07:44 +00:00
Adam Lesinski
9d0f7d44d5 Implement AAPT Bundle format
AAPT will scan XML files looking for the <aapt:attr> XML tag.

<!-- @layout/bundle.xml -->
<ImageView xmlns:aapt="http://schemas.android.com/aapt">
  <aapt:attr name="android:src">
    <vector android:pathData="..." ...>
    </vector>
  </aapt:attr>
</ImageView>

The SINGLE child element of the <aapt:attr> tag is extracted into its own top
level resource. It is given a generated name.

The parent element of <aapt:attr> is then given the resource attribute that was assigned
to the `name' attribute. The value is set to a reference to the generated resource.

<!-- @layout/bundle.xml -->
<ImageView android:src="@drawable/bundle_1.xml">
</ImageView>

<!-- @layout/bundle_1.xml -->
<vector android:pathData="..." ...>
</vector>

Bug:22627686
Change-Id: I31bc96aae30d38bfd0b16508d0f585de5fd88a07
2015-11-24 15:38:40 -08:00
Tor Norbye
b3559643b9 Don't set modification times in aapt zip entries
Use a modification timestamp of 0 for all files
inside the zip archive to make the build repeatable.

Change-Id: Ie6e57329469b99c6f93cb0a6083e0c402be99815
2015-10-30 20:00:13 -07:00
Adam Lesinski
09ffc62fdb Merge "AAPT: Don't try to rewrite String constants when loading shared lib" 2015-09-11 01:48:05 +00:00
Adam Lesinski
eed585821a AAPT: Don't try to rewrite String constants when loading shared lib
Bug:20138255
Change-Id: Ieb6a31ee9afe0de3d1c99b21f78aa48fe07015c6
2015-09-10 18:43:34 -07:00
Tao Bai
ab5bca1519 Merge "Load app resource as shared library." 2015-09-09 16:08:12 +00:00
Tao Bai
a6d7e3fb9c Load app resource as shared library.
- Added aapt command line flag --app-as-shared-lib to build app resources
  that could be loaded as shared lib at runtime.
- Added new method AssetManager.addAssetPathAsSharedLibrary() to load an
  app resource as shared library.

Bug 22487604

Change-Id: Ib9b33c35f9c2b7129f3ba205de03d4564623ea39
2015-09-08 18:48:42 -07:00
Dan Willemsen
13786e281e am 60dd5d59: Merge "Remove USE_MINGW, whitelist windows modules"
* commit '60dd5d5966ebe993f5a81c46d9dea62c207abfd3':
  Remove USE_MINGW, whitelist windows modules
2015-09-01 16:37:10 +00:00
Dan Willemsen
4aa679ff96 Remove USE_MINGW, whitelist windows modules
Bug: 23566667
Change-Id: Ie6b8c51e2b6d6273f99f4e361c440136d7c6915c
2015-08-28 15:28:26 -07:00
Elliott Hughes
84d4917c75 am 12cf0f9c: am eba23aaa: Merge "Replace HAVE_MS_C_RUNTIME with _WIN32 in frameworks/base/tools."
* commit '12cf0f9c4cf8e6aed738da7349f556bd716ec09e':
  Replace HAVE_MS_C_RUNTIME with _WIN32 in frameworks/base/tools.
2015-08-17 21:15:40 +00:00
Elliott Hughes
bda7780dae am 12cf0f9c: am eba23aaa: Merge "Replace HAVE_MS_C_RUNTIME with _WIN32 in frameworks/base/tools."
* commit '12cf0f9c4cf8e6aed738da7349f556bd716ec09e':
  Replace HAVE_MS_C_RUNTIME with _WIN32 in frameworks/base/tools.
2015-08-17 21:15:35 +00:00
Elliott Hughes
e17788ceff Replace HAVE_MS_C_RUNTIME with _WIN32 in frameworks/base/tools.
Change-Id: Ideef62acbf53a442167c9b8038021affffef9e8a
2015-08-17 12:41:46 -07:00
Adam Lesinski
f473084a4a am 6df21b51: am 085a6b42: am 89a3c5ad: am 0cd143ad: Merge "AAPT: Fix regression in resource versioning" into mnc-dev
* commit '6df21b51b118281a46cfd3c13716718040a33aea':
  AAPT: Fix regression in resource versioning
2015-08-16 02:54:54 +00:00
Adam Lesinski
9a9fd61e0b am 0cd143ad: Merge "AAPT: Fix regression in resource versioning" into mnc-dev
* commit '0cd143adae642465a26a7eaac96030bb18826e94':
  AAPT: Fix regression in resource versioning
2015-08-14 20:51:21 +00:00
Adam Lesinski
beb9e33bfb AAPT: Fix regression in resource versioning
With a set of resources with the following configurations:

()
(land)

the regression caused any resources that needed to be versioned in configuration () to be lost.

Bug:23038206
Change-Id: I2f1b0313fb780ac241e7aaa487cb37dfb79c36aa
2015-08-14 13:41:46 -07:00
Elliott Hughes
344d347af2 am 39669d7f: am 6fdc6333: Merge "Lose HAVE_ANDROID_OS from frameworks/base."
* commit '39669d7f6b8fedef3468ab3d417c93a21df528af':
  Lose HAVE_ANDROID_OS from frameworks/base.
2015-08-12 23:28:30 +00:00
Elliott Hughes
17b4be07fe am 39669d7f: am 6fdc6333: Merge "Lose HAVE_ANDROID_OS from frameworks/base."
* commit '39669d7f6b8fedef3468ab3d417c93a21df528af':
  Lose HAVE_ANDROID_OS from frameworks/base.
2015-08-12 23:21:56 +00:00
Elliott Hughes
ba3fe56edc Lose HAVE_ANDROID_OS from frameworks/base.
Change-Id: I713881fdbaec7cbbb5e7f2f4be6f9b8be3d2ca4e
2015-08-12 14:49:53 -07:00
Adam Lesinski
a5c9d829ce am 7fa83d26: am b9904daa: am 15724ffc: am e3b0119f: Merge "AAPT: Fix resource versioning" into mnc-dev
* commit '7fa83d269b6f84ae32ddc94731a44acb6d66c4c1':
  AAPT: Fix resource versioning
2015-07-31 00:55:20 +00:00
Adam Lesinski
10730b6907 am e3b0119f: Merge "AAPT: Fix resource versioning" into mnc-dev
* commit 'e3b0119f79d11744a7f590510b184feef0f45894':
  AAPT: Fix resource versioning
2015-07-31 00:35:12 +00:00
Elliott Hughes
0e252720b2 am e528f048: am 84a04d52: Merge "Move frameworks/base/tools/ off AndroidConfig.h."
* commit 'e528f048689868a2d4dfdf23b553fe536acd15cd':
  Move frameworks/base/tools/ off AndroidConfig.h.
2015-07-30 00:16:28 +00:00
Elliott Hughes
e62867247d am e528f048: am 84a04d52: Merge "Move frameworks/base/tools/ off AndroidConfig.h."
* commit 'e528f048689868a2d4dfdf23b553fe536acd15cd':
  Move frameworks/base/tools/ off AndroidConfig.h.
2015-07-30 00:15:45 +00:00
Elliott Hughes
9ec96f9756 Move frameworks/base/tools/ off AndroidConfig.h.
Change-Id: Ibc7abb67a56945a9618bc91ccdbebe4c806879a5
2015-07-29 14:35:18 -07:00
Adam Lesinski
f45d2fad2e AAPT: Fix resource versioning
Resource generation was greedy, so when an attribute with sdk level 21 was used in a resource
with v1, and a different attribute with sdk level 21 was used in a resource with v11,
a v21 resource would be synthesized, but it would contain the attribute from v1 instead of v11.

This change fixes the issue, having the higher versioned resource take precedence.

Bug:22793816
Change-Id: Ia687f56b0d9969e424111477d55d9804255b22e9
2015-07-28 12:26:57 -07:00
Colin Cross
a083ef9a7b am bbcc914b: am 01efd7e8: Merge "Use build_number from file"
* commit 'bbcc914b18a5b2ea57e25e6e79336c5c75d49421':
  Use build_number from file
2015-07-23 19:11:22 +00:00
Colin Cross
6f1e3c56a7 am bbcc914b: am 01efd7e8: Merge "Use build_number from file"
* commit 'bbcc914b18a5b2ea57e25e6e79336c5c75d49421':
  Use build_number from file
2015-07-23 19:01:39 +00:00
Colin Cross
01efd7e820 Merge "Use build_number from file" 2015-07-23 18:23:06 +00:00
Elliott Hughes
1c6d9005d3 am f9a82218: am 86d5fc28: Merge "aapt: expat exports its header files now."
* commit 'f9a8221810a0b5aaa4050becaa0aa9d492035ff3':
  aapt: expat exports its header files now.
2015-07-22 01:26:20 +00:00
Elliott Hughes
b48adad2ed aapt: expat exports its header files now.
(cherrypick of 51348d2007b801c7bd7350f72e2300f1a5a41dd1)
Change-Id: Iddf0133919d38fc896f97c6796f8228a6decf174
2015-07-21 17:25:01 -07:00
Colin Cross
06e04f7671 Use build_number from file
Improve incremental ninja builds by keeping the command line the same
across builds.

Change-Id: If9dfcee74a4d282c183f9669e14a89104c115a71
2015-07-21 12:55:13 -07:00
Elliott Hughes
4fafd67211 aapt: expat exports its header files now.
Change-Id: Iddf0133919d38fc896f97c6796f8228a6decf174
(cherry picked from commit 51348d2007b801c7bd7350f72e2300f1a5a41dd1)
2015-07-21 18:45:11 +00:00
Elliott Hughes
37b894c9f8 am 94fed352: am 188af044: Merge "Revert "frameworks/base: libexpat now exports its headers.""
* commit '94fed352f6f4dc1c53ea69a0cee3944f55b92d99':
  Revert "frameworks/base: libexpat now exports its headers."
2015-07-11 02:03:58 +00:00
Elliott Hughes
1bd6d9c979 am 94fed352: am 188af044: Merge "Revert "frameworks/base: libexpat now exports its headers.""
* commit '94fed352f6f4dc1c53ea69a0cee3944f55b92d99':
  Revert "frameworks/base: libexpat now exports its headers."
2015-07-11 01:39:45 +00:00
Elliott Hughes
ba7e659b55 Revert "frameworks/base: libexpat now exports its headers."
This reverts commit 2f31b66c04b1e80fd039418edf41e74f67b68143.

Change-Id: Ib4ce610d1767db5c72c54d33520e8bdf50171a18
2015-07-11 01:07:39 +00:00
Elliott Hughes
3108dabf05 am 4d4c4507: am 220b61f1: Merge "frameworks/base: libexpat now exports its headers."
* commit '4d4c45071b56089112bcfc687d635b966b810f4b':
  frameworks/base: libexpat now exports its headers.
2015-07-11 01:04:37 +00:00
Elliott Hughes
aa4a994d5c am 4d4c4507: am 220b61f1: Merge "frameworks/base: libexpat now exports its headers."
* commit '4d4c45071b56089112bcfc687d635b966b810f4b':
  frameworks/base: libexpat now exports its headers.
2015-07-11 01:02:59 +00:00
Elliott Hughes
2f31b66c04 frameworks/base: libexpat now exports its headers.
Change-Id: Iaba3d57db18ebdd89e4a993436e9bf844722ff87
2015-07-10 11:12:22 -07:00
Igor Viarheichyk
729ffa299c ICU format support for pseudolocalizes.
Custom parser can handle nested ICU messages even if they
are split into multiple fragments. Code reworked to encapsulate
all pseudolocalization logic in Pseudolocalizer and PseudoMethods
classes. To minimize a changelist size, some static functions
remained. Fake BiDi pseudolocalization method is reimplemented
to handle word boundaries correctly. Unit tests added.

(cherry picked from commit cbb1e676b56677ae3585c067f29646dddffb4857)

bug: 22060509

Change-Id: I11968d81984d99501a4d9334ff2e7453a1eb7a00
2015-06-25 09:49:43 +01:00
Narayan Kamath
dde6069243 am 3277710c: am a121d34c: Merge "ICU format support for pseudolocalizes."
* commit '3277710c10e7b2dcd06bdc7f649346cd302fb3ac':
  ICU format support for pseudolocalizes.
2015-06-09 10:54:52 +00:00
Igor Viarheichyk
cbb1e676b5 ICU format support for pseudolocalizes.
Custom parser can handle nested ICU messages even if they
are split into multiple fragments. Code reworked to encapsulate
all pseudolocalization logic in Pseudolocalizer and PseudoMethods
classes. To minimize a changelist size, some static functions
remained. Fake BiDi pseudolocalization method is reimplemented
to handle word boundaries correctly. Unit tests added.

Change-Id: I9fb4baf4e3123df5dd6d182cca02bb7b0489ca71
2015-06-09 11:28:20 +01:00
Adrian Roos
5892248580 aapt: add option for stricter symbol generation
Adds an option that prevents generating java symbols for string
resources that don't have a default localization.

Bug: 21537397
Change-Id: Ifafa942b24d5cdbed93651cde363e859be13d395
2015-06-02 02:55:52 +00:00
Adam Lesinski
2738c96d99 Add -round and -notround qualifier to android runtime/aapt
The round qualifier denotes a device with a screen shape that
is round. The qualifier shows up after the 'long/notlong' qualifier
and before the orientation 'port/land/square' qualifiers.

Change-Id: I3044258b2703a9165694b79725bade770fa6cea1
2015-05-15 15:10:58 -07:00
Chih-Hung Hsieh
9a59a991dd Remove unused aapt target.
BUG: 20765163
Change-Id: I13f36f76541216c5c1c20ae8866e09038e08e6f8
(cherry picked from AOSP commit 97627314a4d3e114afe3dbd764a51523e9f0b787)
2015-05-06 00:13:37 +00:00