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

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

Merge "Add better logging for override test case." into main

parents da9e59d9 e2a980fc
Loading
Loading
Loading
Loading
+8 −2
Original line number Diff line number Diff line
@@ -37,6 +37,7 @@ import android.window.ScreenCapture;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.util.List;
import java.util.Objects;
import java.util.Set;

/**
@@ -470,6 +471,9 @@ public abstract class DisplayManagerInternal {
        // Set to PowerManager.BRIGHTNESS_INVALID if there's no override.
        public float screenBrightnessOverride;

        // Tag used to identify the app window requesting the brightness override.
        public CharSequence screenBrightnessOverrideTag;

        // An override of the screen auto-brightness adjustment factor in the range -1 (dimmer) to
        // 1 (brighter). Set to Float.NaN if there's no override.
        public float screenAutoBrightnessAdjustmentOverride;
@@ -524,6 +528,7 @@ public abstract class DisplayManagerInternal {
            policy = other.policy;
            useProximitySensor = other.useProximitySensor;
            screenBrightnessOverride = other.screenBrightnessOverride;
            screenBrightnessOverrideTag = other.screenBrightnessOverrideTag;
            screenAutoBrightnessAdjustmentOverride = other.screenAutoBrightnessAdjustmentOverride;
            screenLowPowerBrightnessFactor = other.screenLowPowerBrightnessFactor;
            blockScreenOn = other.blockScreenOn;
@@ -544,8 +549,9 @@ public abstract class DisplayManagerInternal {
            return other != null
                    && policy == other.policy
                    && useProximitySensor == other.useProximitySensor
                    && floatEquals(screenBrightnessOverride,
                            other.screenBrightnessOverride)
                    && floatEquals(screenBrightnessOverride, other.screenBrightnessOverride)
                    && Objects.equals(screenBrightnessOverrideTag,
                            other.screenBrightnessOverrideTag)
                    && floatEquals(screenAutoBrightnessAdjustmentOverride,
                            other.screenAutoBrightnessAdjustmentOverride)
                    && screenLowPowerBrightnessFactor
+3 −1
Original line number Diff line number Diff line
@@ -104,8 +104,10 @@ public abstract class PowerManagerInternal {
     * This method must only be called by the window manager.
     *
     * @param brightness The overridden brightness, or Float.NaN to disable the override.
     * @param tag Source identifier of the app window that requests the override.
     */
    public abstract void setScreenBrightnessOverrideFromWindowManager(float brightness);
    public abstract void setScreenBrightnessOverrideFromWindowManager(
            float brightness, CharSequence tag);

    /**
     * Used by the window manager to override the user activity timeout based on the
+10 −0
Original line number Diff line number Diff line
@@ -331,6 +331,16 @@ public final class DisplayBrightnessState {
            return this;
        }

        /**
         * Sets the {@link BrightnessReason} using the int-based reason enum. This is a convenience
         * function so we don't have to type out the constructor syntax everywhere.
         *
         * @param brightnessReason The int-based brightness enum.
         */
        public Builder setBrightnessReason(int brightnessReason) {
            return setBrightnessReason(new BrightnessReason(brightnessReason));
        }

        /**
         * Gets the {@link com.android.server.display.brightness.strategy.DisplayBrightnessStrategy}
         * name
+38 −9
Original line number Diff line number Diff line
@@ -16,6 +16,7 @@

package com.android.server.display.brightness;

import android.annotation.Nullable;
import android.util.Slog;

import java.util.Objects;
@@ -66,6 +67,16 @@ public final class BrightnessReason {
    // Any number of MODIFIER_*
    private int mModifier;

    // Tag used to identify the source of the brightness (usually a specific activity/window).
    private CharSequence mTag;

    public BrightnessReason() {
    }

    public BrightnessReason(int reason) {
        setReason(reason);
    }

    /**
     * A utility to clone a BrightnessReason from another BrightnessReason event
     *
@@ -74,6 +85,7 @@ public final class BrightnessReason {
    public void set(BrightnessReason other) {
        setReason(other == null ? REASON_UNKNOWN : other.mReason);
        setModifier(other == null ? 0 : other.mModifier);
        setTag(other == null ? null : other.mTag);
    }

    /**
@@ -85,19 +97,20 @@ public final class BrightnessReason {
        setModifier(modifier | this.mModifier);
    }


    @Override
    public boolean equals(Object obj) {
        if (!(obj instanceof BrightnessReason)) {
            return false;
        }
        BrightnessReason other = (BrightnessReason) obj;
        return other.mReason == mReason && other.mModifier == mModifier;
        return other.mReason == mReason
                && other.mModifier == mModifier
                && Objects.equals(other.mTag != null ? other.mTag.toString() : null, mTag);
    }

    @Override
    public int hashCode() {
        return Objects.hash(mReason, mModifier);
        return Objects.hash(mReason, mModifier, mTag);
    }

    @Override
@@ -115,6 +128,11 @@ public final class BrightnessReason {
    public String toString(int adjustments) {
        final StringBuilder sb = new StringBuilder();
        sb.append(reasonToString(mReason));

        if (mTag != null) {
            sb.append("(").append(mTag).append(")");
        }

        sb.append(" [");
        if ((adjustments & ADJUSTMENT_AUTO_TEMP) != 0) {
            sb.append(" temp_adj");
@@ -149,8 +167,23 @@ public final class BrightnessReason {
        return sb.toString();
    }

    public void setTag(@Nullable CharSequence tag) {
        mTag = tag;
    }

    /**
     * A utility to set the reason of the BrightnessReason object
     * Gets the tag to identify who requested the brightness.
     */
    @Nullable public CharSequence getTag() {
        return mTag;
    }

    public int getReason() {
        return mReason;
    }

    /**
     * Sets the reason of the BrightnessReason object
     *
     * @param reason The value to which the reason is to be updated.
     */
