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

Commit d5279d54 authored by Treehugger Robot's avatar Treehugger Robot Committed by Automerger Merge Worker
Browse files

Merge "Don't create HBMMetadata for displays that don't support HBM" into...

Merge "Don't create HBMMetadata for displays that don't support HBM" into udc-qpr-dev am: 9958309d am: abc6710c

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/24061424



Change-Id: I3dadc2413dd214d1808b2c199f1b22ccad5e0ced
Signed-off-by: default avatarAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
parents 52276eef abc6710c
Loading
Loading
Loading
Loading
+0 −5
Original line number Diff line number Diff line
@@ -3138,11 +3138,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