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

Commit e8de4808 authored by Felix Stern's avatar Felix Stern
Browse files

Adjusted Settings to use updated internal InputMethodManager methods

IMM#isStylusHandwritingAvailableAsUser, IMM#getEnabledInputMethodListAsUser, and IMM#getEnabledInputMethodSubtypeListAsUser use now UserHandle instead of userId. These internal APIs are used in Settings and are updated.

Test: atest android.view.inputmethod.cts.installtests.MultiUserTest
Fix: 283765791
Change-Id: Iedb301fbe26810f2101cbb2669b8be95b87a3e7f
parent bc8d6ba1
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -155,7 +155,7 @@ public class AvailableVirtualKeyboardFragment extends DashboardFragment
        final Context prefContext = getPrefContext();
        final List<InputMethodInfo> imis = mInputMethodSettingValues.getInputMethodList();
        final List<InputMethodInfo> enabledImis = getContext().getSystemService(
                InputMethodManager.class).getEnabledInputMethodListAsUser(mUserId);
                InputMethodManager.class).getEnabledInputMethodListAsUser(UserHandle.of(mUserId));
        final int numImis = (imis == null ? 0 : imis.size());
        for (int i = 0; i < numImis; ++i) {
            final InputMethodInfo imi = imis.get(i);
+4 −2
Original line number Diff line number Diff line
@@ -145,7 +145,8 @@ public class NewKeyboardLayoutEnabledLocalesFragment extends DashboardFragment

        PreferenceScreen preferenceScreen = getPreferenceScreen();
        preferenceScreen.removeAll();
        List<InputMethodInfo> infoList = mImm.getEnabledInputMethodListAsUser(mUserId);
        List<InputMethodInfo> infoList =
                mImm.getEnabledInputMethodListAsUser(UserHandle.of(mUserId));
        Collections.sort(infoList, new Comparator<InputMethodInfo>() {
            public int compare(InputMethodInfo o1, InputMethodInfo o2) {
                String s1 = o1.loadLabel(mContext.getPackageManager()).toString();
@@ -157,7 +158,8 @@ public class NewKeyboardLayoutEnabledLocalesFragment extends DashboardFragment
        for (InputMethodInfo info : infoList) {
            mKeyboardInfoList.clear();
            List<InputMethodSubtype> subtypes =
                    mImm.getEnabledInputMethodSubtypeListAsUser(info.getId(), true, mUserId);
                    mImm.getEnabledInputMethodSubtypeListAsUser(info.getId(), true,
                            UserHandle.of(mUserId));
            for (InputMethodSubtype subtype : subtypes) {
                if (subtype.isSuitableForPhysicalKeyboardLayoutMapping()) {
                    mapLanguageWithLayout(info, subtype);
+2 −1
Original line number Diff line number Diff line
@@ -20,6 +20,7 @@ import android.content.Context;
import android.hardware.input.InputDeviceIdentifier;
import android.hardware.input.InputManager;
import android.hardware.input.KeyboardLayout;
import android.os.UserHandle;
import android.view.InputDevice;
import android.view.inputmethod.InputMethodInfo;
import android.view.inputmethod.InputMethodManager;
@@ -55,7 +56,7 @@ public class NewKeyboardSettingsUtils {

    static List<String> getSuitableImeLabels(Context context, InputMethodManager imm, int userId) {
        List<String> suitableInputMethodInfoLabels = new ArrayList<>();
        List<InputMethodInfo> infoList = imm.getEnabledInputMethodListAsUser(userId);
        List<InputMethodInfo> infoList = imm.getEnabledInputMethodListAsUser(UserHandle.of(userId));
        for (InputMethodInfo info : infoList) {
            List<InputMethodSubtype> subtypes =
                    imm.getEnabledInputMethodSubtypeList(info, true);
+2 −2
Original line number Diff line number Diff line
@@ -23,11 +23,11 @@ import static com.google.common.truth.Truth.assertThat;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.anyInt;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
import static org.mockito.Mockito.mock;

import android.content.Context;
import android.content.pm.ApplicationInfo;
@@ -159,7 +159,7 @@ public class AvailableVirtualKeyboardFragmentTest {
        mFragment.updateInputMethodPreferenceViews();

        verify(mValuesWrapper).getInputMethodList();
        verify(mInputMethodManager).getEnabledInputMethodListAsUser(anyInt());
        verify(mInputMethodManager).getEnabledInputMethodListAsUser(any(UserHandle.class));
    }

    @Test