/* * Copyright (C) 2014 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package android.provider; import android.content.ContentResolver; /** * Describe the contract for an Indexable data. * * @hide */ public class SearchIndexablesContract { /** * Intent action used to identify {@link SearchIndexablesProvider} * instances. This is used in the {@code } of a {@code }. */ public static final String PROVIDER_INTERFACE = "android.content.action.SEARCH_INDEXABLES_PROVIDER"; private static final String SETTINGS = "settings"; /** * Indexable references name. */ public static final String INDEXABLES_XML_RES = "indexables_xml_res"; /** * ContentProvider path for indexable xml resources. */ public static final String INDEXABLES_XML_RES_PATH = SETTINGS + "/" + INDEXABLES_XML_RES; /** * Indexable raw data name. */ public static final String INDEXABLES_RAW = "indexables_raw"; /** * ContentProvider path for indexable raw data. */ public static final String INDEXABLES_RAW_PATH = SETTINGS + "/" + INDEXABLES_RAW; /** * Indexable xml resources colums. */ public static final String[] INDEXABLES_XML_RES_COLUMNS = new String[] { XmlResource.COLUMN_RANK, XmlResource.COLUMN_XML_RESID, XmlResource.COLUMN_CLASS_NAME, XmlResource.COLUMN_ICON_RESID, XmlResource.COLUMN_INTENT_ACTION, XmlResource.COLUMN_INTENT_TARGET_PACKAGE, XmlResource.COLUMN_INTENT_TARGET_CLASS }; /** * Indexable raw data colums. */ public static final String[] INDEXABLES_RAW_COLUMNS = new String[] { RawData.COLUMN_RANK, RawData.COLUMN_TITLE, RawData.COLUMN_SUMMARY, RawData.COLUMN_KEYWORDS, RawData.COLUMN_SCREEN_TITLE, RawData.COLUMN_CLASS_NAME, RawData.COLUMN_ICON_RESID, RawData.COLUMN_INTENT_ACTION, RawData.COLUMN_INTENT_TARGET_PACKAGE, RawData.COLUMN_INTENT_TARGET_CLASS, }; /** * Constants related to a {@link SearchIndexableResource}. * * This is a description of */ public static final class XmlResource extends BaseColumns { private XmlResource() { } public static final String MIME_TYPE = ContentResolver.CURSOR_DIR_BASE_TYPE + "/" + INDEXABLES_XML_RES; /** * XML resource ID for the {@link android.preference.PreferenceScreen} to load and index. */ public static final String COLUMN_XML_RESID = "xmlResId"; } /** * Constants related to a {@link SearchIndexableData}. * * This is the raw data that is stored into an Index. This is related to * {@link android.preference.Preference} and its attributes like * {@link android.preference.Preference#getTitle()}, * {@link android.preference.Preference#getSummary()}, etc. * */ public static final class RawData extends BaseColumns { private RawData() { } public static final String MIME_TYPE = ContentResolver.CURSOR_DIR_BASE_TYPE + "/" + INDEXABLES_RAW; /** * Title's raw data. */ public static final String COLUMN_TITLE = "title"; /** * Summary's raw data. */ public static final String COLUMN_SUMMARY = "summary"; /** * Keywords' raw data. */ public static final String COLUMN_KEYWORDS = "keywords"; /** * Fragment's title associated with the raw data. */ public static final String COLUMN_SCREEN_TITLE = "screenTitle"; } /** * The base columns. */ private static class BaseColumns { private BaseColumns() { } /** * Rank of the data. This is an integer used for ranking the search results. This is * application specific. */ public static final String COLUMN_RANK = "rank"; /** * Class name associated with the data (usually a Fragment class name). */ public static final String COLUMN_CLASS_NAME = "className"; /** * Icon resource ID for the data. */ public static final String COLUMN_ICON_RESID = "iconResId"; /** * Intent action associated with the data. */ public static final String COLUMN_INTENT_ACTION = "intentAction"; /** * Intent target package associated with the data. */ public static final String COLUMN_INTENT_TARGET_PACKAGE = "intentTargetPackage"; /** * Intent target class associated with the data. */ public static final String COLUMN_INTENT_TARGET_CLASS = "intentTargetClass"; } }