Merge "Ensure FakeSensorManager returns a fake ProximitySensor."
This commit is contained in:
committed by
Android (Google) Code Review
commit
c6733dcb8c
@@ -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);
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -153,7 +153,7 @@ public class DozeSensors {
|
||||
dozeLog),
|
||||
};
|
||||
|
||||
mProximitySensor = new ProximitySensor(context, sensorManager);
|
||||
mProximitySensor = new ProximitySensor(context.getResources(), sensorManager);
|
||||
|
||||
mProximitySensor.register(
|
||||
proximityEvent -> {
|
||||
|
||||
@@ -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<Sensor> sensorList = mSensorManager.getSensorList(Sensor.TYPE_ALL);
|
||||
Sensor sensor = null;
|
||||
for (Sensor s : sensorList) {
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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 */);
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user