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;
2039e75835399f4d979cf82069dae2bd1ec496fb81Deepanshu Guptaimport com.ibm.icu.text.DateTimePatternGenerator;
21103d40960daa0420995aa12881bef33892a0a2abDeepanshu Guptaimport com.ibm.icu.util.Currency;
2239e75835399f4d979cf82069dae2bd1ec496fb81Deepanshu Guptaimport com.ibm.icu.util.ULocale;
239a4fe29c8d92014d2d9a848e9116b8cc9d0842f9Xavier Ducrohet
24345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohetimport java.util.Locale;
25345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet
26345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet/**
27345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet * Delegate implementing the native methods of libcore.icu.ICU
28345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet *
29345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet * Through the layoutlib_create tool, the original native methods of ICU have been replaced
30345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet * by calls to methods of the same name in this delegate class.
31345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet *
32345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet */
33345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohetpublic class ICU_Delegate {
34345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet
359a4fe29c8d92014d2d9a848e9116b8cc9d0842f9Xavier Ducrohet    // --- Java delegates
369a4fe29c8d92014d2d9a848e9116b8cc9d0842f9Xavier Ducrohet
379a4fe29c8d92014d2d9a848e9116b8cc9d0842f9Xavier Ducrohet    @LayoutlibDelegate
38345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet    /*package*/ static String toLowerCase(String s, String localeName) {
39345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet        return s.toLowerCase();
40345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet    }
41345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet
429a4fe29c8d92014d2d9a848e9116b8cc9d0842f9Xavier Ducrohet    @LayoutlibDelegate
43345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet    /*package*/ static String toUpperCase(String s, String localeName) {
44345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet        return s.toUpperCase();
45345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet    }
46345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet
47345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet    // --- Native methods accessing ICU's database.
48345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet
49279c00e8e0abb20f7e10577c77937c058da080bfDeepanshu Gupta    @LayoutlibDelegate
500d7ebc51ffb63f886af2196f05910925126726b9Deepanshu Gupta    /*package*/ static String getBestDateTimePatternNative(String skeleton, String localeName) {
5139e75835399f4d979cf82069dae2bd1ec496fb81Deepanshu Gupta        return DateTimePatternGenerator.getInstance(new ULocale(localeName))
5239e75835399f4d979cf82069dae2bd1ec496fb81Deepanshu Gupta                .getBestPattern(skeleton);
53279c00e8e0abb20f7e10577c77937c058da080bfDeepanshu Gupta    }
54279c00e8e0abb20f7e10577c77937c058da080bfDeepanshu Gupta
55279c00e8e0abb20f7e10577c77937c058da080bfDeepanshu Gupta    @LayoutlibDelegate
56279c00e8e0abb20f7e10577c77937c058da080bfDeepanshu Gupta    /*package*/ static String getCldrVersion() {
57279c00e8e0abb20f7e10577c77937c058da080bfDeepanshu Gupta        return "22.1.1";      // TODO: check what the right value should be.
58279c00e8e0abb20f7e10577c77937c058da080bfDeepanshu Gupta    }
59279c00e8e0abb20f7e10577c77937c058da080bfDeepanshu Gupta
609a4fe29c8d92014d2d9a848e9116b8cc9d0842f9Xavier Ducrohet    @LayoutlibDelegate
6166743a1ec0dddadec7cd8f026f9b6a2239f515beXavier Ducrohet    /*package*/ static String getIcuVersion() {
6266743a1ec0dddadec7cd8f026f9b6a2239f515beXavier Ducrohet        return "unknown_layoutlib";
6366743a1ec0dddadec7cd8f026f9b6a2239f515beXavier Ducrohet    }
6466743a1ec0dddadec7cd8f026f9b6a2239f515beXavier Ducrohet
6566743a1ec0dddadec7cd8f026f9b6a2239f515beXavier Ducrohet    @LayoutlibDelegate
6666743a1ec0dddadec7cd8f026f9b6a2239f515beXavier Ducrohet    /*package*/ static String getUnicodeVersion() {
6766743a1ec0dddadec7cd8f026f9b6a2239f515beXavier Ducrohet        return "5.2";
6866743a1ec0dddadec7cd8f026f9b6a2239f515beXavier Ducrohet    }
6966743a1ec0dddadec7cd8f026f9b6a2239f515beXavier Ducrohet
7066743a1ec0dddadec7cd8f026f9b6a2239f515beXavier Ducrohet    @LayoutlibDelegate
71345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet    /*package*/ static String[] getAvailableBreakIteratorLocalesNative() {
72345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet        return new String[0];
73345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet    }
74345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet
759a4fe29c8d92014d2d9a848e9116b8cc9d0842f9Xavier Ducrohet    @LayoutlibDelegate
76345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet    /*package*/ static String[] getAvailableCalendarLocalesNative() {
77345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet        return new String[0];
78345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet    }
79345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet
809a4fe29c8d92014d2d9a848e9116b8cc9d0842f9Xavier Ducrohet    @LayoutlibDelegate
81345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet    /*package*/ static String[] getAvailableCollatorLocalesNative() {
82345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet        return new String[0];
83345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet    }
84345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet
859a4fe29c8d92014d2d9a848e9116b8cc9d0842f9Xavier Ducrohet    @LayoutlibDelegate
86345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet    /*package*/ static String[] getAvailableDateFormatLocalesNative() {
87345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet        return new String[0];
88345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet    }
89345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet
909a4fe29c8d92014d2d9a848e9116b8cc9d0842f9Xavier Ducrohet    @LayoutlibDelegate
91345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet    /*package*/ static String[] getAvailableLocalesNative() {
92345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet        return new String[0];
93345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet    }
94345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet
959a4fe29c8d92014d2d9a848e9116b8cc9d0842f9Xavier Ducrohet    @LayoutlibDelegate
96345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet    /*package*/ static String[] getAvailableNumberFormatLocalesNative() {
97345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet        return new String[0];
98345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet    }
99345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet
1009a4fe29c8d92014d2d9a848e9116b8cc9d0842f9Xavier Ducrohet    @LayoutlibDelegate
10166743a1ec0dddadec7cd8f026f9b6a2239f515beXavier Ducrohet    /*package*/ static String[] getAvailableCurrencyCodes() {
10266743a1ec0dddadec7cd8f026f9b6a2239f515beXavier Ducrohet        return new String[0];
10366743a1ec0dddadec7cd8f026f9b6a2239f515beXavier Ducrohet    }
10466743a1ec0dddadec7cd8f026f9b6a2239f515beXavier Ducrohet
10566743a1ec0dddadec7cd8f026f9b6a2239f515beXavier Ducrohet    @LayoutlibDelegate
10666743a1ec0dddadec7cd8f026f9b6a2239f515beXavier Ducrohet    /*package*/ static String getCurrencyCode(String locale) {
107345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet        return "";
108345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet    }
109345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet
1109a4fe29c8d92014d2d9a848e9116b8cc9d0842f9Xavier Ducrohet    @LayoutlibDelegate
11166743a1ec0dddadec7cd8f026f9b6a2239f515beXavier Ducrohet    /*package*/ static String getCurrencyDisplayName(String locale, String currencyCode) {
11266743a1ec0dddadec7cd8f026f9b6a2239f515beXavier Ducrohet        return "";
11366743a1ec0dddadec7cd8f026f9b6a2239f515beXavier Ducrohet    }
11466743a1ec0dddadec7cd8f026f9b6a2239f515beXavier Ducrohet
11566743a1ec0dddadec7cd8f026f9b6a2239f515beXavier Ducrohet    @LayoutlibDelegate
11666743a1ec0dddadec7cd8f026f9b6a2239f515beXavier Ducrohet    /*package*/ static int getCurrencyFractionDigits(String currencyCode) {
117345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet        return 0;
118345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet    }
119345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet
1209a4fe29c8d92014d2d9a848e9116b8cc9d0842f9Xavier Ducrohet    @LayoutlibDelegate
121103d40960daa0420995aa12881bef33892a0a2abDeepanshu Gupta    /*package*/ static int getCurrencyNumericCode(String currencyCode) {
122103d40960daa0420995aa12881bef33892a0a2abDeepanshu Gupta        return Currency.getInstance(currencyCode).getNumericCode();
123103d40960daa0420995aa12881bef33892a0a2abDeepanshu Gupta    }
124103d40960daa0420995aa12881bef33892a0a2abDeepanshu Gupta
125103d40960daa0420995aa12881bef33892a0a2abDeepanshu Gupta    @LayoutlibDelegate
12666743a1ec0dddadec7cd8f026f9b6a2239f515beXavier Ducrohet    /*package*/ static String getCurrencySymbol(String locale, String currencyCode) {
127345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet        return "";
128345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet    }
129345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet
1309a4fe29c8d92014d2d9a848e9116b8cc9d0842f9Xavier Ducrohet    @LayoutlibDelegate
131345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet    /*package*/ static String getDisplayCountryNative(String countryCode, String locale) {
132345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet        return "";
133345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet    }
134345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet
1359a4fe29c8d92014d2d9a848e9116b8cc9d0842f9Xavier Ducrohet    @LayoutlibDelegate
136345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet    /*package*/ static String getDisplayLanguageNative(String languageCode, String locale) {
137345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet        return "";
138345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet    }
139345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet
1409a4fe29c8d92014d2d9a848e9116b8cc9d0842f9Xavier Ducrohet    @LayoutlibDelegate
141345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet    /*package*/ static String getDisplayVariantNative(String variantCode, String locale) {
142345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet        return "";
143345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet    }
144345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet
1459a4fe29c8d92014d2d9a848e9116b8cc9d0842f9Xavier Ducrohet    @LayoutlibDelegate
1460d7ebc51ffb63f886af2196f05910925126726b9Deepanshu Gupta    /*package*/ static String getDisplayScriptNative(String variantCode, String locale) {
1470d7ebc51ffb63f886af2196f05910925126726b9Deepanshu Gupta        return "";
1480d7ebc51ffb63f886af2196f05910925126726b9Deepanshu Gupta    }
1490d7ebc51ffb63f886af2196f05910925126726b9Deepanshu Gupta
1500d7ebc51ffb63f886af2196f05910925126726b9Deepanshu Gupta    @LayoutlibDelegate
151bb5d0cc4369590ce892cca2f717f5d5568c5f655Deepanshu Gupta    /*package*/ static String getISO3Country(String locale) {
152345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet        return "";
153345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet    }
154345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet
1559a4fe29c8d92014d2d9a848e9116b8cc9d0842f9Xavier Ducrohet    @LayoutlibDelegate
156bb5d0cc4369590ce892cca2f717f5d5568c5f655Deepanshu Gupta    /*package*/ static String getISO3Language(String locale) {
157345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet        return "";
158345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet    }
159345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet
1609a4fe29c8d92014d2d9a848e9116b8cc9d0842f9Xavier Ducrohet    @LayoutlibDelegate
16166743a1ec0dddadec7cd8f026f9b6a2239f515beXavier Ducrohet    /*package*/ static String addLikelySubtags(String locale) {
16266743a1ec0dddadec7cd8f026f9b6a2239f515beXavier Ducrohet        return "";
16366743a1ec0dddadec7cd8f026f9b6a2239f515beXavier Ducrohet    }
16466743a1ec0dddadec7cd8f026f9b6a2239f515beXavier Ducrohet
165fc511683b6647295cb645a0118d1b0afd575b3c3Xavier Ducrohet    @LayoutlibDelegate
166fc511683b6647295cb645a0118d1b0afd575b3c3Xavier Ducrohet    /*package*/ static String getScript(String locale) {
167fc511683b6647295cb645a0118d1b0afd575b3c3Xavier Ducrohet        return "";
168fc511683b6647295cb645a0118d1b0afd575b3c3Xavier Ducrohet    }
16966743a1ec0dddadec7cd8f026f9b6a2239f515beXavier Ducrohet
17066743a1ec0dddadec7cd8f026f9b6a2239f515beXavier Ducrohet    @LayoutlibDelegate
171345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet    /*package*/ static String[] getISOLanguagesNative() {
172345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet        return Locale.getISOLanguages();
173345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet    }
174345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet
1759a4fe29c8d92014d2d9a848e9116b8cc9d0842f9Xavier Ducrohet    @LayoutlibDelegate
176345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet    /*package*/ static String[] getISOCountriesNative() {
177345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet        return Locale.getISOCountries();
178345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet    }
179345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet
1800d7ebc51ffb63f886af2196f05910925126726b9Deepanshu Gupta    @LayoutlibDelegate
1810d7ebc51ffb63f886af2196f05910925126726b9Deepanshu Gupta    /*package*/ static boolean initLocaleDataNative(String locale, LocaleData result) {
182345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet
183345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet        // Used by Calendar.
184345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet        result.firstDayOfWeek = Integer.valueOf(1);
185345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet        result.minimalDaysInFirstWeek = Integer.valueOf(1);
186345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet
187345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet        // Used by DateFormatSymbols.
188345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet        result.amPm = new String[] { "AM", "PM" };
189345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet        result.eras = new String[] { "BC", "AD" };
190345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet
191345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet        result.longMonthNames = new String[] { "January", "February", "March", "April", "May",
192345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet                "June", "July", "August", "September", "October", "November", "December" };
193345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet        result.shortMonthNames = new String[] { "Jan", "Feb", "Mar", "Apr", "May",
194345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet                "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" };
195345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet        result.longStandAloneMonthNames = result.longMonthNames;
196345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet        result.shortStandAloneMonthNames = result.shortMonthNames;
197345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet
19881f74f4bc96ea4266cebe1b785d095558f540800Deepanshu Gupta        // The platform code expects this to begin at index 1, rather than 0. It maps it directly to
19981f74f4bc96ea4266cebe1b785d095558f540800Deepanshu Gupta        // the constants from java.util.Calendar.<weekday>
200345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet        result.longWeekdayNames = new String[] {
20181f74f4bc96ea4266cebe1b785d095558f540800Deepanshu Gupta                "", "Sunday", "Monday" ,"Tuesday", "Wednesday", "Thursday", "Friday", "Saturday" };
202345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet        result.shortWeekdayNames = new String[] {
20381f74f4bc96ea4266cebe1b785d095558f540800Deepanshu Gupta                "", "Sun", "Mon" ,"Tue", "Wed", "Thu", "Fri", "Sat" };
20481f74f4bc96ea4266cebe1b785d095558f540800Deepanshu Gupta        result.tinyWeekdayNames = new String[] {
20581f74f4bc96ea4266cebe1b785d095558f540800Deepanshu Gupta                "", "S", "M", "T", "W", "T", "F", "S" };
20681f74f4bc96ea4266cebe1b785d095558f540800Deepanshu Gupta
207345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet        result.longStandAloneWeekdayNames = result.longWeekdayNames;
208345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet        result.shortStandAloneWeekdayNames = result.shortWeekdayNames;
20981f74f4bc96ea4266cebe1b785d095558f540800Deepanshu Gupta        result.tinyStandAloneWeekdayNames = result.tinyWeekdayNames;
210345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet
211345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet        result.fullTimeFormat = "";
212345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet        result.longTimeFormat = "";
213345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet        result.mediumTimeFormat = "";
214345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet        result.shortTimeFormat = "";
215345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet
216345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet        result.fullDateFormat = "";
217345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet        result.longDateFormat = "";
218345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet        result.mediumDateFormat = "";
219345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet        result.shortDateFormat = "";
220345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet
221345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet        // Used by DecimalFormatSymbols.
222345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet        result.zeroDigit = '0';
223345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet        result.decimalSeparator = '.';
224345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet        result.groupingSeparator = ',';
225345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet        result.patternSeparator = ' ';
226b913af540834b34d74b65a4bdb77a092dca39a04Elliott Hughes        result.percent = "%";
227345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet        result.perMill = '\u2030';
228345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet        result.monetarySeparator = ' ';
229c73991bda0ad7821e27c20940368b0c0212c5dc4Narayan Kamath        result.minusSign = "-";
230345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet        result.exponentSeparator = "e";
231345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet        result.infinity = "\u221E";
232345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet        result.NaN = "NaN";
233345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet        // Also used by Currency.
234345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet        result.currencySymbol = "$";
235345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet        result.internationalCurrencySymbol = "USD";
236345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet
237345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet        // Used by DecimalFormat and NumberFormat.
238345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet        result.numberPattern = "%f";
239345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet        result.integerPattern = "%d";
240345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet        result.currencyPattern = "%s";
241345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet        result.percentPattern = "%f";
242345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet
243345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet        return true;
244345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet    }
245e2b67777ad8c46e4b7fd85e9cd54f82b8dbe57eaDeepanshu Gupta
246e2b67777ad8c46e4b7fd85e9cd54f82b8dbe57eaDeepanshu Gupta    @LayoutlibDelegate
247e2b67777ad8c46e4b7fd85e9cd54f82b8dbe57eaDeepanshu Gupta    /*package*/ static void setDefaultLocale(String locale) {
248e2b67777ad8c46e4b7fd85e9cd54f82b8dbe57eaDeepanshu Gupta        ICU.setDefaultLocale(locale);
249e2b67777ad8c46e4b7fd85e9cd54f82b8dbe57eaDeepanshu Gupta    }
250e2b67777ad8c46e4b7fd85e9cd54f82b8dbe57eaDeepanshu Gupta
251e2b67777ad8c46e4b7fd85e9cd54f82b8dbe57eaDeepanshu Gupta    @LayoutlibDelegate
252e2b67777ad8c46e4b7fd85e9cd54f82b8dbe57eaDeepanshu Gupta    /*package*/ static String getDefaultLocale() {
253e2b67777ad8c46e4b7fd85e9cd54f82b8dbe57eaDeepanshu Gupta        return ICU.getDefaultLocale();
254e2b67777ad8c46e4b7fd85e9cd54f82b8dbe57eaDeepanshu Gupta    }
255345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet}
256