Define menu keys for highlighting the menu entry on 2-pane UI

- Define an attribute for highlightable menu keys
- List the keys for Settings menu entries
- Support parsing the attribute

Bug: 199017944
Test: robotest
Change-Id: I5759bff591c79d498fffb8b2c2b57f2cb66c4421
This commit is contained in:
Jason Chiu
2021-09-06 15:39:17 +08:00
parent 8b3bb01ca8
commit 7426ab7b9f
8 changed files with 99 additions and 11 deletions

View File

@@ -174,18 +174,36 @@ public class PreferenceXmlParserUtilsTest {
assertThat(entries).isNull();
}
@Test
public void extractHomepageMetadata_shouldContainKeyAndHighlightableMenuKey()
throws IOException, XmlPullParserException {
List<Bundle> metadata = PreferenceXmlParserUtils.extractMetadata(mContext,
R.xml.top_level_settings,
MetadataFlag.FLAG_NEED_KEY | MetadataFlag.FLAG_NEED_HIGHLIGHTABLE_MENU_KEY);
assertThat(metadata).isNotEmpty();
for (Bundle bundle : metadata) {
assertThat(bundle.getString(PreferenceXmlParserUtils.METADATA_KEY)).isNotNull();
assertThat(bundle.getString(PreferenceXmlParserUtils.METADATA_HIGHLIGHTABLE_MENU_KEY))
.isNotNull();
}
}
@Test
@Config(qualifiers = "mcc999")
public void extractMetadata_shouldContainKeyAndControllerName()
public void extractMetadata_shouldContainKeyAndControllerNameAndHighlightableMenuKey()
throws IOException, XmlPullParserException {
List<Bundle> metadata = PreferenceXmlParserUtils.extractMetadata(mContext,
R.xml.location_settings,
MetadataFlag.FLAG_NEED_KEY | MetadataFlag.FLAG_NEED_PREF_CONTROLLER);
MetadataFlag.FLAG_NEED_KEY | MetadataFlag.FLAG_NEED_PREF_CONTROLLER
| MetadataFlag.FLAG_NEED_HIGHLIGHTABLE_MENU_KEY);
assertThat(metadata).isNotEmpty();
for (Bundle bundle : metadata) {
assertThat(bundle.getString(PreferenceXmlParserUtils.METADATA_KEY)).isNotNull();
assertThat(bundle.getString(PreferenceXmlParserUtils.METADATA_CONTROLLER)).isNotNull();
assertThat(bundle.getString(PreferenceXmlParserUtils.METADATA_HIGHLIGHTABLE_MENU_KEY))
.isNotNull();
}
}