Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 43b03428 authored by Dave Mankoff's avatar Dave Mankoff
Browse files

Change nullable sensor to Optional sensor.

Fixes: 166469341
Test: manual
Change-Id: I8cf3471a37423648f606fa518b0f37999a84bc93
parent 1df526df
Loading
Loading
Loading
Loading
+10 −9
Original line number Original line Diff line number Diff line
@@ -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) {
+6 −6
Original line number Original line Diff line number Diff line
@@ -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)));
    }
    }
}
}
+5 −3
Original line number Original line Diff line number Diff line
@@ -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);