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