Merge commit 'f479aa0900e9a85afdc78b1048684e37579ebf23'

Conflicts:
	api/current.xml
	core/res/res/values/public.xml
This commit is contained in:
The Android Open Source Project
2009-05-20 22:41:10 -07:00
3 changed files with 3105 additions and 33 deletions

File diff suppressed because it is too large Load Diff

View File

@@ -1091,31 +1091,55 @@
=============================================================== -->
<eat-comment />
<public type="attr" name="tension" id="0x0101026a" />
<public type="attr" name="extraTension" id="0x0101026b" />
<public type="attr" name="density" id="0x0101026c" />
<public type="attr" name="searchSuggestThreshold" id="0x0101026d" />
<public type="attr" name="includeInGlobalSearch" id="0x0101026e" />
<public type="attr" name="onClick" id="0x0101026f" />
<public type="attr" name="targetSdkVersion" id="0x01010270" />
<public type="attr" name="maxSdkVersion" id="0x01010271" />
<public type="attr" name="testOnly" id="0x01010272" />
<public type="attr" name="contentDescription" id="0x01010273" />
<public type="attr" name="tension" id="0x0101026a" />
<public type="attr" name="extraTension" />
<public type="attr" name="density" />
<public type="attr" name="searchSuggestThreshold" />
<public type="attr" name="includeInGlobalSearch" />
<public type="attr" name="onClick" />
<public type="attr" name="targetSdkVersion" />
<public type="attr" name="maxSdkVersion" />
<public type="attr" name="testOnly" />
<public type="attr" name="contentDescription" />
<public-padding type="attr" name="donut_resource_pad" end="0x0101029f" />
<public type="anim" name="anticipate_interpolator" id="0x010a0007" />
<public type="anim" name="overshoot_interpolator" id="0x010a0008" />
<public type="anim" name="anticipate_overshoot_interpolator" id="0x010a0009" />
<public type="anim" name="bounce_interpolator" id="0x010a000a" />
<public type="anim" name="linear_interpolator" id="0x010a000b" />
<public-padding type="id" name="donut_resource_pad" end="0x01020040" />
<public-padding type="style" name="donut_resource_pad" end="0x01030070" />
<public-padding type="string" name="donut_resource_pad" end="0x01040030" />
<public type="drawable" name="stat_sys_vp_phone_call" id="0x0108022d" />
<public type="drawable" name="stat_sys_vp_phone_call_on_hold" id="0x0108022e" />
<public-padding type="dimen" name="donut_resource_pad" end="0x01050010" />
<public-padding type="color" name="donut_resource_pad" end="0x01060030" />
<public-padding type="array" name="donut_resource_pad" end="0x01070010" />
<public-padding type="anim" name="donut_resource_pad" end="0x010a0020" />
<public-padding type="integer" name="donut_resource_pad" end="0x010e0010" />
<public type="anim" name="anticipate_interpolator" />
<public type="anim" name="overshoot_interpolator" />
<public type="anim" name="anticipate_overshoot_interpolator" />
<public type="anim" name="bounce_interpolator" />
<public type="anim" name="linear_interpolator" />
<public-padding type="drawable" name="donut_resource_pad" end="0x010800d0" />
<public-padding type="layout" name="donut_resource_pad" end="0x01090020" />
<!-- ===============================================================
Resources added in version 5 of the platform.
=============================================================== -->
<eat-comment />
<public type="attr" name="accountType" id="0x01010274" />
<public type="attr" name="contentAuthority" id="0x01010275" />
<public type="attr" name="accountType" id="0x010102A9" />
<public type="attr" name="contentAuthority" id="0x010102AA" />
<public type="drawable" name="stat_sys_vp_phone_call" />
<public type="drawable" name="stat_sys_vp_phone_call_on_hold" />
</resources>

View File

