]> git.saurik.com Git - android/aapt.git/commitdiff
Merge "Output proguard keep flags for fragment classes." into gingerbread
authorYing Wang <wangying@google.com>
Fri, 13 Aug 2010 22:26:21 +0000 (15:26 -0700)
committerAndroid (Google) Code Review <android-gerrit@google.com>
Fri, 13 Aug 2010 22:26:21 +0000 (15:26 -0700)
AaptAssets.cpp
Bundle.h
Main.cpp
XMLNode.cpp

index d6cfb12d0b973d053076a29e3f7c6f2f3e13a4e7..e4f447e72642670b38a82fd883f78ba9211a0482 100644 (file)
@@ -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) {
index 3308a3531dc7db534ecc1639af3f14c43c60db31..6a1f2d58cdaf0f994a0b16f0a70e32b9ecb7947f 100644 (file)
--- 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;
index b0c6e3975b51629e926c7e305a9f505493035860..f457cc8b3323be8f803a8aa75b19c877b971c29e 100644 (file)
--- 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++;
index 57ff47a2595e1d30dc8f69a66c47894d95f12ccd..8551b0f9c9030c57d00d8dbba6085a0fc9952ac5 100644 (file)
@@ -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;
     }