1fa7dc240e978b1b77bb5c80a78cd1f8c77648301Fabrice Di Meglio/*
2fa7dc240e978b1b77bb5c80a78cd1f8c77648301Fabrice Di Meglio * Copyright (C) 2014 The Android Open Source Project
3fa7dc240e978b1b77bb5c80a78cd1f8c77648301Fabrice Di Meglio *
4fa7dc240e978b1b77bb5c80a78cd1f8c77648301Fabrice Di Meglio * Licensed under the Apache License, Version 2.0 (the "License");
5fa7dc240e978b1b77bb5c80a78cd1f8c77648301Fabrice Di Meglio * you may not use this file except in compliance with the License.
6fa7dc240e978b1b77bb5c80a78cd1f8c77648301Fabrice Di Meglio * You may obtain a copy of the License at
7fa7dc240e978b1b77bb5c80a78cd1f8c77648301Fabrice Di Meglio *
8fa7dc240e978b1b77bb5c80a78cd1f8c77648301Fabrice Di Meglio *      http://www.apache.org/licenses/LICENSE-2.0
9fa7dc240e978b1b77bb5c80a78cd1f8c77648301Fabrice Di Meglio *
10fa7dc240e978b1b77bb5c80a78cd1f8c77648301Fabrice Di Meglio * Unless required by applicable law or agreed to in writing, software
11fa7dc240e978b1b77bb5c80a78cd1f8c77648301Fabrice Di Meglio * distributed under the License is distributed on an "AS IS" BASIS,
12fa7dc240e978b1b77bb5c80a78cd1f8c77648301Fabrice Di Meglio * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13fa7dc240e978b1b77bb5c80a78cd1f8c77648301Fabrice Di Meglio * See the License for the specific language governing permissions and
14fa7dc240e978b1b77bb5c80a78cd1f8c77648301Fabrice Di Meglio * limitations under the License.
15fa7dc240e978b1b77bb5c80a78cd1f8c77648301Fabrice Di Meglio */
16fa7dc240e978b1b77bb5c80a78cd1f8c77648301Fabrice Di Meglio
17fa7dc240e978b1b77bb5c80a78cd1f8c77648301Fabrice Di Megliopackage com.android.settings.search;
18fa7dc240e978b1b77bb5c80a78cd1f8c77648301Fabrice Di Meglio
19fa7dc240e978b1b77bb5c80a78cd1f8c77648301Fabrice Di Meglioimport android.database.Cursor;
20fa7dc240e978b1b77bb5c80a78cd1f8c77648301Fabrice Di Meglioimport android.database.MatrixCursor;
21fa7dc240e978b1b77bb5c80a78cd1f8c77648301Fabrice Di Meglioimport android.provider.SearchIndexableResource;
22fa7dc240e978b1b77bb5c80a78cd1f8c77648301Fabrice Di Meglioimport android.provider.SearchIndexablesProvider;
23fa7dc240e978b1b77bb5c80a78cd1f8c77648301Fabrice Di Meglio
2451bfee595c3ce587e2e26565fd9e8f4ae02c3482Fabrice Di Meglioimport java.util.Collection;
2551bfee595c3ce587e2e26565fd9e8f4ae02c3482Fabrice Di Meglio
26981efd17786c98180a4b25261b20e61a37d3846fFabrice Di Meglioimport static android.provider.SearchIndexablesContract.COLUMN_INDEX_XML_RES_RANK;
27981efd17786c98180a4b25261b20e61a37d3846fFabrice Di Meglioimport static android.provider.SearchIndexablesContract.COLUMN_INDEX_XML_RES_RESID;
28981efd17786c98180a4b25261b20e61a37d3846fFabrice Di Meglioimport static android.provider.SearchIndexablesContract.COLUMN_INDEX_XML_RES_CLASS_NAME;
29981efd17786c98180a4b25261b20e61a37d3846fFabrice Di Meglioimport static android.provider.SearchIndexablesContract.COLUMN_INDEX_XML_RES_ICON_RESID;
30981efd17786c98180a4b25261b20e61a37d3846fFabrice Di Meglioimport static android.provider.SearchIndexablesContract.COLUMN_INDEX_XML_RES_INTENT_ACTION;
31981efd17786c98180a4b25261b20e61a37d3846fFabrice Di Meglioimport static android.provider.SearchIndexablesContract.COLUMN_INDEX_XML_RES_INTENT_TARGET_PACKAGE;
32981efd17786c98180a4b25261b20e61a37d3846fFabrice Di Meglioimport static android.provider.SearchIndexablesContract.COLUMN_INDEX_XML_RES_INTENT_TARGET_CLASS;
33981efd17786c98180a4b25261b20e61a37d3846fFabrice Di Meglio
34fa7dc240e978b1b77bb5c80a78cd1f8c77648301Fabrice Di Meglioimport static android.provider.SearchIndexablesContract.INDEXABLES_XML_RES_COLUMNS;
35fa7dc240e978b1b77bb5c80a78cd1f8c77648301Fabrice Di Meglioimport static android.provider.SearchIndexablesContract.INDEXABLES_RAW_COLUMNS;
36df278aa959b5e0a5d2b5d9152b7013d22757cd17Fabrice Di Meglioimport static android.provider.SearchIndexablesContract.NON_INDEXABLES_KEYS_COLUMNS;
37fa7dc240e978b1b77bb5c80a78cd1f8c77648301Fabrice Di Meglio
38fa7dc240e978b1b77bb5c80a78cd1f8c77648301Fabrice Di Megliopublic class SettingsSearchIndexablesProvider extends SearchIndexablesProvider {
39fa7dc240e978b1b77bb5c80a78cd1f8c77648301Fabrice Di Meglio    private static final String TAG = "SettingsSearchIndexablesProvider";
40fa7dc240e978b1b77bb5c80a78cd1f8c77648301Fabrice Di Meglio
41fa7dc240e978b1b77bb5c80a78cd1f8c77648301Fabrice Di Meglio    @Override
42fa7dc240e978b1b77bb5c80a78cd1f8c77648301Fabrice Di Meglio    public boolean onCreate() {
43fa7dc240e978b1b77bb5c80a78cd1f8c77648301Fabrice Di Meglio        return true;
44fa7dc240e978b1b77bb5c80a78cd1f8c77648301Fabrice Di Meglio    }
45fa7dc240e978b1b77bb5c80a78cd1f8c77648301Fabrice Di Meglio
46fa7dc240e978b1b77bb5c80a78cd1f8c77648301Fabrice Di Meglio    @Override
47fa7dc240e978b1b77bb5c80a78cd1f8c77648301Fabrice Di Meglio    public Cursor queryXmlResources(String[] projection) {
48fa7dc240e978b1b77bb5c80a78cd1f8c77648301Fabrice Di Meglio        MatrixCursor cursor = new MatrixCursor(INDEXABLES_XML_RES_COLUMNS);
4951bfee595c3ce587e2e26565fd9e8f4ae02c3482Fabrice Di Meglio        Collection<SearchIndexableResource> values = SearchIndexableResources.values();
5051bfee595c3ce587e2e26565fd9e8f4ae02c3482Fabrice Di Meglio        for (SearchIndexableResource val : values) {
51fa7dc240e978b1b77bb5c80a78cd1f8c77648301Fabrice Di Meglio            Object[] ref = new Object[7];
52981efd17786c98180a4b25261b20e61a37d3846fFabrice Di Meglio            ref[COLUMN_INDEX_XML_RES_RANK] = val.rank;
53981efd17786c98180a4b25261b20e61a37d3846fFabrice Di Meglio            ref[COLUMN_INDEX_XML_RES_RESID] = val.xmlResId;
54981efd17786c98180a4b25261b20e61a37d3846fFabrice Di Meglio            ref[COLUMN_INDEX_XML_RES_CLASS_NAME] = val.className;
55981efd17786c98180a4b25261b20e61a37d3846fFabrice Di Meglio            ref[COLUMN_INDEX_XML_RES_ICON_RESID] = val.iconResId;
56981efd17786c98180a4b25261b20e61a37d3846fFabrice Di Meglio            ref[COLUMN_INDEX_XML_RES_INTENT_ACTION] = null; // intent action
57981efd17786c98180a4b25261b20e61a37d3846fFabrice Di Meglio            ref[COLUMN_INDEX_XML_RES_INTENT_TARGET_PACKAGE] = null; // intent target package
58981efd17786c98180a4b25261b20e61a37d3846fFabrice Di Meglio            ref[COLUMN_INDEX_XML_RES_INTENT_TARGET_CLASS] = null; // intent target class
59fa7dc240e978b1b77bb5c80a78cd1f8c77648301Fabrice Di Meglio            cursor.addRow(ref);
60fa7dc240e978b1b77bb5c80a78cd1f8c77648301Fabrice Di Meglio        }
61fa7dc240e978b1b77bb5c80a78cd1f8c77648301Fabrice Di Meglio        return cursor;
62fa7dc240e978b1b77bb5c80a78cd1f8c77648301Fabrice Di Meglio    }
63fa7dc240e978b1b77bb5c80a78cd1f8c77648301Fabrice Di Meglio
64fa7dc240e978b1b77bb5c80a78cd1f8c77648301Fabrice Di Meglio    @Override
65fa7dc240e978b1b77bb5c80a78cd1f8c77648301Fabrice Di Meglio    public Cursor queryRawData(String[] projection) {
6609e13da6a738d7301ad7e3259cdc6a59fed970c1Fabrice Di Meglio        MatrixCursor result = new MatrixCursor(INDEXABLES_RAW_COLUMNS);
67fa7dc240e978b1b77bb5c80a78cd1f8c77648301Fabrice Di Meglio        return result;
68fa7dc240e978b1b77bb5c80a78cd1f8c77648301Fabrice Di Meglio    }
69df278aa959b5e0a5d2b5d9152b7013d22757cd17Fabrice Di Meglio
70df278aa959b5e0a5d2b5d9152b7013d22757cd17Fabrice Di Meglio    @Override
71df278aa959b5e0a5d2b5d9152b7013d22757cd17Fabrice Di Meglio    public Cursor queryNonIndexableKeys(String[] projection) {
72df278aa959b5e0a5d2b5d9152b7013d22757cd17Fabrice Di Meglio        MatrixCursor cursor = new MatrixCursor(NON_INDEXABLES_KEYS_COLUMNS);
73df278aa959b5e0a5d2b5d9152b7013d22757cd17Fabrice Di Meglio        return cursor;
74df278aa959b5e0a5d2b5d9152b7013d22757cd17Fabrice Di Meglio    }
75fa7dc240e978b1b77bb5c80a78cd1f8c77648301Fabrice Di Meglio}
76