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

Commit ed46e1a5 authored by Michael Wright's avatar Michael Wright Committed by Android (Google) Code Review
Browse files

Merge "Directly show the layout selection screen."

parents fbbb7f48 17b63198
Loading
Loading
Loading
Loading
+7 −4
Original line number Diff line number Diff line
@@ -572,11 +572,14 @@ public class InputMethodAndLanguageSettings extends SettingsPreferenceFragment
    }

    private void showKeyboardLayoutDialog(InputDeviceIdentifier inputDeviceIdentifier) {
        KeyboardLayoutDialogFragment fragment = new KeyboardLayoutDialogFragment(
                inputDeviceIdentifier);
        KeyboardLayoutDialogFragment fragment = (KeyboardLayoutDialogFragment)
                getFragmentManager().findFragmentByTag("keyboardLayout");
        if (fragment == null) {
            fragment = new KeyboardLayoutDialogFragment(inputDeviceIdentifier);
            fragment.setTargetFragment(this, 0);
            fragment.show(getActivity().getFragmentManager(), "keyboardLayout");
        }
    }

    @Override
    public void onSetupKeyboardLayouts(InputDeviceIdentifier inputDeviceIdentifier) {
+15 −2
Original line number Diff line number Diff line
@@ -53,6 +53,7 @@ public class KeyboardLayoutDialogFragment extends DialogFragment
    private int mInputDeviceId = -1;
    private InputManager mIm;
    private KeyboardLayoutAdapter mAdapter;
    private boolean mHasShownLayoutSelectionScreen;

    public KeyboardLayoutDialogFragment() {
    }
@@ -178,6 +179,7 @@ public class KeyboardLayoutDialogFragment extends DialogFragment
            dialog.getListView().setItemChecked(data.current, true);
        }
        updateSwitchHintVisibility();
        showSetupKeyboardLayoutsIfNecessary();
    }

    @Override
@@ -212,6 +214,17 @@ public class KeyboardLayoutDialogFragment extends DialogFragment
        }
    }

    private void showSetupKeyboardLayoutsIfNecessary() {
        AlertDialog dialog = (AlertDialog)getDialog();
        if (dialog != null
                && mAdapter.getCount() == 1 && mAdapter.getItem(0) == null
                && !mHasShownLayoutSelectionScreen) {
            mHasShownLayoutSelectionScreen = true;
            ((OnSetupKeyboardLayoutsListener)getTargetFragment()).onSetupKeyboardLayouts(
                    mInputDeviceIdentifier);
        }
    }

    private static final class KeyboardLayoutAdapter extends ArrayAdapter<KeyboardLayout> {
        private final LayoutInflater mInflater;
        private int mCheckedItem = -1;
@@ -300,7 +313,7 @@ public class KeyboardLayoutDialogFragment extends DialogFragment
        public Keyboards loadInBackground() {
            Keyboards keyboards = new Keyboards();
            InputManager im = (InputManager)getContext().getSystemService(Context.INPUT_SERVICE);
            String[] keyboardLayoutDescriptors = im.getKeyboardLayoutsForInputDevice(
            String[] keyboardLayoutDescriptors = im.getEnabledKeyboardLayoutsForInputDevice(
                    mInputDeviceIdentifier);
            for (String keyboardLayoutDescriptor : keyboardLayoutDescriptors) {
                KeyboardLayout keyboardLayout = im.getKeyboardLayout(keyboardLayoutDescriptor);
+2 −2
Original line number Diff line number Diff line
@@ -65,7 +65,7 @@ public class KeyboardLayoutPickerFragment extends SettingsPreferenceFragment
        }

        mIm = (InputManager)getSystemService(Context.INPUT_SERVICE);
        mKeyboardLayouts = mIm.getKeyboardLayouts();
        mKeyboardLayouts = mIm.getKeyboardLayoutsForInputDevice(mInputDeviceIdentifier);
        Arrays.sort(mKeyboardLayouts);
        setPreferenceScreen(createPreferenceHierarchy());
    }
@@ -148,7 +148,7 @@ public class KeyboardLayoutPickerFragment extends SettingsPreferenceFragment
    }

    private void updateCheckedState() {
        String[] enabledKeyboardLayouts = mIm.getKeyboardLayoutsForInputDevice(
        String[] enabledKeyboardLayouts = mIm.getEnabledKeyboardLayoutsForInputDevice(
                mInputDeviceIdentifier);
        Arrays.sort(enabledKeyboardLayouts);