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

Commit 7f9eba94 authored by Daniel Huang's avatar Daniel Huang Committed by Android (Google) Code Review
Browse files

Merge "Set preference visible to false when there is no keyboard." into udc-dev

parents 3e41d936 1f326146
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -308,6 +308,12 @@ public class KeyboardLayoutDialogFragment extends InstrumentedDialogFragment
        public Keyboards loadInBackground() {
            Keyboards keyboards = new Keyboards();
            InputManager im = (InputManager)getContext().getSystemService(Context.INPUT_SERVICE);
            if (mInputDeviceIdentifier == null || NewKeyboardSettingsUtils.getInputDevice(
                    im, mInputDeviceIdentifier) == null) {
                keyboards.keyboardLayouts.add(null); // default layout
                keyboards.current = 0;
                return keyboards;
            }
            String[] keyboardLayoutDescriptors = im.getEnabledKeyboardLayoutsForInputDevice(
                    mInputDeviceIdentifier);
            for (String keyboardLayoutDescriptor : keyboardLayoutDescriptors) {
+7 −9
Original line number Diff line number Diff line
@@ -21,7 +21,6 @@ import android.content.Context;
import android.hardware.input.InputDeviceIdentifier;
import android.hardware.input.InputManager;
import android.hardware.input.KeyboardLayout;
import android.view.InputDevice;

import androidx.fragment.app.Fragment;
import androidx.preference.Preference;
@@ -37,7 +36,6 @@ import java.util.Arrays;
import java.util.HashMap;
import java.util.Map;


public class KeyboardLayoutPickerController extends BasePreferenceController implements
        InputManager.InputDeviceListener, LifecycleObserver, OnStart, OnStop {

@@ -68,15 +66,12 @@ public class KeyboardLayoutPickerController extends BasePreferenceController imp
    @Override
    public void onStart() {
        mIm.registerInputDeviceListener(this, null);

        final InputDevice inputDevice =
                mIm.getInputDeviceByDescriptor(mInputDeviceIdentifier.getDescriptor());
        if (inputDevice == null) {
            mParent.getActivity().finish();
        if (mInputDeviceIdentifier == null
                || NewKeyboardSettingsUtils.getInputDevice(mIm, mInputDeviceIdentifier) == null) {
            return;
        }
        mInputDeviceId = inputDevice.getId();

        mInputDeviceId =
                NewKeyboardSettingsUtils.getInputDevice(mIm, mInputDeviceIdentifier).getId();
        updateCheckedState();
    }

@@ -150,6 +145,9 @@ public class KeyboardLayoutPickerController extends BasePreferenceController imp
    }

    private void createPreferenceHierarchy() {
        if (mKeyboardLayouts == null) {
            return;
        }
        for (KeyboardLayout layout : mKeyboardLayouts) {
            final SwitchPreference pref = new SwitchPreference(mScreen.getContext());
            pref.setTitle(layout.getLabel());
+4 −4
Original line number Diff line number Diff line
@@ -19,11 +19,11 @@ package com.android.settings.inputmethod;
import android.app.settings.SettingsEnums;
import android.content.Context;
import android.hardware.input.InputDeviceIdentifier;
import android.hardware.input.InputManager;

import com.android.settings.R;
import com.android.settings.dashboard.DashboardFragment;


public class KeyboardLayoutPickerFragment extends DashboardFragment {

    private static final String TAG = "KeyboardLayoutPicker";
@@ -45,10 +45,10 @@ public class KeyboardLayoutPickerFragment extends DashboardFragment {

        final InputDeviceIdentifier inputDeviceIdentifier = getActivity().getIntent().
                getParcelableExtra(EXTRA_INPUT_DEVICE_IDENTIFIER);
        if (inputDeviceIdentifier == null) {
            getActivity().finish();
        final InputManager im = context.getSystemService(InputManager.class);
        if (NewKeyboardSettingsUtils.getInputDevice(im, inputDeviceIdentifier) == null) {
            return;
        }

        use(KeyboardLayoutPickerController.class).initialize(this /*parent*/,
                inputDeviceIdentifier);
    }
+5 −2
Original line number Diff line number Diff line
@@ -68,6 +68,9 @@ public class NewKeyboardLayoutEnabledLocalesFragment extends DashboardFragment
    }

    private void updateCheckedState() {
        if (NewKeyboardSettingsUtils.getInputDevice(mIm, mInputDeviceIdentifier) == null) {
            return;
        }
        PreferenceScreen preferenceScreen = getPreferenceScreen();
        preferenceScreen.removeAll();
        List<InputMethodInfo> infoList = mImm.getEnabledInputMethodListAsUser(mUserId);
@@ -174,8 +177,8 @@ public class NewKeyboardLayoutEnabledLocalesFragment extends DashboardFragment
    public void onStart() {
        super.onStart();
        mIm.registerInputDeviceListener(this, null);
        final InputDevice inputDevice =
                mIm.getInputDeviceByDescriptor(mInputDeviceIdentifier.getDescriptor());
        InputDevice inputDevice =
                NewKeyboardSettingsUtils.getInputDevice(mIm, mInputDeviceIdentifier);
        if (inputDevice == null) {
            getActivity().finish();
            return;
+7 −7
Original line number Diff line number Diff line
@@ -19,6 +19,7 @@ package com.android.settings.inputmethod;
import android.app.settings.SettingsEnums;
import android.content.Context;
import android.hardware.input.InputDeviceIdentifier;
import android.hardware.input.InputManager;
import android.os.Bundle;
import android.view.inputmethod.InputMethodInfo;
import android.view.inputmethod.InputMethodSubtype;
@@ -33,25 +34,24 @@ public class NewKeyboardLayoutPickerContent extends DashboardFragment {
    @Override
    public void onAttach(Context context) {
        super.onAttach(context);

        InputManager inputManager = getContext().getSystemService(InputManager.class);
        Bundle arguments = getArguments();
        final String title = arguments.getString(NewKeyboardSettingsUtils.EXTRA_TITLE);
        final String layout = arguments.getString(NewKeyboardSettingsUtils.EXTRA_KEYBOARD_LAYOUT);
        final int userId = arguments.getInt(NewKeyboardSettingsUtils.EXTRA_USER_ID);
        final InputDeviceIdentifier inputDeviceIdentifier =
        final InputDeviceIdentifier identifier =
                arguments.getParcelable(NewKeyboardSettingsUtils.EXTRA_INPUT_DEVICE_IDENTIFIER);
        final InputMethodInfo inputMethodInfo =
                arguments.getParcelable(NewKeyboardSettingsUtils.EXTRA_INPUT_METHOD_INFO);
        final InputMethodSubtype inputMethodSubtype =
                arguments.getParcelable(NewKeyboardSettingsUtils.EXTRA_INPUT_METHOD_SUBTYPE);


        if (inputDeviceIdentifier == null) {
            getActivity().finish();
        if (identifier == null
                || NewKeyboardSettingsUtils.getInputDevice(inputManager, identifier) == null) {
            return;
        }
        getActivity().setTitle(title);
        use(NewKeyboardLayoutPickerController.class).initialize(this /*parent*/, userId,
                inputDeviceIdentifier, inputMethodInfo, inputMethodSubtype, layout);
                identifier, inputMethodInfo, inputMethodSubtype, layout);
    }

    @Override
Loading