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;
import com.android.settings.search.Indexable;
import com.android.settings.search.SearchIndexableRaw;
+import com.android.settings.voicewakeup.VoiceWakeupSettings;
+import cyanogenmod.hardware.CMHardwareManager;
+import cyanogenmod.providers.CMSettings;
+
import java.text.Collator;
import java.util.ArrayList;
import java.util.Collections;
private static final String KEY_USER_DICTIONARY_SETTINGS = "key_user_dictionary_settings";
private static final String KEY_POINTER_SETTINGS_CATEGORY = "pointer_settings_category";
private static final String KEY_PREVIOUSLY_ENABLED_SUBTYPES = "previously_enabled_subtypes";
- private static final String KEY_HIGH_TOUCH_SENSITIVITY = "high_touch_sensitivity";
private static final String KEY_TOUCHSCREEN_HOVERING = "touchscreen_hovering";
private static final String KEY_TRACKPAD_SETTINGS = "gesture_pad_settings";
private static final String KEY_STYLUS_GESTURES = "stylus_gestures";
private static final String KEY_STYLUS_ICON_ENABLED = "stylus_icon_enabled";
+ private static final String KEY_VOICE_CATEGORY = "voice_category";
+ private static final String KEY_VOICE_WAKEUP = "voice_wakeup";
// false: on ICS or later
private static final boolean SHOW_INPUT_METHOD_SWITCHER_SETTINGS = false;
private int mDefaultInputMethodSelectorVisibility = 0;
private ListPreference mShowInputMethodSelectorPref;
private SwitchPreference mStylusIconEnabled;
- private SwitchPreference mHighTouchSensitivity;
private SwitchPreference mTouchscreenHovering;
private PreferenceCategory mKeyboardSettingsCategory;
private PreferenceCategory mHardKeyboardCategory;
private Intent mIntentWaitingForResult;
private InputMethodSettingValuesWrapper mInputMethodSettingValues;
private DevicePolicyManager mDpm;
- private CmHardwareManager mCmHardwareManager;
+ private CMHardwareManager mHardware;
@Override
protected int getMetricsCategory() {
mImm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
mInputMethodSettingValues = InputMethodSettingValuesWrapper.getInstance(activity);
- mCmHardwareManager = (CmHardwareManager) getSystemService(Context.CMHW_SERVICE);
+ mHardware = CMHardwareManager.getInstance(activity);
try {
mDefaultInputMethodSelectorVisibility = Integer.valueOf(
mStylusGestures = (PreferenceScreen) findPreference(KEY_STYLUS_GESTURES);
mStylusIconEnabled = (SwitchPreference) findPreference(KEY_STYLUS_ICON_ENABLED);
- mHighTouchSensitivity = (SwitchPreference) findPreference(KEY_HIGH_TOUCH_SENSITIVITY);
mTouchscreenHovering = (SwitchPreference) findPreference(KEY_TOUCHSCREEN_HOVERING);
pointerSettingsCategory.removePreference(mStylusIconEnabled);
}
- if (!mCmHardwareManager.isSupported(
- CmHardwareManager.FEATURE_HIGH_TOUCH_SENSITIVITY)) {
- pointerSettingsCategory.removePreference(mHighTouchSensitivity);
- mHighTouchSensitivity = null;
- } else {
- mHighTouchSensitivity.setChecked(
- mCmHardwareManager.get(CmHardwareManager.FEATURE_HIGH_TOUCH_SENSITIVITY));
- }
-
- if (!mCmHardwareManager.isSupported(CmHardwareManager.FEATURE_TOUCH_HOVERING)) {
+ if (!mHardware.isSupported(CMHardwareManager.FEATURE_TOUCH_HOVERING)) {
pointerSettingsCategory.removePreference(mTouchscreenHovering);
mTouchscreenHovering = null;
} else {
mTouchscreenHovering.setChecked(
- mCmHardwareManager.get(CmHardwareManager.FEATURE_TOUCH_HOVERING));
+ mHardware.get(CMHardwareManager.FEATURE_TOUCH_HOVERING));
}
Utils.updatePreferenceToSpecificActivityFromMetaDataOrRemove(getActivity(),
boolean showCmImeSwitcher = getResources().getBoolean(
com.android.internal.R.bool.config_show_cmIMESwitcher);
if (!showCmImeSwitcher) {
- Preference pref = findPreference(Settings.System.STATUS_BAR_IME_SWITCHER);
+ Preference pref = findPreference(CMSettings.System.STATUS_BAR_IME_SWITCHER);
if (pref != null) {
getPreferenceScreen().removePreference(pref);
}
if (mShowsOnlyFullImeAndKeyboardList && identifier != null) {
showKeyboardLayoutDialog(identifier);
}
+
+ if (!Utils.isUserOwner() ||
+ !Utils.isPackageInstalled(getActivity(),
+ VoiceWakeupSettings.VOICE_WAKEUP_PACKAGE, false)) {
+ PreferenceCategory voiceCategory = (PreferenceCategory)
+ findPreference(KEY_VOICE_CATEGORY);
+ if (voiceCategory != null) {
+ Preference wakeup = voiceCategory.findPreference(KEY_VOICE_WAKEUP);
+ if (wakeup != null) {
+ voiceCategory.removePreference(wakeup);
+ }
+ }
+ }
+
}
private void updateInputMethodSelectorSummary(int value) {
}
if (preference == mStylusIconEnabled) {
Settings.System.putInt(getActivity().getContentResolver(),
- Settings.System.STYLUS_ICON_ENABLED, mStylusIconEnabled.isChecked() ? 1 : 0);
+ Settings.System.STYLUS_ICON_ENABLED, mStylusIconEnabled.isChecked() ? 1 : 0);
+ } else if (preference == mTouchscreenHovering) {
+ boolean touchHoveringEnable = mTouchscreenHovering.isChecked();
+ CMSettings.Secure.putInt(getActivity().getContentResolver(),
+ CMSettings.Secure.FEATURE_TOUCH_HOVERING,
+ touchHoveringEnable ? 1 : 0);
+ return true;
} else if (preference instanceof PreferenceScreen) {
if (preference.getFragment() != null) {
// Fragment will be handled correctly by the super class.
}
}
}
- } else if (preference == mHighTouchSensitivity) {
- return mCmHardwareManager.set(CmHardwareManager.FEATURE_HIGH_TOUCH_SENSITIVITY,
- mHighTouchSensitivity.isChecked());
- } else if (preference == mTouchscreenHovering) {
- return mCmHardwareManager.set(CmHardwareManager.FEATURE_TOUCH_HOVERING,
- mTouchscreenHovering.isChecked());
}
return super.onPreferenceTreeClick(preferenceScreen, preference);
}
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 CMHardwareManager hardware = CMHardwareManager.getInstance(context);
+ if (hardware.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.");
- }
+ hardware.get(CMHardwareManager.FEATURE_TOUCH_HOVERING));
+ CMSettings.Secure.putInt(context.getContentResolver(),
+ CMSettings.Secure.FEATURE_TOUCH_HOVERING,
+ enabled ? 1 : 0);
}
}