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) {