Remove default app duplicates in search

Default Work Browser and Phone app search results look
identical to the regular defaults. Supress the results
until we differentiate work results.

"Assist and voice input" duplicate is a parent-child
duplication and is removed, as well.

Bug: 36101902
Test: make RunSettingsRoboTests
Change-Id: I3bb75c199cd76e24de42548dd166c4bccd0c7f0a
This commit is contained in:
Matthew Fritze
2017-05-11 10:39:12 -07:00
parent 8fc602fed8
commit 4d9a1ae9a2
3 changed files with 31 additions and 1 deletions

View File

@@ -43,6 +43,8 @@ public class AdvancedAppSettings extends DashboardFragment {
static final String TAG = "AdvancedAppSettings"; static final String TAG = "AdvancedAppSettings";
private static final String KEY_ASSIST_VOICE_INPUT = "assist_and_voice_input";
@Override @Override
protected String getLogTag() { protected String getLogTag() {
return TAG; return TAG;
@@ -80,6 +82,18 @@ public class AdvancedAppSettings extends DashboardFragment {
sir.xmlResId = R.xml.app_default_settings; sir.xmlResId = R.xml.app_default_settings;
return Arrays.asList(sir); return Arrays.asList(sir);
} }
@Override
public List<String> getNonIndexableKeys(Context context) {
List<String> keys = super.getNonIndexableKeys(context);
keys.add(KEY_ASSIST_VOICE_INPUT);
// TODO (b/38230148) Remove these keys when we can differentiate work results
keys.add((new DefaultWorkPhonePreferenceController(context))
.getPreferenceKey());
keys.add((new DefaultWorkBrowserPreferenceController(context))
.getPreferenceKey());
return keys;
}
}; };
static class SummaryProvider implements SummaryLoader.SummaryProvider { static class SummaryProvider implements SummaryLoader.SummaryProvider {

View File

@@ -72,7 +72,7 @@ public class BaseSearchIndexProvider implements Indexable.SearchIndexProvider {
} }
return nonIndexableKeys; return nonIndexableKeys;
} else { } else {
return EMPTY_LIST; return new ArrayList<>();
} }
} }

View File

@@ -26,6 +26,7 @@ import com.android.settings.applications.defaultapps.DefaultBrowserPreferenceCon
import com.android.settings.applications.defaultapps.DefaultPhonePreferenceController; import com.android.settings.applications.defaultapps.DefaultPhonePreferenceController;
import com.android.settings.applications.defaultapps.DefaultSmsPreferenceController; import com.android.settings.applications.defaultapps.DefaultSmsPreferenceController;
import com.android.settings.dashboard.SummaryLoader; import com.android.settings.dashboard.SummaryLoader;
import com.android.settings.testutils.XmlTestUtils;
import org.junit.Before; import org.junit.Before;
import org.junit.Test; import org.junit.Test;
import org.junit.runner.RunWith; import org.junit.runner.RunWith;
@@ -34,11 +35,14 @@ import org.robolectric.RuntimeEnvironment;
import org.robolectric.annotation.Config; import org.robolectric.annotation.Config;
import org.robolectric.util.ReflectionHelpers; import org.robolectric.util.ReflectionHelpers;
import java.util.List;
import static com.google.common.truth.Truth.assertThat; import static com.google.common.truth.Truth.assertThat;
import static org.mockito.Matchers.anyString; import static org.mockito.Matchers.anyString;
import static org.mockito.Matchers.eq; import static org.mockito.Matchers.eq;
import static org.mockito.Mockito.mock; import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.never; import static org.mockito.Mockito.never;
import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.verify; import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when; import static org.mockito.Mockito.when;
@@ -136,4 +140,16 @@ public class AdvancedAppSettingsTest {
} }
@Test
public void testNonIndexableKeys_existInXmlLayout() {
final Context context = spy(RuntimeEnvironment.application);
final List<String> niks = AdvancedAppSettings.SEARCH_INDEX_DATA_PROVIDER
.getNonIndexableKeys(context);
final int xmlId = (new AdvancedAppSettings()).getPreferenceScreenResId();
final List<String> keys = XmlTestUtils.getKeysFromPreferenceXml(context, xmlId);
assertThat(keys).containsAllIn(niks);
}
} }