diff --git a/doze/src/org/lineageos/settings/doze/ProximitySensor.java b/doze/src/org/lineageos/settings/doze/ProximitySensor.java index 45e409d..52b8e75 100644 --- a/doze/src/org/lineageos/settings/doze/ProximitySensor.java +++ b/doze/src/org/lineageos/settings/doze/ProximitySensor.java @@ -24,6 +24,10 @@ import android.hardware.SensorEventListener; import android.hardware.SensorManager; import android.util.Log; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; +import java.util.concurrent.Future; + public class ProximitySensor implements SensorEventListener { private static final boolean DEBUG = false; @@ -38,6 +42,7 @@ public class ProximitySensor implements SensorEventListener { private SensorManager mSensorManager; private Sensor mSensor; private Context mContext; + private ExecutorService mExecutorService; private boolean mSawNear = false; private long mInPocketTime = 0; @@ -46,6 +51,11 @@ public class ProximitySensor implements SensorEventListener { mContext = context; mSensorManager = mContext.getSystemService(SensorManager.class); mSensor = mSensorManager.getDefaultSensor(Sensor.TYPE_PROXIMITY, false); + mExecutorService = Executors.newSingleThreadExecutor(); + } + + private Future submit(Runnable runnable) { + return mExecutorService.submit(runnable); } @Override @@ -81,11 +91,16 @@ public class ProximitySensor implements SensorEventListener { protected void enable() { if (DEBUG) Log.d(TAG, "Enabling"); - mSensorManager.registerListener(this, mSensor, SensorManager.SENSOR_DELAY_NORMAL); + submit(() -> { + mSensorManager.registerListener(this, mSensor, + SensorManager.SENSOR_DELAY_NORMAL); + }); } protected void disable() { if (DEBUG) Log.d(TAG, "Disabling"); - mSensorManager.unregisterListener(this, mSensor); + submit(() -> { + mSensorManager.unregisterListener(this, mSensor); + }); } } diff --git a/doze/src/org/lineageos/settings/doze/TiltSensor.java b/doze/src/org/lineageos/settings/doze/TiltSensor.java index 4127657..6598127 100644 --- a/doze/src/org/lineageos/settings/doze/TiltSensor.java +++ b/doze/src/org/lineageos/settings/doze/TiltSensor.java @@ -25,6 +25,10 @@ import android.hardware.SensorManager; import android.os.SystemClock; import android.util.Log; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; +import java.util.concurrent.Future; + public class TiltSensor implements SensorEventListener { private static final boolean DEBUG = false; @@ -36,6 +40,7 @@ public class TiltSensor implements SensorEventListener { private SensorManager mSensorManager; private Sensor mSensor; private Context mContext; + private ExecutorService mExecutorService; private long mEntryTimestamp; @@ -43,6 +48,11 @@ public class TiltSensor implements SensorEventListener { mContext = context; mSensorManager = mContext.getSystemService(SensorManager.class); mSensor = mSensorManager.getDefaultSensor(Sensor.TYPE_TILT_DETECTOR); + mExecutorService = Executors.newSingleThreadExecutor(); + } + + private Future submit(Runnable runnable) { + return mExecutorService.submit(runnable); } @Override @@ -68,13 +78,17 @@ public class TiltSensor implements SensorEventListener { protected void enable() { if (DEBUG) Log.d(TAG, "Enabling"); - mSensorManager.registerListener(this, mSensor, - SensorManager.SENSOR_DELAY_NORMAL, BATCH_LATENCY_IN_MS * 1000); - mEntryTimestamp = SystemClock.elapsedRealtime(); + submit(() -> { + mSensorManager.registerListener(this, mSensor, + SensorManager.SENSOR_DELAY_NORMAL, BATCH_LATENCY_IN_MS * 1000); + mEntryTimestamp = SystemClock.elapsedRealtime(); + }); } protected void disable() { if (DEBUG) Log.d(TAG, "Disabling"); - mSensorManager.unregisterListener(this, mSensor); + submit(() -> { + mSensorManager.unregisterListener(this, mSensor); + }); } }