175f1f6994f77a6538c71df720aa2250fe71fed4bTom Taylor/* 275f1f6994f77a6538c71df720aa2250fe71fed4bTom Taylor * Copyright (C) 2012 The Android Open Source Project 375f1f6994f77a6538c71df720aa2250fe71fed4bTom Taylor * 475f1f6994f77a6538c71df720aa2250fe71fed4bTom Taylor * Licensed under the Apache License, Version 2.0 (the "License"); 575f1f6994f77a6538c71df720aa2250fe71fed4bTom Taylor * you may not use this file except in compliance with the License. 675f1f6994f77a6538c71df720aa2250fe71fed4bTom Taylor * You may obtain a copy of the License at 775f1f6994f77a6538c71df720aa2250fe71fed4bTom Taylor * 875f1f6994f77a6538c71df720aa2250fe71fed4bTom Taylor * http://www.apache.org/licenses/LICENSE-2.0 975f1f6994f77a6538c71df720aa2250fe71fed4bTom Taylor * 1075f1f6994f77a6538c71df720aa2250fe71fed4bTom Taylor * Unless required by applicable law or agreed to in writing, software 1175f1f6994f77a6538c71df720aa2250fe71fed4bTom Taylor * distributed under the License is distributed on an "AS IS" BASIS, 1275f1f6994f77a6538c71df720aa2250fe71fed4bTom Taylor * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1375f1f6994f77a6538c71df720aa2250fe71fed4bTom Taylor * See the License for the specific language governing permissions and 1475f1f6994f77a6538c71df720aa2250fe71fed4bTom Taylor * limitations under the License. 1575f1f6994f77a6538c71df720aa2250fe71fed4bTom Taylor */ 1675f1f6994f77a6538c71df720aa2250fe71fed4bTom Taylor 1775f1f6994f77a6538c71df720aa2250fe71fed4bTom Taylorpackage com.android.ex.chips; 1875f1f6994f77a6538c71df720aa2250fe71fed4bTom Taylor 1975f1f6994f77a6538c71df720aa2250fe71fed4bTom Taylorimport android.content.res.Resources; 2075f1f6994f77a6538c71df720aa2250fe71fed4bTom Taylorimport android.net.Uri; 2175f1f6994f77a6538c71df720aa2250fe71fed4bTom Taylorimport android.provider.ContactsContract.CommonDataKinds.Email; 2275f1f6994f77a6538c71df720aa2250fe71fed4bTom Taylorimport android.provider.ContactsContract.CommonDataKinds.Phone; 23f64cbf19fb2bc09835a46472c8efd8c6c07fa5abMakoto Onukiimport android.provider.ContactsContract.Contacts; 2475f1f6994f77a6538c71df720aa2250fe71fed4bTom Taylor 2575f1f6994f77a6538c71df720aa2250fe71fed4bTom Taylor/** 2675f1f6994f77a6538c71df720aa2250fe71fed4bTom Taylor * Phone and Email queries for supporting Chips UI. 2775f1f6994f77a6538c71df720aa2250fe71fed4bTom Taylor */ 2875f1f6994f77a6538c71df720aa2250fe71fed4bTom Taylor/* package */ class Queries { 2975f1f6994f77a6538c71df720aa2250fe71fed4bTom Taylor 3075f1f6994f77a6538c71df720aa2250fe71fed4bTom Taylor public static final Query PHONE = new Query(new String[] { 3175f1f6994f77a6538c71df720aa2250fe71fed4bTom Taylor Contacts.DISPLAY_NAME, // 0 3275f1f6994f77a6538c71df720aa2250fe71fed4bTom Taylor Phone.NUMBER, // 1 3375f1f6994f77a6538c71df720aa2250fe71fed4bTom Taylor Phone.TYPE, // 2 3475f1f6994f77a6538c71df720aa2250fe71fed4bTom Taylor Phone.LABEL, // 3 3575f1f6994f77a6538c71df720aa2250fe71fed4bTom Taylor Phone.CONTACT_ID, // 4 3675f1f6994f77a6538c71df720aa2250fe71fed4bTom Taylor Phone._ID, // 5 378f968fc75a99645b5b170c3ca0bd3aca9a207ca7Makoto Onuki Contacts.PHOTO_THUMBNAIL_URI,// 6 388f968fc75a99645b5b170c3ca0bd3aca9a207ca7Makoto Onuki Contacts.DISPLAY_NAME_SOURCE // 7 3975f1f6994f77a6538c71df720aa2250fe71fed4bTom Taylor }, Phone.CONTENT_FILTER_URI, Phone.CONTENT_URI) { 4075f1f6994f77a6538c71df720aa2250fe71fed4bTom Taylor 4175f1f6994f77a6538c71df720aa2250fe71fed4bTom Taylor @Override 4275f1f6994f77a6538c71df720aa2250fe71fed4bTom Taylor public CharSequence getTypeLabel(Resources res, int type, CharSequence label) { 4375f1f6994f77a6538c71df720aa2250fe71fed4bTom Taylor return Phone.getTypeLabel(res, type, label); 4475f1f6994f77a6538c71df720aa2250fe71fed4bTom Taylor } 4575f1f6994f77a6538c71df720aa2250fe71fed4bTom Taylor 4675f1f6994f77a6538c71df720aa2250fe71fed4bTom Taylor }; 4775f1f6994f77a6538c71df720aa2250fe71fed4bTom Taylor 4875f1f6994f77a6538c71df720aa2250fe71fed4bTom Taylor public static final Query EMAIL = new Query(new String[]{ 4975f1f6994f77a6538c71df720aa2250fe71fed4bTom Taylor Contacts.DISPLAY_NAME, // 0 5075f1f6994f77a6538c71df720aa2250fe71fed4bTom Taylor Email.DATA, // 1 5175f1f6994f77a6538c71df720aa2250fe71fed4bTom Taylor Email.TYPE, // 2 5275f1f6994f77a6538c71df720aa2250fe71fed4bTom Taylor Email.LABEL, // 3 5375f1f6994f77a6538c71df720aa2250fe71fed4bTom Taylor Email.CONTACT_ID, // 4 5475f1f6994f77a6538c71df720aa2250fe71fed4bTom Taylor Email._ID, // 5 558f968fc75a99645b5b170c3ca0bd3aca9a207ca7Makoto Onuki Contacts.PHOTO_THUMBNAIL_URI,// 6 568f968fc75a99645b5b170c3ca0bd3aca9a207ca7Makoto Onuki Contacts.DISPLAY_NAME_SOURCE // 7 5775f1f6994f77a6538c71df720aa2250fe71fed4bTom Taylor }, Email.CONTENT_FILTER_URI, Email.CONTENT_URI) { 5875f1f6994f77a6538c71df720aa2250fe71fed4bTom Taylor 5975f1f6994f77a6538c71df720aa2250fe71fed4bTom Taylor @Override 6075f1f6994f77a6538c71df720aa2250fe71fed4bTom Taylor public CharSequence getTypeLabel(Resources res, int type, CharSequence label) { 6175f1f6994f77a6538c71df720aa2250fe71fed4bTom Taylor return Email.getTypeLabel(res, type, label); 6275f1f6994f77a6538c71df720aa2250fe71fed4bTom Taylor } 6375f1f6994f77a6538c71df720aa2250fe71fed4bTom Taylor 6475f1f6994f77a6538c71df720aa2250fe71fed4bTom Taylor }; 6575f1f6994f77a6538c71df720aa2250fe71fed4bTom Taylor 6675f1f6994f77a6538c71df720aa2250fe71fed4bTom Taylor static abstract class Query { 6775f1f6994f77a6538c71df720aa2250fe71fed4bTom Taylor private final String[] mProjection; 6875f1f6994f77a6538c71df720aa2250fe71fed4bTom Taylor private final Uri mContentFilterUri; 6975f1f6994f77a6538c71df720aa2250fe71fed4bTom Taylor private final Uri mContentUri; 7075f1f6994f77a6538c71df720aa2250fe71fed4bTom Taylor 71f64cbf19fb2bc09835a46472c8efd8c6c07fa5abMakoto Onuki public static final int NAME = 0; // String 72f64cbf19fb2bc09835a46472c8efd8c6c07fa5abMakoto Onuki public static final int DESTINATION = 1; // String 73f64cbf19fb2bc09835a46472c8efd8c6c07fa5abMakoto Onuki public static final int DESTINATION_TYPE = 2; // int 74f64cbf19fb2bc09835a46472c8efd8c6c07fa5abMakoto Onuki public static final int DESTINATION_LABEL = 3; // String 75f64cbf19fb2bc09835a46472c8efd8c6c07fa5abMakoto Onuki public static final int CONTACT_ID = 4; // long 76f64cbf19fb2bc09835a46472c8efd8c6c07fa5abMakoto Onuki public static final int DATA_ID = 5; // long 77f64cbf19fb2bc09835a46472c8efd8c6c07fa5abMakoto Onuki public static final int PHOTO_THUMBNAIL_URI = 6; // String 78f64cbf19fb2bc09835a46472c8efd8c6c07fa5abMakoto Onuki public static final int DISPLAY_NAME_SOURCE = 7; // int 7975f1f6994f77a6538c71df720aa2250fe71fed4bTom Taylor 8075f1f6994f77a6538c71df720aa2250fe71fed4bTom Taylor public Query (String[] projection, Uri contentFilter, Uri content) { 8175f1f6994f77a6538c71df720aa2250fe71fed4bTom Taylor mProjection = projection; 8275f1f6994f77a6538c71df720aa2250fe71fed4bTom Taylor mContentFilterUri = contentFilter; 8375f1f6994f77a6538c71df720aa2250fe71fed4bTom Taylor mContentUri = content; 8475f1f6994f77a6538c71df720aa2250fe71fed4bTom Taylor } 8575f1f6994f77a6538c71df720aa2250fe71fed4bTom Taylor 8675f1f6994f77a6538c71df720aa2250fe71fed4bTom Taylor public String[] getProjection() { 8775f1f6994f77a6538c71df720aa2250fe71fed4bTom Taylor return mProjection; 8875f1f6994f77a6538c71df720aa2250fe71fed4bTom Taylor } 8975f1f6994f77a6538c71df720aa2250fe71fed4bTom Taylor 9075f1f6994f77a6538c71df720aa2250fe71fed4bTom Taylor public Uri getContentFilterUri() { 9175f1f6994f77a6538c71df720aa2250fe71fed4bTom Taylor return mContentFilterUri; 9275f1f6994f77a6538c71df720aa2250fe71fed4bTom Taylor } 9375f1f6994f77a6538c71df720aa2250fe71fed4bTom Taylor 9475f1f6994f77a6538c71df720aa2250fe71fed4bTom Taylor public Uri getContentUri() { 9575f1f6994f77a6538c71df720aa2250fe71fed4bTom Taylor return mContentUri; 9675f1f6994f77a6538c71df720aa2250fe71fed4bTom Taylor } 9775f1f6994f77a6538c71df720aa2250fe71fed4bTom Taylor 9875f1f6994f77a6538c71df720aa2250fe71fed4bTom Taylor public abstract CharSequence getTypeLabel(Resources res, int type, CharSequence label); 9975f1f6994f77a6538c71df720aa2250fe71fed4bTom Taylor } 10075f1f6994f77a6538c71df720aa2250fe71fed4bTom Taylor} 101