SearchIndexableData.java revision 71b3975c8a9c11a88d18b2851066049dda4000c2
1b49995d4d997bf086c2f3214ca410b2a30861b13Fabrice Di Meglio/* 2b49995d4d997bf086c2f3214ca410b2a30861b13Fabrice Di Meglio * Copyright (C) 2014 The Android Open Source Project 3b49995d4d997bf086c2f3214ca410b2a30861b13Fabrice Di Meglio * 4b49995d4d997bf086c2f3214ca410b2a30861b13Fabrice Di Meglio * Licensed under the Apache License, Version 2.0 (the "License"); 5b49995d4d997bf086c2f3214ca410b2a30861b13Fabrice Di Meglio * you may not use this file except in compliance with the License. 6b49995d4d997bf086c2f3214ca410b2a30861b13Fabrice Di Meglio * You may obtain a copy of the License at 7b49995d4d997bf086c2f3214ca410b2a30861b13Fabrice Di Meglio * 8b49995d4d997bf086c2f3214ca410b2a30861b13Fabrice Di Meglio * http://www.apache.org/licenses/LICENSE-2.0 9b49995d4d997bf086c2f3214ca410b2a30861b13Fabrice Di Meglio * 10b49995d4d997bf086c2f3214ca410b2a30861b13Fabrice Di Meglio * Unless required by applicable law or agreed to in writing, software 11b49995d4d997bf086c2f3214ca410b2a30861b13Fabrice Di Meglio * distributed under the License is distributed on an "AS IS" BASIS, 12b49995d4d997bf086c2f3214ca410b2a30861b13Fabrice Di Meglio * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13b49995d4d997bf086c2f3214ca410b2a30861b13Fabrice Di Meglio * See the License for the specific language governing permissions and 14b49995d4d997bf086c2f3214ca410b2a30861b13Fabrice Di Meglio * limitations under the License. 15b49995d4d997bf086c2f3214ca410b2a30861b13Fabrice Di Meglio */ 16b49995d4d997bf086c2f3214ca410b2a30861b13Fabrice Di Meglio 17b49995d4d997bf086c2f3214ca410b2a30861b13Fabrice Di Megliopackage android.provider; 18b49995d4d997bf086c2f3214ca410b2a30861b13Fabrice Di Meglio 19b49995d4d997bf086c2f3214ca410b2a30861b13Fabrice Di Meglioimport android.content.Context; 20b49995d4d997bf086c2f3214ca410b2a30861b13Fabrice Di Meglio 21b49995d4d997bf086c2f3214ca410b2a30861b13Fabrice Di Meglioimport java.util.Locale; 22b49995d4d997bf086c2f3214ca410b2a30861b13Fabrice Di Meglio 23b49995d4d997bf086c2f3214ca410b2a30861b13Fabrice Di Meglio/** 2416f81e75423a9ffa602ad45a679d9e0283f4e499Fabrice Di Meglio * The Indexable data for Search. 2516f81e75423a9ffa602ad45a679d9e0283f4e499Fabrice Di Meglio * 2616f81e75423a9ffa602ad45a679d9e0283f4e499Fabrice Di Meglio * This abstract class defines the common parts for all search indexable data. 27b49995d4d997bf086c2f3214ca410b2a30861b13Fabrice Di Meglio * 28b49995d4d997bf086c2f3214ca410b2a30861b13Fabrice Di Meglio * @hide 29b49995d4d997bf086c2f3214ca410b2a30861b13Fabrice Di Meglio */ 30b49995d4d997bf086c2f3214ca410b2a30861b13Fabrice Di Megliopublic abstract class SearchIndexableData { 31b49995d4d997bf086c2f3214ca410b2a30861b13Fabrice Di Meglio 32b49995d4d997bf086c2f3214ca410b2a30861b13Fabrice Di Meglio /** 3316f81e75423a9ffa602ad45a679d9e0283f4e499Fabrice Di Meglio * The context for the data. Will usually allow retrieving some resources. 34b49995d4d997bf086c2f3214ca410b2a30861b13Fabrice Di Meglio * 35b49995d4d997bf086c2f3214ca410b2a30861b13Fabrice Di Meglio * @see Context 36b49995d4d997bf086c2f3214ca410b2a30861b13Fabrice Di Meglio */ 37b49995d4d997bf086c2f3214ca410b2a30861b13Fabrice Di Meglio public Context context; 38b49995d4d997bf086c2f3214ca410b2a30861b13Fabrice Di Meglio 39b49995d4d997bf086c2f3214ca410b2a30861b13Fabrice Di Meglio /** 40b49995d4d997bf086c2f3214ca410b2a30861b13Fabrice Di Meglio * The locale for the data 41b49995d4d997bf086c2f3214ca410b2a30861b13Fabrice Di Meglio */ 42b49995d4d997bf086c2f3214ca410b2a30861b13Fabrice Di Meglio public Locale locale; 43b49995d4d997bf086c2f3214ca410b2a30861b13Fabrice Di Meglio 44b49995d4d997bf086c2f3214ca410b2a30861b13Fabrice Di Meglio /** 4516f81e75423a9ffa602ad45a679d9e0283f4e499Fabrice Di Meglio * Tells if the data will be included into the search results. This is application specific. 4616f81e75423a9ffa602ad45a679d9e0283f4e499Fabrice Di Meglio */ 4716f81e75423a9ffa602ad45a679d9e0283f4e499Fabrice Di Meglio public boolean enabled; 4816f81e75423a9ffa602ad45a679d9e0283f4e499Fabrice Di Meglio 4916f81e75423a9ffa602ad45a679d9e0283f4e499Fabrice Di Meglio /** 50b49995d4d997bf086c2f3214ca410b2a30861b13Fabrice Di Meglio * The rank for the data. This is application specific. 51b49995d4d997bf086c2f3214ca410b2a30861b13Fabrice Di Meglio */ 52b49995d4d997bf086c2f3214ca410b2a30861b13Fabrice Di Meglio public int rank; 53b49995d4d997bf086c2f3214ca410b2a30861b13Fabrice Di Meglio 54b49995d4d997bf086c2f3214ca410b2a30861b13Fabrice Di Meglio /** 55738691d610c918691b386f332548bbd6abc783f9Fabrice Di Meglio * The key for the data. This is application specific. Should be unique per data as the data 56738691d610c918691b386f332548bbd6abc783f9Fabrice Di Meglio * should be able to be retrieved by the key. 57738691d610c918691b386f332548bbd6abc783f9Fabrice Di Meglio */ 58738691d610c918691b386f332548bbd6abc783f9Fabrice Di Meglio public String key; 59738691d610c918691b386f332548bbd6abc783f9Fabrice Di Meglio 60738691d610c918691b386f332548bbd6abc783f9Fabrice Di Meglio /** 61b49995d4d997bf086c2f3214ca410b2a30861b13Fabrice Di Meglio * The class name associated with the data. Generally this is a Fragment class name for 62b49995d4d997bf086c2f3214ca410b2a30861b13Fabrice Di Meglio * referring where the data is coming from and for launching the associated Fragment for 63b49995d4d997bf086c2f3214ca410b2a30861b13Fabrice Di Meglio * displaying the data. This is used only when the data is provided "locally". 64b49995d4d997bf086c2f3214ca410b2a30861b13Fabrice Di Meglio * 65b49995d4d997bf086c2f3214ca410b2a30861b13Fabrice Di Meglio * If the data is provided "externally", the relevant information come from the 66b49995d4d997bf086c2f3214ca410b2a30861b13Fabrice Di Meglio * {@link SearchIndexableData#intentAction} and {@link SearchIndexableData#intentTargetPackage} 67b49995d4d997bf086c2f3214ca410b2a30861b13Fabrice Di Meglio * and {@link SearchIndexableData#intentTargetClass}. 68b49995d4d997bf086c2f3214ca410b2a30861b13Fabrice Di Meglio * 69b49995d4d997bf086c2f3214ca410b2a30861b13Fabrice Di Meglio * @see SearchIndexableData#intentAction 70b49995d4d997bf086c2f3214ca410b2a30861b13Fabrice Di Meglio * @see SearchIndexableData#intentTargetPackage 71b49995d4d997bf086c2f3214ca410b2a30861b13Fabrice Di Meglio * @see SearchIndexableData#intentTargetClass 72b49995d4d997bf086c2f3214ca410b2a30861b13Fabrice Di Meglio */ 73b49995d4d997bf086c2f3214ca410b2a30861b13Fabrice Di Meglio public String className; 74b49995d4d997bf086c2f3214ca410b2a30861b13Fabrice Di Meglio 75b49995d4d997bf086c2f3214ca410b2a30861b13Fabrice Di Meglio /** 76b49995d4d997bf086c2f3214ca410b2a30861b13Fabrice Di Meglio * The package name for retrieving the icon associated with the data. 77b49995d4d997bf086c2f3214ca410b2a30861b13Fabrice Di Meglio * 78b49995d4d997bf086c2f3214ca410b2a30861b13Fabrice Di Meglio * @see SearchIndexableData#iconResId 79b49995d4d997bf086c2f3214ca410b2a30861b13Fabrice Di Meglio */ 80b49995d4d997bf086c2f3214ca410b2a30861b13Fabrice Di Meglio public String packageName; 81b49995d4d997bf086c2f3214ca410b2a30861b13Fabrice Di Meglio 82b49995d4d997bf086c2f3214ca410b2a30861b13Fabrice Di Meglio /** 83b49995d4d997bf086c2f3214ca410b2a30861b13Fabrice Di Meglio * The icon resource ID associated with the data. 84b49995d4d997bf086c2f3214ca410b2a30861b13Fabrice Di Meglio * 85b49995d4d997bf086c2f3214ca410b2a30861b13Fabrice Di Meglio * @see SearchIndexableData#packageName 86b49995d4d997bf086c2f3214ca410b2a30861b13Fabrice Di Meglio */ 87b49995d4d997bf086c2f3214ca410b2a30861b13Fabrice Di Meglio public int iconResId; 88b49995d4d997bf086c2f3214ca410b2a30861b13Fabrice Di Meglio 89b49995d4d997bf086c2f3214ca410b2a30861b13Fabrice Di Meglio /** 90b49995d4d997bf086c2f3214ca410b2a30861b13Fabrice Di Meglio * The Intent action associated with the data. This is used when the 91b49995d4d997bf086c2f3214ca410b2a30861b13Fabrice Di Meglio * {@link SearchIndexableData#className} is not relevant. 92b49995d4d997bf086c2f3214ca410b2a30861b13Fabrice Di Meglio * 93b49995d4d997bf086c2f3214ca410b2a30861b13Fabrice Di Meglio * @see SearchIndexableData#intentTargetPackage 94b49995d4d997bf086c2f3214ca410b2a30861b13Fabrice Di Meglio * @see SearchIndexableData#intentTargetClass 95b49995d4d997bf086c2f3214ca410b2a30861b13Fabrice Di Meglio */ 96b49995d4d997bf086c2f3214ca410b2a30861b13Fabrice Di Meglio public String intentAction; 97b49995d4d997bf086c2f3214ca410b2a30861b13Fabrice Di Meglio 98b49995d4d997bf086c2f3214ca410b2a30861b13Fabrice Di Meglio /** 99b49995d4d997bf086c2f3214ca410b2a30861b13Fabrice Di Meglio * The Intent target package associated with the data. 100b49995d4d997bf086c2f3214ca410b2a30861b13Fabrice Di Meglio * 101b49995d4d997bf086c2f3214ca410b2a30861b13Fabrice Di Meglio * @see SearchIndexableData#intentAction 102b49995d4d997bf086c2f3214ca410b2a30861b13Fabrice Di Meglio * @see SearchIndexableData#intentTargetClass 103b49995d4d997bf086c2f3214ca410b2a30861b13Fabrice Di Meglio */ 104b49995d4d997bf086c2f3214ca410b2a30861b13Fabrice Di Meglio public String intentTargetPackage; 105b49995d4d997bf086c2f3214ca410b2a30861b13Fabrice Di Meglio 106b49995d4d997bf086c2f3214ca410b2a30861b13Fabrice Di Meglio /** 107b49995d4d997bf086c2f3214ca410b2a30861b13Fabrice Di Meglio * The Intent target class associated with the data. 108b49995d4d997bf086c2f3214ca410b2a30861b13Fabrice Di Meglio * 109b49995d4d997bf086c2f3214ca410b2a30861b13Fabrice Di Meglio * @see SearchIndexableData#intentAction 110b49995d4d997bf086c2f3214ca410b2a30861b13Fabrice Di Meglio * @see SearchIndexableData#intentTargetPackage 111b49995d4d997bf086c2f3214ca410b2a30861b13Fabrice Di Meglio */ 112b49995d4d997bf086c2f3214ca410b2a30861b13Fabrice Di Meglio public String intentTargetClass; 113b49995d4d997bf086c2f3214ca410b2a30861b13Fabrice Di Meglio 114b49995d4d997bf086c2f3214ca410b2a30861b13Fabrice Di Meglio /** 115b49995d4d997bf086c2f3214ca410b2a30861b13Fabrice Di Meglio * Default constructor. 116b49995d4d997bf086c2f3214ca410b2a30861b13Fabrice Di Meglio */ 117b49995d4d997bf086c2f3214ca410b2a30861b13Fabrice Di Meglio public SearchIndexableData() { 11816f81e75423a9ffa602ad45a679d9e0283f4e499Fabrice Di Meglio enabled = true; 119b49995d4d997bf086c2f3214ca410b2a30861b13Fabrice Di Meglio } 120b49995d4d997bf086c2f3214ca410b2a30861b13Fabrice Di Meglio 121b49995d4d997bf086c2f3214ca410b2a30861b13Fabrice Di Meglio /** 122b49995d4d997bf086c2f3214ca410b2a30861b13Fabrice Di Meglio * Constructor with a {@link Context}. 123b49995d4d997bf086c2f3214ca410b2a30861b13Fabrice Di Meglio * 124b49995d4d997bf086c2f3214ca410b2a30861b13Fabrice Di Meglio * @param ctx the Context 125b49995d4d997bf086c2f3214ca410b2a30861b13Fabrice Di Meglio */ 126b49995d4d997bf086c2f3214ca410b2a30861b13Fabrice Di Meglio public SearchIndexableData(Context ctx) { 127b49995d4d997bf086c2f3214ca410b2a30861b13Fabrice Di Meglio context = ctx; 128b49995d4d997bf086c2f3214ca410b2a30861b13Fabrice Di Meglio locale = Locale.getDefault(); 12916f81e75423a9ffa602ad45a679d9e0283f4e499Fabrice Di Meglio enabled = true; 130b49995d4d997bf086c2f3214ca410b2a30861b13Fabrice Di Meglio } 13171b3975c8a9c11a88d18b2851066049dda4000c2Fabrice Di Meglio 13271b3975c8a9c11a88d18b2851066049dda4000c2Fabrice Di Meglio @Override 13371b3975c8a9c11a88d18b2851066049dda4000c2Fabrice Di Meglio public String toString() { 13471b3975c8a9c11a88d18b2851066049dda4000c2Fabrice Di Meglio final StringBuilder sb = new StringBuilder(); 13571b3975c8a9c11a88d18b2851066049dda4000c2Fabrice Di Meglio sb.append("SearchIndexableData[context: "); 13671b3975c8a9c11a88d18b2851066049dda4000c2Fabrice Di Meglio sb.append(context); 13771b3975c8a9c11a88d18b2851066049dda4000c2Fabrice Di Meglio sb.append(", "); 13871b3975c8a9c11a88d18b2851066049dda4000c2Fabrice Di Meglio sb.append("locale: "); 13971b3975c8a9c11a88d18b2851066049dda4000c2Fabrice Di Meglio sb.append(locale); 14071b3975c8a9c11a88d18b2851066049dda4000c2Fabrice Di Meglio sb.append(", "); 14171b3975c8a9c11a88d18b2851066049dda4000c2Fabrice Di Meglio sb.append("enabled: "); 14271b3975c8a9c11a88d18b2851066049dda4000c2Fabrice Di Meglio sb.append(enabled); 14371b3975c8a9c11a88d18b2851066049dda4000c2Fabrice Di Meglio sb.append(", "); 14471b3975c8a9c11a88d18b2851066049dda4000c2Fabrice Di Meglio sb.append("rank: "); 14571b3975c8a9c11a88d18b2851066049dda4000c2Fabrice Di Meglio sb.append(rank); 14671b3975c8a9c11a88d18b2851066049dda4000c2Fabrice Di Meglio sb.append(", "); 14771b3975c8a9c11a88d18b2851066049dda4000c2Fabrice Di Meglio sb.append("key: "); 14871b3975c8a9c11a88d18b2851066049dda4000c2Fabrice Di Meglio sb.append(key); 14971b3975c8a9c11a88d18b2851066049dda4000c2Fabrice Di Meglio sb.append(", "); 15071b3975c8a9c11a88d18b2851066049dda4000c2Fabrice Di Meglio sb.append("className: "); 15171b3975c8a9c11a88d18b2851066049dda4000c2Fabrice Di Meglio sb.append(className); 15271b3975c8a9c11a88d18b2851066049dda4000c2Fabrice Di Meglio sb.append(", "); 15371b3975c8a9c11a88d18b2851066049dda4000c2Fabrice Di Meglio sb.append("packageName: "); 15471b3975c8a9c11a88d18b2851066049dda4000c2Fabrice Di Meglio sb.append(packageName); 15571b3975c8a9c11a88d18b2851066049dda4000c2Fabrice Di Meglio sb.append(", "); 15671b3975c8a9c11a88d18b2851066049dda4000c2Fabrice Di Meglio sb.append("iconResId: "); 15771b3975c8a9c11a88d18b2851066049dda4000c2Fabrice Di Meglio sb.append(iconResId); 15871b3975c8a9c11a88d18b2851066049dda4000c2Fabrice Di Meglio sb.append(", "); 15971b3975c8a9c11a88d18b2851066049dda4000c2Fabrice Di Meglio sb.append("intentAction: "); 16071b3975c8a9c11a88d18b2851066049dda4000c2Fabrice Di Meglio sb.append(intentAction); 16171b3975c8a9c11a88d18b2851066049dda4000c2Fabrice Di Meglio sb.append(", "); 16271b3975c8a9c11a88d18b2851066049dda4000c2Fabrice Di Meglio sb.append("intentTargetPackage: "); 16371b3975c8a9c11a88d18b2851066049dda4000c2Fabrice Di Meglio sb.append(intentTargetPackage); 16471b3975c8a9c11a88d18b2851066049dda4000c2Fabrice Di Meglio sb.append(", "); 16571b3975c8a9c11a88d18b2851066049dda4000c2Fabrice Di Meglio sb.append("intentTargetClass: "); 16671b3975c8a9c11a88d18b2851066049dda4000c2Fabrice Di Meglio sb.append(intentTargetClass); 16771b3975c8a9c11a88d18b2851066049dda4000c2Fabrice Di Meglio sb.append("]"); 16871b3975c8a9c11a88d18b2851066049dda4000c2Fabrice Di Meglio 16971b3975c8a9c11a88d18b2851066049dda4000c2Fabrice Di Meglio return sb.toString(); 17071b3975c8a9c11a88d18b2851066049dda4000c2Fabrice Di Meglio } 171b49995d4d997bf086c2f3214ca410b2a30861b13Fabrice Di Meglio} 172