summaryrefslogtreecommitdiffstats
path: root/tools
diff options
context:
space:
mode:
authorDirk Sigurdson <dirk.sigurdson@t-mobile.com>2010-02-07 01:49:14 -0800
committerDirk Sigurdson <dirk.sigurdson@t-mobile.com>2010-02-07 01:49:14 -0800
commitb95e715706d92e7c3225737115919c115c957de4 (patch)
tree60cb3c974e136d4a261510d8b36aa1c231a1d6bf /tools
parent5d29366790e8fe6239d66e1e662ab05068b0549b (diff)
parent6ff3f8add87358b8489fa3f1705cf3bbfa34bc38 (diff)
downloadframeworks_base-b95e715706d92e7c3225737115919c115c957de4.zip
frameworks_base-b95e715706d92e7c3225737115919c115c957de4.tar.gz
frameworks_base-b95e715706d92e7c3225737115919c115c957de4.tar.bz2
Merge remote branch 'korg/eclair' into themes-eclair
Conflicts: core/java/android/app/ActivityThread.java core/java/android/content/pm/ActivityInfo.java core/java/android/content/res/AssetManager.java
Diffstat (limited to 'tools')
-rw-r--r--tools/aapt/Bundle.h5
-rw-r--r--tools/aapt/Command.cpp7
-rw-r--r--tools/aapt/Main.cpp19
-rw-r--r--tools/layoutlib/api/src/com/android/layoutlib/api/IDensityBasedResourceValue.java3
-rw-r--r--tools/layoutlib/bridge/src/android/graphics/Paint.java14
-rw-r--r--tools/layoutlib/bridge/src/com/android/layoutlib/bridge/Bridge.java19
-rw-r--r--tools/layoutlib/bridge/src/com/android/layoutlib/bridge/BridgeAssetManager.java12
7 files changed, 57 insertions, 22 deletions
diff --git a/tools/aapt/Bundle.h b/tools/aapt/Bundle.h
index 649d97f..9eadec4 100644
--- a/tools/aapt/Bundle.h
+++ b/tools/aapt/Bundle.h
@@ -43,7 +43,7 @@ public:
mAndroidManifestFile(NULL), mPublicOutputFile(NULL),
mRClassDir(NULL), mResourceIntermediatesDir(NULL),
mMinSdkVersion(NULL), mTargetSdkVersion(NULL), mMaxSdkVersion(NULL),
- mVersionCode(NULL), mVersionName(NULL),
+ mVersionCode(NULL), mVersionName(NULL), mCustomPackage(NULL),
mArgc(0), mArgv(NULL)
{}
~Bundle(void) {}
@@ -123,6 +123,8 @@ public:
void setVersionCode(const char* val) { mVersionCode = val; }
const char* getVersionName() const { return mVersionName; }
void setVersionName(const char* val) { mVersionName = val; }
+ const char* getCustomPackage() const { return mCustomPackage; }
+ void setCustomPackage(const char* val) { mCustomPackage = val; }
/*
* Set and get the file specification.
@@ -185,6 +187,7 @@ private:
const char* mMaxSdkVersion;
const char* mVersionCode;
const char* mVersionName;
+ const char* mCustomPackage;
/* file specification */
int mArgc;
diff --git a/tools/aapt/Command.cpp b/tools/aapt/Command.cpp
index 1a536d6..0ef5d55 100644
--- a/tools/aapt/Command.cpp
+++ b/tools/aapt/Command.cpp
@@ -1151,7 +1151,12 @@ int doPackage(Bundle* bundle)
// Write out R.java constants
if (assets->getPackage() == assets->getSymbolsPrivatePackage()) {
- err = writeResourceSymbols(bundle, assets, assets->getPackage(), true);
+ if (bundle->getCustomPackage() == NULL) {
+ err = writeResourceSymbols(bundle, assets, assets->getPackage(), true);
+ } else {
+ const String8 customPkg(bundle->getCustomPackage());
+ err = writeResourceSymbols(bundle, assets, customPkg, true);
+ }
if (err < 0) {
goto bail;
}
diff --git a/tools/aapt/Main.cpp b/tools/aapt/Main.cpp
index 735751c..d835339 100644
--- a/tools/aapt/Main.cpp
+++ b/tools/aapt/Main.cpp
@@ -60,7 +60,7 @@ void usage(void)
" [-0 extension [-0 extension ...]] [-g tolerance] [-j jarfile] \\\n"
" [--min-sdk-version VAL] [--target-sdk-version VAL] \\\n"
" [--max-sdk-version VAL] [--app-version VAL] \\\n"
- " [--app-version-name TEXT]\\\n"
+ " [--app-version-name TEXT] [--custom-package VAL] \\\n"
" [-I base-package [-I base-package ...]] \\\n"
" [-A asset-source-dir] [-G class-list-file] [-P public-definitions-file] \\\n"
" [-S resource-sources [-S resource-sources ...]] "
@@ -117,8 +117,8 @@ void usage(void)
" -J specify where to output R.java resource constant definitions\n"
" -M specify full path to AndroidManifest.xml to include in zip\n"
" -P specify where to output public resource definitions\n"
- " -S directory in which to find resources. Multiple directories will be scanned"
- " and the first match found (left to right) will take precedence."
+ " -S directory in which to find resources. Multiple directories will be scanned\n"
+ " and the first match found (left to right) will take precedence.\n"
" -0 specifies an additional extension for which such files will not\n"
" be stored compressed in the .apk. An empty string means to not\n"
" compress any files at all.\n"
@@ -133,7 +133,9 @@ void usage(void)
" --version-code\n"
" inserts android:versionCode in to manifest.\n"
" --version-name\n"
- " inserts android:versionName in to manifest.\n");
+ " inserts android:versionName in to manifest.\n"
+ " --custom-package\n"
+ " generates R.java into a different package.\n");
}
/*
@@ -427,6 +429,15 @@ int main(int argc, char* const argv[])
bundle.setVersionName(argv[0]);
} else if (strcmp(cp, "-values") == 0) {
bundle.setValues(true);
+ } else if (strcmp(cp, "-custom-package") == 0) {
+ argc--;
+ argv++;
+ if (!argc) {
+ fprintf(stderr, "ERROR: No argument supplied for '--custom-package' option\n");
+ wantUsage = true;
+ goto bail;
+ }
+ bundle.setCustomPackage(argv[0]);
} else {
fprintf(stderr, "ERROR: Unknown option '-%s'\n", cp);
wantUsage = true;
diff --git a/tools/layoutlib/api/src/com/android/layoutlib/api/IDensityBasedResourceValue.java b/tools/layoutlib/api/src/com/android/layoutlib/api/IDensityBasedResourceValue.java
index 7128032..57a776f 100644
--- a/tools/layoutlib/api/src/com/android/layoutlib/api/IDensityBasedResourceValue.java
+++ b/tools/layoutlib/api/src/com/android/layoutlib/api/IDensityBasedResourceValue.java
@@ -20,12 +20,15 @@ package com.android.layoutlib.api;
* Represents an Android Resources that has a density info attached to it.
*/
public interface IDensityBasedResourceValue extends IResourceValue {
+
public static enum Density {
HIGH(240),
MEDIUM(160),
LOW(120),
NODPI(0);
+ public final static int DEFAULT_DENSITY = 160;
+
private final int mValue;
Density(int value) {
diff --git a/tools/layoutlib/bridge/src/android/graphics/Paint.java b/tools/layoutlib/bridge/src/android/graphics/Paint.java
index 86de56b..f3af133 100644
--- a/tools/layoutlib/bridge/src/android/graphics/Paint.java
+++ b/tools/layoutlib/bridge/src/android/graphics/Paint.java
@@ -950,7 +950,6 @@ public class Paint extends _Original_Paint {
@Override
public int breakText(String text, boolean measureForwards,
float maxWidth, float[] measuredWidth) {
- // NOTE: javadoc doesn't match. Just a guess.
return breakText(text,
0 /* start */, text.length() /* end */,
measureForwards, maxWidth, measuredWidth);
@@ -975,7 +974,18 @@ public class Paint extends _Original_Paint {
@Override
public int breakText(CharSequence text, int start, int end, boolean measureForwards,
float maxWidth, float[] measuredWidth) {
- return super.breakText(text, start, end, measureForwards, maxWidth, measuredWidth);
+ char[] buf = new char[end - start];
+ int result;
+
+ TextUtils.getChars(text, start, end, buf, 0);
+
+ if (measureForwards) {
+ result = breakText(buf, 0, end - start, maxWidth, measuredWidth);
+ } else {
+ result = breakText(buf, 0, -(end - start), maxWidth, measuredWidth);
+ }
+
+ return result;
}
/**
diff --git a/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/Bridge.java b/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/Bridge.java
index c455977..2df9219 100644
--- a/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/Bridge.java
+++ b/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/Bridge.java
@@ -675,9 +675,12 @@ public final class Bridge implements ILayoutBridge {
name = name.substring(BridgeConstants.PREFIX_ANDROID.length());
}
- // at this point we could have the format style/<name>. we want only the name
+ // at this point we could have the format <type>/<name>. we want only the name as long as
+ // the type is style.
if (name.startsWith(BridgeConstants.REFERENCE_STYLE)) {
name = name.substring(BridgeConstants.REFERENCE_STYLE.length());
+ } else if (name.indexOf('/') != -1) {
+ return null;
}
IResourceValue parent = null;
@@ -697,7 +700,7 @@ public final class Bridge implements ILayoutBridge {
return (IStyleResourceValue)parent;
}
- sLogger.error(String.format("Unable to resolve parent style name: ", parentName));
+ sLogger.error(String.format("Unable to resolve parent style name: %s", parentName));
return null;
}
@@ -1069,24 +1072,24 @@ public final class Bridge implements ILayoutBridge {
public void wallpaperOffsetsComplete(IBinder window) {
// pass for now.
}
-
+
@SuppressWarnings("unused")
public Bundle sendWallpaperCommand(IBinder window, String action, int x, int y,
int z, Bundle extras, boolean sync) {
// pass for now.
return null;
}
-
+
@SuppressWarnings("unused")
public void wallpaperCommandComplete(IBinder window, Bundle result) {
// pass for now.
}
-
+
@SuppressWarnings("unused")
public void closeSystemDialogs(String reason) {
// pass for now.
}
-
+
public IBinder asBinder() {
// pass for now.
return null;
@@ -1151,12 +1154,12 @@ public final class Bridge implements ILayoutBridge {
int z, Bundle extras, boolean sync) {
// pass for now.
}
-
+
@SuppressWarnings("unused")
public void closeSystemDialogs(String reason) {
// pass for now.
}
-
+
public IBinder asBinder() {
// pass for now.
return null;
diff --git a/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/BridgeAssetManager.java b/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/BridgeAssetManager.java
index 06dd96f..6c1b5b3 100644
--- a/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/BridgeAssetManager.java
+++ b/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/BridgeAssetManager.java
@@ -32,21 +32,21 @@ public class BridgeAssetManager extends AssetManager {
* {@link Bridge} calls this method after setting up a new bridge.
*/
/*package*/ static AssetManager initSystem() {
- if (!(AssetManager.mSystem instanceof BridgeAssetManager)) {
+ if (!(AssetManager.sSystem instanceof BridgeAssetManager)) {
// Note that AssetManager() creates a system AssetManager and we override it
// with our BridgeAssetManager.
- AssetManager.mSystem = new BridgeAssetManager();
- AssetManager.mSystem.makeStringBlocks(false);
+ AssetManager.sSystem = new BridgeAssetManager();
+ AssetManager.sSystem.makeStringBlocks(false);
}
- return AssetManager.mSystem;
+ return AssetManager.sSystem;
}
/**
- * Clears the static {@link AssetManager#mSystem} to make sure we don't leave objects
+ * Clears the static {@link AssetManager#sSystem} to make sure we don't leave objects
* around that would prevent us from unloading the library.
*/
/*package*/ static void clearSystem() {
- AssetManager.mSystem = null;
+ AssetManager.sSystem = null;
}
private BridgeAssetManager() {