OmniControl: generic proximity check for wakeup events
for devices that support deep sleep with active proximity
sensor event listener. Does cover power button and volume
button wake events
needed for https://github.com/omnirom/android_frameworks_base/commit/ebe1144a65f87d5be3af41b20c5260798b5b3ce9
Change-Id: I27812a1fda8739272456609e89ab193e52ae6de1
diff --git a/app/src/main/java/org/omnirom/control/ButtonSettingsFragment.kt b/app/src/main/java/org/omnirom/control/ButtonSettingsFragment.kt
index adc42b7..0267440 100644
--- a/app/src/main/java/org/omnirom/control/ButtonSettingsFragment.kt
+++ b/app/src/main/java/org/omnirom/control/ButtonSettingsFragment.kt
@@ -28,11 +28,13 @@
import androidx.preference.PreferenceFragmentCompat
import androidx.preference.PreferenceScreen
+import org.omnirom.omnilib.utils.DeviceUtils
class ButtonSettingsFragment : AbstractSettingsFragment() {
private val CATEGORY_POWER = "button_power"
private val KEY_ADVANCED_REBOOT = "advanced_reboot"
private val KEY_POWER_TORCH = "long_press_power_torch"
+ private val KEY_SYSTEM_PROXI_CHECK_ENABLED = "system_proxi_check_enabled";
companion object {
@DrawableRes
@@ -59,6 +61,13 @@
val powerCategory: PreferenceCategory? = findPreference(CATEGORY_POWER)
if (powerCategory != null) {
+ val supportPowerButtonProxyCheck = resources.getBoolean(org.omnirom.omnilib.R.bool.config_proxiSensorWakupCheck)
+ val proxyCheckPreference: Preference? = findPreference(KEY_SYSTEM_PROXI_CHECK_ENABLED)
+ if (!DeviceUtils.deviceSupportsProximitySensor(requireActivity()) || !supportPowerButtonProxyCheck) {
+ if (proxyCheckPreference != null) {
+ powerCategory.removePreference(proxyCheckPreference)
+ }
+ }
val id =
Resources.getSystem().getIdentifier("config_rebootActionsList", "array", "android")
if (id != 0) {
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 2054975..4c656d6 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -161,4 +161,8 @@
<string name="hex_color_input_hint">Hex</string>
<string name="color_activity_title">Select color</string>
+ <!-- Proximity check -->
+ <string name="system_proxi_check_enabled_title">Proximity check</string>
+ <string name="system_proxi_check_enabled_summary">Check proximity sensor before handling power button and volume button wake events</string>
+
</resources>
diff --git a/app/src/main/res/xml/button_settings_preferences.xml b/app/src/main/res/xml/button_settings_preferences.xml
index 138bb08..f1c6c60 100644
--- a/app/src/main/res/xml/button_settings_preferences.xml
+++ b/app/src/main/res/xml/button_settings_preferences.xml
@@ -19,6 +19,12 @@
android:summary="@string/long_press_power_torch_summary"
android:defaultValue="false" />
+ <omnirom.preference.SystemSettingSwitchPreference
+ android:key="system_proxi_check_enabled"
+ android:title="@string/system_proxi_check_enabled_title"
+ android:summary="@string/system_proxi_check_enabled_summary"
+ android:defaultValue="false"/>
+
</PreferenceCategory>
</PreferenceScreen>