Adding support for strategy name in the BrightnessEvent

Bug: 259619745
Test: com.android.server.display
Change-Id: I55b9603ff63d6f252424c3b1cdbd2558fea9fc16
This commit is contained in:
Rupesh Bansal
2023-01-20 13:50:31 +00:00
parent 899d2fe8f8
commit 54aa9f6bb5
18 changed files with 76 additions and 11 deletions

View File

@@ -28,11 +28,13 @@ public final class DisplayBrightnessState {
private final float mBrightness;
private final float mSdrBrightness;
private final BrightnessReason mBrightnessReason;
private final String mDisplayBrightnessStrategyName;
private DisplayBrightnessState(Builder builder) {
this.mBrightness = builder.getBrightness();
this.mSdrBrightness = builder.getSdrBrightness();
this.mBrightnessReason = builder.getBrightnessReason();
this.mDisplayBrightnessStrategyName = builder.getDisplayBrightnessStrategyName();
}
/**
@@ -56,6 +58,14 @@ public final class DisplayBrightnessState {
return mBrightnessReason;
}
/**
* Gets the {@link com.android.server.display.brightness.strategy.DisplayBrightnessStrategy}
* name
*/
public String getDisplayBrightnessStrategyName() {
return mDisplayBrightnessStrategyName;
}
@Override
public String toString() {
StringBuilder stringBuilder = new StringBuilder("DisplayBrightnessState:");
@@ -93,6 +103,10 @@ public final class DisplayBrightnessState {
if (!mBrightnessReason.equals(displayBrightnessState.getBrightnessReason())) {
return false;
}
if (!mDisplayBrightnessStrategyName.equals(
displayBrightnessState.getDisplayBrightnessStrategyName())) {
return false;
}
return true;
}
@@ -108,6 +122,7 @@ public final class DisplayBrightnessState {
private float mBrightness;
private float mSdrBrightness;
private BrightnessReason mBrightnessReason = new BrightnessReason();
private String mDisplayBrightnessStrategyName;
/**
* Gets the brightness
@@ -163,6 +178,27 @@ public final class DisplayBrightnessState {
return this;
}
/**
* Gets the {@link com.android.server.display.brightness.strategy.DisplayBrightnessStrategy}
* name
*/
public String getDisplayBrightnessStrategyName() {
return mDisplayBrightnessStrategyName;
}
/**
* Sets the
* {@link com.android.server.display.brightness.strategy.DisplayBrightnessStrategy}'s name
*
* @param displayBrightnessStrategyName The name of the
* {@link com.android.server.display.brightness.strategy.DisplayBrightnessStrategy} being
* used.
*/
public Builder setDisplayBrightnessStrategyName(String displayBrightnessStrategyName) {
this.mDisplayBrightnessStrategyName = displayBrightnessStrategyName;
return this;
}
/**
* This is used to construct an immutable DisplayBrightnessState object from its builder
*/

View File

@@ -1533,6 +1533,8 @@ final class DisplayPowerController2 implements AutomaticBrightnessController.Cal
? mCdsi.getReduceBrightColorsStrength() : -1);
mTempBrightnessEvent.setPowerFactor(mPowerRequest.screenLowPowerBrightnessFactor);
mTempBrightnessEvent.setWasShortTermModelActive(hadUserBrightnessPoint);
mTempBrightnessEvent.setDisplayBrightnessStrategyName(displayBrightnessState
.getDisplayBrightnessStrategyName());
// Temporary is what we use during slider interactions. We avoid logging those so that
// we don't spam logcat when the slider is being used.
boolean tempToTempTransition =

View File

@@ -53,6 +53,7 @@ public final class BrightnessEvent {
private int mFlags;
private int mAdjustmentFlags;
private boolean mAutomaticBrightnessEnabled;
private String mDisplayBrightnessStrategyName;
public BrightnessEvent(BrightnessEvent that) {
copyFrom(that);
@@ -92,6 +93,7 @@ public final class BrightnessEvent {
mAdjustmentFlags = that.getAdjustmentFlags();
// Auto-brightness setting
mAutomaticBrightnessEnabled = that.isAutomaticBrightnessEnabled();
mDisplayBrightnessStrategyName = that.getDisplayBrightnessStrategyName();
}
/**
@@ -120,6 +122,7 @@ public final class BrightnessEvent {
mAdjustmentFlags = 0;
// Auto-brightness setting
mAutomaticBrightnessEnabled = true;
mDisplayBrightnessStrategyName = "";
}
/**
@@ -157,7 +160,8 @@ public final class BrightnessEvent {
&& mWasShortTermModelActive == that.mWasShortTermModelActive
&& mFlags == that.mFlags
&& mAdjustmentFlags == that.mAdjustmentFlags
&& mAutomaticBrightnessEnabled == that.mAutomaticBrightnessEnabled;
&& mAutomaticBrightnessEnabled == that.mAutomaticBrightnessEnabled
&& mDisplayBrightnessStrategyName.equals(that.mDisplayBrightnessStrategyName);
}
/**
@@ -185,7 +189,8 @@ public final class BrightnessEvent {
+ ", wasShortTermModelActive=" + mWasShortTermModelActive
+ ", flags=" + flagsToString()
+ ", reason=" + mReason.toString(mAdjustmentFlags)
+ ", autoBrightness=" + mAutomaticBrightnessEnabled;
+ ", autoBrightness=" + mAutomaticBrightnessEnabled
+ ", strategy=" + mDisplayBrightnessStrategyName;
}
@Override
@@ -355,6 +360,14 @@ public final class BrightnessEvent {
return mAutomaticBrightnessEnabled;
}
public void setDisplayBrightnessStrategyName(String displayBrightnessStrategyName) {
mDisplayBrightnessStrategyName = displayBrightnessStrategyName;
}
public String getDisplayBrightnessStrategyName() {
return mDisplayBrightnessStrategyName;
}
public void setAutomaticBrightnessEnabled(boolean mAutomaticBrightnessEnabled) {
this.mAutomaticBrightnessEnabled = mAutomaticBrightnessEnabled;
}

View File

@@ -45,13 +45,15 @@ public final class BrightnessUtils {
* A utility to construct the DisplayBrightnessState
*/
public static DisplayBrightnessState constructDisplayBrightnessState(
int brightnessChangeReason, float brightness, float sdrBrightness) {
int brightnessChangeReason, float brightness, float sdrBrightness,
String displayBrightnessStrategyName) {
BrightnessReason brightnessReason = new BrightnessReason();
brightnessReason.setReason(brightnessChangeReason);
return new DisplayBrightnessState.Builder()
.setBrightness(brightness)
.setSdrBrightness(sdrBrightness)
.setBrightnessReason(brightnessReason)
.setDisplayBrightnessStrategyName(displayBrightnessStrategyName)
.build();
}
}

View File

@@ -40,7 +40,7 @@ public class BoostBrightnessStrategy implements DisplayBrightnessStrategy {
DisplayBrightnessState displayBrightnessState =
BrightnessUtils.constructDisplayBrightnessState(BrightnessReason.REASON_BOOST,
PowerManager.BRIGHTNESS_MAX,
PowerManager.BRIGHTNESS_MAX);
PowerManager.BRIGHTNESS_MAX, getName());
return displayBrightnessState;
}

View File

@@ -33,7 +33,8 @@ public class DozeBrightnessStrategy implements DisplayBrightnessStrategy {
// Todo(b/241308599): Introduce a validator class and add validations before setting
// the brightness
return BrightnessUtils.constructDisplayBrightnessState(BrightnessReason.REASON_DOZE,
displayPowerRequest.dozeScreenBrightness, displayPowerRequest.dozeScreenBrightness);
displayPowerRequest.dozeScreenBrightness, displayPowerRequest.dozeScreenBrightness,
getName());
}
@Override

View File

@@ -48,7 +48,7 @@ public class FollowerBrightnessStrategy implements DisplayBrightnessStrategy {
// Todo(b/241308599): Introduce a validator class and add validations before setting
// the brightness
return BrightnessUtils.constructDisplayBrightnessState(BrightnessReason.REASON_FOLLOWER,
mBrightnessToFollow, mBrightnessToFollow);
mBrightnessToFollow, mBrightnessToFollow, getName());
}
@Override

