More cleanup in input & language settings.
- Removed unused preferences that are commented out in pref xml. - Also removed code that references to them in Fragment. Bug: 32637613 Test: compile/manual Change-Id: I84be24f9c5df7531843f03b047a93f9aa912432e
This commit is contained in:
@@ -15,7 +15,6 @@
|
||||
-->
|
||||
|
||||
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:settings="http://schemas.android.com/apk/res/com.android.settings"
|
||||
android:key="language_keyboard_settings"
|
||||
android:title="@string/language_keyboard_settings_title">
|
||||
|
||||
@@ -50,26 +49,6 @@
|
||||
android:fragment="com.android.settings.inputmethod.PhysicalKeyboardFragment" />
|
||||
</PreferenceCategory>
|
||||
|
||||
<!-- Temporarily disabled: -->
|
||||
<!--<PreferenceCategory-->
|
||||
<!--android:key="keyboard_settings_category"-->
|
||||
<!--android:title="@string/keyboard_settings_category">-->
|
||||
|
||||
<!--<PreferenceScreen-->
|
||||
<!--android:key="current_input_method"-->
|
||||
<!--android:title="@string/current_input_method"-->
|
||||
<!--/>-->
|
||||
<!--<!– Enabled input method list will be populated programmatically here. –>-->
|
||||
<!--</PreferenceCategory>-->
|
||||
|
||||
<!--<PreferenceCategory-->
|
||||
<!--android:key="hard_keyboard"-->
|
||||
<!--android:title="@string/builtin_keyboard_settings_title"-->
|
||||
<!--android:persistent="false">-->
|
||||
<!--<!– Additional preference screens are inserted here programmatically-->
|
||||
<!--with low order values to set the key map of each attached keyboard. –>-->
|
||||
<!--</PreferenceCategory>-->
|
||||
|
||||
<PreferenceCategory
|
||||
android:key="voice_category"
|
||||
android:title="@string/voice_category" >
|
||||
|
@@ -18,20 +18,14 @@ package com.android.settings.inputmethod;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.app.Fragment;
|
||||
import android.app.admin.DevicePolicyManager;
|
||||
import android.content.ComponentName;
|
||||
import android.content.ContentResolver;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.content.SharedPreferences;
|
||||
import android.content.pm.ServiceInfo;
|
||||
import android.content.res.Configuration;
|
||||
import android.database.ContentObserver;
|
||||
import android.hardware.input.InputDeviceIdentifier;
|
||||
import android.hardware.input.InputManager;
|
||||
import android.hardware.input.KeyboardLayout;
|
||||
import android.os.Bundle;
|
||||
import android.os.Handler;
|
||||
import android.provider.Settings;
|
||||
import android.provider.Settings.System;
|
||||
import android.speech.tts.TtsEngines;
|
||||
@@ -39,9 +33,6 @@ import android.support.v14.preference.SwitchPreference;
|
||||
import android.support.v7.preference.Preference;
|
||||
import android.support.v7.preference.Preference.OnPreferenceClickListener;
|
||||
import android.support.v7.preference.PreferenceCategory;
|
||||
import android.support.v7.preference.PreferenceManager;
|
||||
import android.support.v7.preference.PreferenceScreen;
|
||||
import android.text.TextUtils;
|
||||
import android.view.InputDevice;
|
||||
import android.view.inputmethod.InputMethodInfo;
|
||||
import android.view.inputmethod.InputMethodManager;
|
||||
@@ -65,39 +56,23 @@ import com.android.settings.search.BaseSearchIndexProvider;
|
||||
import com.android.settings.search.Indexable;
|
||||
import com.android.settings.search.SearchIndexableRaw;
|
||||
|
||||
import java.text.Collator;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.Comparator;
|
||||
import java.util.HashMap;
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.TreeSet;
|
||||
|
||||
public class InputMethodAndLanguageSettings extends SettingsPreferenceFragment
|
||||
implements InputManager.InputDeviceListener,
|
||||
KeyboardLayoutDialogFragment.OnSetupKeyboardLayoutsListener, Indexable,
|
||||
InputMethodPreference.OnSavePreferenceListener {
|
||||
KeyboardLayoutDialogFragment.OnSetupKeyboardLayoutsListener, Indexable {
|
||||
|
||||
private static final String KEY_SPELL_CHECKERS = "spellcheckers_settings";
|
||||
private static final String KEY_PHONE_LANGUAGE = "phone_language";
|
||||
private static final String KEY_CURRENT_INPUT_METHOD = "current_input_method";
|
||||
private static final String KEY_USER_DICTIONARY_SETTINGS = "key_user_dictionary_settings";
|
||||
private static final String KEY_PREVIOUSLY_ENABLED_SUBTYPES = "previously_enabled_subtypes";
|
||||
|
||||
private PreferenceCategory mKeyboardSettingsCategory;
|
||||
private PreferenceCategory mHardKeyboardCategory;
|
||||
private PreferenceCategory mGameControllerCategory;
|
||||
private Preference mLanguagePref;
|
||||
private final ArrayList<InputMethodPreference> mInputMethodPreferenceList = new ArrayList<>();
|
||||
private final ArrayList<PreferenceScreen> mHardKeyboardPreferenceList = new ArrayList<>();
|
||||
private InputManager mIm;
|
||||
private InputMethodManager mImm;
|
||||
private boolean mShowsOnlyFullImeAndKeyboardList;
|
||||
private Handler mHandler;
|
||||
private SettingsObserver mSettingsObserver;
|
||||
private Intent mIntentWaitingForResult;
|
||||
private InputMethodSettingValuesWrapper mInputMethodSettingValues;
|
||||
private DevicePolicyManager mDpm;
|
||||
|
||||
@Override
|
||||
public int getMetricsCategory() {
|
||||
@@ -111,7 +86,6 @@ public class InputMethodAndLanguageSettings extends SettingsPreferenceFragment
|
||||
addPreferencesFromResource(R.xml.language_settings);
|
||||
|
||||
final Activity activity = getActivity();
|
||||
mImm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
|
||||
mInputMethodSettingValues = InputMethodSettingValuesWrapper.getInstance(activity);
|
||||
|
||||
if (activity.getAssets().getLocales().length == 1) {
|
||||
@@ -123,28 +97,9 @@ public class InputMethodAndLanguageSettings extends SettingsPreferenceFragment
|
||||
|
||||
new VoiceInputOutputSettings(this).onCreate();
|
||||
|
||||
// Get references to dynamically constructed categories.
|
||||
mHardKeyboardCategory = (PreferenceCategory)findPreference("hard_keyboard");
|
||||
mKeyboardSettingsCategory = (PreferenceCategory)findPreference(
|
||||
"keyboard_settings_category");
|
||||
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(
|
||||
startingIntent.getAction());
|
||||
if (mShowsOnlyFullImeAndKeyboardList) {
|
||||
getPreferenceScreen().removeAll();
|
||||
if (mHardKeyboardCategory != null) {
|
||||
getPreferenceScreen().addPreference(mHardKeyboardCategory);
|
||||
}
|
||||
if (mKeyboardSettingsCategory != null) {
|
||||
mKeyboardSettingsCategory.removeAll();
|
||||
getPreferenceScreen().addPreference(mKeyboardSettingsCategory);
|
||||
}
|
||||
}
|
||||
|
||||
// Build hard keyboard and game controller preference categories.
|
||||
mIm = (InputManager)activity.getSystemService(Context.INPUT_SERVICE);
|
||||
updateInputDevices();
|
||||
@@ -162,19 +117,6 @@ public class InputMethodAndLanguageSettings extends SettingsPreferenceFragment
|
||||
R.string.spellcheckers_settings_title);
|
||||
spellChecker.setIntent(intent);
|
||||
}
|
||||
|
||||
mHandler = new Handler();
|
||||
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 updateUserDictionaryPreference(Preference userDictionaryPreference) {
|
||||
@@ -221,7 +163,6 @@ public class InputMethodAndLanguageSettings extends SettingsPreferenceFragment
|
||||
public void onResume() {
|
||||
super.onResume();
|
||||
|
||||
mSettingsObserver.resume();
|
||||
mIm.registerInputDeviceListener(this, null);
|
||||
|
||||
final Preference spellChecker = findPreference(KEY_SPELL_CHECKERS);
|
||||
@@ -240,7 +181,6 @@ public class InputMethodAndLanguageSettings extends SettingsPreferenceFragment
|
||||
}
|
||||
}
|
||||
|
||||
if (!mShowsOnlyFullImeAndKeyboardList) {
|
||||
if (mLanguagePref != null) {
|
||||
final String localeNames = FeatureFactory.getFactory(getContext())
|
||||
.getLocaleFeatureProvider().getLocaleNames();
|
||||
@@ -248,14 +188,12 @@ public class InputMethodAndLanguageSettings extends SettingsPreferenceFragment
|
||||
}
|
||||
|
||||
updateUserDictionaryPreference(findPreference(KEY_USER_DICTIONARY_SETTINGS));
|
||||
}
|
||||
|
||||
updateInputDevices();
|
||||
|
||||
// Refresh internal states in mInputMethodSettingValues to keep the latest
|
||||
// "InputMethodInfo"s and "InputMethodSubtype"s
|
||||
mInputMethodSettingValues.refreshAllInputMethodAndSubtypes();
|
||||
updateInputMethodPreferenceViews();
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -263,12 +201,11 @@ public class InputMethodAndLanguageSettings extends SettingsPreferenceFragment
|
||||
super.onPause();
|
||||
|
||||
mIm.unregisterInputDeviceListener(this);
|
||||
mSettingsObserver.pause();
|
||||
|
||||
// TODO: Consolidate the logic to InputMethodSettingsWrapper
|
||||
InputMethodAndSubtypeUtil.saveInputMethodSubtypeList(
|
||||
this, getContentResolver(), mInputMethodSettingValues.getInputMethodList(),
|
||||
!mHardKeyboardPreferenceList.isEmpty());
|
||||
false /* hasHardKeyboard */);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -292,15 +229,7 @@ public class InputMethodAndLanguageSettings extends SettingsPreferenceFragment
|
||||
if (Utils.isMonkeyRunning()) {
|
||||
return false;
|
||||
}
|
||||
if (preference instanceof PreferenceScreen) {
|
||||
if (preference.getFragment() != null) {
|
||||
// Fragment will be handled correctly by the super class.
|
||||
} else if (KEY_CURRENT_INPUT_METHOD.equals(preference.getKey())) {
|
||||
final InputMethodManager imm = (InputMethodManager)
|
||||
getSystemService(Context.INPUT_METHOD_SERVICE);
|
||||
imm.showInputMethodPicker(false /* showAuxiliarySubtypes */);
|
||||
}
|
||||
} else if (preference instanceof SwitchPreference) {
|
||||
if (preference instanceof SwitchPreference) {
|
||||
final SwitchPreference pref = (SwitchPreference) preference;
|
||||
if (pref == mGameControllerCategory.findPreference("vibrate_input_devices")) {
|
||||
System.putInt(getContentResolver(), Settings.System.VIBRATE_INPUT_DEVICES,
|
||||
@@ -311,202 +240,10 @@ public class InputMethodAndLanguageSettings extends SettingsPreferenceFragment
|
||||
return super.onPreferenceTreeClick(preference);
|
||||
}
|
||||
|
||||
private void updateInputMethodPreferenceViews() {
|
||||
if (mKeyboardSettingsCategory == null) {
|
||||
return;
|
||||
}
|
||||
|
||||
synchronized (mInputMethodPreferenceList) {
|
||||
// Clear existing "InputMethodPreference"s
|
||||
for (final InputMethodPreference pref : mInputMethodPreferenceList) {
|
||||
mKeyboardSettingsCategory.removePreference(pref);
|
||||
}
|
||||
mInputMethodPreferenceList.clear();
|
||||
List<String> permittedList = mDpm.getPermittedInputMethodsForCurrentUser();
|
||||
final Context context = getPrefContext();
|
||||
final List<InputMethodInfo> imis = mShowsOnlyFullImeAndKeyboardList
|
||||
? mInputMethodSettingValues.getInputMethodList()
|
||||
: mImm.getEnabledInputMethodList();
|
||||
final int N = (imis == null ? 0 : imis.size());
|
||||
for (int i = 0; i < N; ++i) {
|
||||
final InputMethodInfo imi = imis.get(i);
|
||||
final boolean isAllowedByOrganization = permittedList == null
|
||||
|| permittedList.contains(imi.getPackageName());
|
||||
final InputMethodPreference pref = new InputMethodPreference(
|
||||
context, imi, mShowsOnlyFullImeAndKeyboardList /* hasSwitch */,
|
||||
isAllowedByOrganization, this);
|
||||
mInputMethodPreferenceList.add(pref);
|
||||
}
|
||||
final Collator collator = Collator.getInstance();
|
||||
Collections.sort(mInputMethodPreferenceList, new Comparator<InputMethodPreference>() {
|
||||
@Override
|
||||
public int compare(InputMethodPreference lhs, InputMethodPreference rhs) {
|
||||
return lhs.compareTo(rhs, collator);
|
||||
}
|
||||
});
|
||||
for (int i = 0; i < N; ++i) {
|
||||
final InputMethodPreference pref = mInputMethodPreferenceList.get(i);
|
||||
mKeyboardSettingsCategory.addPreference(pref);
|
||||
InputMethodAndSubtypeUtil.removeUnnecessaryNonPersistentPreference(pref);
|
||||
pref.updatePreferenceViews();
|
||||
}
|
||||
}
|
||||
updateCurrentImeName();
|
||||
// TODO: Consolidate the logic with InputMethodSettingsWrapper
|
||||
// CAVEAT: The preference class here does not know about the default value - that is
|
||||
// managed by the Input Method Manager Service, so in this case it could save the wrong
|
||||
// value. Hence we must update the checkboxes here.
|
||||
InputMethodAndSubtypeUtil.loadInputMethodSubtypeList(
|
||||
this, getContentResolver(),
|
||||
mInputMethodSettingValues.getInputMethodList(), null);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onSaveInputMethodPreference(final InputMethodPreference pref) {
|
||||
final InputMethodInfo imi = pref.getInputMethodInfo();
|
||||
if (!pref.isChecked()) {
|
||||
// An IME is being disabled. Save enabled subtypes of the IME to shared preference to be
|
||||
// able to re-enable these subtypes when the IME gets re-enabled.
|
||||
saveEnabledSubtypesOf(imi);
|
||||
}
|
||||
final boolean hasHardwareKeyboard = getResources().getConfiguration().keyboard
|
||||
== Configuration.KEYBOARD_QWERTY;
|
||||
InputMethodAndSubtypeUtil.saveInputMethodSubtypeList(this, getContentResolver(),
|
||||
mImm.getInputMethodList(), hasHardwareKeyboard);
|
||||
// Update input method settings and preference list.
|
||||
mInputMethodSettingValues.refreshAllInputMethodAndSubtypes();
|
||||
if (pref.isChecked()) {
|
||||
// An IME is being enabled. Load the previously enabled subtypes from shared preference
|
||||
// and enable these subtypes.
|
||||
restorePreviouslyEnabledSubtypesOf(imi);
|
||||
}
|
||||
for (final InputMethodPreference p : mInputMethodPreferenceList) {
|
||||
p.updatePreferenceViews();
|
||||
}
|
||||
}
|
||||
|
||||
private void saveEnabledSubtypesOf(final InputMethodInfo imi) {
|
||||
final HashSet<String> enabledSubtypeIdSet = new HashSet<>();
|
||||
final List<InputMethodSubtype> enabledSubtypes = mImm.getEnabledInputMethodSubtypeList(
|
||||
imi, true /* allowsImplicitlySelectedSubtypes */);
|
||||
for (final InputMethodSubtype subtype : enabledSubtypes) {
|
||||
final String subtypeId = Integer.toString(subtype.hashCode());
|
||||
enabledSubtypeIdSet.add(subtypeId);
|
||||
}
|
||||
final HashMap<String, HashSet<String>> imeToEnabledSubtypeIdsMap =
|
||||
loadPreviouslyEnabledSubtypeIdsMap();
|
||||
final String imiId = imi.getId();
|
||||
imeToEnabledSubtypeIdsMap.put(imiId, enabledSubtypeIdSet);
|
||||
savePreviouslyEnabledSubtypeIdsMap(imeToEnabledSubtypeIdsMap);
|
||||
}
|
||||
|
||||
private void restorePreviouslyEnabledSubtypesOf(final InputMethodInfo imi) {
|
||||
final HashMap<String, HashSet<String>> imeToEnabledSubtypeIdsMap =
|
||||
loadPreviouslyEnabledSubtypeIdsMap();
|
||||
final String imiId = imi.getId();
|
||||
final HashSet<String> enabledSubtypeIdSet = imeToEnabledSubtypeIdsMap.remove(imiId);
|
||||
if (enabledSubtypeIdSet == null) {
|
||||
return;
|
||||
}
|
||||
savePreviouslyEnabledSubtypeIdsMap(imeToEnabledSubtypeIdsMap);
|
||||
InputMethodAndSubtypeUtil.enableInputMethodSubtypesOf(
|
||||
getContentResolver(), imiId, enabledSubtypeIdSet);
|
||||
}
|
||||
|
||||
private HashMap<String, HashSet<String>> loadPreviouslyEnabledSubtypeIdsMap() {
|
||||
final Context context = getActivity();
|
||||
final SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);
|
||||
final String imesAndSubtypesString = prefs.getString(KEY_PREVIOUSLY_ENABLED_SUBTYPES, null);
|
||||
return InputMethodAndSubtypeUtil.parseInputMethodsAndSubtypesString(imesAndSubtypesString);
|
||||
}
|
||||
|
||||
private void savePreviouslyEnabledSubtypeIdsMap(
|
||||
final HashMap<String, HashSet<String>> subtypesMap) {
|
||||
final Context context = getActivity();
|
||||
final SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);
|
||||
final String imesAndSubtypesString = InputMethodAndSubtypeUtil
|
||||
.buildInputMethodsAndSubtypesString(subtypesMap);
|
||||
prefs.edit().putString(KEY_PREVIOUSLY_ENABLED_SUBTYPES, imesAndSubtypesString).apply();
|
||||
}
|
||||
|
||||
private void updateCurrentImeName() {
|
||||
final Context context = getActivity();
|
||||
if (context == null || mImm == null) return;
|
||||
final Preference curPref = getPreferenceScreen().findPreference(KEY_CURRENT_INPUT_METHOD);
|
||||
if (curPref != null) {
|
||||
final CharSequence curIme =
|
||||
mInputMethodSettingValues.getCurrentInputMethodName(context);
|
||||
if (!TextUtils.isEmpty(curIme)) {
|
||||
synchronized (this) {
|
||||
curPref.setSummary(curIme);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void updateInputDevices() {
|
||||
updateHardKeyboards();
|
||||
updateGameControllers();
|
||||
}
|
||||
|
||||
private void updateHardKeyboards() {
|
||||
if (mHardKeyboardCategory == null) {
|
||||
return;
|
||||
}
|
||||
|
||||
mHardKeyboardPreferenceList.clear();
|
||||
final int[] devices = InputDevice.getDeviceIds();
|
||||
for (int i = 0; i < devices.length; i++) {
|
||||
InputDevice device = InputDevice.getDevice(devices[i]);
|
||||
if (device != null
|
||||
&& !device.isVirtual()
|
||||
&& device.isFullKeyboard()) {
|
||||
final InputDeviceIdentifier identifier = device.getIdentifier();
|
||||
final String keyboardLayoutDescriptor =
|
||||
mIm.getCurrentKeyboardLayoutForInputDevice(identifier);
|
||||
final KeyboardLayout keyboardLayout = keyboardLayoutDescriptor != null ?
|
||||
mIm.getKeyboardLayout(keyboardLayoutDescriptor) : null;
|
||||
|
||||
final PreferenceScreen pref = new PreferenceScreen(getPrefContext(), null);
|
||||
pref.setTitle(device.getName());
|
||||
if (keyboardLayout != null) {
|
||||
pref.setSummary(keyboardLayout.toString());
|
||||
} else {
|
||||
pref.setSummary(R.string.keyboard_layout_default_label);
|
||||
}
|
||||
pref.setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() {
|
||||
@Override
|
||||
public boolean onPreferenceClick(Preference preference) {
|
||||
showKeyboardLayoutDialog(identifier);
|
||||
return true;
|
||||
}
|
||||
});
|
||||
mHardKeyboardPreferenceList.add(pref);
|
||||
}
|
||||
}
|
||||
|
||||
if (!mHardKeyboardPreferenceList.isEmpty()) {
|
||||
for (int i = mHardKeyboardCategory.getPreferenceCount(); i-- > 0; ) {
|
||||
final Preference pref = mHardKeyboardCategory.getPreference(i);
|
||||
if (pref.getOrder() < 1000) {
|
||||
mHardKeyboardCategory.removePreference(pref);
|
||||
}
|
||||
}
|
||||
|
||||
Collections.sort(mHardKeyboardPreferenceList);
|
||||
final int count = mHardKeyboardPreferenceList.size();
|
||||
for (int i = 0; i < count; i++) {
|
||||
final Preference pref = mHardKeyboardPreferenceList.get(i);
|
||||
pref.setOrder(i);
|
||||
mHardKeyboardCategory.addPreference(pref);
|
||||
}
|
||||
|
||||
getPreferenceScreen().addPreference(mHardKeyboardCategory);
|
||||
} else {
|
||||
getPreferenceScreen().removePreference(mHardKeyboardCategory);
|
||||
}
|
||||
}
|
||||
|
||||
private void showKeyboardLayoutDialog(InputDeviceIdentifier inputDeviceIdentifier) {
|
||||
KeyboardLayoutDialogFragment fragment = (KeyboardLayoutDialogFragment)
|
||||
getFragmentManager().findFragmentByTag("keyboardLayout");
|
||||
@@ -563,31 +300,6 @@ public class InputMethodAndLanguageSettings extends SettingsPreferenceFragment
|
||||
return false;
|
||||
}
|
||||
|
||||
private class SettingsObserver extends ContentObserver {
|
||||
private Context mContext;
|
||||
|
||||
public SettingsObserver(Handler handler, Context context) {
|
||||
super(handler);
|
||||
mContext = context;
|
||||
}
|
||||
|
||||
@Override public void onChange(boolean selfChange) {
|
||||
updateCurrentImeName();
|
||||
}
|
||||
|
||||
public void resume() {
|
||||
final ContentResolver cr = mContext.getContentResolver();
|
||||
cr.registerContentObserver(
|
||||
Settings.Secure.getUriFor(Settings.Secure.DEFAULT_INPUT_METHOD), false, this);
|
||||
cr.registerContentObserver(Settings.Secure.getUriFor(
|
||||
Settings.Secure.SELECTED_INPUT_METHOD_SUBTYPE), false, this);
|
||||
}
|
||||
|
||||
public void pause() {
|
||||
mContext.getContentResolver().unregisterContentObserver(this);
|
||||
}
|
||||
}
|
||||
|
||||
private static class SummaryProvider implements SummaryLoader.SummaryProvider {
|
||||
|
||||
private final Context mContext;
|
||||
@@ -668,16 +380,6 @@ public class InputMethodAndLanguageSettings extends SettingsPreferenceFragment
|
||||
.getInstance(context);
|
||||
immValues.refreshAllInputMethodAndSubtypes();
|
||||
|
||||
// Current IME.
|
||||
String currImeName = immValues.getCurrentInputMethodName(context).toString();
|
||||
indexable = new SearchIndexableRaw(context);
|
||||
indexable.key = KEY_CURRENT_INPUT_METHOD;
|
||||
indexable.title = context.getString(R.string.current_input_method);
|
||||
indexable.summaryOn = currImeName;
|
||||
indexable.summaryOff = currImeName;
|
||||
indexable.screenTitle = screenTitle;
|
||||
indexables.add(indexable);
|
||||
|
||||
InputMethodManager inputMethodManager = (InputMethodManager) context.getSystemService(
|
||||
Context.INPUT_METHOD_SERVICE);
|
||||
|
||||
@@ -744,8 +446,7 @@ public class InputMethodAndLanguageSettings extends SettingsPreferenceFragment
|
||||
// Hard keyboard category.
|
||||
indexable = new SearchIndexableRaw(context);
|
||||
indexable.key = "builtin_keyboard_settings";
|
||||
indexable.title = context.getString(
|
||||
R.string.builtin_keyboard_settings_title);
|
||||
indexable.title = context.getString(R.string.builtin_keyboard_settings_title);
|
||||
indexable.screenTitle = screenTitle;
|
||||
indexables.add(indexable);
|
||||
}
|
||||
|
Reference in New Issue
Block a user