diff options
author | Dirk Sigurdson <dirk.sigurdson@t-mobile.com> | 2010-07-04 14:34:32 -0400 |
---|---|---|
committer | Dirk Sigurdson <dirk.sigurdson@t-mobile.com> | 2010-07-04 14:34:32 -0400 |
commit | b28c4cab51146075ee492f1d1065d96bcb41a2d6 (patch) | |
tree | acb97a537286d9942db683d3fb53320af1658fea /tools | |
parent | 71beeab14a891297b6658c4aeb47557083091aa1 (diff) | |
parent | 6d0e558bba04f20bf33dce53ef80d912c9ff44ca (diff) | |
download | frameworks_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.h | 5 | ||||
-rw-r--r-- | tools/aapt/Main.cpp | 13 | ||||
-rw-r--r-- | tools/aapt/ResourceTable.cpp | 11 |
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()); |