Loading java/res/xml/prefs.xml +0 −3 Original line number Diff line number Diff line Loading @@ -21,9 +21,6 @@ <PreferenceCategory android:title="@string/general_category" android:key="general_settings"> <PreferenceScreen android:key="subtype_settings" android:title="@string/language_selection_title" /> <CheckBoxPreference android:key="auto_cap" android:title="@string/auto_cap" Loading java/src/com/android/inputmethod/compat/CompatUtils.java +9 −16 Original line number Diff line number Diff line Loading @@ -35,14 +35,9 @@ public class CompatUtils { public static Intent getInputLanguageSelectionIntent(String inputMethodId, 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 action = INPUT_METHOD_SUBTYPE_SETTINGS; intent = new Intent(action); final String action = INPUT_METHOD_SUBTYPE_SETTINGS; final Intent intent = new Intent(action); if (!TextUtils.isEmpty(inputMethodId)) { intent.putExtra(EXTRA_INPUT_METHOD_ID, inputMethodId); } Loading @@ -51,8 +46,6 @@ public class CompatUtils { } return intent; } throw new RuntimeException("Language selection doesn't supported on this platform"); } public static Class<?> getClass(String className) { try { Loading java/src/com/android/inputmethod/compat/InputMethodManagerCompatWrapper.java +4 −76 Original line number Diff line number Diff line Loading @@ -17,23 +17,15 @@ package com.android.inputmethod.compat; import android.content.Context; import android.content.pm.ApplicationInfo; import android.content.pm.PackageManager; import android.os.IBinder; import android.text.TextUtils; import android.util.Log; import android.view.inputmethod.InputMethodInfo; import android.view.inputmethod.InputMethodManager; import com.android.inputmethod.latin.SubtypeSwitcher; import com.android.inputmethod.latin.SubtypeUtils; import java.lang.reflect.Method; import java.util.ArrayList; import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Locale; import java.util.Map; // TODO: Override this class with the concrete implementation if we need to take care of the Loading Loading @@ -61,18 +53,7 @@ public class InputMethodManagerCompatWrapper { private static final InputMethodManagerCompatWrapper sInstance = 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 PackageManager mPackageManager; private ApplicationInfo mApplicationInfo; private String mLatinImePackageName; public static InputMethodManagerCompatWrapper getInstance() { if (sInstance.mImm == null) Loading @@ -81,12 +62,8 @@ public class InputMethodManagerCompatWrapper { } public static void init(InputMethodServiceCompatWrapper service) { sInstance.mService = service; sInstance.mImm = (InputMethodManager) service.getSystemService( Context.INPUT_METHOD_SERVICE); sInstance.mLatinImePackageName = service.getPackageName(); sInstance.mPackageManager = service.getPackageManager(); sInstance.mApplicationInfo = service.getApplicationInfo(); } public InputMethodSubtypeCompatWrapper getCurrentInputMethodSubtype() { Loading @@ -104,68 +81,19 @@ public class InputMethodManagerCompatWrapper { Object retval = CompatUtils.invoke(mImm, null, METHOD_getEnabledInputMethodSubtypeList, imi, allowsImplicitlySelectedSubtypes); if (retval == null || !(retval instanceof List<?>) || ((List<?>)retval).isEmpty()) { if (!FORCE_ENABLE_VOICE_EVEN_WITH_NO_VOICE_SUBTYPES) { // Returns an empty list 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); } 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>> getShortcutInputMethodsAndSubtypes() { Object retval = CompatUtils.invoke(mImm, null, METHOD_getShortcutInputMethodsAndSubtypes); if (retval == null || !(retval instanceof Map<?, ?>) || ((Map<?, ?>)retval).isEmpty()) { if (!FORCE_ENABLE_VOICE_EVEN_WITH_NO_VOICE_SUBTYPES) { // Returns an empty map 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 = new HashMap<InputMethodInfo, List<InputMethodSubtypeCompatWrapper>>(); final Map<?, ?> retvalMap = (Map<?, ?>)retval; Loading java/src/com/android/inputmethod/compat/InputMethodServiceCompatWrapper.java +0 −37 Original line number Diff line number Diff line Loading @@ -27,15 +27,6 @@ import com.android.inputmethod.keyboard.KeyboardSwitcher; import com.android.inputmethod.latin.SubtypeSwitcher; 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}. // TODO: Move this variable back to LatinIME when this compatibility wrapper is removed. protected AlertDialog mOptionsDialog; Loading @@ -62,32 +53,6 @@ public class InputMethodServiceCompatWrapper extends InputMethodService { @Override public void 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); } } ////////////////////////////////////// Loading @@ -95,8 +60,6 @@ public class InputMethodServiceCompatWrapper extends InputMethodService { ////////////////////////////////////// @Override 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( new InputMethodSubtypeCompatWrapper(subtype)); } Loading java/src/com/android/inputmethod/latin/Settings.java +1 −41 Original line number Diff line number Diff line Loading @@ -18,7 +18,6 @@ package com.android.inputmethod.latin; import android.app.Activity; import android.app.AlertDialog; import android.app.Dialog; import android.app.Fragment; import android.app.backup.BackupManager; import android.content.Context; Loading @@ -34,31 +33,20 @@ import android.preference.Preference; import android.preference.Preference.OnPreferenceClickListener; import android.preference.PreferenceGroup; import android.preference.PreferenceScreen; import android.text.TextUtils; import android.text.method.LinkMovementMethod; import android.util.Log; import android.view.View; import android.widget.SeekBar; import android.widget.SeekBar.OnSeekBarChangeListener; 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.inputmethodcommon.InputMethodSettingsActivity; import java.util.Locale; public class Settings extends InputMethodSettingsActivity implements SharedPreferences.OnSharedPreferenceChangeListener, OnPreferenceClickListener { private static final String TAG = Settings.class.getSimpleName(); implements SharedPreferences.OnSharedPreferenceChangeListener { public static final boolean ENABLE_EXPERIMENTAL_SETTINGS = false; // In the same order as xml/prefs.xml 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_VIBRATE_ON = "vibrate_on"; public static final String PREF_SOUND_ON = "sound_on"; Loading Loading @@ -90,7 +78,6 @@ public class Settings extends InputMethodSettingsActivity public static final String PREF_SELECTED_LANGUAGES = "selected_languages"; public static final String PREF_DEBUG_SETTINGS = "debug_settings"; private PreferenceScreen mInputLanguageSelection; private PreferenceScreen mKeypressVibrationDurationSettingsPref; private PreferenceScreen mKeypressSoundVolumeSettingsPref; private ListPreference mVoicePreference; Loading @@ -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 private CheckBoxPreference mBigramPrediction; private Preference mDebugSettingsPreference; private boolean mVoiceOn; private AlertDialog mDialog; private TextView mKeypressVibrationDurationSettingsTextView; private TextView mKeypressSoundVolumeSettingsTextView; private String mVoiceModeOff; private void ensureConsistencyOfAutoCorrectionSettings() { final String autoCorrectionOff = getResources().getString( R.string.auto_correction_threshold_mode_index_off); Loading Loading @@ -140,18 +123,12 @@ public class Settings extends InputMethodSettingsActivity final Context context = getActivityInternal(); addPreferencesFromResource(R.xml.prefs); mInputLanguageSelection = (PreferenceScreen) findPreference(PREF_SUBTYPES_SETTINGS); mInputLanguageSelection.setOnPreferenceClickListener(this); mVoicePreference = (ListPreference) findPreference(PREF_VOICE_MODE); mShowCorrectionSuggestionsPreference = (ListPreference) findPreference(PREF_SHOW_SUGGESTIONS_SETTING); SharedPreferences prefs = getPreferenceManager().getSharedPreferences(); prefs.registerOnSharedPreferenceChangeListener(this); mVoiceModeOff = getString(R.string.voice_mode_off); mVoiceOn = !(prefs.getString(PREF_VOICE_MODE, mVoiceModeOff) .equals(mVoiceModeOff)); mAutoCorrectionThresholdPreference = (ListPreference) findPreference(PREF_AUTO_CORRECTION_THRESHOLD); mBigramSuggestion = (CheckBoxPreference) findPreference(PREF_BIGRAM_SUGGESTION); Loading Loading @@ -183,10 +160,6 @@ public class Settings extends InputMethodSettingsActivity 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( R.bool.config_enable_show_popup_on_keypress_option); if (!showPopupOption) { Loading Loading @@ -318,25 +291,12 @@ public class Settings extends InputMethodSettingsActivity !SettingsValues.isLanguageSwitchKeySupressed(prefs)); } ensureConsistencyOfAutoCorrectionSettings(); mVoiceOn = !(prefs.getString(PREF_VOICE_MODE, mVoiceModeOff) .equals(mVoiceModeOff)); updateVoiceModeSummary(); updateShowCorrectionSuggestionsSummary(); updateKeyPreviewPopupDelaySummary(); 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() { mShowCorrectionSuggestionsPreference.setSummary( getResources().getStringArray(R.array.prefs_suggestion_visibilities) Loading Loading
java/res/xml/prefs.xml +0 −3 Original line number Diff line number Diff line Loading @@ -21,9 +21,6 @@ <PreferenceCategory android:title="@string/general_category" android:key="general_settings"> <PreferenceScreen android:key="subtype_settings" android:title="@string/language_selection_title" /> <CheckBoxPreference android:key="auto_cap" android:title="@string/auto_cap" Loading
java/src/com/android/inputmethod/compat/CompatUtils.java +9 −16 Original line number Diff line number Diff line Loading @@ -35,14 +35,9 @@ public class CompatUtils { public static Intent getInputLanguageSelectionIntent(String inputMethodId, 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 action = INPUT_METHOD_SUBTYPE_SETTINGS; intent = new Intent(action); final String action = INPUT_METHOD_SUBTYPE_SETTINGS; final Intent intent = new Intent(action); if (!TextUtils.isEmpty(inputMethodId)) { intent.putExtra(EXTRA_INPUT_METHOD_ID, inputMethodId); } Loading @@ -51,8 +46,6 @@ public class CompatUtils { } return intent; } throw new RuntimeException("Language selection doesn't supported on this platform"); } public static Class<?> getClass(String className) { try { Loading
java/src/com/android/inputmethod/compat/InputMethodManagerCompatWrapper.java +4 −76 Original line number Diff line number Diff line Loading @@ -17,23 +17,15 @@ package com.android.inputmethod.compat; import android.content.Context; import android.content.pm.ApplicationInfo; import android.content.pm.PackageManager; import android.os.IBinder; import android.text.TextUtils; import android.util.Log; import android.view.inputmethod.InputMethodInfo; import android.view.inputmethod.InputMethodManager; import com.android.inputmethod.latin.SubtypeSwitcher; import com.android.inputmethod.latin.SubtypeUtils; import java.lang.reflect.Method; import java.util.ArrayList; import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Locale; import java.util.Map; // TODO: Override this class with the concrete implementation if we need to take care of the Loading Loading @@ -61,18 +53,7 @@ public class InputMethodManagerCompatWrapper { private static final InputMethodManagerCompatWrapper sInstance = 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 PackageManager mPackageManager; private ApplicationInfo mApplicationInfo; private String mLatinImePackageName; public static InputMethodManagerCompatWrapper getInstance() { if (sInstance.mImm == null) Loading @@ -81,12 +62,8 @@ public class InputMethodManagerCompatWrapper { } public static void init(InputMethodServiceCompatWrapper service) { sInstance.mService = service; sInstance.mImm = (InputMethodManager) service.getSystemService( Context.INPUT_METHOD_SERVICE); sInstance.mLatinImePackageName = service.getPackageName(); sInstance.mPackageManager = service.getPackageManager(); sInstance.mApplicationInfo = service.getApplicationInfo(); } public InputMethodSubtypeCompatWrapper getCurrentInputMethodSubtype() { Loading @@ -104,68 +81,19 @@ public class InputMethodManagerCompatWrapper { Object retval = CompatUtils.invoke(mImm, null, METHOD_getEnabledInputMethodSubtypeList, imi, allowsImplicitlySelectedSubtypes); if (retval == null || !(retval instanceof List<?>) || ((List<?>)retval).isEmpty()) { if (!FORCE_ENABLE_VOICE_EVEN_WITH_NO_VOICE_SUBTYPES) { // Returns an empty list 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); } 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>> getShortcutInputMethodsAndSubtypes() { Object retval = CompatUtils.invoke(mImm, null, METHOD_getShortcutInputMethodsAndSubtypes); if (retval == null || !(retval instanceof Map<?, ?>) || ((Map<?, ?>)retval).isEmpty()) { if (!FORCE_ENABLE_VOICE_EVEN_WITH_NO_VOICE_SUBTYPES) { // Returns an empty map 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 = new HashMap<InputMethodInfo, List<InputMethodSubtypeCompatWrapper>>(); final Map<?, ?> retvalMap = (Map<?, ?>)retval; Loading
java/src/com/android/inputmethod/compat/InputMethodServiceCompatWrapper.java +0 −37 Original line number Diff line number Diff line Loading @@ -27,15 +27,6 @@ import com.android.inputmethod.keyboard.KeyboardSwitcher; import com.android.inputmethod.latin.SubtypeSwitcher; 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}. // TODO: Move this variable back to LatinIME when this compatibility wrapper is removed. protected AlertDialog mOptionsDialog; Loading @@ -62,32 +53,6 @@ public class InputMethodServiceCompatWrapper extends InputMethodService { @Override public void 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); } } ////////////////////////////////////// Loading @@ -95,8 +60,6 @@ public class InputMethodServiceCompatWrapper extends InputMethodService { ////////////////////////////////////// @Override 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( new InputMethodSubtypeCompatWrapper(subtype)); } Loading
java/src/com/android/inputmethod/latin/Settings.java +1 −41 Original line number Diff line number Diff line Loading @@ -18,7 +18,6 @@ package com.android.inputmethod.latin; import android.app.Activity; import android.app.AlertDialog; import android.app.Dialog; import android.app.Fragment; import android.app.backup.BackupManager; import android.content.Context; Loading @@ -34,31 +33,20 @@ import android.preference.Preference; import android.preference.Preference.OnPreferenceClickListener; import android.preference.PreferenceGroup; import android.preference.PreferenceScreen; import android.text.TextUtils; import android.text.method.LinkMovementMethod; import android.util.Log; import android.view.View; import android.widget.SeekBar; import android.widget.SeekBar.OnSeekBarChangeListener; 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.inputmethodcommon.InputMethodSettingsActivity; import java.util.Locale; public class Settings extends InputMethodSettingsActivity implements SharedPreferences.OnSharedPreferenceChangeListener, OnPreferenceClickListener { private static final String TAG = Settings.class.getSimpleName(); implements SharedPreferences.OnSharedPreferenceChangeListener { public static final boolean ENABLE_EXPERIMENTAL_SETTINGS = false; // In the same order as xml/prefs.xml 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_VIBRATE_ON = "vibrate_on"; public static final String PREF_SOUND_ON = "sound_on"; Loading Loading @@ -90,7 +78,6 @@ public class Settings extends InputMethodSettingsActivity public static final String PREF_SELECTED_LANGUAGES = "selected_languages"; public static final String PREF_DEBUG_SETTINGS = "debug_settings"; private PreferenceScreen mInputLanguageSelection; private PreferenceScreen mKeypressVibrationDurationSettingsPref; private PreferenceScreen mKeypressSoundVolumeSettingsPref; private ListPreference mVoicePreference; Loading @@ -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 private CheckBoxPreference mBigramPrediction; private Preference mDebugSettingsPreference; private boolean mVoiceOn; private AlertDialog mDialog; private TextView mKeypressVibrationDurationSettingsTextView; private TextView mKeypressSoundVolumeSettingsTextView; private String mVoiceModeOff; private void ensureConsistencyOfAutoCorrectionSettings() { final String autoCorrectionOff = getResources().getString( R.string.auto_correction_threshold_mode_index_off); Loading Loading @@ -140,18 +123,12 @@ public class Settings extends InputMethodSettingsActivity final Context context = getActivityInternal(); addPreferencesFromResource(R.xml.prefs); mInputLanguageSelection = (PreferenceScreen) findPreference(PREF_SUBTYPES_SETTINGS); mInputLanguageSelection.setOnPreferenceClickListener(this); mVoicePreference = (ListPreference) findPreference(PREF_VOICE_MODE); mShowCorrectionSuggestionsPreference = (ListPreference) findPreference(PREF_SHOW_SUGGESTIONS_SETTING); SharedPreferences prefs = getPreferenceManager().getSharedPreferences(); prefs.registerOnSharedPreferenceChangeListener(this); mVoiceModeOff = getString(R.string.voice_mode_off); mVoiceOn = !(prefs.getString(PREF_VOICE_MODE, mVoiceModeOff) .equals(mVoiceModeOff)); mAutoCorrectionThresholdPreference = (ListPreference) findPreference(PREF_AUTO_CORRECTION_THRESHOLD); mBigramSuggestion = (CheckBoxPreference) findPreference(PREF_BIGRAM_SUGGESTION); Loading Loading @@ -183,10 +160,6 @@ public class Settings extends InputMethodSettingsActivity 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( R.bool.config_enable_show_popup_on_keypress_option); if (!showPopupOption) { Loading Loading @@ -318,25 +291,12 @@ public class Settings extends InputMethodSettingsActivity !SettingsValues.isLanguageSwitchKeySupressed(prefs)); } ensureConsistencyOfAutoCorrectionSettings(); mVoiceOn = !(prefs.getString(PREF_VOICE_MODE, mVoiceModeOff) .equals(mVoiceModeOff)); updateVoiceModeSummary(); updateShowCorrectionSuggestionsSummary(); updateKeyPreviewPopupDelaySummary(); 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() { mShowCorrectionSuggestionsPreference.setSummary( getResources().getStringArray(R.array.prefs_suggestion_visibilities) Loading