summaryrefslogtreecommitdiffstats
path: root/tools
diff options
context:
space:
mode:
authorDirk Sigurdson <dirk.sigurdson@t-mobile.com>2010-07-04 14:34:32 -0400
committerDirk Sigurdson <dirk.sigurdson@t-mobile.com>2010-07-04 14:34:32 -0400
commitb28c4cab51146075ee492f1d1065d96bcb41a2d6 (patch)
treeacb97a537286d9942db683d3fb53320af1658fea /tools
parent71beeab14a891297b6658c4aeb47557083091aa1 (diff)
parent6d0e558bba04f20bf33dce53ef80d912c9ff44ca (diff)
downloadframeworks_base-b28c4cab51146075ee492f1d1065d96bcb41a2d6.zip
frameworks_base-b28c4cab51146075ee492f1d1065d96bcb41a2d6.tar.gz
frameworks_base-b28c4cab51146075ee492f1d1065d96bcb41a2d6.tar.bz2
Merge commit 'themes/themes-eclair' into themes-2.2_r1
Conflicts: api/current.xml core/java/android/app/ActivityManager.java core/java/android/app/ActivityThread.java core/java/android/app/ApplicationContext.java core/java/android/content/Intent.java core/java/android/content/pm/PackageInfo.java core/java/android/content/res/AssetManager.java core/java/android/content/res/Configuration.java core/jni/android_util_AssetManager.cpp media/java/android/media/Ringtone.java services/java/com/android/server/PackageManagerService.java services/java/com/android/server/am/ActivityManagerService.java test-runner/android/test/mock/MockPackageManager.java
Diffstat (limited to 'tools')
-rw-r--r--tools/aapt/Bundle.h5
-rw-r--r--tools/aapt/Main.cpp13
-rw-r--r--tools/aapt/ResourceTable.cpp11
3 files changed, 25 insertions, 4 deletions
diff --git a/tools/aapt/Bundle.h b/tools/aapt/Bundle.h
index 3308a35..09e02a6 100644
--- a/tools/aapt/Bundle.h
+++ b/tools/aapt/Bundle.h
@@ -35,7 +35,7 @@ public:
Bundle(void)
: mCmd(kCommandUnknown), mVerbose(false), mAndroidList(false),
mForce(false), mGrayscaleTolerance(0), mMakePackageDirs(false),
- mUpdate(false), mExtending(false),
+ mUpdate(false), mExtending(false), mExtendedPackageId(0),
mRequireLocalization(false), mPseudolocalize(false),
mWantUTF16(false), mValues(false),
mCompressionMethod(0), mOutputAPKFile(NULL),
@@ -73,6 +73,8 @@ public:
void setUpdate(bool val) { mUpdate = val; }
bool getExtending(void) const { return mExtending; }
void setExtending(bool val) { mExtending = val; }
+ int getExtendedPackageId(void) const { return mExtendedPackageId; }
+ void setExtendedPackageId(int val) { mExtendedPackageId = val; }
bool getRequireLocalization(void) const { return mRequireLocalization; }
void setRequireLocalization(bool val) { mRequireLocalization = val; }
bool getPseudolocalize(void) const { return mPseudolocalize; }
@@ -201,6 +203,7 @@ private:
bool mMakePackageDirs;
bool mUpdate;
bool mExtending;
+ int mExtendedPackageId;
bool mRequireLocalization;
bool mPseudolocalize;
bool mWantUTF16;
diff --git a/tools/aapt/Main.cpp b/tools/aapt/Main.cpp
index b0c6e39..ad4f8bf 100644
--- a/tools/aapt/Main.cpp
+++ b/tools/aapt/Main.cpp
@@ -14,6 +14,7 @@
#include <stdlib.h>
#include <getopt.h>
#include <assert.h>
+#include <ctype.h>
using namespace android;
@@ -55,7 +56,7 @@ void usage(void)
" xmltree Print the compiled xmls in the given assets.\n"
" xmlstrings Print the strings of the given compiled xml assets.\n\n", gProgName);
fprintf(stderr,
- " %s p[ackage] [-d][-f][-m][-u][-v][-x][-z][-M AndroidManifest.xml] \\\n"
+ " %s p[ackage] [-d][-f][-m][-u][-v][-x[ extending-resource-id]][-z][-M AndroidManifest.xml] \\\n"
" [-0 extension [-0 extension ...]] [-g tolerance] [-j jarfile] \\\n"
" [--min-sdk-version VAL] [--target-sdk-version VAL] \\\n"
" [--app-version VAL] [--app-version-name TEXT] [--custom-package VAL] \\\n"
@@ -108,7 +109,7 @@ void usage(void)
#endif
" -u update existing packages (add new, replace older, remove deleted files)\n"
" -v verbose output\n"
- " -x create extending (non-application) resource IDs\n"
+ " -x either create or assign (if specified) extending (non-application) resource IDs\n"
" -z require localization of resource attributes marked with\n"
" localization=\"suggested\"\n"
" -A additional directory in which to find raw asset files\n"
@@ -271,6 +272,14 @@ int main(int argc, char* const argv[])
break;
case 'x':
bundle.setExtending(true);
+ argc--;
+ argv++;
+ if (!argc || !isdigit(argv[0][0])) {
+ argc++;
+ argv--;
+ } else {
+ bundle.setExtendedPackageId(atoi(argv[0]));
+ }
break;
case 'z':
bundle.setRequireLocalization(true);
diff --git a/tools/aapt/ResourceTable.cpp b/tools/aapt/ResourceTable.cpp
index a2f085a..bcbefaa 100644
--- a/tools/aapt/ResourceTable.cpp
+++ b/tools/aapt/ResourceTable.cpp
@@ -3586,7 +3586,16 @@ sp<ResourceTable::Package> ResourceTable::getPackage(const String16& package)
mHaveAppPackage = true;
p = new Package(package, 127);
} else {
- p = new Package(package, mNextPackageId);
+ int extendedPackageId = mBundle->getExtendedPackageId();
+ if (extendedPackageId != 0) {
+ if ((uint32_t)extendedPackageId < mNextPackageId) {
+ fprintf(stderr, "Package ID %d already in use!\n", mNextPackageId);
+ return NULL;
+ }
+ p = new Package(package, extendedPackageId);
+ } else {
+ p = new Package(package, mNextPackageId);
+ }
}
//printf("*** NEW PACKAGE: \"%s\" id=%d\n",
// String8(package).string(), p->getAssignedId());