Remove CAN_HANDLE_ON_CURRENT_INPUT_METHOD_SUBTYPE_CHANGED boolean
Bug: 6129704 Change-Id: I7643e656c6e7656eff339cc301dd32f34dee83a4main
parent
b1904ec235
commit
19457316c1
|
@ -21,9 +21,6 @@
|
||||||
<PreferenceCategory
|
<PreferenceCategory
|
||||||
android:title="@string/general_category"
|
android:title="@string/general_category"
|
||||||
android:key="general_settings">
|
android:key="general_settings">
|
||||||
<PreferenceScreen
|
|
||||||
android:key="subtype_settings"
|
|
||||||
android:title="@string/language_selection_title" />
|
|
||||||
<CheckBoxPreference
|
<CheckBoxPreference
|
||||||
android:key="auto_cap"
|
android:key="auto_cap"
|
||||||
android:title="@string/auto_cap"
|
android:title="@string/auto_cap"
|
||||||
|
|
|
@ -35,14 +35,9 @@ public class CompatUtils {
|
||||||
|
|
||||||
public static Intent getInputLanguageSelectionIntent(String inputMethodId,
|
public static Intent getInputLanguageSelectionIntent(String inputMethodId,
|
||||||
int flagsForSubtypeSettings) {
|
int flagsForSubtypeSettings) {
|
||||||
final String action;
|
|
||||||
Intent intent;
|
|
||||||
if (InputMethodServiceCompatWrapper.CAN_HANDLE_ON_CURRENT_INPUT_METHOD_SUBTYPE_CHANGED
|
|
||||||
/* android.os.Build.VERSION_CODES.HONEYCOMB */
|
|
||||||
&& android.os.Build.VERSION.SDK_INT >= 11) {
|
|
||||||
// Refer to android.provider.Settings.ACTION_INPUT_METHOD_SUBTYPE_SETTINGS
|
// Refer to android.provider.Settings.ACTION_INPUT_METHOD_SUBTYPE_SETTINGS
|
||||||
action = INPUT_METHOD_SUBTYPE_SETTINGS;
|
final String action = INPUT_METHOD_SUBTYPE_SETTINGS;
|
||||||
intent = new Intent(action);
|
final Intent intent = new Intent(action);
|
||||||
if (!TextUtils.isEmpty(inputMethodId)) {
|
if (!TextUtils.isEmpty(inputMethodId)) {
|
||||||
intent.putExtra(EXTRA_INPUT_METHOD_ID, inputMethodId);
|
intent.putExtra(EXTRA_INPUT_METHOD_ID, inputMethodId);
|
||||||
}
|
}
|
||||||
|
@ -51,8 +46,6 @@ public class CompatUtils {
|
||||||
}
|
}
|
||||||
return intent;
|
return intent;
|
||||||
}
|
}
|
||||||
throw new RuntimeException("Language selection doesn't supported on this platform");
|
|
||||||
}
|
|
||||||
|
|
||||||
public static Class<?> getClass(String className) {
|
public static Class<?> getClass(String className) {
|
||||||
try {
|
try {
|
||||||
|
|
|
@ -17,23 +17,15 @@
|
||||||
package com.android.inputmethod.compat;
|
package com.android.inputmethod.compat;
|
||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.pm.ApplicationInfo;
|
|
||||||
import android.content.pm.PackageManager;
|
|
||||||
import android.os.IBinder;
|
import android.os.IBinder;
|
||||||
import android.text.TextUtils;
|
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
import android.view.inputmethod.InputMethodInfo;
|
import android.view.inputmethod.InputMethodInfo;
|
||||||
import android.view.inputmethod.InputMethodManager;
|
import android.view.inputmethod.InputMethodManager;
|
||||||
|
|
||||||
import com.android.inputmethod.latin.SubtypeSwitcher;
|
|
||||||
import com.android.inputmethod.latin.SubtypeUtils;
|
|
||||||
|
|
||||||
import java.lang.reflect.Method;
|
import java.lang.reflect.Method;
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Locale;
|
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
// TODO: Override this class with the concrete implementation if we need to take care of the
|
// TODO: Override this class with the concrete implementation if we need to take care of the
|
||||||
|
@ -61,18 +53,7 @@ public class InputMethodManagerCompatWrapper {
|
||||||
private static final InputMethodManagerCompatWrapper sInstance =
|
private static final InputMethodManagerCompatWrapper sInstance =
|
||||||
new InputMethodManagerCompatWrapper();
|
new InputMethodManagerCompatWrapper();
|
||||||
|
|
||||||
// For the compatibility, IMM will create dummy subtypes if subtypes are not found.
|
|
||||||
// This is required to be false if the current behavior is broken. For now, it's ok to be true.
|
|
||||||
public static final boolean FORCE_ENABLE_VOICE_EVEN_WITH_NO_VOICE_SUBTYPES =
|
|
||||||
!InputMethodServiceCompatWrapper.CAN_HANDLE_ON_CURRENT_INPUT_METHOD_SUBTYPE_CHANGED;
|
|
||||||
private static final String VOICE_MODE = "voice";
|
|
||||||
private static final String KEYBOARD_MODE = "keyboard";
|
|
||||||
|
|
||||||
private InputMethodServiceCompatWrapper mService;
|
|
||||||
private InputMethodManager mImm;
|
private InputMethodManager mImm;
|
||||||
private PackageManager mPackageManager;
|
|
||||||
private ApplicationInfo mApplicationInfo;
|
|
||||||
private String mLatinImePackageName;
|
|
||||||
|
|
||||||
public static InputMethodManagerCompatWrapper getInstance() {
|
public static InputMethodManagerCompatWrapper getInstance() {
|
||||||
if (sInstance.mImm == null)
|
if (sInstance.mImm == null)
|
||||||
|
@ -81,12 +62,8 @@ public class InputMethodManagerCompatWrapper {
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void init(InputMethodServiceCompatWrapper service) {
|
public static void init(InputMethodServiceCompatWrapper service) {
|
||||||
sInstance.mService = service;
|
|
||||||
sInstance.mImm = (InputMethodManager) service.getSystemService(
|
sInstance.mImm = (InputMethodManager) service.getSystemService(
|
||||||
Context.INPUT_METHOD_SERVICE);
|
Context.INPUT_METHOD_SERVICE);
|
||||||
sInstance.mLatinImePackageName = service.getPackageName();
|
|
||||||
sInstance.mPackageManager = service.getPackageManager();
|
|
||||||
sInstance.mApplicationInfo = service.getApplicationInfo();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public InputMethodSubtypeCompatWrapper getCurrentInputMethodSubtype() {
|
public InputMethodSubtypeCompatWrapper getCurrentInputMethodSubtype() {
|
||||||
|
@ -104,68 +81,19 @@ public class InputMethodManagerCompatWrapper {
|
||||||
Object retval = CompatUtils.invoke(mImm, null, METHOD_getEnabledInputMethodSubtypeList,
|
Object retval = CompatUtils.invoke(mImm, null, METHOD_getEnabledInputMethodSubtypeList,
|
||||||
imi, allowsImplicitlySelectedSubtypes);
|
imi, allowsImplicitlySelectedSubtypes);
|
||||||
if (retval == null || !(retval instanceof List<?>) || ((List<?>)retval).isEmpty()) {
|
if (retval == null || !(retval instanceof List<?>) || ((List<?>)retval).isEmpty()) {
|
||||||
if (!FORCE_ENABLE_VOICE_EVEN_WITH_NO_VOICE_SUBTYPES) {
|
|
||||||
// Returns an empty list
|
// Returns an empty list
|
||||||
return Collections.emptyList();
|
return Collections.emptyList();
|
||||||
}
|
}
|
||||||
// Creates dummy subtypes
|
|
||||||
@SuppressWarnings("unused")
|
|
||||||
List<InputMethodSubtypeCompatWrapper> subtypeList =
|
|
||||||
new ArrayList<InputMethodSubtypeCompatWrapper>();
|
|
||||||
InputMethodSubtypeCompatWrapper keyboardSubtype = getLastResortSubtype(KEYBOARD_MODE);
|
|
||||||
InputMethodSubtypeCompatWrapper voiceSubtype = getLastResortSubtype(VOICE_MODE);
|
|
||||||
if (keyboardSubtype != null) {
|
|
||||||
subtypeList.add(keyboardSubtype);
|
|
||||||
}
|
|
||||||
if (voiceSubtype != null) {
|
|
||||||
subtypeList.add(voiceSubtype);
|
|
||||||
}
|
|
||||||
return subtypeList;
|
|
||||||
}
|
|
||||||
return CompatUtils.copyInputMethodSubtypeListToWrapper(retval);
|
return CompatUtils.copyInputMethodSubtypeListToWrapper(retval);
|
||||||
}
|
}
|
||||||
|
|
||||||
private InputMethodInfo getLatinImeInputMethodInfo() {
|
|
||||||
if (TextUtils.isEmpty(mLatinImePackageName))
|
|
||||||
return null;
|
|
||||||
return SubtypeUtils.getInputMethodInfo(mLatinImePackageName);
|
|
||||||
}
|
|
||||||
|
|
||||||
private static InputMethodSubtypeCompatWrapper getLastResortSubtype(String mode) {
|
|
||||||
if (VOICE_MODE.equals(mode) && !FORCE_ENABLE_VOICE_EVEN_WITH_NO_VOICE_SUBTYPES)
|
|
||||||
return null;
|
|
||||||
Locale inputLocale = SubtypeSwitcher.getInstance().getInputLocale();
|
|
||||||
if (inputLocale == null)
|
|
||||||
return null;
|
|
||||||
return new InputMethodSubtypeCompatWrapper(0, 0, inputLocale.toString(), mode, "");
|
|
||||||
}
|
|
||||||
|
|
||||||
public Map<InputMethodInfo, List<InputMethodSubtypeCompatWrapper>>
|
public Map<InputMethodInfo, List<InputMethodSubtypeCompatWrapper>>
|
||||||
getShortcutInputMethodsAndSubtypes() {
|
getShortcutInputMethodsAndSubtypes() {
|
||||||
Object retval = CompatUtils.invoke(mImm, null, METHOD_getShortcutInputMethodsAndSubtypes);
|
Object retval = CompatUtils.invoke(mImm, null, METHOD_getShortcutInputMethodsAndSubtypes);
|
||||||
if (retval == null || !(retval instanceof Map<?, ?>) || ((Map<?, ?>)retval).isEmpty()) {
|
if (retval == null || !(retval instanceof Map<?, ?>) || ((Map<?, ?>)retval).isEmpty()) {
|
||||||
if (!FORCE_ENABLE_VOICE_EVEN_WITH_NO_VOICE_SUBTYPES) {
|
|
||||||
// Returns an empty map
|
// Returns an empty map
|
||||||
return Collections.emptyMap();
|
return Collections.emptyMap();
|
||||||
}
|
}
|
||||||
// Creates dummy subtypes
|
|
||||||
@SuppressWarnings("unused")
|
|
||||||
InputMethodInfo imi = getLatinImeInputMethodInfo();
|
|
||||||
InputMethodSubtypeCompatWrapper voiceSubtype = getLastResortSubtype(VOICE_MODE);
|
|
||||||
if (imi != null && voiceSubtype != null) {
|
|
||||||
Map<InputMethodInfo, List<InputMethodSubtypeCompatWrapper>>
|
|
||||||
shortcutMap =
|
|
||||||
new HashMap<InputMethodInfo,
|
|
||||||
List<InputMethodSubtypeCompatWrapper>>();
|
|
||||||
List<InputMethodSubtypeCompatWrapper> subtypeList =
|
|
||||||
new ArrayList<InputMethodSubtypeCompatWrapper>();
|
|
||||||
subtypeList.add(voiceSubtype);
|
|
||||||
shortcutMap.put(imi, subtypeList);
|
|
||||||
return shortcutMap;
|
|
||||||
} else {
|
|
||||||
return Collections.emptyMap();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
Map<InputMethodInfo, List<InputMethodSubtypeCompatWrapper>> shortcutMap =
|
Map<InputMethodInfo, List<InputMethodSubtypeCompatWrapper>> shortcutMap =
|
||||||
new HashMap<InputMethodInfo, List<InputMethodSubtypeCompatWrapper>>();
|
new HashMap<InputMethodInfo, List<InputMethodSubtypeCompatWrapper>>();
|
||||||
final Map<?, ?> retvalMap = (Map<?, ?>)retval;
|
final Map<?, ?> retvalMap = (Map<?, ?>)retval;
|
||||||
|
|
|
@ -27,15 +27,6 @@ import com.android.inputmethod.keyboard.KeyboardSwitcher;
|
||||||
import com.android.inputmethod.latin.SubtypeSwitcher;
|
import com.android.inputmethod.latin.SubtypeSwitcher;
|
||||||
|
|
||||||
public class InputMethodServiceCompatWrapper extends InputMethodService {
|
public class InputMethodServiceCompatWrapper extends InputMethodService {
|
||||||
// CAN_HANDLE_ON_CURRENT_INPUT_METHOD_SUBTYPE_CHANGED needs to be false if the API level is 10
|
|
||||||
// or previous. Note that InputMethodSubtype was added in the API level 11.
|
|
||||||
// For the API level 11 or later, LatinIME should override onCurrentInputMethodSubtypeChanged().
|
|
||||||
// For the API level 10 or previous, we handle the "subtype changed" events by ourselves
|
|
||||||
// without having support from framework -- onCurrentInputMethodSubtypeChanged().
|
|
||||||
public static final boolean CAN_HANDLE_ON_CURRENT_INPUT_METHOD_SUBTYPE_CHANGED = true;
|
|
||||||
|
|
||||||
private InputMethodManagerCompatWrapper mImm;
|
|
||||||
|
|
||||||
// For compatibility of {@link InputMethodManager#showInputMethodPicker}.
|
// For compatibility of {@link InputMethodManager#showInputMethodPicker}.
|
||||||
// TODO: Move this variable back to LatinIME when this compatibility wrapper is removed.
|
// TODO: Move this variable back to LatinIME when this compatibility wrapper is removed.
|
||||||
protected AlertDialog mOptionsDialog;
|
protected AlertDialog mOptionsDialog;
|
||||||
|
@ -62,32 +53,6 @@ public class InputMethodServiceCompatWrapper extends InputMethodService {
|
||||||
@Override
|
@Override
|
||||||
public void onCreate() {
|
public void onCreate() {
|
||||||
super.onCreate();
|
super.onCreate();
|
||||||
mImm = InputMethodManagerCompatWrapper.getInstance();
|
|
||||||
}
|
|
||||||
|
|
||||||
// When the API level is 10 or previous, notifyOnCurrentInputMethodSubtypeChanged should
|
|
||||||
// handle the event the current subtype was changed. LatinIME calls
|
|
||||||
// notifyOnCurrentInputMethodSubtypeChanged every time LatinIME
|
|
||||||
// changes the current subtype.
|
|
||||||
// This call is required to let LatinIME itself know a subtype changed
|
|
||||||
// event when the API level is 10 or previous.
|
|
||||||
@SuppressWarnings("unused")
|
|
||||||
public void notifyOnCurrentInputMethodSubtypeChanged(
|
|
||||||
InputMethodSubtypeCompatWrapper newSubtype) {
|
|
||||||
// Do nothing when the API level is 11 or later
|
|
||||||
// and FORCE_ENABLE_VOICE_EVEN_WITH_NO_VOICE_SUBTYPES is not true
|
|
||||||
if (CAN_HANDLE_ON_CURRENT_INPUT_METHOD_SUBTYPE_CHANGED && !InputMethodManagerCompatWrapper.
|
|
||||||
FORCE_ENABLE_VOICE_EVEN_WITH_NO_VOICE_SUBTYPES) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
final InputMethodSubtypeCompatWrapper subtype = (newSubtype == null)
|
|
||||||
? mImm.getCurrentInputMethodSubtype()
|
|
||||||
: newSubtype;
|
|
||||||
if (subtype != null) {
|
|
||||||
if (!InputMethodManagerCompatWrapper.FORCE_ENABLE_VOICE_EVEN_WITH_NO_VOICE_SUBTYPES
|
|
||||||
&& !subtype.isDummy()) return;
|
|
||||||
SubtypeSwitcher.getInstance().updateSubtype(subtype);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//////////////////////////////////////
|
//////////////////////////////////////
|
||||||
|
@ -95,8 +60,6 @@ public class InputMethodServiceCompatWrapper extends InputMethodService {
|
||||||
//////////////////////////////////////
|
//////////////////////////////////////
|
||||||
@Override
|
@Override
|
||||||
public void onCurrentInputMethodSubtypeChanged(InputMethodSubtype subtype) {
|
public void onCurrentInputMethodSubtypeChanged(InputMethodSubtype subtype) {
|
||||||
// Do nothing when the API level is 10 or previous
|
|
||||||
if (!CAN_HANDLE_ON_CURRENT_INPUT_METHOD_SUBTYPE_CHANGED) return;
|
|
||||||
SubtypeSwitcher.getInstance().updateSubtype(
|
SubtypeSwitcher.getInstance().updateSubtype(
|
||||||
new InputMethodSubtypeCompatWrapper(subtype));
|
new InputMethodSubtypeCompatWrapper(subtype));
|
||||||
}
|
}
|
||||||
|
|
|
@ -18,7 +18,6 @@ package com.android.inputmethod.latin;
|
||||||
|
|
||||||
import android.app.Activity;
|
import android.app.Activity;
|
||||||
import android.app.AlertDialog;
|
import android.app.AlertDialog;
|
||||||
import android.app.Dialog;
|
|
||||||
import android.app.Fragment;
|
import android.app.Fragment;
|
||||||
import android.app.backup.BackupManager;
|
import android.app.backup.BackupManager;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
|
@ -34,31 +33,20 @@ import android.preference.Preference;
|
||||||
import android.preference.Preference.OnPreferenceClickListener;
|
import android.preference.Preference.OnPreferenceClickListener;
|
||||||
import android.preference.PreferenceGroup;
|
import android.preference.PreferenceGroup;
|
||||||
import android.preference.PreferenceScreen;
|
import android.preference.PreferenceScreen;
|
||||||
import android.text.TextUtils;
|
|
||||||
import android.text.method.LinkMovementMethod;
|
|
||||||
import android.util.Log;
|
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.widget.SeekBar;
|
import android.widget.SeekBar;
|
||||||
import android.widget.SeekBar.OnSeekBarChangeListener;
|
import android.widget.SeekBar.OnSeekBarChangeListener;
|
||||||
import android.widget.TextView;
|
import android.widget.TextView;
|
||||||
|
|
||||||
import com.android.inputmethod.compat.CompatUtils;
|
|
||||||
import com.android.inputmethod.compat.InputMethodServiceCompatWrapper;
|
|
||||||
import com.android.inputmethod.latin.VibratorUtils;
|
|
||||||
import com.android.inputmethod.latin.define.ProductionFlag;
|
import com.android.inputmethod.latin.define.ProductionFlag;
|
||||||
import com.android.inputmethodcommon.InputMethodSettingsActivity;
|
import com.android.inputmethodcommon.InputMethodSettingsActivity;
|
||||||
|
|
||||||
import java.util.Locale;
|
|
||||||
|
|
||||||
public class Settings extends InputMethodSettingsActivity
|
public class Settings extends InputMethodSettingsActivity
|
||||||
implements SharedPreferences.OnSharedPreferenceChangeListener, OnPreferenceClickListener {
|
implements SharedPreferences.OnSharedPreferenceChangeListener {
|
||||||
private static final String TAG = Settings.class.getSimpleName();
|
|
||||||
|
|
||||||
public static final boolean ENABLE_EXPERIMENTAL_SETTINGS = false;
|
public static final boolean ENABLE_EXPERIMENTAL_SETTINGS = false;
|
||||||
|
|
||||||
// In the same order as xml/prefs.xml
|
// In the same order as xml/prefs.xml
|
||||||
public static final String PREF_GENERAL_SETTINGS = "general_settings";
|
public static final String PREF_GENERAL_SETTINGS = "general_settings";
|
||||||
public static final String PREF_SUBTYPES_SETTINGS = "subtype_settings";
|
|
||||||
public static final String PREF_AUTO_CAP = "auto_cap";
|
public static final String PREF_AUTO_CAP = "auto_cap";
|
||||||
public static final String PREF_VIBRATE_ON = "vibrate_on";
|
public static final String PREF_VIBRATE_ON = "vibrate_on";
|
||||||
public static final String PREF_SOUND_ON = "sound_on";
|
public static final String PREF_SOUND_ON = "sound_on";
|
||||||
|
@ -90,7 +78,6 @@ public class Settings extends InputMethodSettingsActivity
|
||||||
public static final String PREF_SELECTED_LANGUAGES = "selected_languages";
|
public static final String PREF_SELECTED_LANGUAGES = "selected_languages";
|
||||||
public static final String PREF_DEBUG_SETTINGS = "debug_settings";
|
public static final String PREF_DEBUG_SETTINGS = "debug_settings";
|
||||||
|
|
||||||
private PreferenceScreen mInputLanguageSelection;
|
|
||||||
private PreferenceScreen mKeypressVibrationDurationSettingsPref;
|
private PreferenceScreen mKeypressVibrationDurationSettingsPref;
|
||||||
private PreferenceScreen mKeypressSoundVolumeSettingsPref;
|
private PreferenceScreen mKeypressSoundVolumeSettingsPref;
|
||||||
private ListPreference mVoicePreference;
|
private ListPreference mVoicePreference;
|
||||||
|
@ -102,14 +89,10 @@ public class Settings extends InputMethodSettingsActivity
|
||||||
// Prediction: use bigrams to predict the next word when there is no input for it yet
|
// Prediction: use bigrams to predict the next word when there is no input for it yet
|
||||||
private CheckBoxPreference mBigramPrediction;
|
private CheckBoxPreference mBigramPrediction;
|
||||||
private Preference mDebugSettingsPreference;
|
private Preference mDebugSettingsPreference;
|
||||||
private boolean mVoiceOn;
|
|
||||||
|
|
||||||
private AlertDialog mDialog;
|
|
||||||
private TextView mKeypressVibrationDurationSettingsTextView;
|
private TextView mKeypressVibrationDurationSettingsTextView;
|
||||||
private TextView mKeypressSoundVolumeSettingsTextView;
|
private TextView mKeypressSoundVolumeSettingsTextView;
|
||||||
|
|
||||||
private String mVoiceModeOff;
|
|
||||||
|
|
||||||
private void ensureConsistencyOfAutoCorrectionSettings() {
|
private void ensureConsistencyOfAutoCorrectionSettings() {
|
||||||
final String autoCorrectionOff = getResources().getString(
|
final String autoCorrectionOff = getResources().getString(
|
||||||
R.string.auto_correction_threshold_mode_index_off);
|
R.string.auto_correction_threshold_mode_index_off);
|
||||||
|
@ -140,18 +123,12 @@ public class Settings extends InputMethodSettingsActivity
|
||||||
final Context context = getActivityInternal();
|
final Context context = getActivityInternal();
|
||||||
|
|
||||||
addPreferencesFromResource(R.xml.prefs);
|
addPreferencesFromResource(R.xml.prefs);
|
||||||
mInputLanguageSelection = (PreferenceScreen) findPreference(PREF_SUBTYPES_SETTINGS);
|
|
||||||
mInputLanguageSelection.setOnPreferenceClickListener(this);
|
|
||||||
mVoicePreference = (ListPreference) findPreference(PREF_VOICE_MODE);
|
mVoicePreference = (ListPreference) findPreference(PREF_VOICE_MODE);
|
||||||
mShowCorrectionSuggestionsPreference =
|
mShowCorrectionSuggestionsPreference =
|
||||||
(ListPreference) findPreference(PREF_SHOW_SUGGESTIONS_SETTING);
|
(ListPreference) findPreference(PREF_SHOW_SUGGESTIONS_SETTING);
|
||||||
SharedPreferences prefs = getPreferenceManager().getSharedPreferences();
|
SharedPreferences prefs = getPreferenceManager().getSharedPreferences();
|
||||||
prefs.registerOnSharedPreferenceChangeListener(this);
|
prefs.registerOnSharedPreferenceChangeListener(this);
|
||||||
|
|
||||||
mVoiceModeOff = getString(R.string.voice_mode_off);
|
|
||||||
mVoiceOn = !(prefs.getString(PREF_VOICE_MODE, mVoiceModeOff)
|
|
||||||
.equals(mVoiceModeOff));
|
|
||||||
|
|
||||||
mAutoCorrectionThresholdPreference =
|
mAutoCorrectionThresholdPreference =
|
||||||
(ListPreference) findPreference(PREF_AUTO_CORRECTION_THRESHOLD);
|
(ListPreference) findPreference(PREF_AUTO_CORRECTION_THRESHOLD);
|
||||||
mBigramSuggestion = (CheckBoxPreference) findPreference(PREF_BIGRAM_SUGGESTION);
|
mBigramSuggestion = (CheckBoxPreference) findPreference(PREF_BIGRAM_SUGGESTION);
|
||||||
|
@ -183,10 +160,6 @@ public class Settings extends InputMethodSettingsActivity
|
||||||
generalSettings.removePreference(findPreference(PREF_VIBRATE_ON));
|
generalSettings.removePreference(findPreference(PREF_VIBRATE_ON));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (InputMethodServiceCompatWrapper.CAN_HANDLE_ON_CURRENT_INPUT_METHOD_SUBTYPE_CHANGED) {
|
|
||||||
generalSettings.removePreference(findPreference(PREF_SUBTYPES_SETTINGS));
|
|
||||||
}
|
|
||||||
|
|
||||||
final boolean showPopupOption = res.getBoolean(
|
final boolean showPopupOption = res.getBoolean(
|
||||||
R.bool.config_enable_show_popup_on_keypress_option);
|
R.bool.config_enable_show_popup_on_keypress_option);
|
||||||
if (!showPopupOption) {
|
if (!showPopupOption) {
|
||||||
|
@ -318,25 +291,12 @@ public class Settings extends InputMethodSettingsActivity
|
||||||
!SettingsValues.isLanguageSwitchKeySupressed(prefs));
|
!SettingsValues.isLanguageSwitchKeySupressed(prefs));
|
||||||
}
|
}
|
||||||
ensureConsistencyOfAutoCorrectionSettings();
|
ensureConsistencyOfAutoCorrectionSettings();
|
||||||
mVoiceOn = !(prefs.getString(PREF_VOICE_MODE, mVoiceModeOff)
|
|
||||||
.equals(mVoiceModeOff));
|
|
||||||
updateVoiceModeSummary();
|
updateVoiceModeSummary();
|
||||||
updateShowCorrectionSuggestionsSummary();
|
updateShowCorrectionSuggestionsSummary();
|
||||||
updateKeyPreviewPopupDelaySummary();
|
updateKeyPreviewPopupDelaySummary();
|
||||||
refreshEnablingsOfKeypressSoundAndVibrationSettings(prefs, getResources());
|
refreshEnablingsOfKeypressSoundAndVibrationSettings(prefs, getResources());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean onPreferenceClick(Preference pref) {
|
|
||||||
if (pref == mInputLanguageSelection) {
|
|
||||||
final String imeId = SubtypeUtils.getInputMethodId(
|
|
||||||
getActivityInternal().getApplicationInfo().packageName);
|
|
||||||
startActivity(CompatUtils.getInputLanguageSelectionIntent(imeId, 0));
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
private void updateShowCorrectionSuggestionsSummary() {
|
private void updateShowCorrectionSuggestionsSummary() {
|
||||||
mShowCorrectionSuggestionsPreference.setSummary(
|
mShowCorrectionSuggestionsPreference.setSummary(
|
||||||
getResources().getStringArray(R.array.prefs_suggestion_visibilities)
|
getResources().getStringArray(R.array.prefs_suggestion_visibilities)
|
||||||
|
|
|
@ -300,17 +300,6 @@ public class SubtypeSwitcher {
|
||||||
mImm.setInputMethodAndSubtype(token, imiId, subtype);
|
mImm.setInputMethodAndSubtype(token, imiId, subtype);
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
protected void onPostExecute(Void result) {
|
|
||||||
// Calls in this method need to be done in the same thread as the thread which
|
|
||||||
// called switchToShortcutIME().
|
|
||||||
|
|
||||||
// Notify an event that the current subtype was changed. This event will be
|
|
||||||
// handled if "onCurrentInputMethodSubtypeChanged" can't be implemented
|
|
||||||
// when the API level is 10 or previous.
|
|
||||||
mService.notifyOnCurrentInputMethodSubtypeChanged(subtype);
|
|
||||||
}
|
|
||||||
}.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
|
}.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue