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

Commit 561a610d authored by Android Build Coastguard Worker's avatar Android Build Coastguard Worker
Browse files

Snap for 10344113 from d6d7f44c to udc-qpr1-release

Change-Id: I7dd17a9384a8993d9cd22927b712f6631cf579e2
parents becb1748 d6d7f44c
Loading
Loading
Loading
Loading
+18 −26
Original line number Diff line number Diff line
@@ -515,9 +515,7 @@ public class DisplayDeviceConfig {
    private final SensorData mScreenOffBrightnessSensor = new SensorData();

    // The details of the proximity sensor associated with this display.
    // Is null when no sensor should be used for that display
    @Nullable
    private SensorData mProximitySensor = new SensorData();
    private final SensorData mProximitySensor = new SensorData();

    private final List<RefreshRateLimitation> mRefreshRateLimitations =
            new ArrayList<>(2 /*initialCapacity*/);
@@ -1339,7 +1337,6 @@ public class DisplayDeviceConfig {
        return mScreenOffBrightnessSensor;
    }

    @Nullable
    SensorData getProximitySensor() {
        return mProximitySensor;
    }
@@ -2566,51 +2563,46 @@ public class DisplayDeviceConfig {
    private void loadAmbientLightSensorFromDdc(DisplayConfiguration config) {
        final SensorDetails sensorDetails = config.getLightSensor();
        if (sensorDetails != null) {
            loadSensorData(sensorDetails, mAmbientLightSensor);
            mAmbientLightSensor.type = sensorDetails.getType();
            mAmbientLightSensor.name = sensorDetails.getName();
            final RefreshRateRange rr = sensorDetails.getRefreshRate();
            if (rr != null) {
                mAmbientLightSensor.minRefreshRate = rr.getMinimum().floatValue();
                mAmbientLightSensor.maxRefreshRate = rr.getMaximum().floatValue();
            }
        } else {
            loadAmbientLightSensorFromConfigXml();
        }
    }

    private void setProxSensorUnspecified() {
        mProximitySensor = new SensorData();
        mProximitySensor.name = null;
        mProximitySensor.type = null;
    }

    private void loadScreenOffBrightnessSensorFromDdc(DisplayConfiguration config) {
        final SensorDetails sensorDetails = config.getScreenOffBrightnessSensor();
        if (sensorDetails != null) {
            loadSensorData(sensorDetails, mScreenOffBrightnessSensor);
            mScreenOffBrightnessSensor.type = sensorDetails.getType();
            mScreenOffBrightnessSensor.name = sensorDetails.getName();
        }
    }

    private void loadProxSensorFromDdc(DisplayConfiguration config) {
        SensorDetails sensorDetails = config.getProxSensor();
        if (sensorDetails != null) {
            String name = sensorDetails.getName();
            String type = sensorDetails.getType();
            if ("".equals(name) && "".equals(type)) {
                // <proxSensor> with empty values to the config means no sensor should be used
                mProximitySensor = null;
            } else {
                mProximitySensor = new SensorData();
                loadSensorData(sensorDetails, mProximitySensor);
            mProximitySensor.name = sensorDetails.getName();
            mProximitySensor.type = sensorDetails.getType();
            final RefreshRateRange rr = sensorDetails.getRefreshRate();
            if (rr != null) {
                mProximitySensor.minRefreshRate = rr.getMinimum().floatValue();
                mProximitySensor.maxRefreshRate = rr.getMaximum().floatValue();
            }
        } else {
            setProxSensorUnspecified();
        }
    }

    private void loadSensorData(@NonNull SensorDetails sensorDetails,
            @NonNull SensorData sensorData) {
        sensorData.name = sensorDetails.getName();
        sensorData.type = sensorDetails.getType();
        final RefreshRateRange rr = sensorDetails.getRefreshRate();
        if (rr != null) {
            sensorData.minRefreshRate = rr.getMinimum().floatValue();
            sensorData.maxRefreshRate = rr.getMaximum().floatValue();
        }
    }

    private void loadBrightnessChangeThresholdsFromXml() {
        loadBrightnessChangeThresholds(/* config= */ null);
    }
+11 −5
Original line number Diff line number Diff line
@@ -2301,23 +2301,29 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call
    }

    private void loadAmbientLightSensor() {
        DisplayDeviceConfig.SensorData lightSensor = mDisplayDeviceConfig.getAmbientLightSensor();
        final int fallbackType = mDisplayId == Display.DEFAULT_DISPLAY
                ? Sensor.TYPE_LIGHT : SensorUtils.NO_FALLBACK;
        mLightSensor = SensorUtils.findSensor(mSensorManager,
                mDisplayDeviceConfig.getAmbientLightSensor(), fallbackType);
        mLightSensor = SensorUtils.findSensor(mSensorManager, lightSensor.type, lightSensor.name,
                fallbackType);
    }

    private void loadScreenOffBrightnessSensor() {
        DisplayDeviceConfig.SensorData screenOffBrightnessSensor =
                mDisplayDeviceConfig.getScreenOffBrightnessSensor();
        mScreenOffBrightnessSensor = SensorUtils.findSensor(mSensorManager,
                mDisplayDeviceConfig.getScreenOffBrightnessSensor(), SensorUtils.NO_FALLBACK);
                screenOffBrightnessSensor.type, screenOffBrightnessSensor.name,
                SensorUtils.NO_FALLBACK);
    }

    private void loadProximitySensor() {
        if (DEBUG_PRETEND_PROXIMITY_SENSOR_ABSENT || mDisplayId != Display.DEFAULT_DISPLAY) {
            return;
        }
        mProximitySensor = SensorUtils.findSensor(mSensorManager,
                mDisplayDeviceConfig.getProximitySensor(), Sensor.TYPE_PROXIMITY);
        final DisplayDeviceConfig.SensorData proxSensor =
                mDisplayDeviceConfig.getProximitySensor();
        mProximitySensor = SensorUtils.findSensor(mSensorManager, proxSensor.type, proxSensor.name,
                Sensor.TYPE_PROXIMITY);
        if (mProximitySensor != null) {
            mProximityThreshold = Math.min(mProximitySensor.getMaximumRange(),
                    TYPICAL_PROXIMITY_THRESHOLD);
+7 −3
Original line number Diff line number Diff line
@@ -1948,15 +1948,19 @@ final class DisplayPowerController2 implements AutomaticBrightnessController.Cal
    }

    private void loadAmbientLightSensor() {
        DisplayDeviceConfig.SensorData lightSensor = mDisplayDeviceConfig.getAmbientLightSensor();
        final int fallbackType = mDisplayId == Display.DEFAULT_DISPLAY
                ? Sensor.TYPE_LIGHT : SensorUtils.NO_FALLBACK;
        mLightSensor = SensorUtils.findSensor(mSensorManager,
                mDisplayDeviceConfig.getAmbientLightSensor(), fallbackType);
        mLightSensor = SensorUtils.findSensor(mSensorManager, lightSensor.type, lightSensor.name,
                fallbackType);
    }

    private void loadScreenOffBrightnessSensor() {
        DisplayDeviceConfig.SensorData screenOffBrightnessSensor =
                mDisplayDeviceConfig.getScreenOffBrightnessSensor();
        mScreenOffBrightnessSensor = SensorUtils.findSensor(mSensorManager,
                mDisplayDeviceConfig.getScreenOffBrightnessSensor(), SensorUtils.NO_FALLBACK);
                screenOffBrightnessSensor.type, screenOffBrightnessSensor.name,
                SensorUtils.NO_FALLBACK);
    }

    private float clampScreenBrightness(float value) {
+4 −2
Original line number Diff line number Diff line
@@ -358,8 +358,10 @@ public final class DisplayPowerProximityStateController {
        if (DEBUG_PRETEND_PROXIMITY_SENSOR_ABSENT || mDisplayId != Display.DEFAULT_DISPLAY) {
            return;
        }
        mProximitySensor = SensorUtils.findSensor(mSensorManager,
                mDisplayDeviceConfig.getProximitySensor(), Sensor.TYPE_PROXIMITY);
        final DisplayDeviceConfig.SensorData proxSensor =
                mDisplayDeviceConfig.getProximitySensor();
        mProximitySensor = SensorUtils.findSensor(mSensorManager, proxSensor.type, proxSensor.name,
                Sensor.TYPE_PROXIMITY);
        if (mProximitySensor != null) {
            mProximityThreshold = Math.min(mProximitySensor.getMaximumRange(),
                    TYPICAL_PROXIMITY_THRESHOLD);
+6 −18
Original line number Diff line number Diff line
@@ -16,13 +16,10 @@

package com.android.server.display.utils;

import android.annotation.Nullable;
import android.hardware.Sensor;
import android.hardware.SensorManager;
import android.text.TextUtils;

import com.android.server.display.DisplayDeviceConfig;

import java.util.List;

/**
@@ -31,27 +28,18 @@ import java.util.List;
public class SensorUtils {
    public static final int NO_FALLBACK = 0;

    /**
     * Finds the specified sensor for SensorData from DisplayDeviceConfig.
     */
    @Nullable
    public static Sensor findSensor(@Nullable SensorManager sensorManager,
            @Nullable DisplayDeviceConfig.SensorData sensorData, int fallbackType) {
        if (sensorData == null) {
            return null;
        } else {
            return findSensor(sensorManager, sensorData.type, sensorData.name, fallbackType);
        }
    }
    /**
     * Finds the specified sensor by type and name using SensorManager.
     */
    @Nullable
    public static Sensor findSensor(@Nullable SensorManager sensorManager,
            @Nullable String sensorType, @Nullable String sensorName, int fallbackType) {
    public static Sensor findSensor(SensorManager sensorManager, String sensorType,
            String sensorName, int fallbackType) {
        if (sensorManager == null) {
            return null;
        }

        if ("".equals(sensorName) && "".equals(sensorType)) {
            return null;
        }
        final boolean isNameSpecified = !TextUtils.isEmpty(sensorName);
        final boolean isTypeSpecified = !TextUtils.isEmpty(sensorType);
        if (isNameSpecified || isTypeSpecified) {
Loading