DoubleTapPowerPreferenceController.java revision b99ea900463af1b4ecc92dbd138670f0f182ff46
1b99ea900463af1b4ecc92dbd138670f0f182ff46Fan Zhang/* 2b99ea900463af1b4ecc92dbd138670f0f182ff46Fan Zhang * Copyright (C) 2016 The Android Open Source Project 3b99ea900463af1b4ecc92dbd138670f0f182ff46Fan Zhang * 4b99ea900463af1b4ecc92dbd138670f0f182ff46Fan Zhang * Licensed under the Apache License, Version 2.0 (the "License"); 5b99ea900463af1b4ecc92dbd138670f0f182ff46Fan Zhang * you may not use this file except in compliance with the License. 6b99ea900463af1b4ecc92dbd138670f0f182ff46Fan Zhang * You may obtain a copy of the License at 7b99ea900463af1b4ecc92dbd138670f0f182ff46Fan Zhang * 8b99ea900463af1b4ecc92dbd138670f0f182ff46Fan Zhang * http://www.apache.org/licenses/LICENSE-2.0 9b99ea900463af1b4ecc92dbd138670f0f182ff46Fan Zhang * 10b99ea900463af1b4ecc92dbd138670f0f182ff46Fan Zhang * Unless required by applicable law or agreed to in writing, software 11b99ea900463af1b4ecc92dbd138670f0f182ff46Fan Zhang * distributed under the License is distributed on an "AS IS" BASIS, 12b99ea900463af1b4ecc92dbd138670f0f182ff46Fan Zhang * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13b99ea900463af1b4ecc92dbd138670f0f182ff46Fan Zhang * See the License for the specific language governing permissions and 14b99ea900463af1b4ecc92dbd138670f0f182ff46Fan Zhang * limitations under the License. 15b99ea900463af1b4ecc92dbd138670f0f182ff46Fan Zhang */ 16b99ea900463af1b4ecc92dbd138670f0f182ff46Fan Zhang 17b99ea900463af1b4ecc92dbd138670f0f182ff46Fan Zhangpackage com.android.settings.gestures; 18b99ea900463af1b4ecc92dbd138670f0f182ff46Fan Zhang 19b99ea900463af1b4ecc92dbd138670f0f182ff46Fan Zhangimport android.content.Context; 20b99ea900463af1b4ecc92dbd138670f0f182ff46Fan Zhangimport android.provider.Settings; 21b99ea900463af1b4ecc92dbd138670f0f182ff46Fan Zhangimport android.support.v7.preference.Preference; 22b99ea900463af1b4ecc92dbd138670f0f182ff46Fan Zhangimport android.support.v7.preference.TwoStatePreference; 23b99ea900463af1b4ecc92dbd138670f0f182ff46Fan Zhang 24b99ea900463af1b4ecc92dbd138670f0f182ff46Fan Zhangimport com.android.settings.core.PreferenceController; 25b99ea900463af1b4ecc92dbd138670f0f182ff46Fan Zhang 26b99ea900463af1b4ecc92dbd138670f0f182ff46Fan Zhangpublic class DoubleTapPowerPreferenceController extends PreferenceController 27b99ea900463af1b4ecc92dbd138670f0f182ff46Fan Zhang implements Preference.OnPreferenceChangeListener { 28b99ea900463af1b4ecc92dbd138670f0f182ff46Fan Zhang 29b99ea900463af1b4ecc92dbd138670f0f182ff46Fan Zhang private static final String PREF_KEY_DOUBLE_TAP_POWER = "gesture_double_tap_power"; 30b99ea900463af1b4ecc92dbd138670f0f182ff46Fan Zhang 31b99ea900463af1b4ecc92dbd138670f0f182ff46Fan Zhang public DoubleTapPowerPreferenceController(Context context) { 32b99ea900463af1b4ecc92dbd138670f0f182ff46Fan Zhang super(context); 33b99ea900463af1b4ecc92dbd138670f0f182ff46Fan Zhang } 34b99ea900463af1b4ecc92dbd138670f0f182ff46Fan Zhang 35b99ea900463af1b4ecc92dbd138670f0f182ff46Fan Zhang @Override 36b99ea900463af1b4ecc92dbd138670f0f182ff46Fan Zhang public boolean isAvailable() { 37b99ea900463af1b4ecc92dbd138670f0f182ff46Fan Zhang return mContext.getResources().getBoolean( 38b99ea900463af1b4ecc92dbd138670f0f182ff46Fan Zhang com.android.internal.R.bool.config_cameraDoubleTapPowerGestureEnabled); 39b99ea900463af1b4ecc92dbd138670f0f182ff46Fan Zhang } 40b99ea900463af1b4ecc92dbd138670f0f182ff46Fan Zhang 41b99ea900463af1b4ecc92dbd138670f0f182ff46Fan Zhang @Override 42b99ea900463af1b4ecc92dbd138670f0f182ff46Fan Zhang public boolean handlePreferenceTreeClick(Preference preference) { 43b99ea900463af1b4ecc92dbd138670f0f182ff46Fan Zhang return false; 44b99ea900463af1b4ecc92dbd138670f0f182ff46Fan Zhang } 45b99ea900463af1b4ecc92dbd138670f0f182ff46Fan Zhang 46b99ea900463af1b4ecc92dbd138670f0f182ff46Fan Zhang @Override 47b99ea900463af1b4ecc92dbd138670f0f182ff46Fan Zhang public String getPreferenceKey() { 48b99ea900463af1b4ecc92dbd138670f0f182ff46Fan Zhang return PREF_KEY_DOUBLE_TAP_POWER; 49b99ea900463af1b4ecc92dbd138670f0f182ff46Fan Zhang } 50b99ea900463af1b4ecc92dbd138670f0f182ff46Fan Zhang 51b99ea900463af1b4ecc92dbd138670f0f182ff46Fan Zhang @Override 52b99ea900463af1b4ecc92dbd138670f0f182ff46Fan Zhang public void updateState(Preference preference) { 53b99ea900463af1b4ecc92dbd138670f0f182ff46Fan Zhang final boolean isEnabled = isDoubleTapEnabled(); 54b99ea900463af1b4ecc92dbd138670f0f182ff46Fan Zhang if (preference != null) { 55b99ea900463af1b4ecc92dbd138670f0f182ff46Fan Zhang if (preference instanceof TwoStatePreference) { 56b99ea900463af1b4ecc92dbd138670f0f182ff46Fan Zhang ((TwoStatePreference) preference).setChecked(isEnabled); 57b99ea900463af1b4ecc92dbd138670f0f182ff46Fan Zhang } else { 58b99ea900463af1b4ecc92dbd138670f0f182ff46Fan Zhang preference.setSummary(isEnabled 59b99ea900463af1b4ecc92dbd138670f0f182ff46Fan Zhang ? com.android.settings.R.string.gesture_setting_on 60b99ea900463af1b4ecc92dbd138670f0f182ff46Fan Zhang : com.android.settings.R.string.gesture_setting_off); 61b99ea900463af1b4ecc92dbd138670f0f182ff46Fan Zhang } 62b99ea900463af1b4ecc92dbd138670f0f182ff46Fan Zhang } 63b99ea900463af1b4ecc92dbd138670f0f182ff46Fan Zhang } 64b99ea900463af1b4ecc92dbd138670f0f182ff46Fan Zhang 65b99ea900463af1b4ecc92dbd138670f0f182ff46Fan Zhang @Override 66b99ea900463af1b4ecc92dbd138670f0f182ff46Fan Zhang public boolean onPreferenceChange(Preference preference, Object newValue) { 67b99ea900463af1b4ecc92dbd138670f0f182ff46Fan Zhang boolean enabled = (boolean) newValue; 68b99ea900463af1b4ecc92dbd138670f0f182ff46Fan Zhang Settings.Secure.putInt(mContext.getContentResolver(), 69b99ea900463af1b4ecc92dbd138670f0f182ff46Fan Zhang Settings.Secure.CAMERA_DOUBLE_TAP_POWER_GESTURE_DISABLED, enabled ? 0 : 1); 70b99ea900463af1b4ecc92dbd138670f0f182ff46Fan Zhang return true; 71b99ea900463af1b4ecc92dbd138670f0f182ff46Fan Zhang } 72b99ea900463af1b4ecc92dbd138670f0f182ff46Fan Zhang 73b99ea900463af1b4ecc92dbd138670f0f182ff46Fan Zhang private boolean isDoubleTapEnabled() { 74b99ea900463af1b4ecc92dbd138670f0f182ff46Fan Zhang final int cameraDisabled = Settings.Secure.getInt(mContext.getContentResolver(), 75b99ea900463af1b4ecc92dbd138670f0f182ff46Fan Zhang Settings.Secure.CAMERA_DOUBLE_TAP_POWER_GESTURE_DISABLED, 0); 76b99ea900463af1b4ecc92dbd138670f0f182ff46Fan Zhang return cameraDisabled == 0; 77b99ea900463af1b4ecc92dbd138670f0f182ff46Fan Zhang } 78b99ea900463af1b4ecc92dbd138670f0f182ff46Fan Zhang} 79