summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Oleg Petšjonkin <petsjonkin@google.com> 2025-02-10 10:05:29 -0800
committer Android (Google) Code Review <android-gerrit@google.com> 2025-02-10 10:05:29 -0800
commit371e37218fcf6f05ce47d1466b93bc20a5e5d36c (patch)
treeb1b882ad5e857264f42329cd9bd802eff2e7c6dd
parentd9d463320e7af5221cfa4e220cc8f6de5c17436c (diff)
parentdf99720ff5a58c9b9f69b1bc39264e165cc35f57 (diff)
Merge "VotesStatsReporter should consider last reported priority by display" into main
-rw-r--r--services/core/java/com/android/server/display/mode/VotesStatsReporter.java13
1 files changed, 8 insertions, 5 deletions
diff --git a/services/core/java/com/android/server/display/mode/VotesStatsReporter.java b/services/core/java/com/android/server/display/mode/VotesStatsReporter.java
index d3d49c272338..7b579c0e0c21 100644
--- a/services/core/java/com/android/server/display/mode/VotesStatsReporter.java
+++ b/services/core/java/com/android/server/display/mode/VotesStatsReporter.java
@@ -25,6 +25,7 @@ import android.annotation.NonNull;
import android.annotation.Nullable;
import android.os.Trace;
import android.util.SparseArray;
+import android.util.SparseIntArray;
import android.view.Display;
import com.android.internal.util.FrameworkStatsLog;
@@ -37,7 +38,7 @@ class VotesStatsReporter {
private static final int REFRESH_RATE_NOT_LIMITED = 1000;
private final boolean mIgnoredRenderRate;
- private int mLastMinPriorityReported = Vote.MAX_PRIORITY + 1;
+ private final SparseIntArray mLastMinPriorityByDisplay = new SparseIntArray();
VotesStatsReporter(boolean ignoreRenderRate) {
mIgnoredRenderRate = ignoreRenderRate;
@@ -71,9 +72,11 @@ class VotesStatsReporter {
void reportVotesActivated(int displayId, int minPriority, @Nullable Display.Mode baseMode,
SparseArray<Vote> votes) {
+ int lastMinPriorityReported = mLastMinPriorityByDisplay.get(
+ displayId, Vote.MAX_PRIORITY + 1);
int selectedRefreshRate = baseMode != null ? (int) baseMode.getRefreshRate() : -1;
for (int priority = Vote.MIN_PRIORITY; priority <= Vote.MAX_PRIORITY; priority++) {
- if (priority < mLastMinPriorityReported && priority < minPriority) {
+ if (priority < lastMinPriorityReported && priority < minPriority) {
continue;
}
Vote vote = votes.get(priority);
@@ -82,7 +85,7 @@ class VotesStatsReporter {
}
// Was previously reported ACTIVE, changed to ADDED
- if (priority >= mLastMinPriorityReported && priority < minPriority) {
+ if (priority >= lastMinPriorityReported && priority < minPriority) {
int maxRefreshRate = getMaxRefreshRate(vote, mIgnoredRenderRate);
FrameworkStatsLog.write(
DISPLAY_MODE_DIRECTOR_VOTE_CHANGED, displayId, priority,
@@ -90,7 +93,7 @@ class VotesStatsReporter {
maxRefreshRate, selectedRefreshRate);
}
// Was previously reported ADDED, changed to ACTIVE
- if (priority >= minPriority && priority < mLastMinPriorityReported) {
+ if (priority >= minPriority && priority < lastMinPriorityReported) {
int maxRefreshRate = getMaxRefreshRate(vote, mIgnoredRenderRate);
FrameworkStatsLog.write(
DISPLAY_MODE_DIRECTOR_VOTE_CHANGED, displayId, priority,
@@ -98,7 +101,7 @@ class VotesStatsReporter {
maxRefreshRate, selectedRefreshRate);
}
- mLastMinPriorityReported = minPriority;
+ mLastMinPriorityByDisplay.put(displayId, minPriority);
}
}