Update external display settings to use DesktopExperienceFlags

Done to keep the injector and allow the same testing as before.

Flag: EXEMPT (update flag infra)
Test: build, run, use developer option
Fix: 401058586
Change-Id: Ie841f5a86d41f573e888cccec46d9c3dc700e561
diff --git a/src/com/android/settings/connecteddevice/display/DesktopExperienceFlags.kt b/src/com/android/settings/connecteddevice/display/DesktopExperienceFlags.kt
new file mode 100644
index 0000000..c6ce00d
--- /dev/null
+++ b/src/com/android/settings/connecteddevice/display/DesktopExperienceFlags.kt
@@ -0,0 +1,41 @@
+/*
+ * Copyright (C) 2025 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.android.settings.connecteddevice.display
+
+import android.window.DesktopExperienceFlags.DesktopExperienceFlag
+import com.android.settings.flags.FeatureFlags
+
+/** Class handling Settings flags, but using the Desktop Experience developer option overrides. */
+class DesktopExperienceFlags(private val featureFlagsImpl: FeatureFlags) : FeatureFlags by featureFlagsImpl {
+
+    private val displayTopologyPaneInDisplayListFlag =
+        DesktopExperienceFlag(
+            featureFlagsImpl::displayTopologyPaneInDisplayList,
+            /* shouldOverrideByDevOption= */ true,
+        )
+
+    override fun displayTopologyPaneInDisplayList(): Boolean =
+        displayTopologyPaneInDisplayListFlag.isTrue
+
+    private val displaySizeConnectedDisplaySettingFlag =
+        DesktopExperienceFlag(
+            featureFlagsImpl::displaySizeConnectedDisplaySetting,
+            /* shouldOverrideByDevOption= */ true,
+        )
+
+    override fun displaySizeConnectedDisplaySetting(): Boolean =
+        displaySizeConnectedDisplaySettingFlag.isTrue
+}
\ No newline at end of file
diff --git a/src/com/android/settings/connecteddevice/display/ExternalDisplaySettingsConfiguration.java b/src/com/android/settings/connecteddevice/display/ExternalDisplaySettingsConfiguration.java
index 1148aa5..52ec8d2 100644
--- a/src/com/android/settings/connecteddevice/display/ExternalDisplaySettingsConfiguration.java
+++ b/src/com/android/settings/connecteddevice/display/ExternalDisplaySettingsConfiguration.java
@@ -109,7 +109,8 @@
         private final Handler mHandler;
 
         Injector(@Nullable Context context) {
-            this(context, new FeatureFlagsImpl(), new Handler(Looper.getMainLooper()));
+            this(context, new DesktopExperienceFlags(new FeatureFlagsImpl()),
+                    new Handler(Looper.getMainLooper()));
         }
 
         Injector(@Nullable Context context, @NonNull FeatureFlags flags, @NonNull Handler handler) {