Use Sydney timezone instead of LordHowe
Sooraj Sasindran [Wed, 7 Jun 2017 17:06:34 +0000 (10:06 -0700)]
Use Sydney timezone instead of LordHowe as default timezone
in Australia

Bug=33228250
Test: Verified using the unit testing MccTable
Change-Id: I4cbef0d5469c47be432798f8e1a2bf2d9f913f71

src/java/com/android/internal/telephony/MccTable.java
tests/telephonytests/src/com/android/internal/telephony/MccTableTest.java

index 2bd3286..51ae81e 100644 (file)
@@ -97,7 +97,21 @@ public final class MccTable {
         Locale locale = new Locale("", entry.mIso);
         String[] tz = TimeZoneNames.forLocale(locale);
         if (tz.length == 0) return null;
-        return tz[0];
+
+        String zoneName = tz[0];
+
+        /* Use Australia/Sydney instead of Australia/Lord_Howe for Australia.
+         * http://b/33228250
+         * Todo: remove the code, see b/62418027
+         */
+        if (mcc == 505  /* Australia / Norfolk Island */) {
+            for (String zone : tz) {
+                if (zone.contains("Sydney")) {
+                    zoneName = zone;
+                }
+            }
+        }
+        return zoneName;
     }
 
     /**
index e88a783..de98c67 100644 (file)
@@ -33,6 +33,9 @@ public class MccTableTest extends AndroidTestCase {
         assertEquals("Asia/Tokyo", MccTable.defaultTimeZoneForMcc(441));
         assertEquals("Asia/Singapore", MccTable.defaultTimeZoneForMcc(525));
         assertEquals("Europe/Stockholm", MccTable.defaultTimeZoneForMcc(240));
+
+        /* A test for the special handling for MCC 505. http://b/33228250. */
+        assertEquals("Australia/Sydney", MccTable.defaultTimeZoneForMcc(505));
         assertEquals(null, MccTable.defaultTimeZoneForMcc(0));    // mcc not defined, hence default
         assertEquals(null, MccTable.defaultTimeZoneForMcc(2000)); // mcc not defined, hence default
     }