summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorJeff Brown <jeffbrown@google.com>2012-04-13 20:31:37 -0700
committerAndroid (Google) Code Review <android-gerrit@google.com>2012-04-13 20:31:37 -0700
commitd350f8556e45ea40855ca23702bed25c8dcb16c3 (patch)
treebbe498c6c57276a57fb0691a5f79f978f2df4a1e /src
parent7482e7e4cb775a430c4d9de00889d08828f0feb3 (diff)
parent96cdcd80a8ba9d9a808a712037c3e4fa3fdcf084 (diff)
downloadpackages_apps_Settings-d350f8556e45ea40855ca23702bed25c8dcb16c3.zip
packages_apps_Settings-d350f8556e45ea40855ca23702bed25c8dcb16c3.tar.gz
packages_apps_Settings-d350f8556e45ea40855ca23702bed25c8dcb16c3.tar.bz2
Merge "Use new input device listener API to refresh keyboards."
Diffstat (limited to 'src')
-rw-r--r--src/com/android/settings/inputmethod/InputMethodAndLanguageSettings.java34
1 files changed, 28 insertions, 6 deletions
diff --git a/src/com/android/settings/inputmethod/InputMethodAndLanguageSettings.java b/src/com/android/settings/inputmethod/InputMethodAndLanguageSettings.java
index ac9a27b..7d02a1f 100644
--- a/src/com/android/settings/inputmethod/InputMethodAndLanguageSettings.java
+++ b/src/com/android/settings/inputmethod/InputMethodAndLanguageSettings.java
@@ -52,7 +52,7 @@ import java.util.List;
import java.util.Set;
public class InputMethodAndLanguageSettings extends SettingsPreferenceFragment
- implements Preference.OnPreferenceChangeListener{
+ implements Preference.OnPreferenceChangeListener, InputManager.InputDeviceListener {
private static final String KEY_PHONE_LANGUAGE = "phone_language";
private static final String KEY_CURRENT_INPUT_METHOD = "current_input_method";
@@ -78,6 +78,7 @@ public class InputMethodAndLanguageSettings extends SettingsPreferenceFragment
new ArrayList<InputMethodPreference>();
private final ArrayList<PreferenceScreen> mHardKeyboardPreferenceList =
new ArrayList<PreferenceScreen>();
+ private InputManager mIm;
private InputMethodManager mImm;
private List<InputMethodInfo> mImis;
private boolean mIsOnlyImeSettings;
@@ -159,6 +160,7 @@ public class InputMethodAndLanguageSettings extends SettingsPreferenceFragment
}
// Build hard keyboard preference category.
+ mIm = (InputManager)getActivity().getSystemService(Context.INPUT_SERVICE);
updateHardKeyboards();
// Spell Checker
@@ -214,6 +216,9 @@ public class InputMethodAndLanguageSettings extends SettingsPreferenceFragment
@Override
public void onResume() {
super.onResume();
+
+ mIm.registerInputDeviceListener(this, null);
+
if (!mIsOnlyImeSettings) {
if (mLanguagePref != null) {
Configuration conf = getResources().getConfiguration();
@@ -251,6 +256,9 @@ public class InputMethodAndLanguageSettings extends SettingsPreferenceFragment
@Override
public void onPause() {
super.onPause();
+
+ mIm.unregisterInputDeviceListener(this);
+
if (SHOW_INPUT_METHOD_SWITCHER_SETTINGS) {
mShowInputMethodSelectorPref.setOnPreferenceChangeListener(null);
}
@@ -259,6 +267,21 @@ public class InputMethodAndLanguageSettings extends SettingsPreferenceFragment
}
@Override
+ public void onInputDeviceAdded(int deviceId) {
+ updateHardKeyboards();
+ }
+
+ @Override
+ public void onInputDeviceChanged(int deviceId) {
+ updateHardKeyboards();
+ }
+
+ @Override
+ public void onInputDeviceRemoved(int deviceId) {
+ updateHardKeyboards();
+ }
+
+ @Override
public boolean onPreferenceTreeClick(PreferenceScreen preferenceScreen, Preference preference) {
// Input Method stuff
if (Utils.isMonkeyRunning()) {
@@ -362,9 +385,6 @@ public class InputMethodAndLanguageSettings extends SettingsPreferenceFragment
private void updateHardKeyboards() {
mHardKeyboardPreferenceList.clear();
if (getResources().getConfiguration().keyboard == Configuration.KEYBOARD_QWERTY) {
- final InputManager im =
- (InputManager)getActivity().getSystemService(Context.INPUT_SERVICE);
-
final int[] devices = InputDevice.getDeviceIds();
for (int i = 0; i < devices.length; i++) {
InputDevice device = InputDevice.getDevice(devices[i]);
@@ -374,9 +394,9 @@ public class InputMethodAndLanguageSettings extends SettingsPreferenceFragment
&& device.getKeyboardType() == InputDevice.KEYBOARD_TYPE_ALPHABETIC) {
final String inputDeviceDescriptor = device.getDescriptor();
final String keyboardLayoutDescriptor =
- im.getKeyboardLayoutForInputDevice(inputDeviceDescriptor);
+ mIm.getKeyboardLayoutForInputDevice(inputDeviceDescriptor);
final KeyboardLayout keyboardLayout = keyboardLayoutDescriptor != null ?
- im.getKeyboardLayout(keyboardLayoutDescriptor) : null;
+ mIm.getKeyboardLayout(keyboardLayoutDescriptor) : null;
final Intent intent = new Intent(Intent.ACTION_MAIN);
intent.setClass(getActivity(), KeyboardLayoutPickerActivity.class);
@@ -409,6 +429,8 @@ public class InputMethodAndLanguageSettings extends SettingsPreferenceFragment
pref.setOrder(i);
mHardKeyboardCategory.addPreference(pref);
}
+
+ getPreferenceScreen().addPreference(mHardKeyboardCategory);
} else {
getPreferenceScreen().removePreference(mHardKeyboardCategory);
}