Loading tools/layoutlib/bridge/src/com/android/layoutlib/bridge/android/AndroidLocale.java +13 −0 Original line number Diff line number Diff line Loading @@ -16,6 +16,8 @@ package com.android.layoutlib.bridge.android; import com.android.layoutlib.bridge.impl.RenderAction; import android.icu.util.ULocale; import java.util.Locale; Loading Loading @@ -56,4 +58,15 @@ public class AndroidLocale { public static String getScript(Locale locale) { return ULocale.forLocale(locale).getScript(); } public static Locale getDefault() { BridgeContext context = RenderAction.getCurrentContext(); if (context != null) { Locale locale = context.getConfiguration().locale; if (locale != null) { return locale; } } return Locale.getDefault(); } } tools/layoutlib/bridge/src/com/android/layoutlib/bridge/impl/RenderAction.java +3 −0 Original line number Diff line number Diff line Loading @@ -37,6 +37,7 @@ import android.view.ViewConfiguration_Accessor; import android.view.inputmethod.InputMethodManager; import android.view.inputmethod.InputMethodManager_Accessor; import java.util.Locale; import java.util.concurrent.TimeUnit; import java.util.concurrent.locks.ReentrantLock; Loading Loading @@ -397,6 +398,8 @@ public abstract class RenderAction<T extends RenderParams> extends FrameworkReso // preview releases of API 15. // TODO: Remove the try catch around Oct 2015. } String locale = getParams().getLocale(); if (locale != null && !locale.isEmpty()) config.locale = new Locale(locale); // TODO: fill in more config info. Loading tools/layoutlib/create/src/com/android/tools/layoutlib/create/ReplaceMethodCallsAdapter.java +6 −2 Original line number Diff line number Diff line Loading @@ -93,18 +93,22 @@ public class ReplaceMethodCallsAdapter extends ClassVisitor { } }); // Case 3: java.util.Locale.adjustLanguageCode() or java.util.Locale.forLanguageTag() // Case 3: java.util.Locale.adjustLanguageCode() or java.util.Locale.forLanguageTag() or // java.util.Locale.getDefault() METHOD_REPLACERS.add(new MethodReplacer() { private final String STRING_TO_STRING = Type.getMethodDescriptor(STRING, STRING); private final String STRING_TO_LOCALE = Type.getMethodDescriptor( Type.getType(Locale.class), STRING); private final String VOID_TO_LOCALE = Type.getMethodDescriptor(Type.getType(Locale.class)); @Override public boolean isNeeded(String owner, String name, String desc, String sourceClass) { return JAVA_LOCALE_CLASS.equals(owner) && ("adjustLanguageCode".equals(name) && desc.equals(STRING_TO_STRING) || "forLanguageTag".equals(name) && desc.equals(STRING_TO_LOCALE)); "forLanguageTag".equals(name) && desc.equals(STRING_TO_LOCALE) || "getDefault".equals(name) && desc.equals(VOID_TO_LOCALE)); } @Override Loading Loading
tools/layoutlib/bridge/src/com/android/layoutlib/bridge/android/AndroidLocale.java +13 −0 Original line number Diff line number Diff line Loading @@ -16,6 +16,8 @@ package com.android.layoutlib.bridge.android; import com.android.layoutlib.bridge.impl.RenderAction; import android.icu.util.ULocale; import java.util.Locale; Loading Loading @@ -56,4 +58,15 @@ public class AndroidLocale { public static String getScript(Locale locale) { return ULocale.forLocale(locale).getScript(); } public static Locale getDefault() { BridgeContext context = RenderAction.getCurrentContext(); if (context != null) { Locale locale = context.getConfiguration().locale; if (locale != null) { return locale; } } return Locale.getDefault(); } }
tools/layoutlib/bridge/src/com/android/layoutlib/bridge/impl/RenderAction.java +3 −0 Original line number Diff line number Diff line Loading @@ -37,6 +37,7 @@ import android.view.ViewConfiguration_Accessor; import android.view.inputmethod.InputMethodManager; import android.view.inputmethod.InputMethodManager_Accessor; import java.util.Locale; import java.util.concurrent.TimeUnit; import java.util.concurrent.locks.ReentrantLock; Loading Loading @@ -397,6 +398,8 @@ public abstract class RenderAction<T extends RenderParams> extends FrameworkReso // preview releases of API 15. // TODO: Remove the try catch around Oct 2015. } String locale = getParams().getLocale(); if (locale != null && !locale.isEmpty()) config.locale = new Locale(locale); // TODO: fill in more config info. Loading
tools/layoutlib/create/src/com/android/tools/layoutlib/create/ReplaceMethodCallsAdapter.java +6 −2 Original line number Diff line number Diff line Loading @@ -93,18 +93,22 @@ public class ReplaceMethodCallsAdapter extends ClassVisitor { } }); // Case 3: java.util.Locale.adjustLanguageCode() or java.util.Locale.forLanguageTag() // Case 3: java.util.Locale.adjustLanguageCode() or java.util.Locale.forLanguageTag() or // java.util.Locale.getDefault() METHOD_REPLACERS.add(new MethodReplacer() { private final String STRING_TO_STRING = Type.getMethodDescriptor(STRING, STRING); private final String STRING_TO_LOCALE = Type.getMethodDescriptor( Type.getType(Locale.class), STRING); private final String VOID_TO_LOCALE = Type.getMethodDescriptor(Type.getType(Locale.class)); @Override public boolean isNeeded(String owner, String name, String desc, String sourceClass) { return JAVA_LOCALE_CLASS.equals(owner) && ("adjustLanguageCode".equals(name) && desc.equals(STRING_TO_STRING) || "forLanguageTag".equals(name) && desc.equals(STRING_TO_LOCALE)); "forLanguageTag".equals(name) && desc.equals(STRING_TO_LOCALE) || "getDefault".equals(name) && desc.equals(VOID_TO_LOCALE)); } @Override Loading