Example usage for android.view.inputmethod InputMethodManager getEnabledInputMethodSubtypeList

List of usage examples for android.view.inputmethod InputMethodManager getEnabledInputMethodSubtypeList

Introduction

In this page you can find the example usage for android.view.inputmethod InputMethodManager getEnabledInputMethodSubtypeList.

Prototype

public List<InputMethodSubtype> getEnabledInputMethodSubtypeList(InputMethodInfo imi,
        boolean allowsImplicitlySelectedSubtypes) 

Source Link

Document

Returns a list of enabled input method subtypes for the specified input method info.

Usage

From source file:com.adguard.android.commons.RawResources.java

/**
 * Gets input languages/* www .ja  va 2 s.co m*/
 *
 * @param context Application context
 * @return List of input languages
 */
private static List<String> getInputLanguages(Context context) {
    List<String> languages = new ArrayList<>();

    try {
        InputMethodManager imm = (InputMethodManager) context.getSystemService(Context.INPUT_METHOD_SERVICE);
        List<InputMethodInfo> ims = imm.getEnabledInputMethodList();

        for (InputMethodInfo method : ims) {
            List<InputMethodSubtype> subMethods = imm.getEnabledInputMethodSubtypeList(method, true);
            for (InputMethodSubtype subMethod : subMethods) {
                if ("keyboard".equals(subMethod.getMode())) {
                    String currentLocale = subMethod.getLocale();
                    String language = cleanUpLanguageCode(new Locale(currentLocale).getLanguage());
                    if (!languages.contains(language)) {
                        languages.add(language);
                    }
                }
            }
        }
    } catch (Exception ex) {
        LOG.warn("Cannot get user input languages\r\n", ex);
    }

    return languages;
}