diff options
author | 2025-02-10 10:05:29 -0800 | |
---|---|---|
committer | 2025-02-10 10:05:29 -0800 | |
commit | 371e37218fcf6f05ce47d1466b93bc20a5e5d36c (patch) | |
tree | b1b882ad5e857264f42329cd9bd802eff2e7c6dd | |
parent | d9d463320e7af5221cfa4e220cc8f6de5c17436c (diff) | |
parent | df99720ff5a58c9b9f69b1bc39264e165cc35f57 (diff) |
Merge "VotesStatsReporter should consider last reported priority by display" into main
-rw-r--r-- | services/core/java/com/android/server/display/mode/VotesStatsReporter.java | 13 |
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); } } |