From 5d62057c7033b5d17119d18e8d619e04e57b6555 Mon Sep 17 00:00:00 2001 From: LuK1337 Date: Sat, 18 Sep 2021 17:12:43 +0200 Subject: [PATCH] doze: Make all features optional This change makes all users of doze app declare supported sensors in their device tree overlays. Change-Id: I6444da1e8b42d0064a04981632c84f6c90ddaee7 --- doze/res/values/config.xml | 21 +++++++++++++++++++ .../settings/doze/DozeSettingsFragment.java | 10 +++++++++ .../lineageos/settings/doze/PickupSensor.java | 5 ++++- .../lineageos/settings/doze/PocketSensor.java | 5 ++++- 4 files changed, 39 insertions(+), 2 deletions(-) create mode 100644 doze/res/values/config.xml diff --git a/doze/res/values/config.xml b/doze/res/values/config.xml new file mode 100644 index 0000000..e2400de --- /dev/null +++ b/doze/res/values/config.xml @@ -0,0 +1,21 @@ + + + + + + + diff --git a/doze/src/org/lineageos/settings/doze/DozeSettingsFragment.java b/doze/src/org/lineageos/settings/doze/DozeSettingsFragment.java index 31723f7..1c4ce9c 100644 --- a/doze/src/org/lineageos/settings/doze/DozeSettingsFragment.java +++ b/doze/src/org/lineageos/settings/doze/DozeSettingsFragment.java @@ -93,6 +93,16 @@ public class DozeSettingsFragment extends PreferenceFragment implements OnPrefer pickupSensorCategory.setDependency(Utils.ALWAYS_ON_DISPLAY); proximitySensorCategory.setDependency(Utils.ALWAYS_ON_DISPLAY); } + + // Hide pickup sensor category if its sensor type is empty + if (getString(R.string.pickup_sensor_type).isEmpty()) { + getPreferenceScreen().removePreference(pickupSensorCategory); + } + + // Hide proximity sensor category if its sensor type is empty + if (getString(R.string.pocket_sensor_type).isEmpty()) { + getPreferenceScreen().removePreference(proximitySensorCategory); + } } @Override diff --git a/doze/src/org/lineageos/settings/doze/PickupSensor.java b/doze/src/org/lineageos/settings/doze/PickupSensor.java index 41b34a3..7f42ccb 100644 --- a/doze/src/org/lineageos/settings/doze/PickupSensor.java +++ b/doze/src/org/lineageos/settings/doze/PickupSensor.java @@ -53,7 +53,8 @@ public class PickupSensor implements SensorEventListener { mContext = context; mPowerManager = mContext.getSystemService(PowerManager.class); mSensorManager = mContext.getSystemService(SensorManager.class); - mSensor = Utils.getSensor(mSensorManager, "oneplus.sensor.pickup"); + mSensor = Utils.getSensor(mSensorManager, + context.getResources().getString(R.string.pickup_sensor_type)); mWakeLock = mPowerManager.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, TAG); mExecutorService = Executors.newSingleThreadExecutor(); } @@ -90,6 +91,7 @@ public class PickupSensor implements SensorEventListener { } protected void enable() { + if (mSensor == null) return; if (DEBUG) Log.d(TAG, "Enabling"); submit(() -> { mEntryTimestamp = SystemClock.elapsedRealtime(); @@ -99,6 +101,7 @@ public class PickupSensor implements SensorEventListener { } protected void disable() { + if (mSensor == null) return; if (DEBUG) Log.d(TAG, "Disabling"); submit(() -> { mSensorManager.unregisterListener(this, mSensor); diff --git a/doze/src/org/lineageos/settings/doze/PocketSensor.java b/doze/src/org/lineageos/settings/doze/PocketSensor.java index a4e2208..b18e49b 100644 --- a/doze/src/org/lineageos/settings/doze/PocketSensor.java +++ b/doze/src/org/lineageos/settings/doze/PocketSensor.java @@ -46,7 +46,8 @@ public class PocketSensor implements SensorEventListener { public PocketSensor(Context context) { mContext = context; mSensorManager = mContext.getSystemService(SensorManager.class); - mSensor = Utils.getSensor(mSensorManager, "oneplus.sensor.pocket"); + mSensor = Utils.getSensor(mSensorManager, + context.getResources().getString(R.string.pocket_sensor_type)); mExecutorService = Executors.newSingleThreadExecutor(); } @@ -76,6 +77,7 @@ public class PocketSensor implements SensorEventListener { } protected void enable() { + if (mSensor == null) return; if (DEBUG) Log.d(TAG, "Enabling"); submit(() -> { mEntryTimestamp = SystemClock.elapsedRealtime(); @@ -85,6 +87,7 @@ public class PocketSensor implements SensorEventListener { } protected void disable() { + if (mSensor == null) return; if (DEBUG) Log.d(TAG, "Disabling"); submit(() -> { mSensorManager.unregisterListener(this, mSensor);