]> git.saurik.com Git - android/aapt.git/commitdiff
am ce57a7f3: am 6504490c: am dff6b8e7: Merge "Add --non-constant-id to aapt."
authorXavier Ducrohet <xav@android.com>
Mon, 28 Feb 2011 18:10:38 +0000 (10:10 -0800)
committerAndroid Git Automerger <android-git-automerger@android.com>
Mon, 28 Feb 2011 18:10:38 +0000 (10:10 -0800)
* commit 'ce57a7f35344e76689d30f45964d1e37b78280cb':
  GpsLocationProvider: Clean up HAL initialization/cleanup sequence
  Fixed GSM encoded network initiated position request
  Ensuring thread-safe usage of DateFormat.
  Fixing infinite loop for zero duration.
  Fix for an infinite loop while scrolling lists.
  WAPPushManager, WAP Push over SMS message handler
  Add --non-constant-id to aapt.

1  2 
Resource.cpp

diff --combined Resource.cpp
index 7f84df60e66fefe73ad04f35c3c023dc2a5c0644,0a4f24f26df217860a9c3bea381debae888bfd9f..730bd71160f8ce0b9b99fdc1a2c8a2ddda3cb2d0
@@@ -148,10 -148,9 +148,10 @@@ private
  
  bool isValidResourceType(const String8& type)
  {
 -    return type == "anim" || type == "drawable" || type == "layout"
 +    return type == "anim" || type == "animator" || type == "interpolator"
 +        || type == "drawable" || type == "layout"
          || type == "values" || type == "xml" || type == "raw"
 -        || type == "color" || type == "menu";
 +        || type == "color" || type == "menu" || type == "mipmap";
  }
  
  static sp<AaptFile> getResourceFile(const sp<AaptAssets>& assets, bool makeIfNecessary=true)
