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
Change-Id: Ie563c74466dbfa2ebc3faa8dada50bb7872e95fc
diff --git a/src/java/com/android/internal/telephony/MccTable.java b/src/java/com/android/internal/telephony/MccTable.java
index 1e1fea2..2a531c4 100644
--- a/src/java/com/android/internal/telephony/MccTable.java
+++ b/src/java/com/android/internal/telephony/MccTable.java
@@ -226,6 +226,8 @@
     private static final Map<Locale, Locale> FALLBACKS = new HashMap<Locale, Locale>();
 
     static {
+        // If we have English (without a country) explicitly prioritize en_US. http://b/28998094
+        FALLBACKS.put(Locale.ENGLISH, Locale.US);
         FALLBACKS.put(Locale.CANADA, Locale.US);
     }