Add namespace handling in attribute values

Previously, you could only reference namespace prefixes in attribute names:

<View xmlns:appcompat="http://schemas.android.com/apk/res/android.support.v7.appcompat"
      appcompat:name="hey"
      ...

Now you can also reference them in resource names within an attribute value:

      ...
      android:text="@appcompat:string/confirm"
      ...

Which will be treated as "@android.support.v7.appcompat:string/confirm".

Change-Id: Ib076e867a990c80cf877a704eb77cd1ef0b23b52
This commit is contained in:
Adam Lesinski
2015-04-24 19:19:30 -07:00
parent ab2581398c
commit 24aad163bc
42 changed files with 1065 additions and 440 deletions

View File

@ -15,8 +15,8 @@
*/
#include "Linker.h"
#include "Resolver.h"
#include "ResourceTable.h"
#include "ResourceTableResolver.h"
#include "ResourceValues.h"
#include "Util.h"
@ -31,7 +31,7 @@ struct LinkerTest : public ::testing::Test {
mTable = std::make_shared<ResourceTable>();
mTable->setPackage(u"android");
mTable->setPackageId(0x01);
mLinker = std::make_shared<Linker>(mTable, std::make_shared<Resolver>(
mLinker = std::make_shared<Linker>(mTable, std::make_shared<ResourceTableResolver>(
mTable, std::make_shared<android::AssetManager>()));
// Create a few attributes for use in the tests.