Merge "Directly show the layout selection screen."
This commit is contained in:
committed by
Android (Google) Code Review
commit
ed46e1a5fa
@@ -572,10 +572,13 @@ public class InputMethodAndLanguageSettings extends SettingsPreferenceFragment
|
||||
}
|
||||
|
||||
private void showKeyboardLayoutDialog(InputDeviceIdentifier inputDeviceIdentifier) {
|
||||
KeyboardLayoutDialogFragment fragment = new KeyboardLayoutDialogFragment(
|
||||
inputDeviceIdentifier);
|
||||
fragment.setTargetFragment(this, 0);
|
||||
fragment.show(getActivity().getFragmentManager(), "keyboardLayout");
|
||||
KeyboardLayoutDialogFragment fragment = (KeyboardLayoutDialogFragment)
|
||||
getFragmentManager().findFragmentByTag("keyboardLayout");
|
||||
if (fragment == null) {
|
||||
fragment = new KeyboardLayoutDialogFragment(inputDeviceIdentifier);
|
||||
fragment.setTargetFragment(this, 0);
|
||||
fragment.show(getActivity().getFragmentManager(), "keyboardLayout");
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@@ -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);
|
||||
|
@@ -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);
|
||||
|
||||
|
Reference in New Issue
Block a user