From 49915a64c5a30401d78245ad7739777a5b13d49f Mon Sep 17 00:00:00 2001 From: Matthew Fritze Date: Mon, 17 Apr 2017 07:55:41 -0700 Subject: [PATCH] Remove accessibility duplicates in settings search Bug: 33701673 Test: make RunSettingsRoboTests Change-Id: Iae179b558065d728c14eb76f136d398081577779 --- src/com/android/settings/DisplaySettings.java | 9 +++++ .../accessibility/AccessibilitySettings.java | 13 ++++++- .../AccessibilitySettingsTest.java | 34 +++++++++++++++++++ .../settings/search/DataIntegrityTest.java | 5 +-- 4 files changed, 56 insertions(+), 5 deletions(-) create mode 100644 tests/robotests/src/com/android/settings/accessibility/AccessibilitySettingsTest.java diff --git a/src/com/android/settings/DisplaySettings.java b/src/com/android/settings/DisplaySettings.java index 2bb79b1767b..a22d25cd547 100644 --- a/src/com/android/settings/DisplaySettings.java +++ b/src/com/android/settings/DisplaySettings.java @@ -52,6 +52,8 @@ public class DisplaySettings extends DashboardFragment { private static final String TAG = "DisplaySettings"; public static final String KEY_AUTO_BRIGHTNESS = "auto_brightness"; + public static final String KEY_DISPLAY_SIZE = "screen_zoom"; + private static final String KEY_SCREEN_TIMEOUT = "screen_timeout"; @Override @@ -124,6 +126,13 @@ public class DisplaySettings extends DashboardFragment { return result; } + @Override + public List getNonIndexableKeys(Context context) { + List keys = super.getNonIndexableKeys(context); + keys.add(KEY_DISPLAY_SIZE); + return keys; + } + @Override public List getPreferenceControllers(Context context) { return buildPreferenceControllers(context, null); diff --git a/src/com/android/settings/accessibility/AccessibilitySettings.java b/src/com/android/settings/accessibility/AccessibilitySettings.java index 44dd353a50a..d43b2c2afa4 100644 --- a/src/com/android/settings/accessibility/AccessibilitySettings.java +++ b/src/com/android/settings/accessibility/AccessibilitySettings.java @@ -46,6 +46,7 @@ import com.android.internal.content.PackageMonitor; import com.android.internal.logging.nano.MetricsProto.MetricsEvent; import com.android.internal.view.RotationPolicy; import com.android.internal.view.RotationPolicy.RotationPolicyListener; +import com.android.settings.DisplaySettings; import com.android.settings.R; import com.android.settings.SettingsPreferenceFragment; import com.android.settings.Utils; @@ -721,7 +722,7 @@ public class AccessibilitySettings extends SettingsPreferenceFragment implements new BaseSearchIndexProvider() { @Override public List getRawDataToIndex(Context context, boolean enabled) { - List indexables = new ArrayList(); + List indexables = new ArrayList<>(); PackageManager packageManager = context.getPackageManager(); AccessibilityManager accessibilityManager = @@ -763,5 +764,15 @@ public class AccessibilitySettings extends SettingsPreferenceFragment implements indexables.add(indexable); return indexables; } + + @Override + public List getNonIndexableKeys(Context context) { + List keys = super.getNonIndexableKeys(context); + // Duplicates in Display + keys.add(FONT_SIZE_PREFERENCE_SCREEN); + keys.add(DisplaySettings.KEY_DISPLAY_SIZE); + + return keys; + } }; } diff --git a/tests/robotests/src/com/android/settings/accessibility/AccessibilitySettingsTest.java b/tests/robotests/src/com/android/settings/accessibility/AccessibilitySettingsTest.java new file mode 100644 index 00000000000..4da06c083dc --- /dev/null +++ b/tests/robotests/src/com/android/settings/accessibility/AccessibilitySettingsTest.java @@ -0,0 +1,34 @@ +package com.android.settings.accessibility; + +import android.content.Context; + +import com.android.settings.R; +import com.android.settings.SettingsRobolectricTestRunner; +import com.android.settings.TestConfig; +import com.android.settings.testutils.XmlTestUtils; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.robolectric.RuntimeEnvironment; +import org.robolectric.annotation.Config; + +import java.util.ArrayList; +import java.util.List; + +import static com.google.common.truth.Truth.assertThat; + +@RunWith(SettingsRobolectricTestRunner.class) +@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION) +public class AccessibilitySettingsTest { + + @Test + public void testNonIndexableKeys_existInXmlLayout() { + final Context context = RuntimeEnvironment.application; + final List niks = AccessibilitySettings.SEARCH_INDEX_DATA_PROVIDER + .getNonIndexableKeys(context); + final List keys = new ArrayList<>(); + + keys.addAll(XmlTestUtils.getKeysFromPreferenceXml(context, R.xml.accessibility_settings)); + + assertThat(keys).containsAllIn(niks); + } +} diff --git a/tests/robotests/src/com/android/settings/search/DataIntegrityTest.java b/tests/robotests/src/com/android/settings/search/DataIntegrityTest.java index f10752a44fc..6ffd704d9e2 100644 --- a/tests/robotests/src/com/android/settings/search/DataIntegrityTest.java +++ b/tests/robotests/src/com/android/settings/search/DataIntegrityTest.java @@ -93,10 +93,7 @@ public class DataIntegrityTest { for (Integer xmlResId : xmlList) { // Get all keys to be indexed final List prefKeys = XmlTestUtils.getKeysFromPreferenceXml(context, xmlResId); - pageKeys.addAll(prefKeys); - // Remove grandfathered keys. - pageKeys.removeAll(grandfatheredKeys); // Find all already-existing keys. pageKeys.retainAll(masterKeys); // Keep list of offending duplicate keys. @@ -105,7 +102,7 @@ public class DataIntegrityTest { masterKeys.addAll(prefKeys); pageKeys.clear(); } - assertThat(duplicateKeys).isEmpty(); + assertThat(duplicateKeys).containsExactlyElementsIn(grandfatheredKeys); } /**