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