Adding windowing flags to WMShell

- Also only provide the system perf hinter if the VRR flag is enabled

Bug: 300019131
Test: Builds
Change-Id: I2938b85ca7285d986fe6bbfe134a0d05d38378c9
diff --git a/libs/WindowManager/Shell/Android.bp b/libs/WindowManager/Shell/Android.bp
index fd4522e..5ad144d 100644
--- a/libs/WindowManager/Shell/Android.bp
+++ b/libs/WindowManager/Shell/Android.bp
@@ -160,6 +160,7 @@
         "kotlinx-coroutines-core",
         "iconloader_base",
         "com_android_wm_shell_flags_lib",
+        "com.android.window.flags.window-aconfig-java",
         "WindowManager-Shell-proto",
         "dagger2",
         "jsr330",
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/dagger/WMShellBaseModule.java b/libs/WindowManager/Shell/src/com/android/wm/shell/dagger/WMShellBaseModule.java
index b158f88..3c6bc17 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/dagger/WMShellBaseModule.java
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/dagger/WMShellBaseModule.java
@@ -324,13 +324,16 @@
 
     @WMSingleton
     @Provides
-    static SystemPerformanceHinter provideSystemPerformanceHinter(Context context,
+    static Optional<SystemPerformanceHinter> provideSystemPerformanceHinter(Context context,
             ShellInit shellInit,
             ShellCommandHandler shellCommandHandler,
             RootTaskDisplayAreaOrganizer rootTdaOrganizer) {
+        if (!com.android.window.flags.Flags.explicitRefreshRateHints()) {
+            return Optional.empty();
+        }
         final PerfHintController perfHintController =
                 new PerfHintController(context, shellInit, shellCommandHandler, rootTdaOrganizer);
-        return perfHintController.getHinter();
+        return Optional.of(perfHintController.getHinter());
     }
 
     //