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

Commit 9958309d authored by Treehugger Robot's avatar Treehugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Don't create HBMMetadata for displays that don't support HBM" into udc-qpr-dev

parents a5b15857 53150194
Loading
Loading
Loading
Loading
+0 −5
Original line number Diff line number Diff line
@@ -3151,11 +3151,6 @@ public final class DisplayManagerService extends SystemService {
        // with the corresponding displaydevice.
        HighBrightnessModeMetadata hbmMetadata =
                mHighBrightnessModeMetadataMapper.getHighBrightnessModeMetadataLocked(display);
        if (hbmMetadata == null) {
            Slog.wtf(TAG, "High Brightness Mode Metadata is null in DisplayManagerService for "
                    + "display: " + display.getDisplayIdLocked());
            return null;
        }
        if (mConfigParameterProvider.isNewPowerControllerFeatureEnabled()) {
            displayPowerController = new DisplayPowerController2(
                    mContext, /* injector= */ null, mDisplayPowerCallbacks, mPowerHandler,
+2 −0
Original line number Diff line number Diff line
@@ -450,6 +450,8 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call
    private float[] mNitsRange;

    private final BrightnessRangeController mBrightnessRangeController;

    @Nullable
    private final HighBrightnessModeMetadata mHighBrightnessModeMetadata;

    private final BrightnessThrottler mBrightnessThrottler;
+27 −16
Original line number Diff line number Diff line
@@ -16,6 +16,7 @@

package com.android.server.display;

import android.annotation.Nullable;
import android.content.Context;
import android.database.ContentObserver;
import android.hardware.display.BrightnessInfo;
@@ -75,6 +76,8 @@ class HighBrightnessModeController {
    private final Injector mInjector;

    private HdrListener mHdrListener;

    @Nullable
    private HighBrightnessModeData mHbmData;
    private HdrBrightnessDeviceConfig mHdrBrightnessCfg;
    private IBinder mRegisteredDisplayToken;
@@ -107,7 +110,9 @@ class HighBrightnessModeController {
     * If HBM is currently running, this is the start time and set of all events,
     * for the current HBM session.
     */
    private HighBrightnessModeMetadata mHighBrightnessModeMetadata = null;
    @Nullable
    private HighBrightnessModeMetadata mHighBrightnessModeMetadata;

    HighBrightnessModeController(Handler handler, int width, int height, IBinder displayToken,
            String displayUniqueId, float brightnessMin, float brightnessMax,
            HighBrightnessModeData hbmData, HdrBrightnessDeviceConfig hdrBrightnessCfg,
@@ -310,10 +315,13 @@ class HighBrightnessModeController {
        pw.println("  mBrightnessMax=" + mBrightnessMax);
        pw.println("  remainingTime=" + calculateRemainingTime(mClock.uptimeMillis()));
        pw.println("  mIsTimeAvailable= " + mIsTimeAvailable);
        pw.println("  mRunningStartTimeMillis="
                + TimeUtils.formatUptime(mHighBrightnessModeMetadata.getRunningStartTimeMillis()));
        pw.println("  mIsBlockedByLowPowerMode=" + mIsBlockedByLowPowerMode);
        pw.println("  width*height=" + mWidth + "*" + mHeight);

        if (mHighBrightnessModeMetadata != null) {
            pw.println("  mRunningStartTimeMillis="
                    + TimeUtils.formatUptime(
                    mHighBrightnessModeMetadata.getRunningStartTimeMillis()));
            pw.println("  mEvents=");
            final long currentTime = mClock.uptimeMillis();
            long lastStartTime = currentTime;
@@ -328,6 +336,9 @@ class HighBrightnessModeController {
                }
                lastStartTime = dumpHbmEvent(pw, event);
            }
        } else {
            pw.println("  mHighBrightnessModeMetadata=null");
        }
    }

    private long dumpHbmEvent(PrintWriter pw, HbmEvent event) {
@@ -353,7 +364,7 @@ class HighBrightnessModeController {
    }

    private boolean deviceSupportsHbm() {
        return mHbmData != null;
        return mHbmData != null && mHighBrightnessModeMetadata != null;
    }

    private long calculateRemainingTime(long currentTime) {
+3 −0
Original line number Diff line number Diff line
@@ -41,6 +41,9 @@ class HighBrightnessModeMetadataMapper {
                    + display.getDisplayIdLocked());
            return null;
        }
        if (device.getDisplayDeviceConfig().getHighBrightnessModeData() == null) {
            return null;
        }

        final String uniqueId = device.getUniqueId();

+4 −2
Original line number Diff line number Diff line
@@ -50,6 +50,7 @@ import android.os.IBinder;
import android.os.Looper;
import android.os.PowerManager;
import android.os.SystemProperties;
import android.os.UserHandle;
import android.os.test.TestLooper;
import android.provider.Settings;
import android.testing.TestableContext;
@@ -144,11 +145,12 @@ public final class DisplayPowerController2Test {
        mTestLooper = new TestLooper(mClock::now);
        mHandler = new Handler(mTestLooper.getLooper());

        // Put the system into manual brightness by default, just to minimize unexpected events and
        // have a consistent starting state
        // Set some settings to minimize unexpected events and have a consistent starting state
        Settings.System.putInt(mContext.getContentResolver(),
                Settings.System.SCREEN_BRIGHTNESS_MODE,
                Settings.System.SCREEN_BRIGHTNESS_MODE_MANUAL);
        Settings.System.putFloatForUser(mContext.getContentResolver(),
                Settings.System.SCREEN_AUTO_BRIGHTNESS_ADJ, 0, UserHandle.USER_CURRENT);

        addLocalServiceMock(WindowManagerPolicy.class, mWindowManagerPolicyMock);
        addLocalServiceMock(ColorDisplayService.ColorDisplayServiceInternal.class,
Loading