diff options
author | 2025-02-20 04:19:52 -0800 | |
---|---|---|
committer | 2025-02-20 04:19:52 -0800 | |
commit | dd0c640576d1eaebd852475e14624f7292188a9e (patch) | |
tree | 47da304a0e63e8850522c4a5bdd22af5fa853724 /services | |
parent | 242ce0cd11ceb5b600f4ac3e0c62a5b8e599751c (diff) | |
parent | c300e970f0ce366ce811c4c91c00f3e462bc6c5c (diff) |
Merge "Added support for not registering for RR events by default" into main
Diffstat (limited to 'services')
3 files changed, 28 insertions, 5 deletions
diff --git a/services/core/java/com/android/server/display/feature/DisplayManagerFlags.java b/services/core/java/com/android/server/display/feature/DisplayManagerFlags.java index c3057ded66eb..7cc178d5ff6c 100644 --- a/services/core/java/com/android/server/display/feature/DisplayManagerFlags.java +++ b/services/core/java/com/android/server/display/feature/DisplayManagerFlags.java @@ -280,6 +280,11 @@ public class DisplayManagerFlags { Flags::committedStateSeparateEvent ); + private final FlagState mDelayImplicitRrRegistrationUntilRrAccessed = new FlagState( + Flags.FLAG_DELAY_IMPLICIT_RR_REGISTRATION_UNTIL_RR_ACCESSED, + Flags::delayImplicitRrRegistrationUntilRrAccessed + ); + /** * @return {@code true} if 'port' is allowed in display layout configuration file. */ @@ -586,7 +591,6 @@ public class DisplayManagerFlags { return mFramerateOverrideTriggersRrCallbacks.isEnabled(); } - /** * @return {@code true} if the flag for sending refresh rate events only for the apps in * foreground is enabled @@ -604,6 +608,13 @@ public class DisplayManagerFlags { } /** + * @return {@code true} if the flag for only explicit subscription for RR changes is enabled + */ + public boolean isDelayImplicitRrRegistrationUntilRrAccessedEnabled() { + return mDelayImplicitRrRegistrationUntilRrAccessed.isEnabled(); + } + + /** * dumps all flagstates * @param pw printWriter */ @@ -660,6 +671,7 @@ public class DisplayManagerFlags { pw.println(" " + mFramerateOverrideTriggersRrCallbacks); pw.println(" " + mRefreshRateEventForForegroundApps); pw.println(" " + mCommittedStateSeparateEvent); + pw.println(" " + mDelayImplicitRrRegistrationUntilRrAccessed); } private static class FlagState { diff --git a/services/core/java/com/android/server/display/feature/display_flags.aconfig b/services/core/java/com/android/server/display/feature/display_flags.aconfig index f5451307afb7..a0064a9f5d1d 100644 --- a/services/core/java/com/android/server/display/feature/display_flags.aconfig +++ b/services/core/java/com/android/server/display/feature/display_flags.aconfig @@ -474,9 +474,9 @@ flag { description: "Feature flag to trigger the RR callbacks when framerate overridding happens." bug: "390113266" is_fixed_read_only: true - metadata { - purpose: PURPOSE_BUGFIX - } + metadata { + purpose: PURPOSE_BUGFIX + } } flag { @@ -508,3 +508,14 @@ flag { purpose: PURPOSE_BUGFIX } } + +flag { + name: "delay_implicit_rr_registration_until_rr_accessed" + namespace: "display_manager" + description: "Feature flag for clients to subscribe to RR changes by either explicitly subscribing for refresh rate changes or request for refresh rate data" + bug: "391828526" + is_fixed_read_only: true + metadata { + purpose: PURPOSE_BUGFIX + } +} diff --git a/services/tests/wmtests/src/com/android/server/wm/SystemServicesTestRule.java b/services/tests/wmtests/src/com/android/server/wm/SystemServicesTestRule.java index 9406779c929d..3776b03695d5 100644 --- a/services/tests/wmtests/src/com/android/server/wm/SystemServicesTestRule.java +++ b/services/tests/wmtests/src/com/android/server/wm/SystemServicesTestRule.java @@ -264,7 +264,7 @@ public class SystemServicesTestRule implements TestRule { final DisplayManagerGlobal dmg = DisplayManagerGlobal.getInstance(); spyOn(dmg); doNothing().when(dmg).registerDisplayListener( - any(), any(Executor.class), anyLong(), anyString()); + any(), any(Executor.class), anyLong(), anyString(), anyBoolean()); doNothing().when(dmg).registerTopologyListener(any(Executor.class), any(), anyString()); } |