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

Commit 4e0b08b5 authored by Android Build Coastguard Worker's avatar Android Build Coastguard Worker
Browse files

Merge cherrypicks of [16671306, 16681376, 16682150] into sc-v2-release.

Change-Id: I635aedc9fe28cf2e12ad7c217d8fd37c258c1b94
parents aceb6ed4 34af3074
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
@@ -40,4 +40,11 @@ public abstract class ServiceStartNotAllowedException extends IllegalStateExcept
            return new BackgroundServiceStartNotAllowedException(message);
        }
    }

    @Override
    public synchronized Throwable getCause() {
        // "Cause" is often used for clustering exceptions, and developers don't want to have it
        // for this exception. b/210890426
        return null;
    }
}
+3 −1
Original line number Diff line number Diff line
@@ -16,6 +16,8 @@

package com.android.keyguard;

import android.util.Log;

/**
 * Defines constants for the Keyguard.
 */
@@ -25,7 +27,7 @@ public class KeyguardConstants {
     * Turns on debugging information for the whole Keyguard. This is very verbose and should only
     * be used temporarily for debugging.
     */
    public static final boolean DEBUG = false;
    public static final boolean DEBUG = Log.isLoggable("Keyguard", Log.DEBUG);
    public static final boolean DEBUG_SIM_STATES = true;
    public static final boolean DEBUG_BIOMETRIC_WAKELOCK = true;
}
+35 −82
Original line number Diff line number Diff line
@@ -50,8 +50,6 @@ import android.os.UserHandle;
import android.provider.Settings;
import android.util.Log;
import android.util.MathUtils;
import android.util.MutableFloat;
import android.util.MutableInt;
import android.util.Slog;
import android.util.TimeUtils;
import android.view.Display;
@@ -1325,7 +1323,6 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call

        // Animate the screen brightness when the screen is on or dozing.
        // Skip the animation when the screen is off or suspended or transition to/from VR.
        boolean brightnessAdjusted = false;
        if (!mPendingScreenOff) {
            if (mSkipScreenOnBrightnessRamp) {
                if (state == Display.STATE_ON) {
@@ -1413,19 +1410,15 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call
                    // slider event so notify as if the system changed the brightness.
                    userInitiatedChange = false;
                }
                notifyBrightnessTrackerChanged(brightnessState, userInitiatedChange,
                notifyBrightnessChanged(brightnessState, userInitiatedChange,
                        hadUserBrightnessPoint);
            }

            // We save the brightness info *after* the brightness setting has been changed and
            // adjustments made so that the brightness info reflects the latest value.
            brightnessAdjusted = saveBrightnessInfo(getScreenBrightnessSetting(), animateValue);
            saveBrightnessInfo(getScreenBrightnessSetting(), animateValue);
        } else {
            brightnessAdjusted = saveBrightnessInfo(getScreenBrightnessSetting());
        }

        if (brightnessAdjusted) {
            postBrightnessChangeRunnable();
            saveBrightnessInfo(getScreenBrightnessSetting());
        }

        // Log any changes to what is currently driving the brightness setting.
@@ -1541,48 +1534,29 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call
    public BrightnessInfo getBrightnessInfo() {
        synchronized (mCachedBrightnessInfo) {
            return new BrightnessInfo(
                    mCachedBrightnessInfo.brightness.value,
                    mCachedBrightnessInfo.adjustedBrightness.value,
                    mCachedBrightnessInfo.brightnessMin.value,
                    mCachedBrightnessInfo.brightnessMax.value,
                    mCachedBrightnessInfo.hbmMode.value,
                    mCachedBrightnessInfo.hbmTransitionPoint.value);
                    mCachedBrightnessInfo.brightness,
                    mCachedBrightnessInfo.adjustedBrightness,
                    mCachedBrightnessInfo.brightnessMin,
                    mCachedBrightnessInfo.brightnessMax,
                    mCachedBrightnessInfo.hbmMode,
                    mCachedBrightnessInfo.highBrightnessTransitionPoint);
        }
    }

    private boolean saveBrightnessInfo(float brightness) {
        return saveBrightnessInfo(brightness, brightness);
    private void saveBrightnessInfo(float brightness) {
        saveBrightnessInfo(brightness, brightness);
    }

    private boolean saveBrightnessInfo(float brightness, float adjustedBrightness) {
    private void saveBrightnessInfo(float brightness, float adjustedBrightness) {
        synchronized (mCachedBrightnessInfo) {
            boolean changed = false;

            changed |=
                mCachedBrightnessInfo.checkAndSetFloat(mCachedBrightnessInfo.brightness,
                        brightness);
            changed |=
                mCachedBrightnessInfo.checkAndSetFloat(mCachedBrightnessInfo.adjustedBrightness,
                        adjustedBrightness);
            changed |=
                mCachedBrightnessInfo.checkAndSetFloat(mCachedBrightnessInfo.brightnessMin,
                        mHbmController.getCurrentBrightnessMin());
            changed |=
                mCachedBrightnessInfo.checkAndSetFloat(mCachedBrightnessInfo.brightnessMax,
                        mHbmController.getCurrentBrightnessMax());
            changed |=
                mCachedBrightnessInfo.checkAndSetInt(mCachedBrightnessInfo.hbmMode,
                        mHbmController.getHighBrightnessMode());
            changed |=
                mCachedBrightnessInfo.checkAndSetFloat(mCachedBrightnessInfo.hbmTransitionPoint,
                        mHbmController.getTransitionPoint());

            return changed;
        }
    }

    void postBrightnessChangeRunnable() {
        mHandler.post(mOnBrightnessChangeRunnable);
            mCachedBrightnessInfo.brightness = brightness;
            mCachedBrightnessInfo.adjustedBrightness = adjustedBrightness;
            mCachedBrightnessInfo.brightnessMin = mHbmController.getCurrentBrightnessMin();
            mCachedBrightnessInfo.brightnessMax = mHbmController.getCurrentBrightnessMax();
            mCachedBrightnessInfo.hbmMode = mHbmController.getHighBrightnessMode();
            mCachedBrightnessInfo.highBrightnessTransitionPoint =
                mHbmController.getTransitionPoint();
        }
    }

    private HighBrightnessModeController createHbmControllerLocked() {
@@ -1597,7 +1571,7 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call
                PowerManager.BRIGHTNESS_MIN, PowerManager.BRIGHTNESS_MAX, hbmData,
                () -> {
                    sendUpdatePowerStateLocked();
                    postBrightnessChangeRunnable();
                    mHandler.post(mOnBrightnessChangeRunnable);
                    // TODO(b/192258832): Switch the HBMChangeCallback to a listener pattern.
                    if (mAutomaticBrightnessController != null) {
                        mAutomaticBrightnessController.update();
@@ -2099,7 +2073,7 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call
    private void setCurrentScreenBrightness(float brightnessValue) {
        if (brightnessValue != mCurrentScreenBrightnessSetting) {
            mCurrentScreenBrightnessSetting = brightnessValue;
            postBrightnessChangeRunnable();
            mHandler.post(mOnBrightnessChangeRunnable);
        }
    }

@@ -2151,7 +2125,7 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call
        return true;
    }

    private void notifyBrightnessTrackerChanged(float brightness, boolean userInitiated,
    private void notifyBrightnessChanged(float brightness, boolean userInitiated,
            boolean hadUserDataPoint) {
        final float brightnessInNits = convertToNits(brightness);
        if (mPowerRequest.useAutoBrightness && brightnessInNits >= 0.0f
@@ -2262,17 +2236,16 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call
        pw.println("  mColorFadeFadesConfig=" + mColorFadeFadesConfig);
        pw.println("  mColorFadeEnabled=" + mColorFadeEnabled);
        synchronized (mCachedBrightnessInfo) {
            pw.println("  mCachedBrightnessInfo.brightness=" +
                    mCachedBrightnessInfo.brightness.value);
            pw.println("  mCachedBrightnessInfo.brightness=" + mCachedBrightnessInfo.brightness);
            pw.println("  mCachedBrightnessInfo.adjustedBrightness=" +
                    mCachedBrightnessInfo.adjustedBrightness.value);
                    mCachedBrightnessInfo.adjustedBrightness);
            pw.println("  mCachedBrightnessInfo.brightnessMin=" +
                    mCachedBrightnessInfo.brightnessMin.value);
                    mCachedBrightnessInfo.brightnessMin);
            pw.println("  mCachedBrightnessInfo.brightnessMax=" +
                    mCachedBrightnessInfo.brightnessMax.value);
            pw.println("  mCachedBrightnessInfo.hbmMode=" + mCachedBrightnessInfo.hbmMode.value);
            pw.println("  mCachedBrightnessInfo.hbmTransitionPoint=" +
                    mCachedBrightnessInfo.hbmTransitionPoint.value);
                    mCachedBrightnessInfo.brightnessMax);
            pw.println("  mCachedBrightnessInfo.hbmMode=" + mCachedBrightnessInfo.hbmMode);
            pw.println("  mCachedBrightnessInfo.highBrightnessTransitionPoint=" +
                    mCachedBrightnessInfo.highBrightnessTransitionPoint);
        }
        pw.println("  mDisplayBlanksAfterDozeConfig=" + mDisplayBlanksAfterDozeConfig);
        pw.println("  mBrightnessBucketsInDozeConfig=" + mBrightnessBucketsInDozeConfig);
@@ -2690,31 +2663,11 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call
    }

    static class CachedBrightnessInfo {
        public MutableFloat brightness = new MutableFloat(PowerManager.BRIGHTNESS_INVALID_FLOAT);
        public MutableFloat adjustedBrightness =
            new MutableFloat(PowerManager.BRIGHTNESS_INVALID_FLOAT);
        public MutableFloat brightnessMin =
            new MutableFloat(PowerManager.BRIGHTNESS_INVALID_FLOAT);
        public MutableFloat brightnessMax =
            new MutableFloat(PowerManager.BRIGHTNESS_INVALID_FLOAT);
        public MutableInt hbmMode = new MutableInt(BrightnessInfo.HIGH_BRIGHTNESS_MODE_OFF);
        public MutableFloat hbmTransitionPoint =
            new MutableFloat(HighBrightnessModeController.HBM_TRANSITION_POINT_INVALID);

        public boolean checkAndSetFloat(MutableFloat mf, float f) {
            if (mf.value != f) {
                mf.value = f;
                return true;
            }
            return false;
        }

        public boolean checkAndSetInt(MutableInt mi, int i) {
            if (mi.value != i) {
                mi.value = i;
                return true;
            }
            return false;
        }
        public float brightness;
        public float adjustedBrightness;
        public float brightnessMin;
        public float brightnessMax;
        public int hbmMode;
        public float highBrightnessTransitionPoint;
    }
}