summaryrefslogtreecommitdiffstats
path: root/src/com/android/settings/inputmethod
diff options
context:
space:
mode:
authorScott Mertz <scott@cyngn.com>2015-02-09 12:55:55 -0800
committerAdnan Begovic <adnan@cyngn.com>2015-10-29 17:36:31 -0700
commitba4c43f77699721dff7c2536ee61c0f8c18ea446 (patch)
treedbdb89b6dbf9d21f58574956256f7a3048c18460 /src/com/android/settings/inputmethod
parent306c2881c045ccf0e1afc4494fe9e50781f88818 (diff)
downloadpackages_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.java71
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