1345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet/* 2345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet * Copyright (C) 2011 The Android Open Source Project 3345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet * 4345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet * Licensed under the Apache License, Version 2.0 (the "License"); 5345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet * you may not use this file except in compliance with the License. 6345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet * You may obtain a copy of the License at 7345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet * 8345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet * http://www.apache.org/licenses/LICENSE-2.0 9345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet * 10345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet * Unless required by applicable law or agreed to in writing, software 11345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet * distributed under the License is distributed on an "AS IS" BASIS, 12345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet * See the License for the specific language governing permissions and 14345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet * limitations under the License. 15345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet */ 16345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet 17345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohetpackage libcore.icu; 18345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet 199a4fe29c8d92014d2d9a848e9116b8cc9d0842f9Xavier Ducrohetimport com.android.tools.layoutlib.annotations.LayoutlibDelegate; 20d77b9ed7dcc42efca33b225c4594a30aab9e709cDeepanshu Gupta 21d77b9ed7dcc42efca33b225c4594a30aab9e709cDeepanshu Guptaimport android.icu.text.DateTimePatternGenerator; 22d77b9ed7dcc42efca33b225c4594a30aab9e709cDeepanshu Guptaimport android.icu.util.Currency; 23d77b9ed7dcc42efca33b225c4594a30aab9e709cDeepanshu Guptaimport android.icu.util.ULocale; 24eca056926a5acacbd1fe6b144df2d2952dc4a86eDeepanshu Guptaimport android.icu.util.VersionInfo; 259a4fe29c8d92014d2d9a848e9116b8cc9d0842f9Xavier Ducrohet 26345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohetimport java.util.Locale; 27345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet 28345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet/** 29345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet * Delegate implementing the native methods of libcore.icu.ICU 30345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet * 31345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet * Through the layoutlib_create tool, the original native methods of ICU have been replaced 32345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet * by calls to methods of the same name in this delegate class. 33345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet * 34345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet */ 35345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohetpublic class ICU_Delegate { 36345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet 379a4fe29c8d92014d2d9a848e9116b8cc9d0842f9Xavier Ducrohet // --- Java delegates 389a4fe29c8d92014d2d9a848e9116b8cc9d0842f9Xavier Ducrohet 399a4fe29c8d92014d2d9a848e9116b8cc9d0842f9Xavier Ducrohet @LayoutlibDelegate 40345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet /*package*/ static String toLowerCase(String s, String localeName) { 41345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet return s.toLowerCase(); 42345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet } 43345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet 449a4fe29c8d92014d2d9a848e9116b8cc9d0842f9Xavier Ducrohet @LayoutlibDelegate 45345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet /*package*/ static String toUpperCase(String s, String localeName) { 46345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet return s.toUpperCase(); 47345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet } 48345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet 49345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet // --- Native methods accessing ICU's database. 50345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet 51279c00e8e0abb20f7e10577c77937c058da080bfDeepanshu Gupta @LayoutlibDelegate 520d7ebc51ffb63f886af2196f05910925126726b9Deepanshu Gupta /*package*/ static String getBestDateTimePatternNative(String skeleton, String localeName) { 5339e75835399f4d979cf82069dae2bd1ec496fb81Deepanshu Gupta return DateTimePatternGenerator.getInstance(new ULocale(localeName)) 5439e75835399f4d979cf82069dae2bd1ec496fb81Deepanshu Gupta .getBestPattern(skeleton); 55279c00e8e0abb20f7e10577c77937c058da080bfDeepanshu Gupta } 56279c00e8e0abb20f7e10577c77937c058da080bfDeepanshu Gupta 57279c00e8e0abb20f7e10577c77937c058da080bfDeepanshu Gupta @LayoutlibDelegate 58eca056926a5acacbd1fe6b144df2d2952dc4a86eDeepanshu Gupta @SuppressWarnings("deprecation") 59279c00e8e0abb20f7e10577c77937c058da080bfDeepanshu Gupta /*package*/ static String getCldrVersion() { 60eca056926a5acacbd1fe6b144df2d2952dc4a86eDeepanshu Gupta return VersionInfo.ICU_DATA_VERSION.toString(); 61279c00e8e0abb20f7e10577c77937c058da080bfDeepanshu Gupta } 62279c00e8e0abb20f7e10577c77937c058da080bfDeepanshu Gupta 639a4fe29c8d92014d2d9a848e9116b8cc9d0842f9Xavier Ducrohet @LayoutlibDelegate 6466743a1ec0dddadec7cd8f026f9b6a2239f515beXavier Ducrohet /*package*/ static String getIcuVersion() { 65eca056926a5acacbd1fe6b144df2d2952dc4a86eDeepanshu Gupta return VersionInfo.ICU_VERSION.toString(); 6666743a1ec0dddadec7cd8f026f9b6a2239f515beXavier Ducrohet } 6766743a1ec0dddadec7cd8f026f9b6a2239f515beXavier Ducrohet 6866743a1ec0dddadec7cd8f026f9b6a2239f515beXavier Ducrohet @LayoutlibDelegate 6966743a1ec0dddadec7cd8f026f9b6a2239f515beXavier Ducrohet /*package*/ static String getUnicodeVersion() { 70eca056926a5acacbd1fe6b144df2d2952dc4a86eDeepanshu Gupta return VersionInfo.UNICODE_7_0.toString(); 7166743a1ec0dddadec7cd8f026f9b6a2239f515beXavier Ducrohet } 7266743a1ec0dddadec7cd8f026f9b6a2239f515beXavier Ducrohet 7366743a1ec0dddadec7cd8f026f9b6a2239f515beXavier Ducrohet @LayoutlibDelegate 74345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet /*package*/ static String[] getAvailableBreakIteratorLocalesNative() { 75345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet return new String[0]; 76345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet } 77345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet 789a4fe29c8d92014d2d9a848e9116b8cc9d0842f9Xavier Ducrohet @LayoutlibDelegate 79345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet /*package*/ static String[] getAvailableCalendarLocalesNative() { 80345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet return new String[0]; 81345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet } 82345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet 839a4fe29c8d92014d2d9a848e9116b8cc9d0842f9Xavier Ducrohet @LayoutlibDelegate 84345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet /*package*/ static String[] getAvailableCollatorLocalesNative() { 85345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet return new String[0]; 86345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet } 87345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet 889a4fe29c8d92014d2d9a848e9116b8cc9d0842f9Xavier Ducrohet @LayoutlibDelegate 89345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet /*package*/ static String[] getAvailableDateFormatLocalesNative() { 90345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet return new String[0]; 91345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet } 92345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet 939a4fe29c8d92014d2d9a848e9116b8cc9d0842f9Xavier Ducrohet @LayoutlibDelegate 94345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet /*package*/ static String[] getAvailableLocalesNative() { 95345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet return new String[0]; 96345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet } 97345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet 989a4fe29c8d92014d2d9a848e9116b8cc9d0842f9Xavier Ducrohet @LayoutlibDelegate 99345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet /*package*/ static String[] getAvailableNumberFormatLocalesNative() { 100345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet return new String[0]; 101345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet } 102345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet 1039a4fe29c8d92014d2d9a848e9116b8cc9d0842f9Xavier Ducrohet @LayoutlibDelegate 10466743a1ec0dddadec7cd8f026f9b6a2239f515beXavier Ducrohet /*package*/ static String[] getAvailableCurrencyCodes() { 10566743a1ec0dddadec7cd8f026f9b6a2239f515beXavier Ducrohet return new String[0]; 10666743a1ec0dddadec7cd8f026f9b6a2239f515beXavier Ducrohet } 10766743a1ec0dddadec7cd8f026f9b6a2239f515beXavier Ducrohet 10866743a1ec0dddadec7cd8f026f9b6a2239f515beXavier Ducrohet @LayoutlibDelegate 10966743a1ec0dddadec7cd8f026f9b6a2239f515beXavier Ducrohet /*package*/ static String getCurrencyCode(String locale) { 110345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet return ""; 111345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet } 112345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet 1139a4fe29c8d92014d2d9a848e9116b8cc9d0842f9Xavier Ducrohet @LayoutlibDelegate 11466743a1ec0dddadec7cd8f026f9b6a2239f515beXavier Ducrohet /*package*/ static String getCurrencyDisplayName(String locale, String currencyCode) { 11566743a1ec0dddadec7cd8f026f9b6a2239f515beXavier Ducrohet return ""; 11666743a1ec0dddadec7cd8f026f9b6a2239f515beXavier Ducrohet } 11766743a1ec0dddadec7cd8f026f9b6a2239f515beXavier Ducrohet 11866743a1ec0dddadec7cd8f026f9b6a2239f515beXavier Ducrohet @LayoutlibDelegate 11966743a1ec0dddadec7cd8f026f9b6a2239f515beXavier Ducrohet /*package*/ static int getCurrencyFractionDigits(String currencyCode) { 120345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet return 0; 121345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet } 122345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet 1239a4fe29c8d92014d2d9a848e9116b8cc9d0842f9Xavier Ducrohet @LayoutlibDelegate 124103d40960daa0420995aa12881bef33892a0a2abDeepanshu Gupta /*package*/ static int getCurrencyNumericCode(String currencyCode) { 125103d40960daa0420995aa12881bef33892a0a2abDeepanshu Gupta return Currency.getInstance(currencyCode).getNumericCode(); 126103d40960daa0420995aa12881bef33892a0a2abDeepanshu Gupta } 127103d40960daa0420995aa12881bef33892a0a2abDeepanshu Gupta 128103d40960daa0420995aa12881bef33892a0a2abDeepanshu Gupta @LayoutlibDelegate 12966743a1ec0dddadec7cd8f026f9b6a2239f515beXavier Ducrohet /*package*/ static String getCurrencySymbol(String locale, String currencyCode) { 130345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet return ""; 131345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet } 132345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet 1339a4fe29c8d92014d2d9a848e9116b8cc9d0842f9Xavier Ducrohet @LayoutlibDelegate 134345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet /*package*/ static String getDisplayCountryNative(String countryCode, String locale) { 135345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet return ""; 136345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet } 137345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet 1389a4fe29c8d92014d2d9a848e9116b8cc9d0842f9Xavier Ducrohet @LayoutlibDelegate 139345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet /*package*/ static String getDisplayLanguageNative(String languageCode, String locale) { 140345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet return ""; 141345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet } 142345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet 1439a4fe29c8d92014d2d9a848e9116b8cc9d0842f9Xavier Ducrohet @LayoutlibDelegate 144345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet /*package*/ static String getDisplayVariantNative(String variantCode, String locale) { 145345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet return ""; 146345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet } 147345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet 1489a4fe29c8d92014d2d9a848e9116b8cc9d0842f9Xavier Ducrohet @LayoutlibDelegate 1490d7ebc51ffb63f886af2196f05910925126726b9Deepanshu Gupta /*package*/ static String getDisplayScriptNative(String variantCode, String locale) { 1500d7ebc51ffb63f886af2196f05910925126726b9Deepanshu Gupta return ""; 1510d7ebc51ffb63f886af2196f05910925126726b9Deepanshu Gupta } 1520d7ebc51ffb63f886af2196f05910925126726b9Deepanshu Gupta 1530d7ebc51ffb63f886af2196f05910925126726b9Deepanshu Gupta @LayoutlibDelegate 154bb5d0cc4369590ce892cca2f717f5d5568c5f655Deepanshu Gupta /*package*/ static String getISO3Country(String locale) { 155345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet return ""; 156345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet } 157345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet 1589a4fe29c8d92014d2d9a848e9116b8cc9d0842f9Xavier Ducrohet @LayoutlibDelegate 159bb5d0cc4369590ce892cca2f717f5d5568c5f655Deepanshu Gupta /*package*/ static String getISO3Language(String locale) { 160345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet return ""; 161345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet } 162345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet 1639a4fe29c8d92014d2d9a848e9116b8cc9d0842f9Xavier Ducrohet @LayoutlibDelegate 16466743a1ec0dddadec7cd8f026f9b6a2239f515beXavier Ducrohet /*package*/ static String addLikelySubtags(String locale) { 16566743a1ec0dddadec7cd8f026f9b6a2239f515beXavier Ducrohet return ""; 16666743a1ec0dddadec7cd8f026f9b6a2239f515beXavier Ducrohet } 16766743a1ec0dddadec7cd8f026f9b6a2239f515beXavier Ducrohet 168fc511683b6647295cb645a0118d1b0afd575b3c3Xavier Ducrohet @LayoutlibDelegate 169fc511683b6647295cb645a0118d1b0afd575b3c3Xavier Ducrohet /*package*/ static String getScript(String locale) { 170fc511683b6647295cb645a0118d1b0afd575b3c3Xavier Ducrohet return ""; 171fc511683b6647295cb645a0118d1b0afd575b3c3Xavier Ducrohet } 17266743a1ec0dddadec7cd8f026f9b6a2239f515beXavier Ducrohet 17366743a1ec0dddadec7cd8f026f9b6a2239f515beXavier Ducrohet @LayoutlibDelegate 174345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet /*package*/ static String[] getISOLanguagesNative() { 175345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet return Locale.getISOLanguages(); 176345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet } 177345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet 1789a4fe29c8d92014d2d9a848e9116b8cc9d0842f9Xavier Ducrohet @LayoutlibDelegate 179345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet /*package*/ static String[] getISOCountriesNative() { 180345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet return Locale.getISOCountries(); 181345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet } 182345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet 1830d7ebc51ffb63f886af2196f05910925126726b9Deepanshu Gupta @LayoutlibDelegate 1840d7ebc51ffb63f886af2196f05910925126726b9Deepanshu Gupta /*package*/ static boolean initLocaleDataNative(String locale, LocaleData result) { 185345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet 186345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet // Used by Calendar. 187eca056926a5acacbd1fe6b144df2d2952dc4a86eDeepanshu Gupta result.firstDayOfWeek = 1; 188eca056926a5acacbd1fe6b144df2d2952dc4a86eDeepanshu Gupta result.minimalDaysInFirstWeek = 1; 189345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet 190345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet // Used by DateFormatSymbols. 191345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet result.amPm = new String[] { "AM", "PM" }; 192345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet result.eras = new String[] { "BC", "AD" }; 193345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet 194345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet result.longMonthNames = new String[] { "January", "February", "March", "April", "May", 195345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet "June", "July", "August", "September", "October", "November", "December" }; 196345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet result.shortMonthNames = new String[] { "Jan", "Feb", "Mar", "Apr", "May", 197345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" }; 198345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet result.longStandAloneMonthNames = result.longMonthNames; 199345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet result.shortStandAloneMonthNames = result.shortMonthNames; 200345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet 20181f74f4bc96ea4266cebe1b785d095558f540800Deepanshu Gupta // The platform code expects this to begin at index 1, rather than 0. It maps it directly to 20281f74f4bc96ea4266cebe1b785d095558f540800Deepanshu Gupta // the constants from java.util.Calendar.<weekday> 203345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet result.longWeekdayNames = new String[] { 20481f74f4bc96ea4266cebe1b785d095558f540800Deepanshu Gupta "", "Sunday", "Monday" ,"Tuesday", "Wednesday", "Thursday", "Friday", "Saturday" }; 205345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet result.shortWeekdayNames = new String[] { 20681f74f4bc96ea4266cebe1b785d095558f540800Deepanshu Gupta "", "Sun", "Mon" ,"Tue", "Wed", "Thu", "Fri", "Sat" }; 20781f74f4bc96ea4266cebe1b785d095558f540800Deepanshu Gupta result.tinyWeekdayNames = new String[] { 20881f74f4bc96ea4266cebe1b785d095558f540800Deepanshu Gupta "", "S", "M", "T", "W", "T", "F", "S" }; 20981f74f4bc96ea4266cebe1b785d095558f540800Deepanshu Gupta 210345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet result.longStandAloneWeekdayNames = result.longWeekdayNames; 211345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet result.shortStandAloneWeekdayNames = result.shortWeekdayNames; 21281f74f4bc96ea4266cebe1b785d095558f540800Deepanshu Gupta result.tinyStandAloneWeekdayNames = result.tinyWeekdayNames; 213345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet 214345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet result.fullTimeFormat = ""; 215345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet result.longTimeFormat = ""; 216345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet result.mediumTimeFormat = ""; 217345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet result.shortTimeFormat = ""; 218345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet 219345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet result.fullDateFormat = ""; 220345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet result.longDateFormat = ""; 221345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet result.mediumDateFormat = ""; 222345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet result.shortDateFormat = ""; 223345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet 224345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet // Used by DecimalFormatSymbols. 225345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet result.zeroDigit = '0'; 226345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet result.decimalSeparator = '.'; 227345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet result.groupingSeparator = ','; 228345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet result.patternSeparator = ' '; 229d47acaeecd991ecd01ecc9a37e60011f545712d7Elliott Hughes result.percent = "%"; 230345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet result.perMill = '\u2030'; 231345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet result.monetarySeparator = ' '; 232c73991bda0ad7821e27c20940368b0c0212c5dc4Narayan Kamath result.minusSign = "-"; 233345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet result.exponentSeparator = "e"; 234345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet result.infinity = "\u221E"; 235345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet result.NaN = "NaN"; 236345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet // Also used by Currency. 237345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet result.currencySymbol = "$"; 238345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet result.internationalCurrencySymbol = "USD"; 239345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet 240345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet // Used by DecimalFormat and NumberFormat. 241345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet result.numberPattern = "%f"; 242345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet result.integerPattern = "%d"; 243345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet result.currencyPattern = "%s"; 244345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet result.percentPattern = "%f"; 245345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet 246345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet return true; 247345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet } 248e2b67777ad8c46e4b7fd85e9cd54f82b8dbe57eaDeepanshu Gupta 249e2b67777ad8c46e4b7fd85e9cd54f82b8dbe57eaDeepanshu Gupta @LayoutlibDelegate 250e2b67777ad8c46e4b7fd85e9cd54f82b8dbe57eaDeepanshu Gupta /*package*/ static void setDefaultLocale(String locale) { 251e2b67777ad8c46e4b7fd85e9cd54f82b8dbe57eaDeepanshu Gupta ICU.setDefaultLocale(locale); 252e2b67777ad8c46e4b7fd85e9cd54f82b8dbe57eaDeepanshu Gupta } 253e2b67777ad8c46e4b7fd85e9cd54f82b8dbe57eaDeepanshu Gupta 254e2b67777ad8c46e4b7fd85e9cd54f82b8dbe57eaDeepanshu Gupta @LayoutlibDelegate 255e2b67777ad8c46e4b7fd85e9cd54f82b8dbe57eaDeepanshu Gupta /*package*/ static String getDefaultLocale() { 256e2b67777ad8c46e4b7fd85e9cd54f82b8dbe57eaDeepanshu Gupta return ICU.getDefaultLocale(); 257e2b67777ad8c46e4b7fd85e9cd54f82b8dbe57eaDeepanshu Gupta } 258d77b9ed7dcc42efca33b225c4594a30aab9e709cDeepanshu Gupta 259d77b9ed7dcc42efca33b225c4594a30aab9e709cDeepanshu Gupta @LayoutlibDelegate 260d77b9ed7dcc42efca33b225c4594a30aab9e709cDeepanshu Gupta /*package*/ static String getTZDataVersion() { 261d77b9ed7dcc42efca33b225c4594a30aab9e709cDeepanshu Gupta return ICU.getTZDataVersion(); 262d77b9ed7dcc42efca33b225c4594a30aab9e709cDeepanshu Gupta } 263345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet} 264