@@ -162,16 +195,12 @@ public final class BrightnessReason {
        }
    }

    public int getReason() {
        return mReason;
    }

    public int getModifier() {
        return mModifier;
    }

    /**
     * A utility to set the modified of the current BrightnessReason object
     * Sets the modifier bitflags of the current BrightnessReason object
     *
     * @param modifier The value to which the modifier is to be updated
     */
+10 −4
Original line number Diff line number Diff line
@@ -16,9 +16,10 @@

package com.android.server.display.brightness.strategy;

import android.hardware.display.DisplayManagerInternal.DisplayPowerRequest;

import com.android.server.display.DisplayBrightnessState;
import com.android.server.display.brightness.BrightnessReason;
import com.android.server.display.brightness.BrightnessUtils;
import com.android.server.display.brightness.StrategyExecutionRequest;
import com.android.server.display.brightness.StrategySelectionNotifyRequest;

@@ -33,9 +34,14 @@ public class OverrideBrightnessStrategy implements DisplayBrightnessStrategy {
            StrategyExecutionRequest strategyExecutionRequest) {
        // Todo(b/241308599): Introduce a validator class and add validations before setting
        // the brightness
        return BrightnessUtils.constructDisplayBrightnessState(BrightnessReason.REASON_OVERRIDE,
                strategyExecutionRequest.getDisplayPowerRequest().screenBrightnessOverride,
                getName());
        DisplayPowerRequest dpr = strategyExecutionRequest.getDisplayPowerRequest();
        BrightnessReason reason = new BrightnessReason(BrightnessReason.REASON_OVERRIDE);
        reason.setTag(dpr.screenBrightnessOverrideTag);
        return new DisplayBrightnessState.Builder()
                .setBrightness(dpr.screenBrightnessOverride)
                .setBrightnessReason(reason)
                .setDisplayBrightnessStrategyName(getName())
                .build();
    }

    @Override
Loading