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 /** 612331e9ebade7c7ebc55eaed7a642ba0f90fbc0f7Fabrice Di Meglio * The UserID for the data (in a multi user context). This is application specific and -1 is the 622331e9ebade7c7ebc55eaed7a642ba0f90fbc0f7Fabrice Di Meglio * default non initialized value. 632331e9ebade7c7ebc55eaed7a642ba0f90fbc0f7Fabrice Di Meglio */ 642331e9ebade7c7ebc55eaed7a642ba0f90fbc0f7Fabrice Di Meglio public int userId = -1; 652331e9ebade7c7ebc55eaed7a642ba0f90fbc0f7Fabrice Di Meglio 662331e9ebade7c7ebc55eaed7a642ba0f90fbc0f7Fabrice Di Meglio /** 67b49995d4d997bf086c2f3214ca410b2a30861b13Fabrice Di Meglio * The class name associated with the data. Generally this is a Fragment class name for 68b49995d4d997bf086c2f3214ca410b2a30861b13Fabrice Di Meglio * referring where the data is coming from and for launching the associated Fragment for 69b49995d4d997bf086c2f3214ca410b2a30861b13Fabrice Di Meglio * displaying the data. This is used only when the data is provided "locally". 70b49995d4d997bf086c2f3214ca410b2a30861b13Fabrice Di Meglio * 71b49995d4d997bf086c2f3214ca410b2a30861b13Fabrice Di Meglio * If the data is provided "externally", the relevant information come from the 72b49995d4d997bf086c2f3214ca410b2a30861b13Fabrice Di Meglio * {@link SearchIndexableData#intentAction} and {@link SearchIndexableData#intentTargetPackage} 73b49995d4d997bf086c2f3214ca410b2a30861b13Fabrice Di Meglio * and {@link SearchIndexableData#intentTargetClass}. 74b49995d4d997bf086c2f3214ca410b2a30861b13Fabrice Di Meglio * 75b49995d4d997bf086c2f3214ca410b2a30861b13Fabrice Di Meglio * @see SearchIndexableData#intentAction 76b49995d4d997bf086c2f3214ca410b2a30861b13Fabrice Di Meglio * @see SearchIndexableData#intentTargetPackage 77b49995d4d997bf086c2f3214ca410b2a30861b13Fabrice Di Meglio * @see SearchIndexableData#intentTargetClass 78b49995d4d997bf086c2f3214ca410b2a30861b13Fabrice Di Meglio */ 79b49995d4d997bf086c2f3214ca410b2a30861b13Fabrice Di Meglio public String className; 80b49995d4d997bf086c2f3214ca410b2a30861b13Fabrice Di Meglio 81b49995d4d997bf086c2f3214ca410b2a30861b13Fabrice Di Meglio /** 82b49995d4d997bf086c2f3214ca410b2a30861b13Fabrice Di Meglio * The package name for retrieving the icon associated with the data. 83b49995d4d997bf086c2f3214ca410b2a30861b13Fabrice Di Meglio * 84b49995d4d997bf086c2f3214ca410b2a30861b13Fabrice Di Meglio * @see SearchIndexableData#iconResId 85b49995d4d997bf086c2f3214ca410b2a30861b13Fabrice Di Meglio */ 86b49995d4d997bf086c2f3214ca410b2a30861b13Fabrice Di Meglio public String packageName; 87b49995d4d997bf086c2f3214ca410b2a30861b13Fabrice Di Meglio 88b49995d4d997bf086c2f3214ca410b2a30861b13Fabrice Di Meglio /** 89b49995d4d997bf086c2f3214ca410b2a30861b13Fabrice Di Meglio * The icon resource ID associated with the data. 90b49995d4d997bf086c2f3214ca410b2a30861b13Fabrice Di Meglio * 91b49995d4d997bf086c2f3214ca410b2a30861b13Fabrice Di Meglio * @see SearchIndexableData#packageName 92b49995d4d997bf086c2f3214ca410b2a30861b13Fabrice Di Meglio */ 93b49995d4d997bf086c2f3214ca410b2a30861b13Fabrice Di Meglio public int iconResId; 94b49995d4d997bf086c2f3214ca410b2a30861b13Fabrice Di Meglio 95b49995d4d997bf086c2f3214ca410b2a30861b13Fabrice Di Meglio /** 96b49995d4d997bf086c2f3214ca410b2a30861b13Fabrice Di Meglio * The Intent action associated with the data. This is used when the 97b49995d4d997bf086c2f3214ca410b2a30861b13Fabrice Di Meglio * {@link SearchIndexableData#className} is not relevant. 98b49995d4d997bf086c2f3214ca410b2a30861b13Fabrice Di Meglio * 99b49995d4d997bf086c2f3214ca410b2a30861b13Fabrice Di Meglio * @see SearchIndexableData#intentTargetPackage 100b49995d4d997bf086c2f3214ca410b2a30861b13Fabrice Di Meglio * @see SearchIndexableData#intentTargetClass 101b49995d4d997bf086c2f3214ca410b2a30861b13Fabrice Di Meglio */ 102b49995d4d997bf086c2f3214ca410b2a30861b13Fabrice Di Meglio public String intentAction; 103b49995d4d997bf086c2f3214ca410b2a30861b13Fabrice Di Meglio 104b49995d4d997bf086c2f3214ca410b2a30861b13Fabrice Di Meglio /** 105b49995d4d997bf086c2f3214ca410b2a30861b13Fabrice Di Meglio * The Intent target package associated with the data. 106b49995d4d997bf086c2f3214ca410b2a30861b13Fabrice Di Meglio * 107b49995d4d997bf086c2f3214ca410b2a30861b13Fabrice Di Meglio * @see SearchIndexableData#intentAction 108b49995d4d997bf086c2f3214ca410b2a30861b13Fabrice Di Meglio * @see SearchIndexableData#intentTargetClass 109b49995d4d997bf086c2f3214ca410b2a30861b13Fabrice Di Meglio */ 110b49995d4d997bf086c2f3214ca410b2a30861b13Fabrice Di Meglio public String intentTargetPackage; 111b49995d4d997bf086c2f3214ca410b2a30861b13Fabrice Di Meglio 112b49995d4d997bf086c2f3214ca410b2a30861b13Fabrice Di Meglio /** 113b49995d4d997bf086c2f3214ca410b2a30861b13Fabrice Di Meglio * The Intent target class associated with the data. 114b49995d4d997bf086c2f3214ca410b2a30861b13Fabrice Di Meglio * 115b49995d4d997bf086c2f3214ca410b2a30861b13Fabrice Di Meglio * @see SearchIndexableData#intentAction 116b49995d4d997bf086c2f3214ca410b2a30861b13Fabrice Di Meglio * @see SearchIndexableData#intentTargetPackage 117b49995d4d997bf086c2f3214ca410b2a30861b13Fabrice Di Meglio */ 118b49995d4d997bf086c2f3214ca410b2a30861b13Fabrice Di Meglio public String intentTargetClass; 119b49995d4d997bf086c2f3214ca410b2a30861b13Fabrice Di Meglio 120b49995d4d997bf086c2f3214ca410b2a30861b13Fabrice Di Meglio /** 121b49995d4d997bf086c2f3214ca410b2a30861b13Fabrice Di Meglio * Default constructor. 122b49995d4d997bf086c2f3214ca410b2a30861b13Fabrice Di Meglio */ 123b49995d4d997bf086c2f3214ca410b2a30861b13Fabrice Di Meglio public SearchIndexableData() { 124773a56bbf48beaa0ee10de55e08387ab1024ae26Fabrice Di Meglio locale = Locale.getDefault(); 12516f81e75423a9ffa602ad45a679d9e0283f4e499Fabrice Di Meglio enabled = true; 126b49995d4d997bf086c2f3214ca410b2a30861b13Fabrice Di Meglio } 127b49995d4d997bf086c2f3214ca410b2a30861b13Fabrice Di Meglio 128b49995d4d997bf086c2f3214ca410b2a30861b13Fabrice Di Meglio /** 129b49995d4d997bf086c2f3214ca410b2a30861b13Fabrice Di Meglio * Constructor with a {@link Context}. 130b49995d4d997bf086c2f3214ca410b2a30861b13Fabrice Di Meglio * 131b49995d4d997bf086c2f3214ca410b2a30861b13Fabrice Di Meglio * @param ctx the Context 132b49995d4d997bf086c2f3214ca410b2a30861b13Fabrice Di Meglio */ 133b49995d4d997bf086c2f3214ca410b2a30861b13Fabrice Di Meglio public SearchIndexableData(Context ctx) { 134773a56bbf48beaa0ee10de55e08387ab1024ae26Fabrice Di Meglio this(); 135b49995d4d997bf086c2f3214ca410b2a30861b13Fabrice Di Meglio context = ctx; 136b49995d4d997bf086c2f3214ca410b2a30861b13Fabrice Di Meglio } 13771b3975c8a9c11a88d18b2851066049dda4000c2Fabrice Di Meglio 13871b3975c8a9c11a88d18b2851066049dda4000c2Fabrice Di Meglio @Override 13971b3975c8a9c11a88d18b2851066049dda4000c2Fabrice Di Meglio public String toString() { 14071b3975c8a9c11a88d18b2851066049dda4000c2Fabrice Di Meglio final StringBuilder sb = new StringBuilder(); 14171b3975c8a9c11a88d18b2851066049dda4000c2Fabrice Di Meglio sb.append("SearchIndexableData[context: "); 14271b3975c8a9c11a88d18b2851066049dda4000c2Fabrice Di Meglio sb.append(context); 14371b3975c8a9c11a88d18b2851066049dda4000c2Fabrice Di Meglio sb.append(", "); 14471b3975c8a9c11a88d18b2851066049dda4000c2Fabrice Di Meglio sb.append("locale: "); 14571b3975c8a9c11a88d18b2851066049dda4000c2Fabrice Di Meglio sb.append(locale); 14671b3975c8a9c11a88d18b2851066049dda4000c2Fabrice Di Meglio sb.append(", "); 14771b3975c8a9c11a88d18b2851066049dda4000c2Fabrice Di Meglio sb.append("enabled: "); 14871b3975c8a9c11a88d18b2851066049dda4000c2Fabrice Di Meglio sb.append(enabled); 14971b3975c8a9c11a88d18b2851066049dda4000c2Fabrice Di Meglio sb.append(", "); 15071b3975c8a9c11a88d18b2851066049dda4000c2Fabrice Di Meglio sb.append("rank: "); 15171b3975c8a9c11a88d18b2851066049dda4000c2Fabrice Di Meglio sb.append(rank); 15271b3975c8a9c11a88d18b2851066049dda4000c2Fabrice Di Meglio sb.append(", "); 15371b3975c8a9c11a88d18b2851066049dda4000c2Fabrice Di Meglio sb.append("key: "); 15471b3975c8a9c11a88d18b2851066049dda4000c2Fabrice Di Meglio sb.append(key); 15571b3975c8a9c11a88d18b2851066049dda4000c2Fabrice Di Meglio sb.append(", "); 1562331e9ebade7c7ebc55eaed7a642ba0f90fbc0f7Fabrice Di Meglio sb.append("userId: "); 1572331e9ebade7c7ebc55eaed7a642ba0f90fbc0f7Fabrice Di Meglio sb.append(userId); 1582331e9ebade7c7ebc55eaed7a642ba0f90fbc0f7Fabrice Di Meglio sb.append(", "); 15971b3975c8a9c11a88d18b2851066049dda4000c2Fabrice Di Meglio sb.append("className: "); 16071b3975c8a9c11a88d18b2851066049dda4000c2Fabrice Di Meglio sb.append(className); 16171b3975c8a9c11a88d18b2851066049dda4000c2Fabrice Di Meglio sb.append(", "); 16271b3975c8a9c11a88d18b2851066049dda4000c2Fabrice Di Meglio sb.append("packageName: "); 16371b3975c8a9c11a88d18b2851066049dda4000c2Fabrice Di Meglio sb.append(packageName); 16471b3975c8a9c11a88d18b2851066049dda4000c2Fabrice Di Meglio sb.append(", "); 16571b3975c8a9c11a88d18b2851066049dda4000c2Fabrice Di Meglio sb.append("iconResId: "); 16671b3975c8a9c11a88d18b2851066049dda4000c2Fabrice Di Meglio sb.append(iconResId); 16771b3975c8a9c11a88d18b2851066049dda4000c2Fabrice Di Meglio sb.append(", "); 16871b3975c8a9c11a88d18b2851066049dda4000c2Fabrice Di Meglio sb.append("intentAction: "); 16971b3975c8a9c11a88d18b2851066049dda4000c2Fabrice Di Meglio sb.append(intentAction); 17071b3975c8a9c11a88d18b2851066049dda4000c2Fabrice Di Meglio sb.append(", "); 17171b3975c8a9c11a88d18b2851066049dda4000c2Fabrice Di Meglio sb.append("intentTargetPackage: "); 17271b3975c8a9c11a88d18b2851066049dda4000c2Fabrice Di Meglio sb.append(intentTargetPackage); 17371b3975c8a9c11a88d18b2851066049dda4000c2Fabrice Di Meglio sb.append(", "); 17471b3975c8a9c11a88d18b2851066049dda4000c2Fabrice Di Meglio sb.append("intentTargetClass: "); 17571b3975c8a9c11a88d18b2851066049dda4000c2Fabrice Di Meglio sb.append(intentTargetClass); 17671b3975c8a9c11a88d18b2851066049dda4000c2Fabrice Di Meglio sb.append("]"); 17771b3975c8a9c11a88d18b2851066049dda4000c2Fabrice Di Meglio 17871b3975c8a9c11a88d18b2851066049dda4000c2Fabrice Di Meglio return sb.toString(); 17971b3975c8a9c11a88d18b2851066049dda4000c2Fabrice Di Meglio } 180b49995d4d997bf086c2f3214ca410b2a30861b13Fabrice Di Meglio} 181