Show a category for each external display

Rather than show all external displays as a single item each under one
category, each external display has its own category. For now, the
category only has one item: the single Resolution+Rotation option.

This is more consistent with the Built-in display, which also still
only has one preference item in the category.

Flag: com.android.settings.flags.display_topology_pane_in_display_list
Bug: b/352648432
Bug: b/392946322
Test: ExternalDisplayPreferenceFragmentTest
Test: Open display list with two displays connected, and remove them one at a time
Change-Id: I4d7f8410f506fe53201bc87f8b55ffc6d407a9c5
This commit is contained in:
Matthew DeVore
2025-01-25 01:26:02 +00:00
parent e8143a07a4
commit c1191380b8
2 changed files with 32 additions and 14 deletions

View File

@@ -173,16 +173,18 @@ public class ExternalDisplayPreferenceFragmentTest extends ExternalDisplayTestBa
mHandler.flush();
PreferenceCategory pref = mPreferenceScreen.findPreference(DISPLAYS_LIST_PREFERENCE_KEY);
assertThat(pref).isNotNull();
DisplayPreference display1Pref = (DisplayPreference) pref.getPreference(0);
DisplayPreference display2Pref = (DisplayPreference) pref.getPreference(1);
var display1Category = (PreferenceCategory) pref.getPreference(0);
var display1Pref = (DisplayPreference) display1Category.getPreference(0);
var display2Category = (PreferenceCategory) pref.getPreference(1);
var display2Pref = (DisplayPreference) display2Category.getPreference(0);
assertThat(display1Pref.getKey()).isEqualTo("display_id_" + 1);
assertThat("" + display1Pref.getTitle()).isEqualTo("HDMI");
assertThat("" + display1Category.getTitle()).isEqualTo("HDMI");
assertThat("" + display1Pref.getSummary()).isEqualTo("1920 x 1080");
display1Pref.onPreferenceClick(display1Pref);
assertThat(mDisplayIdArg).isEqualTo(1);
verify(mMockedMetricsLogger).writePreferenceClickMetric(display1Pref);
assertThat(display2Pref.getKey()).isEqualTo("display_id_" + 2);
assertThat("" + display2Pref.getTitle()).isEqualTo("Overlay #1");
assertThat("" + display2Category.getTitle()).isEqualTo("Overlay #1");
assertThat("" + display2Pref.getSummary()).isEqualTo("1240 x 780");
display2Pref.onPreferenceClick(display2Pref);
assertThat(mDisplayIdArg).isEqualTo(2);