View File

@@ -31,7 +31,8 @@ public class InvalidBrightnessStrategy implements DisplayBrightnessStrategy {
public DisplayBrightnessState updateBrightness(
DisplayManagerInternal.DisplayPowerRequest displayPowerRequest) {
return BrightnessUtils.constructDisplayBrightnessState(BrightnessReason.REASON_UNKNOWN,
PowerManager.BRIGHTNESS_INVALID_FLOAT, PowerManager.BRIGHTNESS_INVALID_FLOAT);
PowerManager.BRIGHTNESS_INVALID_FLOAT, PowerManager.BRIGHTNESS_INVALID_FLOAT,
getName());
}
@Override

View File

@@ -33,7 +33,7 @@ public class OverrideBrightnessStrategy implements DisplayBrightnessStrategy {
// the brightness
return BrightnessUtils.constructDisplayBrightnessState(BrightnessReason.REASON_OVERRIDE,
displayPowerRequest.screenBrightnessOverride,
displayPowerRequest.screenBrightnessOverride);
displayPowerRequest.screenBrightnessOverride, getName());
}
@Override

View File

@@ -34,7 +34,7 @@ public class ScreenOffBrightnessStrategy implements DisplayBrightnessStrategy {
// the brightness
return BrightnessUtils.constructDisplayBrightnessState(BrightnessReason.REASON_SCREEN_OFF,
PowerManager.BRIGHTNESS_OFF_FLOAT,
PowerManager.BRIGHTNESS_OFF_FLOAT);
PowerManager.BRIGHTNESS_OFF_FLOAT, getName());
}
@Override

