Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit ca934420 authored by Tadashi G. Takaoka's avatar Tadashi G. Takaoka
Browse files

Fix newly created custom input style display name

This will revert I4263632e

Bug: 6443665
Bug: 6410653
Change-Id: Id9ad1a204ed9802488abfc2c536a95d62d55afe0
parent 4c9bdcc9
Loading
Loading
Loading
Loading
+14 −8
Original line number Diff line number Diff line
@@ -20,6 +20,7 @@ import static com.android.inputmethod.latin.Constants.Subtype.ExtraValue.KEYBOAR

import android.content.Context;
import android.content.res.Resources;
import android.util.Log;
import android.view.inputmethod.InputMethodSubtype;

import com.android.inputmethod.latin.LocaleUtils.RunInLocale;
@@ -28,7 +29,7 @@ import java.util.HashMap;
import java.util.Locale;

public class SubtypeLocale {
    private static final String TAG = SubtypeLocale.class.getSimpleName();
    static final String TAG = SubtypeLocale.class.getSimpleName();
    // This class must be located in the same package as LatinIME.java.
    private static final String RESOURCE_PACKAGE_NAME =
            DictionaryFactory.class.getPackage().getName();
@@ -38,7 +39,6 @@ public class SubtypeLocale {
    public static final String QWERTY = "qwerty";
    public static final int UNKNOWN_KEYBOARD_LAYOUT = R.string.subtype_generic;

    private static Context sContext;
    private static String[] sPredefinedKeyboardLayoutSet;
    // Keyboard layout to its display name map.
    private static final HashMap<String, String> sKeyboardKayoutToDisplayNameMap =
@@ -59,7 +59,6 @@ public class SubtypeLocale {
    }

    public static void init(Context context) {
        sContext = context;
        final Resources res = context.getResources();

        final String[] predefinedLayoutSet = res.getStringArray(R.array.predefined_layouts);
@@ -129,16 +128,23 @@ public class SubtypeLocale {
    //  en_US azerty T  English (US) (AZERTY)
    //  zz    azerty T  No language (AZERTY)    in system locale

    public static String getSubtypeDisplayName(InputMethodSubtype subtype, Resources res) {
        // TODO: Remove this check when InputMethodManager.getLastInputMethodSubtype is
        // fixed.
        if (!ImfUtils.checkIfSubtypeBelongsToThisIme(sContext, subtype)) return "";
    public static String getSubtypeDisplayName(final InputMethodSubtype subtype, Resources res) {
        final String language = getSubtypeLocaleDisplayName(subtype.getLocale());
        final int nameResId = subtype.getNameResId();
        final RunInLocale<String> getSubtypeName = new RunInLocale<String>() {
            @Override
            protected String job(Resources res) {
                try {
                    return res.getString(nameResId, language);
                } catch (Resources.NotFoundException e) {
                    // TODO: Remove this catch when InputMethodManager.getCurrentInputMethodSubtype
                    // is fixed.
                    Log.w(TAG, "Unknown subtype: mode=" + subtype.getMode()
                            + " locale=" + subtype.getLocale()
                            + " extra=" + subtype.getExtraValue()
                            + "\n" + Utils.getStackTrace());
                    return "";
                }
            }
        };
        final Locale locale = isNoLanguage(subtype)
+0 −10
Original line number Diff line number Diff line
@@ -30,14 +30,12 @@ public class SubtypeLocaleTests extends AndroidTestCase {
    // Locale to subtypes list.
    private final ArrayList<InputMethodSubtype> mSubtypesList = new ArrayList<InputMethodSubtype>();

    private Context mContext;
    private Resources mRes;

    @Override
    protected void setUp() throws Exception {
        super.setUp();
        final Context context = getContext();
        mContext = context;
        mRes = context.getResources();
        SubtypeLocale.init(context);
    }
@@ -124,10 +122,6 @@ public class SubtypeLocaleTests extends AndroidTestCase {
        final InputMethodSubtype ZZ_AZERTY = AdditionalSubtype.createAdditionalSubtype(
                SubtypeLocale.NO_LANGUAGE, "azerty", null);

        ImfUtils.setAdditionalInputMethodSubtypes(mContext, new InputMethodSubtype[] {
                DE_QWERTY, FR_QWERTZ, US_AZERTY, ZZ_AZERTY
        });

        final RunInLocale<Void> tests = new RunInLocale<Void>() {
            @Override
            protected Void job(Resources res) {
@@ -191,10 +185,6 @@ public class SubtypeLocaleTests extends AndroidTestCase {
        final InputMethodSubtype ZZ_AZERTY = AdditionalSubtype.createAdditionalSubtype(
                SubtypeLocale.NO_LANGUAGE, "azerty", null);

        ImfUtils.setAdditionalInputMethodSubtypes(mContext, new InputMethodSubtype[] {
                DE_QWERTY, FR_QWERTZ, US_AZERTY, ZZ_AZERTY
        });

        final RunInLocale<Void> tests = new RunInLocale<Void>() {
            @Override
            protected Void job(Resources res) {