Using isspace and iswspace on characters above the maximum char value is
undefined. This change makes aapt2 use isspace like aapt and only trims
whitespace characters at or below the maximum char value like aapt2.
Bug: 121017795
Test: aapt2_tests
Change-Id: I015e4b77f0ff53e409e880fcf9ae104ba3444d1a
+ Generate inspection companions as MyClass$InspectionCompanion instead
of MyClass$$InspectionCompanion. This allows the discovery of custom
inspection companions written as nested classes.
+ Rename GeneratedInspectionCompanionProvider to
StaticInspectionCompanionProvider to more clearly articulate how it
function in the new world.
+ StaticInspectionCompanionProvider now explicitly checks if a class it
discovered implements InspectionCompanion, and returns null instead of
throwing a ClassCastException.
+ The annotation processor checks for the existence of a nested class
named InspectionCompanion, and fails the build if a class has both a
custom InspectionCompanion and @InspectableProperty annotations.
Test: atest --host view-inspector-annotation-processor-test
Bug: 126913705
Change-Id: Ic0d2100ec22420e36f9db44e56c66fe9146eeb0c
@SystemApi and @TestApi entries in the whitelist can now be
differentiated from the rest of the apis. @TestApi methods
are implicitly greylisted.
Test: m test-art-host-gtest-hiddenapi_test
Change-Id: Id739f04550842f7b3160685e1635ba20efb223cc
CDATA blocks were being processed differently in aapt2 so this change
fixes aapt2 to not treat cdata blocks differently and still trime
whitespace.
Also, aapt did not process escapes when compiling xml files. This
change removes over-processing of xml text nodes.
All test strings are what aapt(1) would output.
Test: aapt2_tests
Bug: 124470332
Change-Id: I90ee0c1e5e9208f8a5c60cee93e3ba02712c9b2c
@IntDefs and @LongDefs cannot be stored in a .class file, because the constant
names are lost. Instead, they are packaged out-of-band.
Therefore, they should never be in the API.
Test: python tools/apilint/apilint.py api/current.txt
Change-Id: If22e0cf7db0bb90dae6174bf546f2ec8be4e5458
Add a tracing API and instrument key functions in order to profile
aapt2 bottleneck. The API allows to generate systrace fragment files.
Impact on performance is neglibible with each Trace requiring less
than 1us and the final Flush operation at the end of a command
requiring around 40us.
Bug: None
Test: None
Change-Id: I51b564d3694e9384679f43b878b32295527dddf6
This allows for inspectors to do special handling on values known to be
resource IDs, such as converting them to a string format.
+ Add PropertyMapper#mapResourceId(String, int) and
PropertyReader#readResourceId(int, int)
+ Add RESOURCE_ID to @InspectableProperty.ValueType
+ Add code generation support in the annotation processor, and value
type inference for accessors annotated with a resource ID annotation
like @AnyRes.
Bug: 127348933
Test: atest --host view-inspector-annotation-processor-test
Change-Id: I132aea319dcddf51c553057c036ce5609e3c381a
Registers verifiers via a decorator to avoid error-prone registration
elsewhere.
Test: Run apilint before and after the change, verify identical output
Change-Id: I77ae47a2f3f1a486bb78d3167f8439ade6fc28ab
+ Add a field target to @InspectableProperty
+ Refactor PlatformInspectableProcessor to process annotated fields and
generate InspectionCompanions that read fields.
+ Require that all inspectable getters and fields be public.
+ Make some hidden getters added to View for inspection public.
Test: atest --host view-inspector-annotation-processor-tests
Bug: 126913705
Change-Id: I0c012f42794885f17a397a2e3dd541b3aa4c2634
The UnsupportedAppUsage annotations could not be added directly to the
java files in src/ as they have to be built against the current api
which does not include the annotation. Instead this uses the same
technique as used for libcore/ojluni files and adds the annotations to
stub files (in hiddenapi/src) which are built as part of the
android.test.base-hiddenapi target. That target is added to a special
whitelist in build/soong/java/config/config.go which causes the
hiddenapi information to be extracted from the target.
Also, updates the preupload check to prevent anymore entries being
added to the config/hiddenapi-greylist.txt for android.test or junit
classes.
Bug: 73711752
Test: m cts-hiddenapi_flags-csv and check that it contained the
correct entries even though they had been removed from
config/hiddenapi-greylist.txt
Change-Id: Ifaf15d2751f54cb03f8402b866a0ee4da7acc4d2
The output parsing isn't ideal, so these are a bit more spammy
than I'd like, but at least they build, install and run without
the manual glop.
Test: bit incidentd_test
Change-Id: I3c34a4ebbf661f612b4b0f8b4e05cade8669b5a6
This change sorts the input files of compile and link and also traverses
directories in sorted order in FileCollection::Create. This change
attempts to fix non-determinism issues with aapt2.
Bug: 122518436
Test: builds
Change-Id: I615b8d7f1117e3850366760f16672f0cf5b02070
Since the VirtualKeyMap has been refactored, updated the
validation tool to use the new signature.
Bug: 113575658
Test: atest libinput_tests inputflinger_tests
Change-Id: Ifb0eb5b2913020f1e1402dcb6a36c9038c345807
util::mkdirs iteratively creates each directory of a specified path. For
windows, Calling mkdir on only the drive letter or on the extended path
prefix (\?\\) will result in an error. Start after the long path prefix
and the drive letter.
This also changes AAPT2 to use AssetMaanager2 to retrieve symbols from
the symbol table. AssetManager2's zip library uses _wopen to open
windows files.
Bug:123251200
Test: aapt2_tests.exe
Change-Id: I26169d83b22d441485de3c49d63a6c4ed710e292