180e54df83337be5fd37f2fc85f274c7442784740Matthew Fritze/* 280e54df83337be5fd37f2fc85f274c7442784740Matthew Fritze * Copyright (C) 2017 The Android Open Source Project 380e54df83337be5fd37f2fc85f274c7442784740Matthew Fritze * 480e54df83337be5fd37f2fc85f274c7442784740Matthew Fritze * Licensed under the Apache License, Version 2.0 (the "License"); 580e54df83337be5fd37f2fc85f274c7442784740Matthew Fritze * you may not use this file except in compliance with the License. 680e54df83337be5fd37f2fc85f274c7442784740Matthew Fritze * You may obtain a copy of the License at 780e54df83337be5fd37f2fc85f274c7442784740Matthew Fritze * 880e54df83337be5fd37f2fc85f274c7442784740Matthew Fritze * http://www.apache.org/licenses/LICENSE-2.0 980e54df83337be5fd37f2fc85f274c7442784740Matthew Fritze * 1080e54df83337be5fd37f2fc85f274c7442784740Matthew Fritze * Unless required by applicable law or agreed to in writing, software 1180e54df83337be5fd37f2fc85f274c7442784740Matthew Fritze * distributed under the License is distributed on an "AS IS" BASIS, 1280e54df83337be5fd37f2fc85f274c7442784740Matthew Fritze * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1380e54df83337be5fd37f2fc85f274c7442784740Matthew Fritze * See the License for the specific language governing permissions and 1480e54df83337be5fd37f2fc85f274c7442784740Matthew Fritze * limitations under the License. 1580e54df83337be5fd37f2fc85f274c7442784740Matthew Fritze * 1680e54df83337be5fd37f2fc85f274c7442784740Matthew Fritze */ 1780e54df83337be5fd37f2fc85f274c7442784740Matthew Fritze 1880e54df83337be5fd37f2fc85f274c7442784740Matthew Fritzepackage com.android.settings.search.indexing; 1980e54df83337be5fd37f2fc85f274c7442784740Matthew Fritze 2080e54df83337be5fd37f2fc85f274c7442784740Matthew Fritzeimport android.content.Context; 2180e54df83337be5fd37f2fc85f274c7442784740Matthew Fritzeimport android.provider.SearchIndexableResource; 22ab741bb62756e27457632c841460f2d5b05957c3Matthew Fritze 2380e54df83337be5fd37f2fc85f274c7442784740Matthew Fritzeimport com.android.internal.logging.nano.MetricsProto; 2480e54df83337be5fd37f2fc85f274c7442784740Matthew Fritzeimport com.android.settings.dashboard.DashboardFragment; 2580e54df83337be5fd37f2fc85f274c7442784740Matthew Fritzeimport com.android.settings.search.BaseSearchIndexProvider; 2680e54df83337be5fd37f2fc85f274c7442784740Matthew Fritzeimport com.android.settings.search.SearchIndexableRaw; 2780e54df83337be5fd37f2fc85f274c7442784740Matthew Fritzeimport com.android.settingslib.core.AbstractPreferenceController; 2880e54df83337be5fd37f2fc85f274c7442784740Matthew Fritze 2980e54df83337be5fd37f2fc85f274c7442784740Matthew Fritzeimport java.util.ArrayList; 3080e54df83337be5fd37f2fc85f274c7442784740Matthew Fritzeimport java.util.List; 3180e54df83337be5fd37f2fc85f274c7442784740Matthew Fritze 3280e54df83337be5fd37f2fc85f274c7442784740Matthew Fritze/** 3380e54df83337be5fd37f2fc85f274c7442784740Matthew Fritze * Test class for Settings Search Indexing. 3480e54df83337be5fd37f2fc85f274c7442784740Matthew Fritze * If you change this class, please run robotests to make sure they still pass. 3580e54df83337be5fd37f2fc85f274c7442784740Matthew Fritze */ 3680e54df83337be5fd37f2fc85f274c7442784740Matthew Fritzepublic class FakeSettingsFragment extends DashboardFragment { 3780e54df83337be5fd37f2fc85f274c7442784740Matthew Fritze 3880e54df83337be5fd37f2fc85f274c7442784740Matthew Fritze public static final String TITLE = "raw title"; 3980e54df83337be5fd37f2fc85f274c7442784740Matthew Fritze public static final String SUMMARY_ON = "raw summary on"; 4080e54df83337be5fd37f2fc85f274c7442784740Matthew Fritze public static final String SUMMARY_OFF = "raw summary off"; 4180e54df83337be5fd37f2fc85f274c7442784740Matthew Fritze public static final String ENTRIES = "rawentries"; 4280e54df83337be5fd37f2fc85f274c7442784740Matthew Fritze public static final String KEYWORDS = "keywords, keywordss, keywordsss"; 4380e54df83337be5fd37f2fc85f274c7442784740Matthew Fritze public static final String SPACE_KEYWORDS = "keywords keywordss keywordsss"; 4480e54df83337be5fd37f2fc85f274c7442784740Matthew Fritze public static final String SCREEN_TITLE = "raw screen title"; 4580e54df83337be5fd37f2fc85f274c7442784740Matthew Fritze public static final String CLASS_NAME = FakeSettingsFragment.class.getName(); 4680e54df83337be5fd37f2fc85f274c7442784740Matthew Fritze public static final int ICON = 0xff; 4780e54df83337be5fd37f2fc85f274c7442784740Matthew Fritze public static final String INTENT_ACTION = "raw action"; 4880e54df83337be5fd37f2fc85f274c7442784740Matthew Fritze public static final String PACKAGE_NAME = "raw target package"; 4980e54df83337be5fd37f2fc85f274c7442784740Matthew Fritze public static final String TARGET_CLASS = "raw target class"; 5080e54df83337be5fd37f2fc85f274c7442784740Matthew Fritze public static final String TARGET_PACKAGE = "raw package name"; 5180e54df83337be5fd37f2fc85f274c7442784740Matthew Fritze public static final String KEY = "raw key"; 5280e54df83337be5fd37f2fc85f274c7442784740Matthew Fritze public static final boolean ENABLED = true; 5380e54df83337be5fd37f2fc85f274c7442784740Matthew Fritze 5480e54df83337be5fd37f2fc85f274c7442784740Matthew Fritze 5580e54df83337be5fd37f2fc85f274c7442784740Matthew Fritze @Override 5680e54df83337be5fd37f2fc85f274c7442784740Matthew Fritze public int getMetricsCategory() { 5780e54df83337be5fd37f2fc85f274c7442784740Matthew Fritze return MetricsProto.MetricsEvent.DISPLAY; 5880e54df83337be5fd37f2fc85f274c7442784740Matthew Fritze } 5980e54df83337be5fd37f2fc85f274c7442784740Matthew Fritze 6080e54df83337be5fd37f2fc85f274c7442784740Matthew Fritze @Override 6180e54df83337be5fd37f2fc85f274c7442784740Matthew Fritze protected String getLogTag() { 6280e54df83337be5fd37f2fc85f274c7442784740Matthew Fritze return ""; 6380e54df83337be5fd37f2fc85f274c7442784740Matthew Fritze } 6480e54df83337be5fd37f2fc85f274c7442784740Matthew Fritze 6580e54df83337be5fd37f2fc85f274c7442784740Matthew Fritze @Override 6680e54df83337be5fd37f2fc85f274c7442784740Matthew Fritze protected int getPreferenceScreenResId() { 6780e54df83337be5fd37f2fc85f274c7442784740Matthew Fritze return com.android.settings.R.xml.display_settings; 6880e54df83337be5fd37f2fc85f274c7442784740Matthew Fritze } 6980e54df83337be5fd37f2fc85f274c7442784740Matthew Fritze 7080e54df83337be5fd37f2fc85f274c7442784740Matthew Fritze @Override 71f7843adabd4e8e1cc84a52721daabefa3a1410fdFan Zhang protected List<AbstractPreferenceController> createPreferenceControllers(Context context) { 7280e54df83337be5fd37f2fc85f274c7442784740Matthew Fritze return null; 7380e54df83337be5fd37f2fc85f274c7442784740Matthew Fritze } 7480e54df83337be5fd37f2fc85f274c7442784740Matthew Fritze 7580e54df83337be5fd37f2fc85f274c7442784740Matthew Fritze /** Index provider used to expose this fragment in search. */ 7680e54df83337be5fd37f2fc85f274c7442784740Matthew Fritze public static final SearchIndexProvider SEARCH_INDEX_DATA_PROVIDER = 7780e54df83337be5fd37f2fc85f274c7442784740Matthew Fritze new BaseSearchIndexProvider() { 7880e54df83337be5fd37f2fc85f274c7442784740Matthew Fritze @Override 79ab741bb62756e27457632c841460f2d5b05957c3Matthew Fritze public List<SearchIndexableRaw> getRawDataToIndex(Context context, 80ab741bb62756e27457632c841460f2d5b05957c3Matthew Fritze boolean enabled) { 8180e54df83337be5fd37f2fc85f274c7442784740Matthew Fritze final SearchIndexableRaw data = new SearchIndexableRaw(context); 8280e54df83337be5fd37f2fc85f274c7442784740Matthew Fritze data.title = TITLE; 8380e54df83337be5fd37f2fc85f274c7442784740Matthew Fritze data.summaryOn = SUMMARY_ON; 8480e54df83337be5fd37f2fc85f274c7442784740Matthew Fritze data.summaryOff = SUMMARY_OFF; 8580e54df83337be5fd37f2fc85f274c7442784740Matthew Fritze data.entries = ENTRIES; 8680e54df83337be5fd37f2fc85f274c7442784740Matthew Fritze data.keywords = KEYWORDS; 8780e54df83337be5fd37f2fc85f274c7442784740Matthew Fritze data.screenTitle = SCREEN_TITLE; 8880e54df83337be5fd37f2fc85f274c7442784740Matthew Fritze data.packageName = PACKAGE_NAME; 8980e54df83337be5fd37f2fc85f274c7442784740Matthew Fritze data.intentAction = INTENT_ACTION; 9080e54df83337be5fd37f2fc85f274c7442784740Matthew Fritze data.intentTargetClass = TARGET_CLASS; 9180e54df83337be5fd37f2fc85f274c7442784740Matthew Fritze data.intentTargetPackage = TARGET_PACKAGE; 9280e54df83337be5fd37f2fc85f274c7442784740Matthew Fritze data.key = KEY; 9380e54df83337be5fd37f2fc85f274c7442784740Matthew Fritze data.iconResId = ICON; 9480e54df83337be5fd37f2fc85f274c7442784740Matthew Fritze data.enabled = ENABLED; 9580e54df83337be5fd37f2fc85f274c7442784740Matthew Fritze 9680e54df83337be5fd37f2fc85f274c7442784740Matthew Fritze final List<SearchIndexableRaw> result = new ArrayList<>(1); 9780e54df83337be5fd37f2fc85f274c7442784740Matthew Fritze result.add(data); 9880e54df83337be5fd37f2fc85f274c7442784740Matthew Fritze return result; 9980e54df83337be5fd37f2fc85f274c7442784740Matthew Fritze } 10080e54df83337be5fd37f2fc85f274c7442784740Matthew Fritze 10180e54df83337be5fd37f2fc85f274c7442784740Matthew Fritze @Override 10280e54df83337be5fd37f2fc85f274c7442784740Matthew Fritze public List<SearchIndexableResource> getXmlResourcesToIndex(Context context, 10380e54df83337be5fd37f2fc85f274c7442784740Matthew Fritze boolean enabled) { 10480e54df83337be5fd37f2fc85f274c7442784740Matthew Fritze final ArrayList<SearchIndexableResource> result = new ArrayList<>(); 10580e54df83337be5fd37f2fc85f274c7442784740Matthew Fritze 10680e54df83337be5fd37f2fc85f274c7442784740Matthew Fritze final SearchIndexableResource sir = new SearchIndexableResource(context); 10780e54df83337be5fd37f2fc85f274c7442784740Matthew Fritze sir.xmlResId = com.android.settings.R.xml.display_settings; 10880e54df83337be5fd37f2fc85f274c7442784740Matthew Fritze result.add(sir); 10980e54df83337be5fd37f2fc85f274c7442784740Matthew Fritze return result; 11080e54df83337be5fd37f2fc85f274c7442784740Matthew Fritze } 11180e54df83337be5fd37f2fc85f274c7442784740Matthew Fritze 11280e54df83337be5fd37f2fc85f274c7442784740Matthew Fritze @Override 11380e54df83337be5fd37f2fc85f274c7442784740Matthew Fritze public List<String> getNonIndexableKeys(Context context) { 11480e54df83337be5fd37f2fc85f274c7442784740Matthew Fritze List<String> keys = super.getNonIndexableKeys(context); 11580e54df83337be5fd37f2fc85f274c7442784740Matthew Fritze keys.add("pref_key_1"); 11680e54df83337be5fd37f2fc85f274c7442784740Matthew Fritze keys.add("pref_key_3"); 11780e54df83337be5fd37f2fc85f274c7442784740Matthew Fritze return keys; 11880e54df83337be5fd37f2fc85f274c7442784740Matthew Fritze } 11980e54df83337be5fd37f2fc85f274c7442784740Matthew Fritze }; 12080e54df83337be5fd37f2fc85f274c7442784740Matthew Fritze}