summaryrefslogtreecommitdiffstats
path: root/tools/aapt/Resource.cpp
diff options
context:
space:
mode:
authorYing Wang <wangying@google.com>2010-01-20 22:12:46 -0800
committerYing Wang <wangying@google.com>2010-01-20 22:12:46 -0800
commitc111296b97d51147f8c9448c7c27b53309ee6f39 (patch)
treee49323643bb412cc1430df6881f5d2e3ee6cd3c2 /tools/aapt/Resource.cpp
parente834722f547d13eaa453464502456892c6225e42 (diff)
downloadframeworks_base-c111296b97d51147f8c9448c7c27b53309ee6f39.zip
frameworks_base-c111296b97d51147f8c9448c7c27b53309ee6f39.tar.gz
frameworks_base-c111296b97d51147f8c9448c7c27b53309ee6f39.tar.bz2
Find layout classes in all "layout-*" dirs.
Before this CL, the generated keep flags for layout classes are incomplete, such as layout classes in res/layout-port/ and res/layout-land and so on.
Diffstat (limited to 'tools/aapt/Resource.cpp')
-rw-r--r--tools/aapt/Resource.cpp12
1 files changed, 9 insertions, 3 deletions
diff --git a/tools/aapt/Resource.cpp b/tools/aapt/Resource.cpp
index e2aeddf..20b0bf4 100644
--- a/tools/aapt/Resource.cpp
+++ b/tools/aapt/Resource.cpp
@@ -1831,10 +1831,16 @@ status_t
writeProguardForLayouts(ProguardKeepSet* keep, const sp<AaptAssets>& assets)
{
status_t err;
- sp<AaptDir> layout = assets->resDir(String8("layout"));
+ const Vector<sp<AaptDir> >& dirs = assets->resDirs();
+ const size_t K = dirs.size();
+ for (size_t k=0; k<K; k++) {
+ const sp<AaptDir>& d = dirs.itemAt(k);
+ const String8& dirName = d->getLeaf();
+ if ((dirName != String8("layout")) && (strncmp(dirName.string(), "layout-", 7) != 0)) {
+ continue;
+ }
- if (layout != NULL) {
- const KeyedVector<String8,sp<AaptGroup> > groups = layout->getFiles();
+ const KeyedVector<String8,sp<AaptGroup> > groups = d->getFiles();
const size_t N = groups.size();
for (size_t i=0; i<N; i++) {
const sp<AaptGroup>& group = groups.valueAt(i);