Loading res/values/cm_strings.xml +5 −3 Original line number Diff line number Diff line Loading @@ -905,6 +905,7 @@ two in order to insert additional control points. \'Remove\' deletes the selecte <!-- Hardware keys --> <string name="button_settings">Buttons</string> <string name="hardware_keys_power_key_title">Power button</string> <string name="hardware_keys_home_key_title">Home button</string> <string name="hardware_keys_menu_key_title">Menu button</string> <string name="hardware_keys_assist_key_title">Search button</string> Loading @@ -921,8 +922,12 @@ two in order to insert additional control points. \'Remove\' deletes the selecte <string name="hardware_keys_action_voice_search">Voice search</string> <string name="hardware_keys_action_in_app_search">In-app search</string> <string name="hardware_keys_action_launch_camera">Launch Camera</string> <string name="power_end_call_title">End call</string> <string name="power_end_call_summary">Pressing the power button will end the current call</string> <string name="button_wake_title">Wake up</string> <string name="home_wake_summary">Pressing the home button will wake your device</string> <string name="home_answer_call_title">Answer call</string> <string name="home_answer_call_summary">Pressing the home button will answer the current incoming call</string> <string name="camera_wake_summary">Pressing the camera button will wake your device</string> <string name="camera_sleep_on_release_title">Screen peek</string> <string name="camera_sleep_on_release_summary">A half press will keep the screen on only while the button is held down</string> Loading Loading @@ -959,9 +964,6 @@ two in order to insert additional control points. \'Remove\' deletes the selecte <string name="background_result_not_successful">Background not changed</string> <string name="setting_lockscreen_background">Applying background</string> <!-- Title for the accessibility preference to home button to answers a call. [CHAR LIMIT=35] --> <string name="accessibility_home_button_answers_call_prerefence_title">Home button answers call</string> <!-- Delete apn confirmation dialog message --> <string name="confirm_delete_apn">The APN will be deleted.</string> Loading res/xml/accessibility_settings.xml +0 −10 Original line number Diff line number Diff line Loading @@ -42,16 +42,6 @@ android:title="@string/accessibility_toggle_large_text_preference_title" android:persistent="false"/> <CheckBoxPreference android:key="toggle_power_button_ends_call_preference" android:title="@string/accessibility_power_button_ends_call_prerefence_title" android:persistent="false"/> <CheckBoxPreference android:key="toggle_home_button_answers_call_preference" android:title="@string/accessibility_home_button_answers_call_prerefence_title" android:persistent="false"/> <CheckBoxPreference android:key="toggle_speak_password_preference" android:title="@string/accessibility_toggle_speak_password_preference_title" Loading res/xml/button_settings.xml +23 −5 Original line number Diff line number Diff line Loading @@ -17,11 +17,6 @@ <PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" xmlns:settings="http://schemas.android.com/apk/res/com.android.settings"> <PreferenceScreen android:key="power_menu" android:title="@string/power_menu_title" android:fragment="com.android.settings.cyanogenmod.PowerMenu" /> <CheckBoxPreference android:key="disable_nav_keys" android:title="@string/disable_navkeys_title" Loading @@ -43,6 +38,23 @@ android:targetClass="com.cyanogenmod.settings.device.BluetoothInputSettings" /> </Preference> <PreferenceCategory android:key="power_key" android:title="@string/hardware_keys_power_key_title" > <PreferenceScreen android:key="power_menu" android:title="@string/power_menu_title" android:fragment="com.android.settings.cyanogenmod.PowerMenu" /> <CheckBoxPreference android:key="power_end_call" android:title="@string/power_end_call_title" android:summary="@string/power_end_call_summary" android:persistent="false"/> </PreferenceCategory> <PreferenceCategory android:key="home_key" android:title="@string/hardware_keys_home_key_title" > Loading @@ -53,6 +65,12 @@ android:summary="@string/home_wake_summary" android:defaultValue="true" /> <CheckBoxPreference android:key="home_answer_call" android:title="@string/home_answer_call_title" android:summary="@string/home_answer_call_summary" android:persistent="false"/> <ListPreference android:key="hardware_keys_home_long_press" android:dialogTitle="@string/hardware_keys_long_press_title" Loading src/com/android/settings/accessibility/AccessibilitySettings.java +0 −66 Original line number Diff line number Diff line Loading @@ -87,10 +87,6 @@ public class AccessibilitySettings extends SettingsPreferenceFragment implements // Preferences private static final String TOGGLE_LARGE_TEXT_PREFERENCE = "toggle_large_text_preference"; private static final String TOGGLE_POWER_BUTTON_ENDS_CALL_PREFERENCE = "toggle_power_button_ends_call_preference"; private static final String TOGGLE_HOME_BUTTON_ANSWERS_CALL_PREFERENCE = "toggle_home_button_answers_call_preference"; private static final String TOGGLE_SPEAK_PASSWORD_PREFERENCE = "toggle_speak_password_preference"; private static final String SELECT_LONG_PRESS_TIMEOUT_PREFERENCE = Loading Loading @@ -181,8 +177,6 @@ public class AccessibilitySettings extends SettingsPreferenceFragment implements private PreferenceCategory mSystemsCategory; private CheckBoxPreference mToggleLargeTextPreference; private CheckBoxPreference mTogglePowerButtonEndsCallPreference; private CheckBoxPreference mToggleHomeButtonAnswersCallPreference; private CheckBoxPreference mToggleSpeakPasswordPreference; private ListPreference mSelectLongPressTimeoutPreference; private Preference mNoServicesMessagePreference; Loading Loading @@ -236,12 +230,6 @@ public class AccessibilitySettings extends SettingsPreferenceFragment implements if (mToggleLargeTextPreference == preference) { handleToggleLargeTextPreferenceClick(); return true; } else if (mTogglePowerButtonEndsCallPreference == preference) { handleTogglePowerButtonEndsCallPreferenceClick(); return true; } else if (mToggleHomeButtonAnswersCallPreference == preference) { handleToggleHomeButtonAnswersCallPreferenceClick(); return true; } else if (mToggleSpeakPasswordPreference == preference) { handleToggleSpeakPasswordPreferenceClick(); return true; Loading @@ -264,22 +252,6 @@ public class AccessibilitySettings extends SettingsPreferenceFragment implements } } private void handleTogglePowerButtonEndsCallPreferenceClick() { Settings.Secure.putInt(getContentResolver(), Settings.Secure.INCALL_POWER_BUTTON_BEHAVIOR, (mTogglePowerButtonEndsCallPreference.isChecked() ? Settings.Secure.INCALL_POWER_BUTTON_BEHAVIOR_HANGUP : Settings.Secure.INCALL_POWER_BUTTON_BEHAVIOR_SCREEN_OFF)); } private void handleToggleHomeButtonAnswersCallPreferenceClick() { Settings.Secure.putInt(getContentResolver(), Settings.Secure.RING_HOME_BUTTON_BEHAVIOR, (mToggleHomeButtonAnswersCallPreference.isChecked() ? Settings.Secure.RING_HOME_BUTTON_BEHAVIOR_ANSWER : Settings.Secure.RING_HOME_BUTTON_BEHAVIOR_DO_NOTHING)); } private void handleToggleSpeakPasswordPreferenceClick() { Settings.Secure.putInt(getContentResolver(), Settings.Secure.ACCESSIBILITY_SPEAK_PASSWORD, Loading Loading @@ -318,22 +290,6 @@ public class AccessibilitySettings extends SettingsPreferenceFragment implements mToggleLargeTextPreference = (CheckBoxPreference) findPreference(TOGGLE_LARGE_TEXT_PREFERENCE); // Power button ends calls. mTogglePowerButtonEndsCallPreference = (CheckBoxPreference) findPreference(TOGGLE_POWER_BUTTON_ENDS_CALL_PREFERENCE); if (!KeyCharacterMap.deviceHasKey(KeyEvent.KEYCODE_POWER) || !Utils.isVoiceCapable(getActivity())) { mSystemsCategory.removePreference(mTogglePowerButtonEndsCallPreference); } // Home button answers calls. mToggleHomeButtonAnswersCallPreference = (CheckBoxPreference) findPreference(TOGGLE_HOME_BUTTON_ANSWERS_CALL_PREFERENCE); if (!KeyCharacterMap.deviceHasKey(KeyEvent.KEYCODE_HOME) || !Utils.isVoiceCapable(getActivity())) { mSystemsCategory.removePreference(mToggleHomeButtonAnswersCallPreference); } // Speak passwords. mToggleSpeakPasswordPreference = (CheckBoxPreference) findPreference(TOGGLE_SPEAK_PASSWORD_PREFERENCE); Loading Loading @@ -479,28 +435,6 @@ public class AccessibilitySettings extends SettingsPreferenceFragment implements } mToggleLargeTextPreference.setChecked(mCurConfig.fontScale == LARGE_FONT_SCALE); // Power button ends calls. if (KeyCharacterMap.deviceHasKey(KeyEvent.KEYCODE_POWER) && Utils.isVoiceCapable(getActivity())) { final int incallPowerBehavior = Settings.Secure.getInt(getContentResolver(), Settings.Secure.INCALL_POWER_BUTTON_BEHAVIOR, Settings.Secure.INCALL_POWER_BUTTON_BEHAVIOR_DEFAULT); final boolean powerButtonEndsCall = (incallPowerBehavior == Settings.Secure.INCALL_POWER_BUTTON_BEHAVIOR_HANGUP); mTogglePowerButtonEndsCallPreference.setChecked(powerButtonEndsCall); } // Home button answers calls. if (KeyCharacterMap.deviceHasKey(KeyEvent.KEYCODE_HOME) && Utils.isVoiceCapable(getActivity())) { final int incallHomeBehavior = Settings.Secure.getInt(getContentResolver(), Settings.Secure.RING_HOME_BUTTON_BEHAVIOR, Settings.Secure.RING_HOME_BUTTON_BEHAVIOR_DEFAULT); final boolean homeButtonAnswersCall = (incallHomeBehavior == Settings.Secure.RING_HOME_BUTTON_BEHAVIOR_ANSWER); mToggleHomeButtonAnswersCallPreference.setChecked(homeButtonAnswersCall); } // Speak passwords. final boolean speakPasswordEnabled = Settings.Secure.getInt(getContentResolver(), Settings.Secure.ACCESSIBILITY_SPEAK_PASSWORD, 0) != 0; Loading src/com/android/settings/cyanogenmod/ButtonSettings.java +74 −0 Original line number Diff line number Diff line Loading @@ -33,6 +33,8 @@ import android.preference.PreferenceScreen; import android.provider.Settings; import android.view.IWindowManager; import android.view.KeyCharacterMap; import android.view.KeyEvent; import android.view.WindowManagerGlobal; import com.android.settings.R; Loading @@ -56,7 +58,10 @@ public class ButtonSettings extends SettingsPreferenceFragment implements private static final String KEY_VOLUME_KEY_CURSOR_CONTROL = "volume_key_cursor_control"; private static final String KEY_BLUETOOTH_INPUT_SETTINGS = "bluetooth_input_settings"; private static final String DISABLE_NAV_KEYS = "disable_nav_keys"; private static final String KEY_POWER_END_CALL = "power_end_call"; private static final String KEY_HOME_ANSWER_CALL = "home_answer_call"; private static final String CATEGORY_POWER = "power_key"; private static final String CATEGORY_HOME = "home_key"; private static final String CATEGORY_MENU = "menu_key"; private static final String CATEGORY_ASSIST = "assist_key"; Loading Loading @@ -99,6 +104,8 @@ public class ButtonSettings extends SettingsPreferenceFragment implements private ListPreference mVolumeKeyCursorControl; private CheckBoxPreference mSwapVolumeButtons; private CheckBoxPreference mDisableNavigationKeys; private CheckBoxPreference mPowerEndCall; private CheckBoxPreference mHomeAnswerCall; private Handler mHandler; Loading @@ -115,6 +122,7 @@ public class ButtonSettings extends SettingsPreferenceFragment implements final int deviceKeys = getResources().getInteger( com.android.internal.R.integer.config_deviceHardwareKeys); final boolean hasPowerKey = KeyCharacterMap.deviceHasKey(KeyEvent.KEYCODE_POWER); final boolean hasHomeKey = (deviceKeys & KEY_MASK_HOME) != 0; final boolean hasMenuKey = (deviceKeys & KEY_MASK_MENU) != 0; final boolean hasAssistKey = (deviceKeys & KEY_MASK_ASSIST) != 0; Loading @@ -122,6 +130,8 @@ public class ButtonSettings extends SettingsPreferenceFragment implements final boolean hasCameraKey = (deviceKeys & KEY_MASK_CAMERA) != 0; boolean hasAnyBindableKey = false; final PreferenceCategory powerCategory = (PreferenceCategory) prefScreen.findPreference(CATEGORY_POWER); final PreferenceCategory homeCategory = (PreferenceCategory) prefScreen.findPreference(CATEGORY_HOME); final PreferenceCategory menuCategory = Loading @@ -135,6 +145,12 @@ public class ButtonSettings extends SettingsPreferenceFragment implements final PreferenceCategory volumeCategory = (PreferenceCategory) prefScreen.findPreference(CATEGORY_VOLUME); // Power button ends calls. mPowerEndCall = (CheckBoxPreference) findPreference(KEY_POWER_END_CALL); // Home button answers calls. mHomeAnswerCall = (CheckBoxPreference) findPreference(KEY_HOME_ANSWER_CALL); mHandler = new Handler(); // Force Navigation bar related options Loading @@ -160,12 +176,25 @@ public class ButtonSettings extends SettingsPreferenceFragment implements prefScreen.removePreference(mDisableNavigationKeys); } if (hasPowerKey) { if (!Utils.isVoiceCapable(getActivity())) { powerCategory.removePreference(mPowerEndCall); mPowerEndCall = null; } } else { prefScreen.removePreference(powerCategory); } if (hasHomeKey) { if (!res.getBoolean(R.bool.config_show_homeWake)) { homeCategory.removePreference(findPreference(Settings.System.HOME_WAKE_SCREEN)); } if (!Utils.isVoiceCapable(getActivity())) { homeCategory.removePreference(mHomeAnswerCall); mHomeAnswerCall = null; } int defaultLongPressAction = res.getInteger( com.android.internal.R.integer.config_longPressOnHomeBehavior); if (defaultLongPressAction < ACTION_NOTHING || Loading Loading @@ -285,6 +314,31 @@ public class ButtonSettings extends SettingsPreferenceFragment implements getPreferenceScreen(), KEY_BLUETOOTH_INPUT_SETTINGS); } @Override public void onResume() { super.onResume(); // Power button ends calls. if (mPowerEndCall != null) { final int incallPowerBehavior = Settings.Secure.getInt(getContentResolver(), Settings.Secure.INCALL_POWER_BUTTON_BEHAVIOR, Settings.Secure.INCALL_POWER_BUTTON_BEHAVIOR_DEFAULT); final boolean powerButtonEndsCall = (incallPowerBehavior == Settings.Secure.INCALL_POWER_BUTTON_BEHAVIOR_HANGUP); mPowerEndCall.setChecked(powerButtonEndsCall); } // Home button answers calls. if (mHomeAnswerCall != null) { final int incallHomeBehavior = Settings.Secure.getInt(getContentResolver(), Settings.Secure.RING_HOME_BUTTON_BEHAVIOR, Settings.Secure.RING_HOME_BUTTON_BEHAVIOR_DEFAULT); final boolean homeButtonAnswersCall = (incallHomeBehavior == Settings.Secure.RING_HOME_BUTTON_BEHAVIOR_ANSWER); mHomeAnswerCall.setChecked(homeButtonAnswersCall); } } private ListPreference initActionList(String key, int value) { ListPreference list = (ListPreference) getPreferenceScreen().findPreference(key); list.setValue(Integer.toString(value)); Loading Loading @@ -447,8 +501,28 @@ public class ButtonSettings extends SettingsPreferenceFragment implements mDisableNavigationKeys.setEnabled(true); } }, 1000); } else if (preference == mPowerEndCall) { handleTogglePowerButtonEndsCallPreferenceClick(); return true; } else if (preference == mHomeAnswerCall) { handleToggleHomeButtonAnswersCallPreferenceClick(); return true; } return super.onPreferenceTreeClick(preferenceScreen, preference); } private void handleTogglePowerButtonEndsCallPreferenceClick() { Settings.Secure.putInt(getContentResolver(), Settings.Secure.INCALL_POWER_BUTTON_BEHAVIOR, (mPowerEndCall.isChecked() ? Settings.Secure.INCALL_POWER_BUTTON_BEHAVIOR_HANGUP : Settings.Secure.INCALL_POWER_BUTTON_BEHAVIOR_SCREEN_OFF)); } private void handleToggleHomeButtonAnswersCallPreferenceClick() { Settings.Secure.putInt(getContentResolver(), Settings.Secure.RING_HOME_BUTTON_BEHAVIOR, (mHomeAnswerCall.isChecked() ? Settings.Secure.RING_HOME_BUTTON_BEHAVIOR_ANSWER : Settings.Secure.RING_HOME_BUTTON_BEHAVIOR_DO_NOTHING)); } } Loading
res/values/cm_strings.xml +5 −3 Original line number Diff line number Diff line Loading @@ -905,6 +905,7 @@ two in order to insert additional control points. \'Remove\' deletes the selecte <!-- Hardware keys --> <string name="button_settings">Buttons</string> <string name="hardware_keys_power_key_title">Power button</string> <string name="hardware_keys_home_key_title">Home button</string> <string name="hardware_keys_menu_key_title">Menu button</string> <string name="hardware_keys_assist_key_title">Search button</string> Loading @@ -921,8 +922,12 @@ two in order to insert additional control points. \'Remove\' deletes the selecte <string name="hardware_keys_action_voice_search">Voice search</string> <string name="hardware_keys_action_in_app_search">In-app search</string> <string name="hardware_keys_action_launch_camera">Launch Camera</string> <string name="power_end_call_title">End call</string> <string name="power_end_call_summary">Pressing the power button will end the current call</string> <string name="button_wake_title">Wake up</string> <string name="home_wake_summary">Pressing the home button will wake your device</string> <string name="home_answer_call_title">Answer call</string> <string name="home_answer_call_summary">Pressing the home button will answer the current incoming call</string> <string name="camera_wake_summary">Pressing the camera button will wake your device</string> <string name="camera_sleep_on_release_title">Screen peek</string> <string name="camera_sleep_on_release_summary">A half press will keep the screen on only while the button is held down</string> Loading Loading @@ -959,9 +964,6 @@ two in order to insert additional control points. \'Remove\' deletes the selecte <string name="background_result_not_successful">Background not changed</string> <string name="setting_lockscreen_background">Applying background</string> <!-- Title for the accessibility preference to home button to answers a call. [CHAR LIMIT=35] --> <string name="accessibility_home_button_answers_call_prerefence_title">Home button answers call</string> <!-- Delete apn confirmation dialog message --> <string name="confirm_delete_apn">The APN will be deleted.</string> Loading
res/xml/accessibility_settings.xml +0 −10 Original line number Diff line number Diff line Loading @@ -42,16 +42,6 @@ android:title="@string/accessibility_toggle_large_text_preference_title" android:persistent="false"/> <CheckBoxPreference android:key="toggle_power_button_ends_call_preference" android:title="@string/accessibility_power_button_ends_call_prerefence_title" android:persistent="false"/> <CheckBoxPreference android:key="toggle_home_button_answers_call_preference" android:title="@string/accessibility_home_button_answers_call_prerefence_title" android:persistent="false"/> <CheckBoxPreference android:key="toggle_speak_password_preference" android:title="@string/accessibility_toggle_speak_password_preference_title" Loading
res/xml/button_settings.xml +23 −5 Original line number Diff line number Diff line Loading @@ -17,11 +17,6 @@ <PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" xmlns:settings="http://schemas.android.com/apk/res/com.android.settings"> <PreferenceScreen android:key="power_menu" android:title="@string/power_menu_title" android:fragment="com.android.settings.cyanogenmod.PowerMenu" /> <CheckBoxPreference android:key="disable_nav_keys" android:title="@string/disable_navkeys_title" Loading @@ -43,6 +38,23 @@ android:targetClass="com.cyanogenmod.settings.device.BluetoothInputSettings" /> </Preference> <PreferenceCategory android:key="power_key" android:title="@string/hardware_keys_power_key_title" > <PreferenceScreen android:key="power_menu" android:title="@string/power_menu_title" android:fragment="com.android.settings.cyanogenmod.PowerMenu" /> <CheckBoxPreference android:key="power_end_call" android:title="@string/power_end_call_title" android:summary="@string/power_end_call_summary" android:persistent="false"/> </PreferenceCategory> <PreferenceCategory android:key="home_key" android:title="@string/hardware_keys_home_key_title" > Loading @@ -53,6 +65,12 @@ android:summary="@string/home_wake_summary" android:defaultValue="true" /> <CheckBoxPreference android:key="home_answer_call" android:title="@string/home_answer_call_title" android:summary="@string/home_answer_call_summary" android:persistent="false"/> <ListPreference android:key="hardware_keys_home_long_press" android:dialogTitle="@string/hardware_keys_long_press_title" Loading
src/com/android/settings/accessibility/AccessibilitySettings.java +0 −66 Original line number Diff line number Diff line Loading @@ -87,10 +87,6 @@ public class AccessibilitySettings extends SettingsPreferenceFragment implements // Preferences private static final String TOGGLE_LARGE_TEXT_PREFERENCE = "toggle_large_text_preference"; private static final String TOGGLE_POWER_BUTTON_ENDS_CALL_PREFERENCE = "toggle_power_button_ends_call_preference"; private static final String TOGGLE_HOME_BUTTON_ANSWERS_CALL_PREFERENCE = "toggle_home_button_answers_call_preference"; private static final String TOGGLE_SPEAK_PASSWORD_PREFERENCE = "toggle_speak_password_preference"; private static final String SELECT_LONG_PRESS_TIMEOUT_PREFERENCE = Loading Loading @@ -181,8 +177,6 @@ public class AccessibilitySettings extends SettingsPreferenceFragment implements private PreferenceCategory mSystemsCategory; private CheckBoxPreference mToggleLargeTextPreference; private CheckBoxPreference mTogglePowerButtonEndsCallPreference; private CheckBoxPreference mToggleHomeButtonAnswersCallPreference; private CheckBoxPreference mToggleSpeakPasswordPreference; private ListPreference mSelectLongPressTimeoutPreference; private Preference mNoServicesMessagePreference; Loading Loading @@ -236,12 +230,6 @@ public class AccessibilitySettings extends SettingsPreferenceFragment implements if (mToggleLargeTextPreference == preference) { handleToggleLargeTextPreferenceClick(); return true; } else if (mTogglePowerButtonEndsCallPreference == preference) { handleTogglePowerButtonEndsCallPreferenceClick(); return true; } else if (mToggleHomeButtonAnswersCallPreference == preference) { handleToggleHomeButtonAnswersCallPreferenceClick(); return true; } else if (mToggleSpeakPasswordPreference == preference) { handleToggleSpeakPasswordPreferenceClick(); return true; Loading @@ -264,22 +252,6 @@ public class AccessibilitySettings extends SettingsPreferenceFragment implements } } private void handleTogglePowerButtonEndsCallPreferenceClick() { Settings.Secure.putInt(getContentResolver(), Settings.Secure.INCALL_POWER_BUTTON_BEHAVIOR, (mTogglePowerButtonEndsCallPreference.isChecked() ? Settings.Secure.INCALL_POWER_BUTTON_BEHAVIOR_HANGUP : Settings.Secure.INCALL_POWER_BUTTON_BEHAVIOR_SCREEN_OFF)); } private void handleToggleHomeButtonAnswersCallPreferenceClick() { Settings.Secure.putInt(getContentResolver(), Settings.Secure.RING_HOME_BUTTON_BEHAVIOR, (mToggleHomeButtonAnswersCallPreference.isChecked() ? Settings.Secure.RING_HOME_BUTTON_BEHAVIOR_ANSWER : Settings.Secure.RING_HOME_BUTTON_BEHAVIOR_DO_NOTHING)); } private void handleToggleSpeakPasswordPreferenceClick() { Settings.Secure.putInt(getContentResolver(), Settings.Secure.ACCESSIBILITY_SPEAK_PASSWORD, Loading Loading @@ -318,22 +290,6 @@ public class AccessibilitySettings extends SettingsPreferenceFragment implements mToggleLargeTextPreference = (CheckBoxPreference) findPreference(TOGGLE_LARGE_TEXT_PREFERENCE); // Power button ends calls. mTogglePowerButtonEndsCallPreference = (CheckBoxPreference) findPreference(TOGGLE_POWER_BUTTON_ENDS_CALL_PREFERENCE); if (!KeyCharacterMap.deviceHasKey(KeyEvent.KEYCODE_POWER) || !Utils.isVoiceCapable(getActivity())) { mSystemsCategory.removePreference(mTogglePowerButtonEndsCallPreference); } // Home button answers calls. mToggleHomeButtonAnswersCallPreference = (CheckBoxPreference) findPreference(TOGGLE_HOME_BUTTON_ANSWERS_CALL_PREFERENCE); if (!KeyCharacterMap.deviceHasKey(KeyEvent.KEYCODE_HOME) || !Utils.isVoiceCapable(getActivity())) { mSystemsCategory.removePreference(mToggleHomeButtonAnswersCallPreference); } // Speak passwords. mToggleSpeakPasswordPreference = (CheckBoxPreference) findPreference(TOGGLE_SPEAK_PASSWORD_PREFERENCE); Loading Loading @@ -479,28 +435,6 @@ public class AccessibilitySettings extends SettingsPreferenceFragment implements } mToggleLargeTextPreference.setChecked(mCurConfig.fontScale == LARGE_FONT_SCALE); // Power button ends calls. if (KeyCharacterMap.deviceHasKey(KeyEvent.KEYCODE_POWER) && Utils.isVoiceCapable(getActivity())) { final int incallPowerBehavior = Settings.Secure.getInt(getContentResolver(), Settings.Secure.INCALL_POWER_BUTTON_BEHAVIOR, Settings.Secure.INCALL_POWER_BUTTON_BEHAVIOR_DEFAULT); final boolean powerButtonEndsCall = (incallPowerBehavior == Settings.Secure.INCALL_POWER_BUTTON_BEHAVIOR_HANGUP); mTogglePowerButtonEndsCallPreference.setChecked(powerButtonEndsCall); } // Home button answers calls. if (KeyCharacterMap.deviceHasKey(KeyEvent.KEYCODE_HOME) && Utils.isVoiceCapable(getActivity())) { final int incallHomeBehavior = Settings.Secure.getInt(getContentResolver(), Settings.Secure.RING_HOME_BUTTON_BEHAVIOR, Settings.Secure.RING_HOME_BUTTON_BEHAVIOR_DEFAULT); final boolean homeButtonAnswersCall = (incallHomeBehavior == Settings.Secure.RING_HOME_BUTTON_BEHAVIOR_ANSWER); mToggleHomeButtonAnswersCallPreference.setChecked(homeButtonAnswersCall); } // Speak passwords. final boolean speakPasswordEnabled = Settings.Secure.getInt(getContentResolver(), Settings.Secure.ACCESSIBILITY_SPEAK_PASSWORD, 0) != 0; Loading
src/com/android/settings/cyanogenmod/ButtonSettings.java +74 −0 Original line number Diff line number Diff line Loading @@ -33,6 +33,8 @@ import android.preference.PreferenceScreen; import android.provider.Settings; import android.view.IWindowManager; import android.view.KeyCharacterMap; import android.view.KeyEvent; import android.view.WindowManagerGlobal; import com.android.settings.R; Loading @@ -56,7 +58,10 @@ public class ButtonSettings extends SettingsPreferenceFragment implements private static final String KEY_VOLUME_KEY_CURSOR_CONTROL = "volume_key_cursor_control"; private static final String KEY_BLUETOOTH_INPUT_SETTINGS = "bluetooth_input_settings"; private static final String DISABLE_NAV_KEYS = "disable_nav_keys"; private static final String KEY_POWER_END_CALL = "power_end_call"; private static final String KEY_HOME_ANSWER_CALL = "home_answer_call"; private static final String CATEGORY_POWER = "power_key"; private static final String CATEGORY_HOME = "home_key"; private static final String CATEGORY_MENU = "menu_key"; private static final String CATEGORY_ASSIST = "assist_key"; Loading Loading @@ -99,6 +104,8 @@ public class ButtonSettings extends SettingsPreferenceFragment implements private ListPreference mVolumeKeyCursorControl; private CheckBoxPreference mSwapVolumeButtons; private CheckBoxPreference mDisableNavigationKeys; private CheckBoxPreference mPowerEndCall; private CheckBoxPreference mHomeAnswerCall; private Handler mHandler; Loading @@ -115,6 +122,7 @@ public class ButtonSettings extends SettingsPreferenceFragment implements final int deviceKeys = getResources().getInteger( com.android.internal.R.integer.config_deviceHardwareKeys); final boolean hasPowerKey = KeyCharacterMap.deviceHasKey(KeyEvent.KEYCODE_POWER); final boolean hasHomeKey = (deviceKeys & KEY_MASK_HOME) != 0; final boolean hasMenuKey = (deviceKeys & KEY_MASK_MENU) != 0; final boolean hasAssistKey = (deviceKeys & KEY_MASK_ASSIST) != 0; Loading @@ -122,6 +130,8 @@ public class ButtonSettings extends SettingsPreferenceFragment implements final boolean hasCameraKey = (deviceKeys & KEY_MASK_CAMERA) != 0; boolean hasAnyBindableKey = false; final PreferenceCategory powerCategory = (PreferenceCategory) prefScreen.findPreference(CATEGORY_POWER); final PreferenceCategory homeCategory = (PreferenceCategory) prefScreen.findPreference(CATEGORY_HOME); final PreferenceCategory menuCategory = Loading @@ -135,6 +145,12 @@ public class ButtonSettings extends SettingsPreferenceFragment implements final PreferenceCategory volumeCategory = (PreferenceCategory) prefScreen.findPreference(CATEGORY_VOLUME); // Power button ends calls. mPowerEndCall = (CheckBoxPreference) findPreference(KEY_POWER_END_CALL); // Home button answers calls. mHomeAnswerCall = (CheckBoxPreference) findPreference(KEY_HOME_ANSWER_CALL); mHandler = new Handler(); // Force Navigation bar related options Loading @@ -160,12 +176,25 @@ public class ButtonSettings extends SettingsPreferenceFragment implements prefScreen.removePreference(mDisableNavigationKeys); } if (hasPowerKey) { if (!Utils.isVoiceCapable(getActivity())) { powerCategory.removePreference(mPowerEndCall); mPowerEndCall = null; } } else { prefScreen.removePreference(powerCategory); } if (hasHomeKey) { if (!res.getBoolean(R.bool.config_show_homeWake)) { homeCategory.removePreference(findPreference(Settings.System.HOME_WAKE_SCREEN)); } if (!Utils.isVoiceCapable(getActivity())) { homeCategory.removePreference(mHomeAnswerCall); mHomeAnswerCall = null; } int defaultLongPressAction = res.getInteger( com.android.internal.R.integer.config_longPressOnHomeBehavior); if (defaultLongPressAction < ACTION_NOTHING || Loading Loading @@ -285,6 +314,31 @@ public class ButtonSettings extends SettingsPreferenceFragment implements getPreferenceScreen(), KEY_BLUETOOTH_INPUT_SETTINGS); } @Override public void onResume() { super.onResume(); // Power button ends calls. if (mPowerEndCall != null) { final int incallPowerBehavior = Settings.Secure.getInt(getContentResolver(), Settings.Secure.INCALL_POWER_BUTTON_BEHAVIOR, Settings.Secure.INCALL_POWER_BUTTON_BEHAVIOR_DEFAULT); final boolean powerButtonEndsCall = (incallPowerBehavior == Settings.Secure.INCALL_POWER_BUTTON_BEHAVIOR_HANGUP); mPowerEndCall.setChecked(powerButtonEndsCall); } // Home button answers calls. if (mHomeAnswerCall != null) { final int incallHomeBehavior = Settings.Secure.getInt(getContentResolver(), Settings.Secure.RING_HOME_BUTTON_BEHAVIOR, Settings.Secure.RING_HOME_BUTTON_BEHAVIOR_DEFAULT); final boolean homeButtonAnswersCall = (incallHomeBehavior == Settings.Secure.RING_HOME_BUTTON_BEHAVIOR_ANSWER); mHomeAnswerCall.setChecked(homeButtonAnswersCall); } } private ListPreference initActionList(String key, int value) { ListPreference list = (ListPreference) getPreferenceScreen().findPreference(key); list.setValue(Integer.toString(value)); Loading Loading @@ -447,8 +501,28 @@ public class ButtonSettings extends SettingsPreferenceFragment implements mDisableNavigationKeys.setEnabled(true); } }, 1000); } else if (preference == mPowerEndCall) { handleTogglePowerButtonEndsCallPreferenceClick(); return true; } else if (preference == mHomeAnswerCall) { handleToggleHomeButtonAnswersCallPreferenceClick(); return true; } return super.onPreferenceTreeClick(preferenceScreen, preference); } private void handleTogglePowerButtonEndsCallPreferenceClick() { Settings.Secure.putInt(getContentResolver(), Settings.Secure.INCALL_POWER_BUTTON_BEHAVIOR, (mPowerEndCall.isChecked() ? Settings.Secure.INCALL_POWER_BUTTON_BEHAVIOR_HANGUP : Settings.Secure.INCALL_POWER_BUTTON_BEHAVIOR_SCREEN_OFF)); } private void handleToggleHomeButtonAnswersCallPreferenceClick() { Settings.Secure.putInt(getContentResolver(), Settings.Secure.RING_HOME_BUTTON_BEHAVIOR, (mHomeAnswerCall.isChecked() ? Settings.Secure.RING_HOME_BUTTON_BEHAVIOR_ANSWER : Settings.Secure.RING_HOME_BUTTON_BEHAVIOR_DO_NOTHING)); } }