diff --git a/res/drawable/ic_hardware_switch.xml b/res/drawable/ic_hardware_switch.xml
new file mode 100644
index 0000000000000000000000000000000000000000..ba19d31d4618c2a0452947b9ac589360aacf2b1a
--- /dev/null
+++ b/res/drawable/ic_hardware_switch.xml
@@ -0,0 +1,17 @@
+
+
+
+
+
+
diff --git a/res/values/e_strings.xml b/res/values/e_strings.xml
index ded5ce87205617375c5af3796edc22f2e5d10d22..d33f1bc1b6028ac360dfaea20a78c501e1eb620e 100644
--- a/res/values/e_strings.xml
+++ b/res/values/e_strings.xml
@@ -27,4 +27,9 @@
OpenKeychain
+
+
+ Hardware switch
+ Hardware switch
+ Configure the hardware switch
diff --git a/res/xml/button_settings.xml b/res/xml/button_settings.xml
index 97e4a22311c65d96b05f3a2f2c2c8625f18e4f50..003c2c0e1cf18c301b476c8730d33b509b27be74 100644
--- a/res/xml/button_settings.xml
+++ b/res/xml/button_settings.xml
@@ -84,6 +84,21 @@
+
+
+
+
+
+
+
+
diff --git a/src/org/lineageos/lineageparts/input/ButtonSettings.java b/src/org/lineageos/lineageparts/input/ButtonSettings.java
index e531b7e91cc2a70a43ddd6e0f2e5a49a3112f302..f8505009bbfd126bba598d370b8599117e8bf3fa 100644
--- a/src/org/lineageos/lineageparts/input/ButtonSettings.java
+++ b/src/org/lineageos/lineageparts/input/ButtonSettings.java
@@ -98,6 +98,7 @@ public class ButtonSettings extends SettingsPreferenceFragment
private static final String KEY_SWAP_CAPACITIVE_KEYS = "swap_capacitive_keys";
private static final String KEY_NAV_BAR_INVERSE = "sysui_nav_bar_inverse";
private static final String KEY_ENABLE_TASKBAR = "enable_taskbar";
+ private static final String KEY_HARDWARE_SWITCH = "hardware_switch";
private static final String CATEGORY_POWER = "power_key";
private static final String CATEGORY_HOME = "home_key";
@@ -109,6 +110,7 @@ public class ButtonSettings extends SettingsPreferenceFragment
private static final String CATEGORY_VOLUME = "volume_keys";
private static final String CATEGORY_NAVBAR = "navigation_bar_category";
private static final String CATEGORY_EXTRAS = "extras_category";
+ private static final String CATEGORY_HARDWARE_SWITCH = "hardware_switch_category";
private ListPreference mBackLongPressAction;
private ListPreference mHomeLongPressAction;
@@ -181,6 +183,7 @@ public class ButtonSettings extends SettingsPreferenceFragment
final PreferenceCategory volumeCategory = prefScreen.findPreference(CATEGORY_VOLUME);
final PreferenceCategory cameraCategory = prefScreen.findPreference(CATEGORY_CAMERA);
final PreferenceCategory extrasCategory = prefScreen.findPreference(CATEGORY_EXTRAS);
+ final PreferenceCategory hardwareSwitchCategory = prefScreen.findPreference(CATEGORY_HARDWARE_SWITCH);
// Power button ends calls.
mPowerEndCall = findPreference(KEY_POWER_END_CALL);
@@ -203,6 +206,12 @@ public class ButtonSettings extends SettingsPreferenceFragment
mNavigationPreferencesCat = findPreference(CATEGORY_NAVBAR);
+ Preference hardwareSwitchPref = findPreference(KEY_HARDWARE_SWITCH);
+ if (hardwareSwitchCategory != null
+ && (hardwareSwitchPref == null || !hardwareSwitchPref.isVisible())) {
+ prefScreen.removePreference(hardwareSwitchCategory);
+ }
+
Action defaultBackLongPressAction = Action.fromIntSafe(res.getInteger(
org.lineageos.platform.internal.R.integer.config_longPressOnBackBehavior));
Action defaultHomeLongPressAction = Action.fromIntSafe(res.getInteger(