From: Ying Wang Date: Fri, 13 Aug 2010 22:26:21 +0000 (-0700) Subject: Merge "Output proguard keep flags for fragment classes." into gingerbread X-Git-Url: https://git.saurik.com/android/aapt.git/commitdiff_plain/22eef02a610c68826316e5ace7901f17a37b5c13?hp=2cf27f26cea20a0d9bc495a79885a831911d1fc7 Merge "Output proguard keep flags for fragment classes." into gingerbread --- diff --git a/AaptAssets.cpp b/AaptAssets.cpp index d6cfb12..e4f447e 100644 --- a/AaptAssets.cpp +++ b/AaptAssets.cpp @@ -1830,6 +1830,16 @@ ssize_t AaptAssets::slurpResourceTree(Bundle* bundle, const String8& srcDir) continue; } + if (bundle->getMaxResVersion() != NULL && group.version.length() != 0) { + int maxResInt = atoi(bundle->getMaxResVersion()); + const char *verString = group.version.string(); + int dirVersionInt = atoi(verString + 1); // skip 'v' in version name + if (dirVersionInt > maxResInt) { + fprintf(stderr, "max res %d, skipping %s\n", maxResInt, entry->d_name); + continue; + } + } + FileType type = getFileType(subdirName.string()); if (type == kFileTypeDirectory) { diff --git a/Bundle.h b/Bundle.h index 3308a35..6a1f2d5 100644 --- a/Bundle.h +++ b/Bundle.h @@ -45,6 +45,7 @@ public: mRClassDir(NULL), mResourceIntermediatesDir(NULL), mManifestMinSdkVersion(NULL), mMinSdkVersion(NULL), mTargetSdkVersion(NULL), mMaxSdkVersion(NULL), mVersionCode(NULL), mVersionName(NULL), mCustomPackage(NULL), + mMaxResVersion(NULL), mArgc(0), mArgv(NULL) {} ~Bundle(void) {} @@ -134,6 +135,8 @@ public: void setVersionName(const char* val) { mVersionName = val; } const char* getCustomPackage() const { return mCustomPackage; } void setCustomPackage(const char* val) { mCustomPackage = val; } + const char* getMaxResVersion() const { return mMaxResVersion; } + void setMaxResVersion(const char * val) { mMaxResVersion = val; } /* * Set and get the file specification. @@ -230,6 +233,7 @@ private: const char* mVersionCode; const char* mVersionName; const char* mCustomPackage; + const char* mMaxResVersion; /* file specification */ int mArgc; diff --git a/Main.cpp b/Main.cpp index b0c6e39..f457cc8 100644 --- a/Main.cpp +++ b/Main.cpp @@ -62,6 +62,7 @@ void usage(void) " [--rename-manifest-package PACKAGE] \\\n" " [--rename-instrumentation-target-package PACKAGE] \\\n" " [--utf16] [--auto-add-overlay] \\\n" + " [--max-res-version VAL] \\\n" " [-I base-package [-I base-package ...]] \\\n" " [-A asset-source-dir] [-G class-list-file] [-P public-definitions-file] \\\n" " [-S resource-sources [-S resource-sources ...]] " @@ -128,6 +129,8 @@ void usage(void) " higher, the default encoding for resources will be in UTF-8.\n" " --target-sdk-version\n" " inserts android:targetSdkVersion in to manifest.\n" + " --max-res-version\n" + " ignores versioned resource directories above the given value.\n" " --values\n" " when used with \"dump resources\" also includes resource values.\n" " --version-code\n" @@ -416,6 +419,15 @@ int main(int argc, char* const argv[]) goto bail; } bundle.setMaxSdkVersion(argv[0]); + } else if (strcmp(cp, "-max-res-version") == 0) { + argc--; + argv++; + if (!argc) { + fprintf(stderr, "ERROR: No argument supplied for '--max-res-version' option\n"); + wantUsage = true; + goto bail; + } + bundle.setMaxResVersion(argv[0]); } else if (strcmp(cp, "-version-code") == 0) { argc--; argv++; diff --git a/XMLNode.cpp b/XMLNode.cpp index 57ff47a..8551b0f 100644 --- a/XMLNode.cpp +++ b/XMLNode.cpp @@ -166,7 +166,7 @@ status_t hasSubstitutionErrors(const char* fileName, if (argCount > 1 && nonpositional) { SourcePos(String8(fileName), inXml->getLineNumber()).error( "Multiple substitutions specified in non-positional format; " - "did you mean to add the formatted=\"true\" attribute?\n"); + "did you mean to add the formatted=\"false\" attribute?\n"); return NOT_ENOUGH_DATA; }