#include "StringPool.h"
#include "SourcePos.h"
+#include <set>
+#include <map>
+
+using namespace std;
+
class ResourceTable;
enum {
const sp<AaptAssets>& assets,
const sp<AaptFile>& in,
const ResTable_config& defParams,
+ const bool overwrite,
ResourceTable* outTable);
struct AccessorCookie
const Vector<StringPool::entry_style_span>* style = NULL,
const ResTable_config* params = NULL,
const bool doSetIndex = false,
- const int32_t format = ResTable_map::TYPE_ANY);
+ const int32_t format = ResTable_map::TYPE_ANY,
+ const bool overwrite = false);
status_t startBag(const SourcePos& pos,
const String16& package,
uint32_t getResId(const String16& package,
const String16& type,
- const String16& name) const;
+ const String16& name,
+ bool onlyPublic = false) const;
uint32_t getResId(const String16& ref,
const String16* defType = NULL,
const String16* defPackage = NULL,
- const char** outErrorMsg = NULL) const;
+ const char** outErrorMsg = NULL,
+ bool onlyPublic = false) const;
static bool isValidResourceName(const String16& s);
status_t assignResourceIds();
status_t addSymbols(const sp<AaptSymbols>& outSymbols = NULL);
+ void addLocalization(const String16& name, const String8& locale);
+ status_t validateLocalizations(void);
status_t flatten(Bundle*, const sp<AaptFile>& dest);
String16 getParent() const { return mParent; }
status_t makeItABag(const SourcePos& sourcePos);
-
+
+ status_t emptyBag(const SourcePos& sourcePos);
+
status_t setItem(const SourcePos& pos,
const String16& value,
const Vector<StringPool::entry_style_span>* style = NULL,
- int32_t format = ResTable_map::TYPE_ANY);
+ int32_t format = ResTable_map::TYPE_ANY,
+ const bool overwrite = false);
status_t addToBag(const SourcePos& pos,
const String16& key, const String16& value,
String16 mAssetsPackage;
sp<AaptAssets> mAssets;
- DefaultKeyedVector<String16, DefaultKeyedVector<String16, uint32_t> > mPublicNames;
DefaultKeyedVector<String16, sp<Package> > mPackages;
Vector<sp<Package> > mOrderedPackages;
uint32_t mNextPackageId;
size_t mNumLocal;
SourcePos mCurrentXmlPos;
Bundle* mBundle;
+
+ // key = string resource name, value = set of locales in which that name is defined
+ map<String16, set<String8> > mLocalizations;
};
class ResourceFilter