@@@ -285,9 -284,9 +285,9 @@@ static status_t makeFileResources(Bundl
  }
  
  static status_t preProcessImages(Bundle* bundle, const sp<AaptAssets>& assets,
 -                          const sp<ResourceTypeSet>& set)
 +                          const sp<ResourceTypeSet>& set, const char* type)
  {
 -    ResourceDirIterator it(set, String8("drawable"));
 +    ResourceDirIterator it(set, String8(type));
      Vector<sp<AaptFile> > newNameFiles;
      Vector<String8> newNamePaths;
      bool hasErrors = false;
@@@ -543,11 -542,11 +543,11 @@@ static bool applyFileOverlay(Bundle *bu
                          DefaultKeyedVector<AaptGroupEntry, sp<AaptFile> > baseFiles =
                                  baseGroup->getFiles();
                          for (size_t i=0; i < baseFiles.size(); i++) {
 -                            printf("baseFile %ld has flavor %s\n", i,
 +                            printf("baseFile %zd has flavor %s\n", i,
                                      baseFiles.keyAt(i).toString().string());
                          }
                          for (size_t i=0; i < overlayFiles.size(); i++) {
 -                            printf("overlayFile %ld has flavor %s\n", i,
 +                            printf("overlayFile %zd has flavor %s\n", i,
                                      overlayFiles.keyAt(i).toString().string());
                          }
                      }
                                  keyAt(overlayGroupIndex));
                          if(baseFileIndex < UNKNOWN_ERROR) {
                              if (bundle->getVerbose()) {
 -                                printf("found a match (%ld) for overlay file %s, for flavor %s\n",
 +                                printf("found a match (%zd) for overlay file %s, for flavor %s\n",
                                          baseFileIndex,
                                          overlayGroup->getLeaf().string(),
                                          overlayFiles.keyAt(overlayGroupIndex).toString().string());
@@@ -799,24 -798,18 +799,24 @@@ status_t buildResources(Bundle* bundle
      sp<ResourceTypeSet> drawables;
      sp<ResourceTypeSet> layouts;
      sp<ResourceTypeSet> anims;
 +    sp<ResourceTypeSet> animators;
 +    sp<ResourceTypeSet> interpolators;
      sp<ResourceTypeSet> xmls;
      sp<ResourceTypeSet> raws;
      sp<ResourceTypeSet> colors;
      sp<ResourceTypeSet> menus;
 +    sp<ResourceTypeSet> mipmaps;
  
      ASSIGN_IT(drawable);
      ASSIGN_IT(layout);
      ASSIGN_IT(anim);
 +    ASSIGN_IT(animator);
 +    ASSIGN_IT(interpolator);
      ASSIGN_IT(xml);
      ASSIGN_IT(raw);
      ASSIGN_IT(color);
      ASSIGN_IT(menu);
 +    ASSIGN_IT(mipmap);
  
      assets->setResources(resources);
      // now go through any resource overlays and collect their files
      if (!applyFileOverlay(bundle, assets, &drawables, "drawable") ||
              !applyFileOverlay(bundle, assets, &layouts, "layout") ||
              !applyFileOverlay(bundle, assets, &anims, "anim") ||
 +            !applyFileOverlay(bundle, assets, &animators, "animator") ||
 +            !applyFileOverlay(bundle, assets, &interpolators, "interpolator") ||
              !applyFileOverlay(bundle, assets, &xmls, "xml") ||
              !applyFileOverlay(bundle, assets, &raws, "raw") ||
              !applyFileOverlay(bundle, assets, &colors, "color") ||
 -            !applyFileOverlay(bundle, assets, &menus, "menu")) {
 +            !applyFileOverlay(bundle, assets, &menus, "menu") ||
 +            !applyFileOverlay(bundle, assets, &mipmaps, "mipmap")) {
          return UNKNOWN_ERROR;
      }
  
  
      if (drawables != NULL) {
          if (bundle->getOutputAPKFile() != NULL) {
 -            err = preProcessImages(bundle, assets, drawables);
 +            err = preProcessImages(bundle, assets, drawables, "drawable");
          }
          if (err == NO_ERROR) {
              err = makeFileResources(bundle, assets, &table, drawables, "drawable");
          }
      }
  
 +    if (mipmaps != NULL) {
 +        if (bundle->getOutputAPKFile() != NULL) {
 +            err = preProcessImages(bundle, assets, mipmaps, "mipmap");
 +        }
 +        if (err == NO_ERROR) {
 +            err = makeFileResources(bundle, assets, &table, mipmaps, "mipmap");
 +            if (err != NO_ERROR) {
 +                hasErrors = true;
 +            }
 +        } else {
 +            hasErrors = true;
 +        }
 +    }
 +
      if (layouts != NULL) {
          err = makeFileResources(bundle, assets, &table, layouts, "layout");
          if (err != NO_ERROR) {
          }
      }
  
 +    if (animators != NULL) {
 +        err = makeFileResources(bundle, assets, &table, animators, "animator");
 +        if (err != NO_ERROR) {
 +            hasErrors = true;
 +        }
 +    }
 +
 +    if (interpolators != NULL) {
 +        err = makeFileResources(bundle, assets, &table, interpolators, "interpolator");
 +        if (err != NO_ERROR) {
 +            hasErrors = true;
 +        }
 +    }
 +
      if (xmls != NULL) {
          err = makeFileResources(bundle, assets, &table, xmls, "xml");
          if (err != NO_ERROR) {
          err = NO_ERROR;
      }
  
 +    if (animators != NULL) {
 +        ResourceDirIterator it(animators, String8("animator"));
 +        while ((err=it.next()) == NO_ERROR) {
 +            err = compileXmlFile(assets, it.getFile(), &table, xmlFlags);
 +            if (err != NO_ERROR) {
 +                hasErrors = true;
 +            }
 +        }
 +
 +        if (err < NO_ERROR) {
 +            hasErrors = true;
 +        }
 +        err = NO_ERROR;
 +    }
 +
 +    if (interpolators != NULL) {
 +        ResourceDirIterator it(interpolators, String8("interpolator"));
 +        while ((err=it.next()) == NO_ERROR) {
 +            err = compileXmlFile(assets, it.getFile(), &table, xmlFlags);
 +            if (err != NO_ERROR) {
 +                hasErrors = true;
 +            }
 +        }
 +
 +        if (err < NO_ERROR) {
 +            hasErrors = true;
 +        }
 +        err = NO_ERROR;
 +    }
 +
      if (xmls != NULL) {
          ResourceDirIterator it(xmls, String8("xml"));
          while ((err=it.next()) == NO_ERROR) {
@@@ -1723,7 -1655,8 +1723,8 @@@ static status_t writeLayoutClasses
  
  static status_t writeSymbolClass(
      FILE* fp, const sp<AaptAssets>& assets, bool includePrivate,
-     const sp<AaptSymbols>& symbols, const String8& className, int indent)
+     const sp<AaptSymbols>& symbols, const String8& className, int indent,
+     bool nonConstantId)
  {
      fprintf(fp, "%spublic %sfinal class %s {\n",
              getIndentSpace(indent),
      size_t i;
      status_t err = NO_ERROR;
  
+     const char * id_format = nonConstantId ?
+             "%spublic static int %s=0x%08x;\n" :
+             "%spublic static final int %s=0x%08x;\n";
      size_t N = symbols->getSymbols().size();
      for (i=0; i<N; i++) {
          const AaptSymbolEntry& sym = symbols->getSymbols().valueAt(i);
          if (deprecated) {
              fprintf(fp, "%s@Deprecated\n", getIndentSpace(indent));
          }
-         fprintf(fp, "%spublic static final int %s=0x%08x;\n",
+         fprintf(fp, id_format,
                  getIndentSpace(indent),
                  String8(name).string(), (int)sym.int32Val);
      }
          if (nclassName == "styleable") {
              styleableSymbols = nsymbols;
          } else {
-             err = writeSymbolClass(fp, assets, includePrivate, nsymbols, nclassName, indent);
+             err = writeSymbolClass(fp, assets, includePrivate, nsymbols, nclassName, indent, nonConstantId);
          }
          if (err != NO_ERROR) {
              return err;
@@@ -1907,7 -1844,7 +1912,7 @@@ status_t writeResourceSymbols(Bundle* b
          "\n"
          "package %s;\n\n", package.string());
  
-         status_t err = writeSymbolClass(fp, assets, includePrivate, symbols, className, 0);
+         status_t err = writeSymbolClass(fp, assets, includePrivate, symbols, className, 0, bundle->getNonConstantId());
          if (err != NO_ERROR) {
              return err;
          }
@@@ -2151,13 -2088,12 +2156,13 @@@ writeProguardForLayouts(ProguardKeepSet
      // tag:attribute pairs that should be checked in layout files.
      KeyedVector<String8, NamespaceAttributePair> kLayoutTagAttrPairs;
      addTagAttrPair(&kLayoutTagAttrPairs, "view", NULL, "class");
 +    addTagAttrPair(&kLayoutTagAttrPairs, "fragment", NULL, "class");
      addTagAttrPair(&kLayoutTagAttrPairs, "fragment", RESOURCES_ANDROID_NAMESPACE, "name");
  
      // tag:attribute pairs that should be checked in xml files.
      KeyedVector<String8, NamespaceAttributePair> kXmlTagAttrPairs;
      addTagAttrPair(&kXmlTagAttrPairs, "PreferenceScreen", RESOURCES_ANDROID_NAMESPACE, "fragment");
 -    addTagAttrPair(&kXmlTagAttrPairs, "Header", RESOURCES_ANDROID_NAMESPACE, "fragment");
 +    addTagAttrPair(&kXmlTagAttrPairs, "header", RESOURCES_ANDROID_NAMESPACE, "fragment");
  
      const Vector<sp<AaptDir> >& dirs = assets->resDirs();
      const size_t K = dirs.size();