diff --git a/packages/SystemUI/src/com/android/systemui/doze/DozeFactory.java b/packages/SystemUI/src/com/android/systemui/doze/DozeFactory.java index 3f0505f33d7c8..705147f5d0c84 100644 --- a/packages/SystemUI/src/com/android/systemui/doze/DozeFactory.java +++ b/packages/SystemUI/src/com/android/systemui/doze/DozeFactory.java @@ -53,13 +53,15 @@ public class DozeFactory { private final KeyguardUpdateMonitor mKeyguardUpdateMonitor; private final DockManager mDockManager; private final IWallpaperManager mWallpaperManager; + private final ProximitySensor mProximitySensor; @Inject public DozeFactory(FalsingManager falsingManager, DozeLog dozeLog, DozeParameters dozeParameters, BatteryController batteryController, AsyncSensorManager asyncSensorManager, AlarmManager alarmManager, WakefulnessLifecycle wakefulnessLifecycle, KeyguardUpdateMonitor keyguardUpdateMonitor, - DockManager dockManager, IWallpaperManager wallpaperManager) { + DockManager dockManager, IWallpaperManager wallpaperManager, + ProximitySensor proximitySensor) { mFalsingManager = falsingManager; mDozeLog = dozeLog; mDozeParameters = dozeParameters; @@ -70,6 +72,7 @@ public class DozeFactory { mKeyguardUpdateMonitor = keyguardUpdateMonitor; mDockManager = dockManager; mWallpaperManager = wallpaperManager; + mProximitySensor = proximitySensor; } /** Creates a DozeMachine with its parts for {@code dozeService}. */ @@ -126,7 +129,7 @@ public class DozeFactory { boolean allowPulseTriggers = true; return new DozeTriggers(context, machine, host, alarmManager, config, params, sensorManager, handler, wakeLock, allowPulseTriggers, dockManager, - new ProximitySensor(context, sensorManager), dozeLog); + mProximitySensor, dozeLog); } diff --git a/packages/SystemUI/src/com/android/systemui/doze/DozeSensors.java b/packages/SystemUI/src/com/android/systemui/doze/DozeSensors.java index 7d860286e2752..05a234f1e4315 100644 --- a/packages/SystemUI/src/com/android/systemui/doze/DozeSensors.java +++ b/packages/SystemUI/src/com/android/systemui/doze/DozeSensors.java @@ -153,7 +153,7 @@ public class DozeSensors { dozeLog), }; - mProximitySensor = new ProximitySensor(context, sensorManager); + mProximitySensor = new ProximitySensor(context.getResources(), sensorManager); mProximitySensor.register( proximityEvent -> { diff --git a/packages/SystemUI/src/com/android/systemui/util/sensors/ProximitySensor.java b/packages/SystemUI/src/com/android/systemui/util/sensors/ProximitySensor.java index cce5bcadb5091..fdffc43388433 100644 --- a/packages/SystemUI/src/com/android/systemui/util/sensors/ProximitySensor.java +++ b/packages/SystemUI/src/com/android/systemui/util/sensors/ProximitySensor.java @@ -16,7 +16,7 @@ package com.android.systemui.util.sensors; -import android.content.Context; +import android.content.res.Resources; import android.hardware.Sensor; import android.hardware.SensorEvent; import android.hardware.SensorEventListener; @@ -25,6 +25,7 @@ import android.os.Handler; import android.util.Log; import com.android.internal.annotations.VisibleForTesting; +import com.android.systemui.DependencyProvider; import com.android.systemui.R; import java.util.ArrayList; @@ -64,9 +65,10 @@ public class ProximitySensor { }; @Inject - public ProximitySensor(Context context, AsyncSensorManager sensorManager) { + public ProximitySensor(@DependencyProvider.MainResources Resources resources, + AsyncSensorManager sensorManager) { mSensorManager = sensorManager; - Sensor sensor = findBrightnessSensor(context); + Sensor sensor = findBrightnessSensor(resources); if (sensor == null) { mUsingBrightnessSensor = false; @@ -106,8 +108,8 @@ public class ProximitySensor { registerInternal(); } - private Sensor findBrightnessSensor(Context context) { - String sensorType = context.getString(R.string.doze_brightness_sensor_type); + private Sensor findBrightnessSensor(Resources resources) { + String sensorType = resources.getString(R.string.doze_brightness_sensor_type); List sensorList = mSensorManager.getSensorList(Sensor.TYPE_ALL); Sensor sensor = null; for (Sensor s : sensorList) { diff --git a/packages/SystemUI/tests/src/com/android/systemui/doze/DozeTriggersTest.java b/packages/SystemUI/tests/src/com/android/systemui/doze/DozeTriggersTest.java index 777fec75d159c..756227e58ec29 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/doze/DozeTriggersTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/doze/DozeTriggersTest.java @@ -83,7 +83,7 @@ public class DozeTriggersTest extends SysuiTestCase { mDockManagerFake = mock(DockManager.class); AsyncSensorManager asyncSensorManager = new AsyncSensorManager(mSensors, null, new Handler()); - mProximitySensor = new FakeProximitySensor(getContext(), asyncSensorManager); + mProximitySensor = new FakeProximitySensor(getContext().getResources(), asyncSensorManager); mTriggers = new DozeTriggers(mContext, mMachine, mHost, mAlarmManager, config, parameters, asyncSensorManager, Handler.createAsync(Looper.myLooper()), wakeLock, true, diff --git a/packages/SystemUI/tests/src/com/android/systemui/util/sensors/FakeProximitySensor.java b/packages/SystemUI/tests/src/com/android/systemui/util/sensors/FakeProximitySensor.java index d7df96dfdf24b..54cb0b83fc8f6 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/util/sensors/FakeProximitySensor.java +++ b/packages/SystemUI/tests/src/com/android/systemui/util/sensors/FakeProximitySensor.java @@ -16,14 +16,14 @@ package com.android.systemui.util.sensors; -import android.content.Context; +import android.content.res.Resources; public class FakeProximitySensor extends ProximitySensor { private boolean mAvailable; private boolean mPaused; - public FakeProximitySensor(Context context, AsyncSensorManager sensorManager) { - super(context, sensorManager); + public FakeProximitySensor(Resources resources, AsyncSensorManager sensorManager) { + super(resources, sensorManager); mAvailable = true; } diff --git a/packages/SystemUI/tests/src/com/android/systemui/util/sensors/FakeSensorManager.java b/packages/SystemUI/tests/src/com/android/systemui/util/sensors/FakeSensorManager.java index 1deb495b52501..0bc7868aab9cc 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/util/sensors/FakeSensorManager.java +++ b/packages/SystemUI/tests/src/com/android/systemui/util/sensors/FakeSensorManager.java @@ -92,6 +92,18 @@ public class FakeSensorManager extends SensorManager { if (s != null) { return s; } + switch(type) { + case Sensor.TYPE_PROXIMITY: + try { + return createSensor(Sensor.TYPE_PROXIMITY, null); + } catch (Exception e) { + // fall through + } + break; + default: + break; + + } // Our mock sensors aren't wakeup, and it's a pain to create them that way. Instead, just // return non-wakeup sensors if we can't find a wakeup sensor. return getDefaultSensor(type, false /* wakeup */); diff --git a/packages/SystemUI/tests/src/com/android/systemui/util/sensors/ProximitySensorTest.java b/packages/SystemUI/tests/src/com/android/systemui/util/sensors/ProximitySensorTest.java index fa943e3449771..37b315fec26e0 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/util/sensors/ProximitySensorTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/util/sensors/ProximitySensorTest.java @@ -47,7 +47,7 @@ public class ProximitySensorTest extends SysuiTestCase { AsyncSensorManager asyncSensorManager = new AsyncSensorManager( sensorManager, null, new Handler()); mFakeProximitySensor = sensorManager.getFakeProximitySensor(); - mProximitySensor = new ProximitySensor(getContext(), asyncSensorManager); + mProximitySensor = new ProximitySensor(getContext().getResources(), asyncSensorManager); } @Test