Loading core/java/android/provider/SearchIndexablesContract.java +41 −2 Original line number Diff line number Diff line Loading @@ -35,7 +35,7 @@ public class SearchIndexablesContract { private static final String SETTINGS = "settings"; /** * Indexable references name. * Indexable reference names. */ public static final String INDEXABLES_XML_RES = "indexables_xml_res"; Loading @@ -45,7 +45,7 @@ public class SearchIndexablesContract { public static final String INDEXABLES_XML_RES_PATH = SETTINGS + "/" + INDEXABLES_XML_RES; /** * Indexable raw data name. * Indexable raw data names. */ public static final String INDEXABLES_RAW = "indexables_raw"; Loading @@ -54,6 +54,16 @@ public class SearchIndexablesContract { */ public static final String INDEXABLES_RAW_PATH = SETTINGS + "/" + INDEXABLES_RAW; /** * Non indexable data keys. */ public static final String NON_INDEXABLES_KEYS = "non_indexables_key"; /** * ContentProvider path for non indexable data keys. */ public static final String NON_INDEXABLES_KEYS_PATH = SETTINGS + "/" + NON_INDEXABLES_KEYS; /** * Indexable xml resources colums. */ Loading Loading @@ -114,6 +124,17 @@ public class SearchIndexablesContract { public static final int COLUMN_INDEX_RAW_INTENT_TARGET_CLASS = 11; public static final int COLUMN_INDEX_RAW_KEY = 12; /** * Indexable raw data colums. */ public static final String[] NON_INDEXABLES_KEYS_COLUMNS = new String[] { NonIndexableKey.COLUMN_KEY_VALUE // 0 }; /** * Non indexable data keys colums indices. */ public static final int COLUMN_INDEX_NON_INDEXABLE_KEYS_KEY_VALUE = 0; /** * Constants related to a {@link SearchIndexableResource}. Loading Loading @@ -185,6 +206,24 @@ public class SearchIndexablesContract { public static final String COLUMN_KEY = "key"; } /** * Constants related to a {@link SearchIndexableResource} and {@link SearchIndexableData}. * * This is a description of a data (thru its unique key) that cannot be indexed. */ public static final class NonIndexableKey extends BaseColumns { private NonIndexableKey() { } public static final String MIME_TYPE = ContentResolver.CURSOR_DIR_BASE_TYPE + "/" + NON_INDEXABLES_KEYS; /** * Key for the non indexable data. */ public static final String COLUMN_KEY_VALUE = "key"; } /** * The base columns. */ Loading core/java/android/provider/SearchIndexablesProvider.java +23 −8 Original line number Diff line number Diff line Loading @@ -69,6 +69,7 @@ public abstract class SearchIndexablesProvider extends ContentProvider { private static final int MATCH_RES_CODE = 1; private static final int MATCH_RAW_CODE = 2; private static final int MATCH_NON_INDEXABLE_KEYS_CODE = 3; /** * Implementation is provided by the parent class. Loading @@ -82,6 +83,8 @@ public abstract class SearchIndexablesProvider extends ContentProvider { MATCH_RES_CODE); mMatcher.addURI(mAuthority, SearchIndexablesContract.INDEXABLES_RAW_PATH, MATCH_RAW_CODE); mMatcher.addURI(mAuthority, SearchIndexablesContract.NON_INDEXABLES_KEYS_PATH, MATCH_NON_INDEXABLE_KEYS_CODE); // Sanity check our setup if (!info.exported) { Loading @@ -105,6 +108,8 @@ public abstract class SearchIndexablesProvider extends ContentProvider { return queryXmlResources(null); case MATCH_RAW_CODE: return queryRawData(null); case MATCH_NON_INDEXABLE_KEYS_CODE: return queryNonIndexableKeys(null); default: throw new UnsupportedOperationException("Unknown Uri " + uri); } Loading @@ -113,7 +118,7 @@ public abstract class SearchIndexablesProvider extends ContentProvider { /** * Returns all {@link android.provider.SearchIndexablesContract.XmlResource}. * * Those are usually xml resource ID to some {@link android.preference.PreferenceScreen}. * Those are Xml resource IDs to some {@link android.preference.PreferenceScreen}. * * @param projection list of {@link android.provider.SearchIndexablesContract.XmlResource} * columns to put into the cursor. If {@code null} all supported columns Loading @@ -124,7 +129,7 @@ public abstract class SearchIndexablesProvider extends ContentProvider { /** * Returns all {@link android.provider.SearchIndexablesContract.RawData}. * * Those are raw indexable data. * Those are the raw indexable data. * * @param projection list of {@link android.provider.SearchIndexablesContract.RawData} columns * to put into the cursor. If {@code null} all supported columns should be Loading @@ -132,6 +137,17 @@ public abstract class SearchIndexablesProvider extends ContentProvider { */ public abstract Cursor queryRawData(String[] projection); /** * Returns all {@link android.provider.SearchIndexablesContract.NonIndexableKey}. * * Those are the non indexable data keys. * * @param projection list of {@link android.provider.SearchIndexablesContract.NonIndexableKey} * columns to put into the cursor. If {@code null} all supported columns * should be included. */ public abstract Cursor queryNonIndexableKeys(String[] projection); @Override public String getType(Uri uri) { switch (mMatcher.match(uri)) { Loading @@ -139,14 +155,15 @@ public abstract class SearchIndexablesProvider extends ContentProvider { return SearchIndexablesContract.XmlResource.MIME_TYPE; case MATCH_RAW_CODE: return SearchIndexablesContract.RawData.MIME_TYPE; case MATCH_NON_INDEXABLE_KEYS_CODE: return SearchIndexablesContract.NonIndexableKey.MIME_TYPE; default: throw new IllegalArgumentException("Unknown URI " + uri); } } /** * Implementation is provided by the parent class. Throws by default, and * cannot be overriden. * Implementation is provided by the parent class. Throws by default, and cannot be overriden. */ @Override public final Uri insert(Uri uri, ContentValues values) { Loading @@ -154,8 +171,7 @@ public abstract class SearchIndexablesProvider extends ContentProvider { } /** * Implementation is provided by the parent class. Throws by default, and * cannot be overriden. * Implementation is provided by the parent class. Throws by default, and cannot be overriden. */ @Override public final int delete(Uri uri, String selection, String[] selectionArgs) { Loading @@ -163,8 +179,7 @@ public abstract class SearchIndexablesProvider extends ContentProvider { } /** * Implementation is provided by the parent class. Throws by default, and * cannot be overriden. * Implementation is provided by the parent class. Throws by default, and cannot be overriden. */ @Override public final int update( Loading Loading
core/java/android/provider/SearchIndexablesContract.java +41 −2 Original line number Diff line number Diff line Loading @@ -35,7 +35,7 @@ public class SearchIndexablesContract { private static final String SETTINGS = "settings"; /** * Indexable references name. * Indexable reference names. */ public static final String INDEXABLES_XML_RES = "indexables_xml_res"; Loading @@ -45,7 +45,7 @@ public class SearchIndexablesContract { public static final String INDEXABLES_XML_RES_PATH = SETTINGS + "/" + INDEXABLES_XML_RES; /** * Indexable raw data name. * Indexable raw data names. */ public static final String INDEXABLES_RAW = "indexables_raw"; Loading @@ -54,6 +54,16 @@ public class SearchIndexablesContract { */ public static final String INDEXABLES_RAW_PATH = SETTINGS + "/" + INDEXABLES_RAW; /** * Non indexable data keys. */ public static final String NON_INDEXABLES_KEYS = "non_indexables_key"; /** * ContentProvider path for non indexable data keys. */ public static final String NON_INDEXABLES_KEYS_PATH = SETTINGS + "/" + NON_INDEXABLES_KEYS; /** * Indexable xml resources colums. */ Loading Loading @@ -114,6 +124,17 @@ public class SearchIndexablesContract { public static final int COLUMN_INDEX_RAW_INTENT_TARGET_CLASS = 11; public static final int COLUMN_INDEX_RAW_KEY = 12; /** * Indexable raw data colums. */ public static final String[] NON_INDEXABLES_KEYS_COLUMNS = new String[] { NonIndexableKey.COLUMN_KEY_VALUE // 0 }; /** * Non indexable data keys colums indices. */ public static final int COLUMN_INDEX_NON_INDEXABLE_KEYS_KEY_VALUE = 0; /** * Constants related to a {@link SearchIndexableResource}. Loading Loading @@ -185,6 +206,24 @@ public class SearchIndexablesContract { public static final String COLUMN_KEY = "key"; } /** * Constants related to a {@link SearchIndexableResource} and {@link SearchIndexableData}. * * This is a description of a data (thru its unique key) that cannot be indexed. */ public static final class NonIndexableKey extends BaseColumns { private NonIndexableKey() { } public static final String MIME_TYPE = ContentResolver.CURSOR_DIR_BASE_TYPE + "/" + NON_INDEXABLES_KEYS; /** * Key for the non indexable data. */ public static final String COLUMN_KEY_VALUE = "key"; } /** * The base columns. */ Loading
core/java/android/provider/SearchIndexablesProvider.java +23 −8 Original line number Diff line number Diff line Loading @@ -69,6 +69,7 @@ public abstract class SearchIndexablesProvider extends ContentProvider { private static final int MATCH_RES_CODE = 1; private static final int MATCH_RAW_CODE = 2; private static final int MATCH_NON_INDEXABLE_KEYS_CODE = 3; /** * Implementation is provided by the parent class. Loading @@ -82,6 +83,8 @@ public abstract class SearchIndexablesProvider extends ContentProvider { MATCH_RES_CODE); mMatcher.addURI(mAuthority, SearchIndexablesContract.INDEXABLES_RAW_PATH, MATCH_RAW_CODE); mMatcher.addURI(mAuthority, SearchIndexablesContract.NON_INDEXABLES_KEYS_PATH, MATCH_NON_INDEXABLE_KEYS_CODE); // Sanity check our setup if (!info.exported) { Loading @@ -105,6 +108,8 @@ public abstract class SearchIndexablesProvider extends ContentProvider { return queryXmlResources(null); case MATCH_RAW_CODE: return queryRawData(null); case MATCH_NON_INDEXABLE_KEYS_CODE: return queryNonIndexableKeys(null); default: throw new UnsupportedOperationException("Unknown Uri " + uri); } Loading @@ -113,7 +118,7 @@ public abstract class SearchIndexablesProvider extends ContentProvider { /** * Returns all {@link android.provider.SearchIndexablesContract.XmlResource}. * * Those are usually xml resource ID to some {@link android.preference.PreferenceScreen}. * Those are Xml resource IDs to some {@link android.preference.PreferenceScreen}. * * @param projection list of {@link android.provider.SearchIndexablesContract.XmlResource} * columns to put into the cursor. If {@code null} all supported columns Loading @@ -124,7 +129,7 @@ public abstract class SearchIndexablesProvider extends ContentProvider { /** * Returns all {@link android.provider.SearchIndexablesContract.RawData}. * * Those are raw indexable data. * Those are the raw indexable data. * * @param projection list of {@link android.provider.SearchIndexablesContract.RawData} columns * to put into the cursor. If {@code null} all supported columns should be Loading @@ -132,6 +137,17 @@ public abstract class SearchIndexablesProvider extends ContentProvider { */ public abstract Cursor queryRawData(String[] projection); /** * Returns all {@link android.provider.SearchIndexablesContract.NonIndexableKey}. * * Those are the non indexable data keys. * * @param projection list of {@link android.provider.SearchIndexablesContract.NonIndexableKey} * columns to put into the cursor. If {@code null} all supported columns * should be included. */ public abstract Cursor queryNonIndexableKeys(String[] projection); @Override public String getType(Uri uri) { switch (mMatcher.match(uri)) { Loading @@ -139,14 +155,15 @@ public abstract class SearchIndexablesProvider extends ContentProvider { return SearchIndexablesContract.XmlResource.MIME_TYPE; case MATCH_RAW_CODE: return SearchIndexablesContract.RawData.MIME_TYPE; case MATCH_NON_INDEXABLE_KEYS_CODE: return SearchIndexablesContract.NonIndexableKey.MIME_TYPE; default: throw new IllegalArgumentException("Unknown URI " + uri); } } /** * Implementation is provided by the parent class. Throws by default, and * cannot be overriden. * Implementation is provided by the parent class. Throws by default, and cannot be overriden. */ @Override public final Uri insert(Uri uri, ContentValues values) { Loading @@ -154,8 +171,7 @@ public abstract class SearchIndexablesProvider extends ContentProvider { } /** * Implementation is provided by the parent class. Throws by default, and * cannot be overriden. * Implementation is provided by the parent class. Throws by default, and cannot be overriden. */ @Override public final int delete(Uri uri, String selection, String[] selectionArgs) { Loading @@ -163,8 +179,7 @@ public abstract class SearchIndexablesProvider extends ContentProvider { } /** * Implementation is provided by the parent class. Throws by default, and * cannot be overriden. * Implementation is provided by the parent class. Throws by default, and cannot be overriden. */ @Override public final int update( Loading