summaryrefslogtreecommitdiffstats
path: root/src/com/android/settings/AccessibilitySettings.java
diff options
context:
space:
mode:
authorOleksandr Byelkin <sanja.byelkin@gmail.com>2012-12-27 19:28:31 +0100
committerGerrit Code Review <gerrit@review.cyanogenmod.com>2013-01-04 06:11:49 -0800
commitf8c9fbcb214f6881ddb6ac02fa5ae45518828be7 (patch)
treec972dfc1bae740a3f4da32cfc04e6f960db416e3 /src/com/android/settings/AccessibilitySettings.java
parent45c9a99261a2580e086ef8bdfe486fad8bda0b88 (diff)
downloadpackages_apps_settings-f8c9fbcb214f6881ddb6ac02fa5ae45518828be7.zip
packages_apps_settings-f8c9fbcb214f6881ddb6ac02fa5ae45518828be7.tar.gz
packages_apps_settings-f8c9fbcb214f6881ddb6ac02fa5ae45518828be7.tar.bz2
Adds ability to answer call with hardware HOME button (preparation to winter time)
Change-Id: I0d22a6fbb92a61f08b50cae5c14d0030b81ee6ec
Diffstat (limited to 'src/com/android/settings/AccessibilitySettings.java')
-rw-r--r--src/com/android/settings/AccessibilitySettings.java33
1 files changed, 33 insertions, 0 deletions
diff --git a/src/com/android/settings/AccessibilitySettings.java b/src/com/android/settings/AccessibilitySettings.java
index b6556a9..b7e7c42 100644
--- a/src/com/android/settings/AccessibilitySettings.java
+++ b/src/com/android/settings/AccessibilitySettings.java
@@ -102,6 +102,8 @@ public class AccessibilitySettings extends SettingsPreferenceFragment implements
"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_LOCK_SCREEN_ROTATION_PREFERENCE =
"toggle_lock_screen_rotation_preference";
private static final String TOGGLE_SPEAK_PASSWORD_PREFERENCE =
@@ -176,6 +178,7 @@ public class AccessibilitySettings extends SettingsPreferenceFragment implements
private CheckBoxPreference mToggleLargeTextPreference;
private CheckBoxPreference mTogglePowerButtonEndsCallPreference;
+ private CheckBoxPreference mToggleHomeButtonAnswersCallPreference;
private CheckBoxPreference mToggleLockScreenRotationPreference;
private CheckBoxPreference mToggleSpeakPasswordPreference;
private ListPreference mSelectLongPressTimeoutPreference;
@@ -236,6 +239,9 @@ public class AccessibilitySettings extends SettingsPreferenceFragment implements
} else if (mTogglePowerButtonEndsCallPreference == preference) {
handleTogglePowerButtonEndsCallPreferenceClick();
return true;
+ } else if (mToggleHomeButtonAnswersCallPreference == preference) {
+ handleToggleHomeButtonAnswersCallPreferenceClick();
+ return true;
} else if (mToggleLockScreenRotationPreference == preference) {
handleLockScreenRotationPreferenceClick();
return true;
@@ -269,6 +275,14 @@ public class AccessibilitySettings extends SettingsPreferenceFragment implements
: 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 handleLockScreenRotationPreferenceClick() {
RotationPolicy.setRotationLockForAccessibility(getActivity(),
!mToggleLockScreenRotationPreference.isChecked());
@@ -320,6 +334,14 @@ public class AccessibilitySettings extends SettingsPreferenceFragment implements
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);
+ }
+
// Lock screen rotation.
mToggleLockScreenRotationPreference =
(CheckBoxPreference) findPreference(TOGGLE_LOCK_SCREEN_ROTATION_PREFERENCE);
@@ -489,6 +511,17 @@ public class AccessibilitySettings extends SettingsPreferenceFragment implements
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);
+ }
+
// Auto-rotate screen
updateLockScreenRotationCheckbox();