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}