diff options
-rw-r--r-- | res/values/cm_strings.xml | 6 | ||||
-rwxr-xr-x | res/values/config.xml | 7 | ||||
-rw-r--r-- | res/xml/button_settings.xml | 34 | ||||
-rw-r--r-- | src/com/android/settings/ButtonSettings.java | 58 | ||||
-rw-r--r-- | src/com/android/settings/Utils.java | 4 |
5 files changed, 64 insertions, 45 deletions
diff --git a/res/values/cm_strings.xml b/res/values/cm_strings.xml index 0a11c3d..fa5a9b2 100644 --- a/res/values/cm_strings.xml +++ b/res/values/cm_strings.xml @@ -314,6 +314,7 @@ <string name="button_pref_title">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_back_key_title">Back button</string> <string name="hardware_keys_menu_key_title">Menu button</string> <string name="hardware_keys_appswitch_key_title">Recents button</string> <string name="hardware_keys_volume_keys_title">Volume buttons</string> @@ -335,12 +336,9 @@ <string name="volbtn_cursor_control_on_reverse">Volume up/down moves cursor right/left</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="button_wake_title">Wake up 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="volbtn_wake_device_title">Wake up device</string> - <string name="volbtn_wake_device_summary">Pressing either volume button will wake your device</string> <!-- Buttons - Enable navbar --> <string name="disable_navkeys_title">Enable on-screen nav bar</string> diff --git a/res/values/config.xml b/res/values/config.xml index 35eb41b..62e7e67 100755 --- a/res/values/config.xml +++ b/res/values/config.xml @@ -22,10 +22,6 @@ <string name="additional_system_update" translatable="false"></string> <string name="additional_system_update_menu" translatable="false"></string> - <!-- Home button Wake Support. Some devices do not support this. - Setting to false will disable Home button Wake support --> - <bool name="config_show_homeWake">false</bool> - <!-- TODO: This is purely enforced by the interface, and does not affect what strings may be inserted into the actual content provider. With the addition of shortcuts, it seems more likely that users will @@ -47,7 +43,4 @@ <!-- Config to enable/disable ppp number in APN editor --> <bool name="config_ppp_enabled">false</bool> - - <!-- Volume rocker support. Some devices do not have a volume rocker. --> - <bool name="has_volume_rocker">true</bool> </resources> diff --git a/res/xml/button_settings.xml b/res/xml/button_settings.xml index 716710c..9a7752d 100644 --- a/res/xml/button_settings.xml +++ b/res/xml/button_settings.xml @@ -42,7 +42,6 @@ <com.android.settings.cyanogenmod.SystemSettingSwitchPreference android:key="home_wake_screen" android:title="@string/button_wake_title" - android:summary="@string/home_wake_summary" android:defaultValue="true" /> <SwitchPreference @@ -70,9 +69,25 @@ </PreferenceCategory> <PreferenceCategory + android:key="back_key" + android:title="@string/hardware_keys_back_key_title" > + + <com.android.settings.cyanogenmod.SystemSettingSwitchPreference + android:key="back_wake_screen" + android:title="@string/button_wake_title" + android:defaultValue="true" /> + + </PreferenceCategory> + + <PreferenceCategory android:key="menu_key" android:title="@string/hardware_keys_menu_key_title" > + <com.android.settings.cyanogenmod.SystemSettingSwitchPreference + android:key="menu_wake_screen" + android:title="@string/button_wake_title" + android:defaultValue="true" /> + <ListPreference android:key="hardware_keys_menu_press" android:dialogTitle="@string/hardware_keys_short_press_title" @@ -117,6 +132,17 @@ android:key="volume_keys" android:title="@string/hardware_keys_volume_keys_title" > + <com.android.settings.cyanogenmod.SystemSettingSwitchPreference + android:key="volume_wake_screen" + android:title="@string/button_wake_title" + android:defaultValue="true" /> + + <com.android.settings.cyanogenmod.SystemSettingSwitchPreference + android:key="volbtn_music_controls" + android:title="@string/volbtn_music_controls_title" + android:summary="@string/volbtn_music_controls_summary" + android:defaultValue="true" /> + <ListPreference android:key="volume_key_cursor_control" android:dialogTitle="@string/volbtn_cursor_control_title" @@ -125,12 +151,6 @@ android:entryValues="@array/volbtn_cursor_control_values" android:persistent="false" /> - <SwitchPreference - android:key="volume_key_wake_device" - android:title="@string/volbtn_wake_device_title" - android:summary="@string/volbtn_wake_device_summary" - android:defaultValue="false" /> - </PreferenceCategory> </PreferenceScreen> diff --git a/src/com/android/settings/ButtonSettings.java b/src/com/android/settings/ButtonSettings.java index 326391a..5cf6e1f 100644 --- a/src/com/android/settings/ButtonSettings.java +++ b/src/com/android/settings/ButtonSettings.java @@ -56,13 +56,13 @@ public class ButtonSettings extends SettingsPreferenceFragment implements private static final String KEY_APP_SWITCH_PRESS = "hardware_keys_app_switch_press"; private static final String KEY_APP_SWITCH_LONG_PRESS = "hardware_keys_app_switch_long_press"; private static final String KEY_VOLUME_KEY_CURSOR_CONTROL = "volume_key_cursor_control"; - private static final String KEY_VOLUME_WAKE_DEVICE = "volume_key_wake_device"; 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_BACK = "back_key"; private static final String CATEGORY_MENU = "menu_key"; private static final String CATEGORY_ASSIST = "assist_key"; private static final String CATEGORY_APPSWITCH = "app_switch_key"; @@ -92,6 +92,7 @@ public class ButtonSettings extends SettingsPreferenceFragment implements public static final int KEY_MASK_ASSIST = 0x08; public static final int KEY_MASK_APP_SWITCH = 0x10; public static final int KEY_MASK_CAMERA = 0x20; + public static final int KEY_MASK_VOLUME = 0x40; private ListPreference mHomeLongPressAction; private ListPreference mHomeDoubleTapAction; @@ -103,7 +104,6 @@ public class ButtonSettings extends SettingsPreferenceFragment implements private SwitchPreference mDisableNavigationKeys; private SwitchPreference mPowerEndCall; private SwitchPreference mHomeAnswerCall; - private SwitchPreference mVolumeKeyWakeControl; private PreferenceCategory mNavigationPreferencesCat; @@ -121,18 +121,29 @@ public class ButtonSettings extends SettingsPreferenceFragment implements final int deviceKeys = getResources().getInteger( com.android.internal.R.integer.config_deviceHardwareKeys); + final int deviceWakeKeys = getResources().getInteger( + com.android.internal.R.integer.config_deviceHardwareWakeKeys); final boolean hasPowerKey = KeyCharacterMap.deviceHasKey(KeyEvent.KEYCODE_POWER); final boolean hasHomeKey = (deviceKeys & KEY_MASK_HOME) != 0; + final boolean hasBackKey = (deviceKeys & KEY_MASK_BACK) != 0; final boolean hasMenuKey = (deviceKeys & KEY_MASK_MENU) != 0; final boolean hasAssistKey = (deviceKeys & KEY_MASK_ASSIST) != 0; final boolean hasAppSwitchKey = (deviceKeys & KEY_MASK_APP_SWITCH) != 0; + final boolean hasVolumeKeys = (deviceKeys & KEY_MASK_VOLUME) != 0; + + final boolean showHomeWake = (deviceWakeKeys & KEY_MASK_HOME) != 0; + final boolean showBackWake = (deviceWakeKeys & KEY_MASK_BACK) != 0; + final boolean showMenuWake = (deviceWakeKeys & KEY_MASK_MENU) != 0; + final boolean showVolumeWake = (deviceWakeKeys & KEY_MASK_VOLUME) != 0; boolean hasAnyBindableKey = false; final PreferenceCategory powerCategory = (PreferenceCategory) prefScreen.findPreference(CATEGORY_POWER); final PreferenceCategory homeCategory = (PreferenceCategory) prefScreen.findPreference(CATEGORY_HOME); + final PreferenceCategory backCategory = + (PreferenceCategory) prefScreen.findPreference(CATEGORY_BACK); final PreferenceCategory menuCategory = (PreferenceCategory) prefScreen.findPreference(CATEGORY_MENU); final PreferenceCategory appSwitchCategory = @@ -175,13 +186,14 @@ public class ButtonSettings extends SettingsPreferenceFragment implements if (!Utils.isVoiceCapable(getActivity())) { powerCategory.removePreference(mPowerEndCall); mPowerEndCall = null; + prefScreen.removePreference(powerCategory); } } else { prefScreen.removePreference(powerCategory); } if (hasHomeKey) { - if (!res.getBoolean(R.bool.config_show_homeWake)) { + if (!showHomeWake) { homeCategory.removePreference(findPreference(Settings.System.HOME_WAKE_SCREEN)); } @@ -219,7 +231,20 @@ public class ButtonSettings extends SettingsPreferenceFragment implements prefScreen.removePreference(homeCategory); } + if (hasBackKey) { + if (!showBackWake) { + backCategory.removePreference(findPreference(Settings.System.BACK_WAKE_SCREEN)); + prefScreen.removePreference(backCategory); + } + } else { + prefScreen.removePreference(backCategory); + } + if (hasMenuKey) { + if (!showMenuWake) { + menuCategory.removePreference(findPreference(Settings.System.MENU_WAKE_SCREEN)); + } + int pressAction = Settings.System.getInt(resolver, Settings.System.KEY_MENU_ACTION, ACTION_MENU); mMenuPressAction = initActionList(KEY_MENU_PRESS, pressAction); @@ -249,13 +274,14 @@ public class ButtonSettings extends SettingsPreferenceFragment implements } if (Utils.hasVolumeRocker(getActivity())) { + if (!showVolumeWake) { + volumeCategory.removePreference(findPreference(Settings.System.VOLUME_WAKE_SCREEN)); + } + int cursorControlAction = Settings.System.getInt(resolver, Settings.System.VOLUME_KEY_CURSOR_CONTROL, 0); mVolumeKeyCursorControl = initActionList(KEY_VOLUME_KEY_CURSOR_CONTROL, cursorControlAction); - int wakeControlAction = Settings.System.getInt(resolver, - Settings.System.VOLUME_WAKE_SCREEN, 0); - mVolumeKeyWakeControl = initSwitch(KEY_VOLUME_WAKE_DEVICE, (wakeControlAction == 1)); } else { prefScreen.removePreference(volumeCategory); } @@ -287,22 +313,6 @@ public class ButtonSettings extends SettingsPreferenceFragment implements } - private SwitchPreference initSwitch(String key, boolean checked) { - SwitchPreference switchPreference = (SwitchPreference) getPreferenceManager() - .findPreference(key); - if (switchPreference != null) { - switchPreference.setChecked(checked); - switchPreference.setOnPreferenceChangeListener(this); - } - return switchPreference; - } - - private void handleSwitchChange(SwitchPreference pref, Object newValue, String setting) { - Boolean value = (Boolean) newValue; - int intValue = (value) ? 1 : 0; - Settings.System.putInt(getContentResolver(), setting, intValue); - } - private ListPreference initActionList(String key, int value) { ListPreference list = (ListPreference) getPreferenceScreen().findPreference(key); list.setValue(Integer.toString(value)); @@ -353,10 +363,6 @@ public class ButtonSettings extends SettingsPreferenceFragment implements handleActionListChange(mVolumeKeyCursorControl, newValue, Settings.System.VOLUME_KEY_CURSOR_CONTROL); return true; - } else if (preference == mVolumeKeyWakeControl) { - handleSwitchChange(mVolumeKeyWakeControl, newValue, - Settings.System.VOLUME_WAKE_SCREEN); - return true; } return false; } diff --git a/src/com/android/settings/Utils.java b/src/com/android/settings/Utils.java index e7e3aa7..075194a 100644 --- a/src/com/android/settings/Utils.java +++ b/src/com/android/settings/Utils.java @@ -658,7 +658,9 @@ public final class Utils { /* returns whether the device has volume rocker or not. */ public static boolean hasVolumeRocker(Context context) { - return context.getResources().getBoolean(R.bool.has_volume_rocker); + final int deviceKeys = context.getResources().getInteger( + com.android.internal.R.integer.config_deviceHardwareKeys); + return (deviceKeys & ButtonSettings.KEY_MASK_VOLUME) != 0; } /** |