@@ -661,6 +661,7 @@ status_t compileResourceFile(Bundle* bundle,
const String16 string_array16("string-array");
const String16 integer_array16("integer-array");
const String16 public16("public");
const String16 public_padding16("public-padding");
const String16 private_symbols16("private-symbols");
const String16 skip16("skip");
const String16 eat_comment16("eat-comment");
@@ -695,7 +696,7 @@ status_t compileResourceFile(Bundle* bundle,
bool hasErrors = false;
uint32_t nextPublicId = 0;
DefaultKeyedVector<String16, uint32_t> nextPublicId(0);
ResXMLTree::event_code_t code;
do {
@@ -784,15 +785,15 @@ status_t compileResourceFile(Bundle* bundle,
hasErrors = localHasErrors = true;
} else {
ident = identValue.data;
nextPublicId = ident+1;
nextPublicId.replaceValueFor(type, ident+1);
}
} else if (nextPublicId == 0) {
} else if (nextPublicId.indexOfKey(type) < 0) {
srcPos.error("No 'id' attribute supplied <public>,"
" and no previous id defined in this file.\n");
hasErrors = localHasErrors = true;
} else if (!localHasErrors) {
ident = nextPublicId;
nextPublicId++;
ident = nextPublicId.valueFor(type);
nextPublicId.replaceValueFor(type, ident+1);
}
if (!localHasErrors) {
@@ -826,6 +827,116 @@ status_t compileResourceFile(Bundle* bundle,
}
continue;
} else if (strcmp16(block.getElementName(&len), public_padding16.string()) == 0) {
SourcePos srcPos(in->getPrintableSource(), block.getLineNumber());
String16 type;
ssize_t typeIdx = block.indexOfAttribute(NULL, "type");
if (typeIdx < 0) {
srcPos.error("A 'type' attribute is required for <public-padding>\n");
hasErrors = localHasErrors = true;
}
type = String16(block.getAttributeStringValue(typeIdx, &len));
String16 name;
ssize_t nameIdx = block.indexOfAttribute(NULL, "name");
if (nameIdx < 0) {
srcPos.error("A 'name' attribute is required for <public-padding>\n");
hasErrors = localHasErrors = true;
}
name = String16(block.getAttributeStringValue(nameIdx, &len));
uint32_t start = 0;
ssize_t startIdx = block.indexOfAttribute(NULL, "start");
if (startIdx >= 0) {
const char16_t* startStr = block.getAttributeStringValue(startIdx, &len);
Res_value startValue;
if (!ResTable::stringToInt(startStr, len, &startValue)) {
srcPos.error("Given 'start' attribute is not an integer: %s\n",
String8(block.getAttributeStringValue(startIdx, &len)).string());
hasErrors = localHasErrors = true;
} else {
start = startValue.data;
}
} else if (nextPublicId.indexOfKey(type) < 0) {
srcPos.error("No 'start' attribute supplied <public-padding>,"
" and no previous id defined in this file.\n");
hasErrors = localHasErrors = true;
} else if (!localHasErrors) {
start = nextPublicId.valueFor(type);
}
uint32_t end = 0;
ssize_t endIdx = block.indexOfAttribute(NULL, "end");
if (endIdx >= 0) {
const char16_t* endStr = block.getAttributeStringValue(endIdx, &len);
Res_value endValue;
if (!ResTable::stringToInt(endStr, len, &endValue)) {
srcPos.error("Given 'end' attribute is not an integer: %s\n",
String8(block.getAttributeStringValue(endIdx, &len)).string());
hasErrors = localHasErrors = true;
} else {
end = endValue.data;
}
} else {
srcPos.error("No 'end' attribute supplied <public-padding>\n");
hasErrors = localHasErrors = true;
}
if (end >= start) {
nextPublicId.replaceValueFor(type, end+1);
} else {
srcPos.error("Padding start '%ul' is after end '%ul'\n",
start, end);
hasErrors = localHasErrors = true;
}
String16 comment(
block.getComment(&len) ? block.getComment(&len) : nulStr);
for (uint32_t curIdent=start; curIdent<=end; curIdent++) {
if (localHasErrors) {
break;
}
String16 curName(name);
char buf[64];
sprintf(buf, "%d", (int)(end-curIdent+1));
curName.append(String16(buf));
err = outTable->addEntry(srcPos, myPackage, type, curName,
String16("padding"), NULL, &curParams, false,
ResTable_map::TYPE_STRING, overwrite);
if (err < NO_ERROR) {
hasErrors = localHasErrors = true;
break;
}
err = outTable->addPublic(srcPos, myPackage, type,
curName, curIdent);
if (err < NO_ERROR) {
hasErrors = localHasErrors = true;
break;
}
sp<AaptSymbols> symbols = assets->getSymbolsFor(String8("R"));
if (symbols != NULL) {
symbols = symbols->addNestedSymbol(String8(type), srcPos);
}
if (symbols != NULL) {
symbols->makeSymbolPublic(String8(curName), srcPos);
symbols->appendComment(String8(curName), comment, srcPos);
} else {
srcPos.error("Unable to create symbols!\n");
hasErrors = localHasErrors = true;
}
}
while ((code=block.next()) != ResXMLTree::END_DOCUMENT && code != ResXMLTree::BAD_DOCUMENT) {
if (code == ResXMLTree::END_TAG) {
if (strcmp16(block.getElementName(&len), public_padding16.string()) == 0) {
break;
}
}
}
continue;
} else if (strcmp16(block.getElementName(&len), private_symbols16.string()) == 0) {
String16 pkg;
ssize_t pkgIdx = block.indexOfAttribute(NULL, "package");