]> git.saurik.com Git - android/aapt.git/blobdiff - Package.cpp
break dependency on utils/ZipEntry.h and utils/ZipFile.h, get rid of inet_address...
[android/aapt.git] / Package.cpp
index 5d9e140d6614b388247528a9b08924876583d4b9..84241699db3f54ae29a11f7bb222ebc0a2606995 100644 (file)
@@ -5,9 +5,12 @@
 //
 #include "Main.h"
 #include "AaptAssets.h"
 //
 #include "Main.h"
 #include "AaptAssets.h"
+#include "ResourceTable.h"
 
 
-#include <utils.h>
-#include <utils/ZipFile.h>
+#include <utils/Log.h>
+#include <utils/threads.h>
+#include <utils/List.h>
+#include <utils/Errors.h>
 
 #include <sys/types.h>
 #include <dirent.h>
 
 #include <sys/types.h>
 #include <dirent.h>
@@ -190,11 +193,20 @@ bail:
 ssize_t processAssets(Bundle* bundle, ZipFile* zip,
                       const sp<AaptAssets>& assets)
 {
 ssize_t processAssets(Bundle* bundle, ZipFile* zip,
                       const sp<AaptAssets>& assets)
 {
+    ResourceFilter filter;
+    status_t status = filter.parse(bundle->getConfigurations());
+    if (status != NO_ERROR) {
+        return -1;
+    }
+
     ssize_t count = 0;
 
     const size_t N = assets->getGroupEntries().size();
     for (size_t i=0; i<N; i++) {
         const AaptGroupEntry& ge = assets->getGroupEntries()[i];
     ssize_t count = 0;
 
     const size_t N = assets->getGroupEntries().size();
     for (size_t i=0; i<N; i++) {
         const AaptGroupEntry& ge = assets->getGroupEntries()[i];
+        if (!filter.match(ge.toParams())) {
+            continue;
+        }
         ssize_t res = processAssets(bundle, zip, assets, ge);
         if (res < 0) {
             return res;
         ssize_t res = processAssets(bundle, zip, assets, ge);
         if (res < 0) {
             return res;