Merge "Change nullable sensor to Optional sensor."

This commit is contained in:
TreeHugger Robot
2020-09-15 23:16:43 +00:00
committed by Android (Google) Code Review
3 changed files with 21 additions and 18 deletions

View File

@@ -30,13 +30,13 @@ import android.os.UserHandle;
import android.provider.Settings; import android.provider.Settings;
import android.view.Display; import android.view.Display;
import androidx.annotation.Nullable;
import com.android.systemui.doze.dagger.BrightnessSensor; import com.android.systemui.doze.dagger.BrightnessSensor;
import com.android.systemui.doze.dagger.DozeScope; import com.android.systemui.doze.dagger.DozeScope;
import com.android.systemui.doze.dagger.WrappedService; import com.android.systemui.doze.dagger.WrappedService;
import com.android.systemui.util.sensors.AsyncSensorManager; import com.android.systemui.util.sensors.AsyncSensorManager;
import java.util.Optional;
import javax.inject.Inject; import javax.inject.Inject;
/** /**
@@ -56,7 +56,7 @@ public class DozeScreenBrightness extends BroadcastReceiver implements DozeMachi
private final DozeHost mDozeHost; private final DozeHost mDozeHost;
private final Handler mHandler; private final Handler mHandler;
private final SensorManager mSensorManager; private final SensorManager mSensorManager;
private final Sensor mLightSensor; private final Optional<Sensor> mLightSensorOptional;
private final int[] mSensorToBrightness; private final int[] mSensorToBrightness;
private final int[] mSensorToScrimOpacity; private final int[] mSensorToScrimOpacity;
@@ -77,12 +77,13 @@ public class DozeScreenBrightness extends BroadcastReceiver implements DozeMachi
@Inject @Inject
public DozeScreenBrightness(Context context, @WrappedService DozeMachine.Service service, public DozeScreenBrightness(Context context, @WrappedService DozeMachine.Service service,
AsyncSensorManager sensorManager, @Nullable @BrightnessSensor Sensor lightSensor, AsyncSensorManager sensorManager,
DozeHost host, Handler handler, AlwaysOnDisplayPolicy alwaysOnDisplayPolicy) { @BrightnessSensor Optional<Sensor> lightSensorOptional, DozeHost host, Handler handler,
AlwaysOnDisplayPolicy alwaysOnDisplayPolicy) {
mContext = context; mContext = context;
mDozeService = service; mDozeService = service;
mSensorManager = sensorManager; mSensorManager = sensorManager;
mLightSensor = lightSensor; mLightSensorOptional = lightSensorOptional;
mDozeHost = host; mDozeHost = host;
mHandler = handler; mHandler = handler;
@@ -149,7 +150,7 @@ public class DozeScreenBrightness extends BroadcastReceiver implements DozeMachi
} }
int scrimOpacity = -1; int scrimOpacity = -1;
if (mLightSensor == null) { if (!mLightSensorOptional.isPresent()) {
// No light sensor, scrims are always transparent. // No light sensor, scrims are always transparent.
scrimOpacity = 0; scrimOpacity = 0;
} else if (brightnessReady) { } else if (brightnessReady) {
@@ -193,9 +194,9 @@ public class DozeScreenBrightness extends BroadcastReceiver implements DozeMachi
} }
private void setLightSensorEnabled(boolean enabled) { private void setLightSensorEnabled(boolean enabled) {
if (enabled && !mRegistered && mLightSensor != null) { if (enabled && !mRegistered && mLightSensorOptional.isPresent()) {
// Wait until we get an event from the sensor until indicating ready. // Wait until we get an event from the sensor until indicating ready.
mRegistered = mSensorManager.registerListener(this, mLightSensor, mRegistered = mSensorManager.registerListener(this, mLightSensorOptional.get(),
SensorManager.SENSOR_DELAY_NORMAL, mHandler); SensorManager.SENSOR_DELAY_NORMAL, mHandler);
mLastSensorValue = -1; mLastSensorValue = -1;
} else if (!enabled && mRegistered) { } else if (!enabled && mRegistered) {

View File

@@ -20,8 +20,6 @@ import android.content.Context;
import android.hardware.Sensor; import android.hardware.Sensor;
import android.os.Handler; import android.os.Handler;
import androidx.annotation.Nullable;
import com.android.systemui.R; import com.android.systemui.R;
import com.android.systemui.dagger.qualifiers.Main; import com.android.systemui.dagger.qualifiers.Main;
import com.android.systemui.doze.DozeAuthRemover; import com.android.systemui.doze.DozeAuthRemover;
@@ -44,6 +42,8 @@ import com.android.systemui.util.sensors.AsyncSensorManager;
import com.android.systemui.util.wakelock.DelayedWakeLock; import com.android.systemui.util.wakelock.DelayedWakeLock;
import com.android.systemui.util.wakelock.WakeLock; import com.android.systemui.util.wakelock.WakeLock;
import java.util.Optional;
import dagger.Module; import dagger.Module;
import dagger.Provides; import dagger.Provides;
@@ -93,9 +93,9 @@ public abstract class DozeModule {
@Provides @Provides
@BrightnessSensor @BrightnessSensor
@Nullable static Optional<Sensor> providesBrightnessSensor(
static Sensor providesBrightnessSensor(AsyncSensorManager sensorManager, Context context) { AsyncSensorManager sensorManager, Context context) {
return DozeSensors.findSensorWithType(sensorManager, return Optional.ofNullable(DozeSensors.findSensorWithType(sensorManager,
context.getString(R.string.doze_brightness_sensor_type)); context.getString(R.string.doze_brightness_sensor_type)));
} }
} }

View File

@@ -58,6 +58,8 @@ import org.junit.runner.RunWith;
import org.mockito.Mock; import org.mockito.Mock;
import org.mockito.MockitoAnnotations; import org.mockito.MockitoAnnotations;
import java.util.Optional;
@SmallTest @SmallTest
@RunWith(AndroidTestingRunner.class) @RunWith(AndroidTestingRunner.class)
public class DozeScreenBrightnessTest extends SysuiTestCase { public class DozeScreenBrightnessTest extends SysuiTestCase {
@@ -97,7 +99,7 @@ public class DozeScreenBrightnessTest extends SysuiTestCase {
mAlwaysOnDisplayPolicy.dimmingScrimArray = SENSOR_TO_OPACITY; mAlwaysOnDisplayPolicy.dimmingScrimArray = SENSOR_TO_OPACITY;
mSensor = fakeSensorManager.getFakeLightSensor(); mSensor = fakeSensorManager.getFakeLightSensor();
mScreen = new DozeScreenBrightness(mContext, mServiceFake, mSensorManager, mScreen = new DozeScreenBrightness(mContext, mServiceFake, mSensorManager,
mSensor.getSensor(), mDozeHost, null /* handler */, Optional.of(mSensor.getSensor()), mDozeHost, null /* handler */,
mAlwaysOnDisplayPolicy); mAlwaysOnDisplayPolicy);
mScreen.onScreenState(Display.STATE_ON); mScreen.onScreenState(Display.STATE_ON);
@@ -167,7 +169,7 @@ public class DozeScreenBrightnessTest extends SysuiTestCase {
@Test @Test
public void testPulsing_withoutLightSensor_setsAoDDimmingScrimTransparent() throws Exception { public void testPulsing_withoutLightSensor_setsAoDDimmingScrimTransparent() throws Exception {
mScreen = new DozeScreenBrightness(mContext, mServiceFake, mSensorManager, mScreen = new DozeScreenBrightness(mContext, mServiceFake, mSensorManager,
null /* sensor */, mDozeHost, null /* handler */, Optional.empty() /* sensor */, mDozeHost, null /* handler */,
mAlwaysOnDisplayPolicy); mAlwaysOnDisplayPolicy);
mScreen.transitionTo(UNINITIALIZED, INITIALIZED); mScreen.transitionTo(UNINITIALIZED, INITIALIZED);
mScreen.transitionTo(INITIALIZED, DOZE); mScreen.transitionTo(INITIALIZED, DOZE);
@@ -197,7 +199,7 @@ public class DozeScreenBrightnessTest extends SysuiTestCase {
@Test @Test
public void testNullSensor() throws Exception { public void testNullSensor() throws Exception {
mScreen = new DozeScreenBrightness(mContext, mServiceFake, mSensorManager, mScreen = new DozeScreenBrightness(mContext, mServiceFake, mSensorManager,
null /* sensor */, mDozeHost, null /* handler */, Optional.empty() /* sensor */, mDozeHost, null /* handler */,
mAlwaysOnDisplayPolicy); mAlwaysOnDisplayPolicy);
mScreen.transitionTo(UNINITIALIZED, INITIALIZED); mScreen.transitionTo(UNINITIALIZED, INITIALIZED);