Hardware key disable support
Change-Id: I42f8b3b9423e218eb612bb8ff57baa58280392e6 Signed-off-by: SagarMakhar <sagarmakhar@gmail.com> Signed-off-by: Hưng Phan <phandinhhungvp2001@gmail.com>
This commit is contained in:
@@ -348,4 +348,8 @@
|
|||||||
<string name="button_backlight_on_touch_only_title">Button backlight touch</string>
|
<string name="button_backlight_on_touch_only_title">Button backlight touch</string>
|
||||||
<string name="button_backlight_on_touch_only_summary">Button backlight will only appear when buttons are pressed rather than on all the time. Timeout still impacts this feature.</string>
|
<string name="button_backlight_on_touch_only_summary">Button backlight will only appear when buttons are pressed rather than on all the time. Timeout still impacts this feature.</string>
|
||||||
|
|
||||||
|
<!-- Hardware keys -->
|
||||||
|
<string name="hardware_keys_category">Hardware navigation buttons</string>
|
||||||
|
<string name="hardware_keys_disable_title">Disable hardware buttons</string>
|
||||||
|
|
||||||
</resources>
|
</resources>
|
||||||
|
|||||||
@@ -18,6 +18,13 @@
|
|||||||
android:title="@string/button_title"
|
android:title="@string/button_title"
|
||||||
xmlns:settings="http://schemas.android.com/apk/res/com.android.settings">
|
xmlns:settings="http://schemas.android.com/apk/res/com.android.settings">
|
||||||
|
|
||||||
|
<PreferenceCategory android:key="hardware_keys"
|
||||||
|
android:title="@string/hardware_keys_category">
|
||||||
|
|
||||||
|
<SwitchPreference android:key="hardware_keys_disable"
|
||||||
|
android:title="@string/hardware_keys_disable_title" />
|
||||||
|
</PreferenceCategory>
|
||||||
|
|
||||||
<PreferenceCategory
|
<PreferenceCategory
|
||||||
android:key="volume_category"
|
android:key="volume_category"
|
||||||
android:title="@string/volume_category">
|
android:title="@string/volume_category">
|
||||||
|
|||||||
@@ -59,7 +59,10 @@ import java.util.List;
|
|||||||
@SearchIndexable(forTarget = SearchIndexable.ALL & ~SearchIndexable.ARC)
|
@SearchIndexable(forTarget = SearchIndexable.ALL & ~SearchIndexable.ARC)
|
||||||
public class ButtonSettings extends ActionFragment implements OnPreferenceChangeListener {
|
public class ButtonSettings extends ActionFragment implements OnPreferenceChangeListener {
|
||||||
|
|
||||||
|
private static final String HWKEY_DISABLE = "hardware_keys_disable";
|
||||||
|
|
||||||
// category keys
|
// category keys
|
||||||
|
private static final String CATEGORY_HWKEY = "hardware_keys";
|
||||||
private static final String CATEGORY_BACK = "back_key";
|
private static final String CATEGORY_BACK = "back_key";
|
||||||
private static final String CATEGORY_HOME = "home_key";
|
private static final String CATEGORY_HOME = "home_key";
|
||||||
private static final String CATEGORY_MENU = "menu_key";
|
private static final String CATEGORY_MENU = "menu_key";
|
||||||
@@ -84,6 +87,7 @@ public class ButtonSettings extends ActionFragment implements OnPreferenceChange
|
|||||||
|
|
||||||
private static final String TORCH_POWER_BUTTON_GESTURE = "torch_power_button_gesture";
|
private static final String TORCH_POWER_BUTTON_GESTURE = "torch_power_button_gesture";
|
||||||
|
|
||||||
|
private SwitchPreference mHwKeyDisable;
|
||||||
private ListPreference mTorchPowerButton;
|
private ListPreference mTorchPowerButton;
|
||||||
private CustomSeekBarPreference mButtonTimoutBar;
|
private CustomSeekBarPreference mButtonTimoutBar;
|
||||||
private CustomSeekBarPreference mManualButtonBrightness;
|
private CustomSeekBarPreference mManualButtonBrightness;
|
||||||
@@ -97,6 +101,22 @@ public class ButtonSettings extends ActionFragment implements OnPreferenceChange
|
|||||||
final Resources res = getResources();
|
final Resources res = getResources();
|
||||||
final ContentResolver resolver = getActivity().getContentResolver();
|
final ContentResolver resolver = getActivity().getContentResolver();
|
||||||
final PreferenceScreen prefScreen = getPreferenceScreen();
|
final PreferenceScreen prefScreen = getPreferenceScreen();
|
||||||
|
|
||||||
|
final boolean needsNavbar = ActionUtils.hasNavbarByDefault(getActivity());
|
||||||
|
final PreferenceCategory hwkeyCat = (PreferenceCategory) prefScreen
|
||||||
|
.findPreference(CATEGORY_HWKEY);
|
||||||
|
int keysDisabled = 0;
|
||||||
|
if (!needsNavbar) {
|
||||||
|
mHwKeyDisable = (SwitchPreference) findPreference(HWKEY_DISABLE);
|
||||||
|
keysDisabled = Settings.System.getIntForUser(getContentResolver(),
|
||||||
|
Settings.System.HARDWARE_KEYS_DISABLE, 0,
|
||||||
|
UserHandle.USER_CURRENT);
|
||||||
|
mHwKeyDisable.setChecked(keysDisabled != 0);
|
||||||
|
mHwKeyDisable.setOnPreferenceChangeListener(this);
|
||||||
|
} else {
|
||||||
|
prefScreen.removePreference(hwkeyCat);
|
||||||
|
}
|
||||||
|
|
||||||
// bits for hardware keys present on device
|
// bits for hardware keys present on device
|
||||||
final int deviceKeys = getResources().getInteger(
|
final int deviceKeys = getResources().getInteger(
|
||||||
com.android.internal.R.integer.config_deviceHardwareKeys);
|
com.android.internal.R.integer.config_deviceHardwareKeys);
|
||||||
@@ -140,8 +160,11 @@ public class ButtonSettings extends ActionFragment implements OnPreferenceChange
|
|||||||
}
|
}
|
||||||
// let super know we can load ActionPreferences
|
// let super know we can load ActionPreferences
|
||||||
onPreferenceScreenLoaded(ActionConstants.getDefaults(ActionConstants.HWKEYS));
|
onPreferenceScreenLoaded(ActionConstants.getDefaults(ActionConstants.HWKEYS));
|
||||||
|
|
||||||
// screen off torch
|
// load preferences first
|
||||||
|
setActionPreferencesEnabled(keysDisabled == 0);
|
||||||
|
|
||||||
|
// screen off torch
|
||||||
mTorchPowerButton = (ListPreference) findPreference(TORCH_POWER_BUTTON_GESTURE);
|
mTorchPowerButton = (ListPreference) findPreference(TORCH_POWER_BUTTON_GESTURE);
|
||||||
int mTorchPowerButtonValue = Settings.System.getInt(resolver,
|
int mTorchPowerButtonValue = Settings.System.getInt(resolver,
|
||||||
Settings.System.TORCH_POWER_BUTTON_GESTURE, 0);
|
Settings.System.TORCH_POWER_BUTTON_GESTURE, 0);
|
||||||
@@ -186,6 +209,11 @@ public class ButtonSettings extends ActionFragment implements OnPreferenceChange
|
|||||||
Settings.System.putInt(resolver, Settings.System.TORCH_POWER_BUTTON_GESTURE,
|
Settings.System.putInt(resolver, Settings.System.TORCH_POWER_BUTTON_GESTURE,
|
||||||
mTorchPowerButtonValue);
|
mTorchPowerButtonValue);
|
||||||
return true;
|
return true;
|
||||||
|
} else if (preference == mHwKeyDisable) {
|
||||||
|
boolean value = (Boolean) newValue;
|
||||||
|
Settings.System.putInt(getContentResolver(), Settings.System.HARDWARE_KEYS_DISABLE,
|
||||||
|
value ? 1 : 0);
|
||||||
|
setActionPreferencesEnabled(!value);
|
||||||
} else if (preference == mButtonTimoutBar) {
|
} else if (preference == mButtonTimoutBar) {
|
||||||
int buttonTimeout = (Integer) newValue;
|
int buttonTimeout = (Integer) newValue;
|
||||||
Settings.System.putInt(getContentResolver(),
|
Settings.System.putInt(getContentResolver(),
|
||||||
|
|||||||
Reference in New Issue
Block a user