Log the saved historical HBM events.

HighBrightnessModeController saves all the previous HBM events within
the HBM time window. This CL adds those events to dumpsys.

Bug: 189384189
Test: Manually test and verify output of 'adb shell dumpsys display'
Change-Id: I3cbd83b4fb4714cf697d2e7f29a00edfe6bdb1ed
This commit is contained in:
Santos Cordon
2021-06-18 15:50:04 +01:00
parent 04350c57de
commit 9403071127
2 changed files with 29 additions and 1 deletions

View File

@@ -771,7 +771,7 @@ public class DisplayDeviceConfig {
+ ", transition: " + transitionPoint
+ ", timeWindow: " + timeWindowMillis + "ms"
+ ", timeMax: " + timeMaxMillis + "ms"
+ ", timeMin: " + timeMinMillis
+ ", timeMin: " + timeMinMillis + "ms"
+ "} ";
}
}

View File

@@ -22,6 +22,7 @@ import android.os.IBinder;
import android.os.PowerManager;
import android.os.SystemClock;
import android.util.Slog;
import android.util.TimeUtils;
import android.view.SurfaceControlHdrLayerInfoListener;
import com.android.internal.annotations.VisibleForTesting;
@@ -189,6 +190,10 @@ class HighBrightnessModeController {
}
void dump(PrintWriter pw) {
mHandler.runWithScissors(() -> dumpLocal(pw), 1000);
}
private void dumpLocal(PrintWriter pw) {
pw.println("HighBrightnessModeController:");
pw.println(" mCurrentMin=" + getCurrentBrightnessMin());
pw.println(" mCurrentMax=" + getCurrentBrightnessMax());
@@ -202,6 +207,29 @@ class HighBrightnessModeController {
pw.println(" mIsHdrLayerPresent=" + mIsHdrLayerPresent);
pw.println(" mBrightnessMin=" + mBrightnessMin);
pw.println(" mBrightnessMax=" + mBrightnessMax);
pw.println(" mRunningStartTimeMillis=" + TimeUtils.formatUptime(mRunningStartTimeMillis));
pw.println(" mEvents=");
final long currentTime = mClock.uptimeMillis();
long lastStartTime = currentTime;
if (mRunningStartTimeMillis != -1) {
lastStartTime = dumpHbmEvent(pw, new HbmEvent(mRunningStartTimeMillis, currentTime));
}
for (HbmEvent event : mEvents) {
if (lastStartTime > event.endTimeMillis) {
pw.println(" event: [normal brightness]: "
+ TimeUtils.formatDuration(lastStartTime - event.endTimeMillis));
}
lastStartTime = dumpHbmEvent(pw, event);
}
}
private long dumpHbmEvent(PrintWriter pw, HbmEvent event) {
final long duration = event.endTimeMillis - event.startTimeMillis;
pw.println(" event: ["
+ TimeUtils.formatUptime(event.startTimeMillis) + ", "
+ TimeUtils.formatUptime(event.endTimeMillis) + "] ("
+ TimeUtils.formatDuration(duration) + ")");
return event.startTimeMillis;
}
private boolean isCurrentlyAllowed() {