diff options
author | Scott Mertz <scott@cyngn.com> | 2015-02-09 12:55:55 -0800 |
---|---|---|
committer | Adnan Begovic <adnan@cyngn.com> | 2015-10-29 17:36:31 -0700 |
commit | ba4c43f77699721dff7c2536ee61c0f8c18ea446 (patch) | |
tree | dbdb89b6dbf9d21f58574956256f7a3048c18460 /src/com/android/settings/inputmethod | |
parent | 306c2881c045ccf0e1afc4494fe9e50781f88818 (diff) | |
download | packages_apps_Settings-ba4c43f77699721dff7c2536ee61c0f8c18ea446.zip packages_apps_Settings-ba4c43f77699721dff7c2536ee61c0f8c18ea446.tar.gz packages_apps_Settings-ba4c43f77699721dff7c2536ee61c0f8c18ea446.tar.bz2 |
Settings: Change to CmHardwareService
Change-Id: Iab392aefa9476a2e956a697210f3f7e6426ff815
Diffstat (limited to 'src/com/android/settings/inputmethod')
-rw-r--r-- | src/com/android/settings/inputmethod/InputMethodAndLanguageSettings.java | 71 |
1 files changed, 44 insertions, 27 deletions
diff --git a/src/com/android/settings/inputmethod/InputMethodAndLanguageSettings.java b/src/com/android/settings/inputmethod/InputMethodAndLanguageSettings.java index f796ed8..03e8cb5 100644 --- a/src/com/android/settings/inputmethod/InputMethodAndLanguageSettings.java +++ b/src/com/android/settings/inputmethod/InputMethodAndLanguageSettings.java @@ -27,6 +27,7 @@ import android.content.SharedPreferences; import android.content.pm.ServiceInfo; import android.content.res.Configuration; import android.database.ContentObserver; +import android.hardware.CmHardwareManager; import android.hardware.input.InputDeviceIdentifier; import android.hardware.input.InputManager; import android.hardware.input.KeyboardLayout; @@ -43,6 +44,7 @@ import android.provider.Settings; import android.provider.Settings.System; import android.speech.tts.TtsEngines; import android.text.TextUtils; +import android.util.Log; import android.view.InputDevice; import android.view.inputmethod.InputMethodInfo; import android.view.inputmethod.InputMethodManager; @@ -74,13 +76,13 @@ import java.util.List; import java.util.Locale; import java.util.TreeSet; -import org.cyanogenmod.hardware.HighTouchSensitivity; -import org.cyanogenmod.hardware.TouchscreenHovering; - public class InputMethodAndLanguageSettings extends SettingsPreferenceFragment implements Preference.OnPreferenceChangeListener, InputManager.InputDeviceListener, KeyboardLayoutDialogFragment.OnSetupKeyboardLayoutsListener, Indexable, InputMethodPreference.OnSavePreferenceListener { + + private static final String TAG = "InputMethodAndLanguageSettings"; + 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"; @@ -117,6 +119,7 @@ public class InputMethodAndLanguageSettings extends SettingsPreferenceFragment private Intent mIntentWaitingForResult; private InputMethodSettingValuesWrapper mInputMethodSettingValues; private DevicePolicyManager mDpm; + private CmHardwareManager mCmHardwareManager; @Override protected int getMetricsCategory() { @@ -133,6 +136,8 @@ public class InputMethodAndLanguageSettings extends SettingsPreferenceFragment mImm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); mInputMethodSettingValues = InputMethodSettingValuesWrapper.getInstance(activity); + mCmHardwareManager = (CmHardwareManager) getSystemService(Context.CMHW_SERVICE); + try { mDefaultInputMethodSelectorVisibility = Integer.valueOf( getString(R.string.input_method_selector_visibility_default_value)); @@ -195,18 +200,21 @@ public class InputMethodAndLanguageSettings extends SettingsPreferenceFragment pointerSettingsCategory.removePreference(mStylusIconEnabled); } - if (!isHighTouchSensitivitySupported()) { + if (!mCmHardwareManager.isSupported( + CmHardwareManager.FEATURE_HIGH_TOUCH_SENSITIVITY)) { pointerSettingsCategory.removePreference(mHighTouchSensitivity); mHighTouchSensitivity = null; } else { - mHighTouchSensitivity.setChecked(HighTouchSensitivity.isEnabled()); + mHighTouchSensitivity.setChecked( + mCmHardwareManager.get(CmHardwareManager.FEATURE_HIGH_TOUCH_SENSITIVITY)); } - if (!isTouchscreenHoveringSupported()) { + if (!mCmHardwareManager.isSupported(CmHardwareManager.FEATURE_TOUCH_HOVERING)) { pointerSettingsCategory.removePreference(mTouchscreenHovering); mTouchscreenHovering = null; } else { - mTouchscreenHovering.setChecked(TouchscreenHovering.isEnabled()); + mTouchscreenHovering.setChecked( + mCmHardwareManager.get(CmHardwareManager.FEATURE_TOUCH_HOVERING)); } Utils.updatePreferenceToSpecificActivityFromMetaDataOrRemove(getActivity(), @@ -404,9 +412,11 @@ public class InputMethodAndLanguageSettings extends SettingsPreferenceFragment return true; } } else if (preference == mHighTouchSensitivity) { - return HighTouchSensitivity.setEnabled(mHighTouchSensitivity.isChecked()); + return mCmHardwareManager.set(CmHardwareManager.FEATURE_HIGH_TOUCH_SENSITIVITY, + mHighTouchSensitivity.isChecked()); } else if (preference == mTouchscreenHovering) { - return TouchscreenHovering.setEnabled(mTouchscreenHovering.isChecked()); + return mCmHardwareManager.set(CmHardwareManager.FEATURE_TOUCH_HOVERING, + mTouchscreenHovering.isChecked()); } return super.onPreferenceTreeClick(preferenceScreen, preference); } @@ -684,24 +694,6 @@ public class InputMethodAndLanguageSettings extends SettingsPreferenceFragment } } - private static boolean isHighTouchSensitivitySupported() { - try { - return HighTouchSensitivity.isSupported(); - } catch (NoClassDefFoundError e) { - // Hardware abstraction framework not installed - return false; - } - } - - private static boolean isTouchscreenHoveringSupported() { - try { - return TouchscreenHovering.isSupported(); - } catch (NoClassDefFoundError e) { - // Hardware abstraction framework not installed - return false; - } - } - private static boolean haveInputDeviceWithVibrator() { final int[] devices = InputDevice.getDeviceIds(); for (int i = 0; i < devices.length; i++) { @@ -738,6 +730,31 @@ public class InputMethodAndLanguageSettings extends SettingsPreferenceFragment } } + public static void restore(Context context) { + final SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context); + final CmHardwareManager cmHardwareManager = + (CmHardwareManager) context.getSystemService(Context.CMHW_SERVICE); + if (cmHardwareManager.isSupported(CmHardwareManager.FEATURE_HIGH_TOUCH_SENSITIVITY)) { + final boolean enabled = prefs.getBoolean(KEY_HIGH_TOUCH_SENSITIVITY, + cmHardwareManager.get(CmHardwareManager.FEATURE_HIGH_TOUCH_SENSITIVITY)); + if (!cmHardwareManager.set(CmHardwareManager.FEATURE_HIGH_TOUCH_SENSITIVITY, + enabled)) { + Log.e(TAG, "Failed to restore high touch sensitivity settings."); + } else { + Log.d(TAG, "High touch sensitivity settings restored."); + } + } + if (cmHardwareManager.isSupported(CmHardwareManager.FEATURE_TOUCH_HOVERING)) { + final boolean enabled = prefs.getBoolean(KEY_TOUCHSCREEN_HOVERING, + cmHardwareManager.get(CmHardwareManager.FEATURE_TOUCH_HOVERING)); + if (!cmHardwareManager.set(CmHardwareManager.FEATURE_TOUCH_HOVERING, enabled)) { + Log.e(TAG, "Failed to restore touch hovering settings."); + } else { + Log.d(TAG, "Touch hovering settings restored."); + } + } + } + public static final Indexable.SearchIndexProvider SEARCH_INDEX_DATA_PROVIDER = new BaseSearchIndexProvider() { @Override |