View File

@@ -48,7 +48,7 @@ public class TemporaryBrightnessStrategy implements DisplayBrightnessStrategy {
DisplayBrightnessState displayBrightnessState =
BrightnessUtils.constructDisplayBrightnessState(BrightnessReason.REASON_TEMPORARY,
mTemporaryScreenBrightness,
mTemporaryScreenBrightness);
mTemporaryScreenBrightness, getName());
return displayBrightnessState;
}

View File

@@ -30,6 +30,7 @@ import org.junit.runner.RunWith;
@SmallTest
@RunWith(AndroidJUnit4.class)
public final class BrightnessEventTest {
private static final String DISPLAY_BRIGHTNESS_STRATEGY_NAME = "strategy_name";
private BrightnessEvent mBrightnessEvent;
@Before
@@ -53,6 +54,7 @@ public final class BrightnessEventTest {
mBrightnessEvent.setFlags(0);
mBrightnessEvent.setAdjustmentFlags(0);
mBrightnessEvent.setAutomaticBrightnessEnabled(true);
mBrightnessEvent.setDisplayBrightnessStrategyName(DISPLAY_BRIGHTNESS_STRATEGY_NAME);
}
@Test
@@ -70,7 +72,8 @@ public final class BrightnessEventTest {
"BrightnessEvent: disp=1, physDisp=test, brt=0.6, initBrt=25.0, rcmdBrt=0.6,"
+ " preBrt=NaN, lux=100.0, preLux=150.0, hbmMax=0.62, hbmMode=off, rbcStrength=-1,"
+ " thrmMax=0.65, powerFactor=0.2, wasShortTermModelActive=true, flags=,"
+ " reason=doze [ low_pwr ], autoBrightness=true";
+ " reason=doze [ low_pwr ], autoBrightness=true, strategy="
+ DISPLAY_BRIGHTNESS_STRATEGY_NAME;
assertEquals(expectedString, actualString);
}

View File

@@ -55,6 +55,7 @@ public class BoostBrightnessStrategyTest {
.setBrightness(PowerManager.BRIGHTNESS_MAX)
.setBrightnessReason(brightnessReason)
.setSdrBrightness(PowerManager.BRIGHTNESS_MAX)
.setDisplayBrightnessStrategyName(mBoostBrightnessStrategy.getName())
.build();
DisplayBrightnessState updatedDisplayBrightnessState =
mBoostBrightnessStrategy.updateBrightness(displayPowerRequest);

View File

@@ -52,6 +52,7 @@ public class DozeBrightnessStrategyTest {
.setBrightness(dozeScreenBrightness)
.setBrightnessReason(brightnessReason)
.setSdrBrightness(dozeScreenBrightness)
.setDisplayBrightnessStrategyName(mDozeBrightnessModeStrategy.getName())
.build();
DisplayBrightnessState updatedDisplayBrightnessState =
mDozeBrightnessModeStrategy.updateBrightness(displayPowerRequest);

View File

@@ -54,6 +54,7 @@ public class FollowerBrightnessStrategyTest {
.setBrightness(brightnessToFollow)
.setBrightnessReason(brightnessReason)
.setSdrBrightness(brightnessToFollow)
.setDisplayBrightnessStrategyName(mFollowerBrightnessStrategy.getName())
.build();
DisplayBrightnessState updatedDisplayBrightnessState =
mFollowerBrightnessStrategy.updateBrightness(displayPowerRequest);

View File

@@ -55,6 +55,7 @@ public class OverrideBrightnessStrategyTest {
.setBrightness(overrideBrightness)
.setBrightnessReason(brightnessReason)
.setSdrBrightness(overrideBrightness)
.setDisplayBrightnessStrategyName(mOverrideBrightnessStrategy.getName())
.build();
DisplayBrightnessState updatedDisplayBrightnessState =
mOverrideBrightnessStrategy.updateBrightness(displayPowerRequest);

View File

@@ -52,6 +52,8 @@ public final class ScreenOffBrightnessStrategyTest {
.setBrightness(PowerManager.BRIGHTNESS_OFF_FLOAT)
.setSdrBrightness(PowerManager.BRIGHTNESS_OFF_FLOAT)
.setBrightnessReason(brightnessReason)
.setDisplayBrightnessStrategyName(mScreenOffBrightnessModeStrategy
.getName())
.build();
DisplayBrightnessState updatedDisplayBrightnessState =
mScreenOffBrightnessModeStrategy.updateBrightness(displayPowerRequest);

View File

@@ -55,6 +55,7 @@ public class TemporaryBrightnessStrategyTest {
.setBrightness(temporaryBrightness)
.setBrightnessReason(brightnessReason)
.setSdrBrightness(temporaryBrightness)
.setDisplayBrightnessStrategyName(mTemporaryBrightnessStrategy.getName())
.build();
DisplayBrightnessState updatedDisplayBrightnessState =
mTemporaryBrightnessStrategy.updateBrightness(displayPowerRequest);