AAPT: Include empty locale in getLocales

AAPT dump badging relies on the empty locale being
present when there are no locales.

Bug: 38192121
Test: manual
Change-Id: I2f5c431d4fd07c525a2318e7b93be0e93c32448f
This commit is contained in:
Adam Lesinski
2017-05-11 12:15:26 -07:00
parent 33532e0208
commit fa2fc0b263

View File

@@ -5997,16 +5997,14 @@ void ResTable::getLocales(Vector<String8>* locales, bool includeSystemLocales,
char locale[RESTABLE_MAX_LOCALE_LEN];
forEachConfiguration(false, false, includeSystemLocales, [&](const ResTable_config& cfg) {
if (cfg.locale != 0) {
cfg.getBcp47Locale(locale, mergeEquivalentLangs /* canonicalize if merging */);
cfg.getBcp47Locale(locale, mergeEquivalentLangs /* canonicalize if merging */);
const auto beginIter = locales->begin();
const auto endIter = locales->end();
const auto beginIter = locales->begin();
const auto endIter = locales->end();
auto iter = std::lower_bound(beginIter, endIter, locale, compareString8AndCString);
if (iter == endIter || strcmp(iter->string(), locale) != 0) {
locales->insertAt(String8(locale), std::distance(beginIter, iter));
}
auto iter = std::lower_bound(beginIter, endIter, locale, compareString8AndCString);
if (iter == endIter || strcmp(iter->string(), locale) != 0) {
locales->insertAt(String8(locale), std::distance(beginIter, iter));
}
});
}