Reorder style items in shared libraries
AssetManager2.cpp expects style attribute IDs to be in sorted order when applying a style (see AssetManager2::GetBag). Shared libraries have a package ID of 0x00, which will mean any attribute defined in a shared library will be put before all other attributes. Once the attribute ID is looked up in the dynamic ref table, the package ID is no longer 0x00, which means this ID is no longer in sorted order. This messes up the logic in AssetManager2::GetBag, and results in some style attributes getting dropped from shared libraries. This change modifies how aapt2 sorts the style entries, sorting entries with dynamic IDs after entries with the android framework ID. This means the entries will still be in sorted order when the IDs are looked up. Bug: 147674078 Test: TableFlattenerTest.FlattenSharedLibraryWithStyle Change-Id: Ic4f4004b6d9cecde9325dcdb37f71138857f8236
Loading
Please register or sign in to comment