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