Ensure FakeSensorManager returns a fake ProximitySensor.

Bug: 142293105
Test: atest SystemUITests
Change-Id: If6d4c51fe27cf279eed9b430ba1d82d78e919246
diff --git a/packages/SystemUI/src/com/android/systemui/doze/DozeFactory.java b/packages/SystemUI/src/com/android/systemui/doze/DozeFactory.java
index 3f0505f..705147f 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 @@
     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 @@
         mKeyguardUpdateMonitor = keyguardUpdateMonitor;
         mDockManager = dockManager;
         mWallpaperManager = wallpaperManager;
+        mProximitySensor = proximitySensor;
     }
 
     /** Creates a DozeMachine with its parts for {@code dozeService}. */
@@ -126,7 +129,7 @@
         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 7d86028..05a234f 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 @@
                         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 cce5bca..fdffc43 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.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 @@
     };
 
     @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 @@
         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<Sensor> 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 777fec7..756227e 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 @@
         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 d7df96d..54cb0b8 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 1deb495..0bc7868a 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 @@
         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 fa943e3..37b315f 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 @@
         AsyncSensorManager asyncSensorManager = new AsyncSensorManager(
                 sensorManager, null, new Handler());
         mFakeProximitySensor = sensorManager.getFakeProximitySensor();
-        mProximitySensor = new ProximitySensor(getContext(), asyncSensorManager);
+        mProximitySensor = new ProximitySensor(getContext().getResources(), asyncSensorManager);
     }
 
     @Test