summaryrefslogtreecommitdiffstats
path: root/tools
diff options
context:
space:
mode:
authorXavier Ducrohet <xav@android.com>2013-04-12 16:00:49 -0700
committerXavier Ducrohet <xav@android.com>2013-04-12 16:02:54 -0700
commit8730f46ae5ba9021a0e01c068ffc6b552b6c4510 (patch)
tree0029a29868d6ff22577549764334b6e664766fbf /tools
parente203384f1627f27c81ff72426498927fb9d80698 (diff)
downloadframeworks_base-8730f46ae5ba9021a0e01c068ffc6b552b6c4510.zip
frameworks_base-8730f46ae5ba9021a0e01c068ffc6b552b6c4510.tar.gz
frameworks_base-8730f46ae5ba9021a0e01c068ffc6b552b6c4510.tar.bz2
Make --non-constant-id generates non final IDs for styleable.
This was already done for all other types of resources, but not for styleable (or the constants for the styleable array indices). This fixes this. This only affects the SDK as this is used by the SDK toolchain only. Change-Id: Idfc2f7915be2b0e88590f38fd660610ffc7e160c
Diffstat (limited to 'tools')
-rw-r--r--tools/aapt/Resource.cpp17
1 files changed, 12 insertions, 5 deletions
diff --git a/tools/aapt/Resource.cpp b/tools/aapt/Resource.cpp
index 77168f9..44aaa43 100644
--- a/tools/aapt/Resource.cpp
+++ b/tools/aapt/Resource.cpp
@@ -1597,7 +1597,7 @@ static String16 getAttributeComment(const sp<AaptAssets>& assets,
static status_t writeLayoutClasses(
FILE* fp, const sp<AaptAssets>& assets,
- const sp<AaptSymbols>& symbols, int indent, bool includePrivate)
+ const sp<AaptSymbols>& symbols, int indent, bool includePrivate, bool nonConstantId)
{
const char* indentStr = getIndentSpace(indent);
if (!includePrivate) {
@@ -1612,6 +1612,14 @@ static status_t writeLayoutClasses(
indentStr = getIndentSpace(indent);
bool hasErrors = false;
+ const char * id_array_format = nonConstantId ?
+ "%spublic static int[] %s = {\n%s" :
+ "%spublic static final int[] %s = {\n%s";
+
+ const char * id_array_index_format = nonConstantId ?
+ "%spublic static int %s_%s = %d;\n" :
+ "%spublic static final int %s_%s = %d;\n";
+
size_t i;
size_t N = symbols->getNestedSymbols().size();
for (i=0; i<N; i++) {
@@ -1745,8 +1753,7 @@ static status_t writeLayoutClasses(
}
fprintf(fp,
- "%spublic static final int[] %s = {\n"
- "%s",
+ id_array_format,
indentStr, nclassName.string(),
getIndentSpace(indent+1));
@@ -1840,7 +1847,7 @@ static status_t writeLayoutClasses(
fprintf(fp, "%s@Deprecated\n", indentStr);
}
fprintf(fp,
- "%spublic static final int %s_%s = %d;\n",
+ id_array_index_format,
indentStr, nclassName.string(),
String8(name).string(), (int)pos);
}
@@ -2083,7 +2090,7 @@ static status_t writeSymbolClass(
}
if (styleableSymbols != NULL) {
- err = writeLayoutClasses(fp, assets, styleableSymbols, indent, includePrivate);
+ err = writeLayoutClasses(fp, assets, styleableSymbols, indent, includePrivate, nonConstantId);
if (err != NO_ERROR) {
return err;
}