Fix issue when converting fil->tl.
We should call ResourceTable::getLocales directly,
and not AssetManager::getLocales. The latter will convert
"tl" to "fil" so we'll end up thinking we have resources
for "fil" when we don't really have any.
bug: 15873165
Change-Id: I9753e4608aaecede328a40ee1f3ee6b016d0dedc
diff --git a/libs/androidfw/AssetManager.cpp b/libs/androidfw/AssetManager.cpp
index 482dfc8..56c95bd 100644
--- a/libs/androidfw/AssetManager.cpp
+++ b/libs/androidfw/AssetManager.cpp
@@ -365,7 +365,6 @@
delete[] mLocale;
}
-
// If we're attempting to set a locale that starts with "fil",
// we should convert it to "tl" for backwards compatibility since
// we've been using "tl" instead of "fil" prior to L.
@@ -374,7 +373,10 @@
// instead of attempting a fallback.
if (strncmp(locale, kFilPrefix, kFilPrefixLen) == 0) {
Vector<String8> locales;
- getLocales(&locales);
+ ResTable* res = mResources;
+ if (res != NULL) {
+ res->getLocales(&locales);
+ }
const size_t localesSize = locales.size();
bool hasFil = false;
for (size_t i = 0; i < localesSize; ++i) {