Explicitly use en_US when picking a Locale using "en"

In the absence of a clear country, this change adds an explicit
FALLBACK entry for Locale.ENGLISH to ensure the device defaults
to en_US. There were reports of en_AU being chosen, which covers
fewer users than en_US.

The code was previously using the first locale that matches the
language obtained from the list returned by:
context.getAssets().getLocales()

The ordering for this list is not well defined. The existing
arbitrary behavior will continue for other language-only matches.

This fallback behavior is only used when the device only has a
language signal and other sources on device (i.e. ro.carrier /
R.array.carrier_properties, or MCC code) have not yielded a
language AND country. An example being when the user's sim has
a sim lock set and they have not unlocked the sim yet.

Bug: 28998094
(cherry-picked from commit 47c2502872793cf8c7931adc32071f64b533a3c4)

Change-Id: Ib5acdbd7d5d26b24365769811db0d7c7be05c687
1 file changed
tree: 619b55d9fb1e8b26dac5b3f1de184b72272f09a3
  1. src/
  2. tests/
  3. tools/
  4. Android.mk
  5. CleanSpec.mk
  6. README.txt