From 29aaa20442a9c86aad431303bf43d48bd306f5cd Mon Sep 17 00:00:00 2001 From: Michael Wright Date: Mon, 22 Sep 2014 19:46:24 -0700 Subject: [PATCH] If a device identifier is specified, bring up keyboard layouts dialog. Bug: 17614683 Change-Id: I0c25033d05d482ba45f17b3141b0a8673d0ff4b5 --- .../inputmethod/InputMethodAndLanguageSettings.java | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/com/android/settings/inputmethod/InputMethodAndLanguageSettings.java b/src/com/android/settings/inputmethod/InputMethodAndLanguageSettings.java index f0f73074de1..bae9dbc449f 100644 --- a/src/com/android/settings/inputmethod/InputMethodAndLanguageSettings.java +++ b/src/com/android/settings/inputmethod/InputMethodAndLanguageSettings.java @@ -147,9 +147,10 @@ public class InputMethodAndLanguageSettings extends SettingsPreferenceFragment mGameControllerCategory = (PreferenceCategory)findPreference( "game_controller_settings_category"); + final Intent startingIntent = activity.getIntent(); // Filter out irrelevant features if invoked from IME settings button. mShowsOnlyFullImeAndKeyboardList = Settings.ACTION_INPUT_METHOD_SETTINGS.equals( - activity.getIntent().getAction()); + startingIntent.getAction()); if (mShowsOnlyFullImeAndKeyboardList) { getPreferenceScreen().removeAll(); getPreferenceScreen().addPreference(mHardKeyboardCategory); @@ -182,6 +183,14 @@ public class InputMethodAndLanguageSettings extends SettingsPreferenceFragment mSettingsObserver = new SettingsObserver(mHandler, activity); mDpm = (DevicePolicyManager) (getActivity(). getSystemService(Context.DEVICE_POLICY_SERVICE)); + + // If we've launched from the keyboard layout notification, go ahead and just show the + // keyboard layout dialog. + final InputDeviceIdentifier identifier = + startingIntent.getParcelableExtra(Settings.EXTRA_INPUT_DEVICE_IDENTIFIER); + if (mShowsOnlyFullImeAndKeyboardList && identifier != null) { + showKeyboardLayoutDialog(identifier); + } } private void updateInputMethodSelectorSummary(int value) {