180f4abfb682426384e88fb1dddc682be1c8a6c7fTom Taylor/* 280f4abfb682426384e88fb1dddc682be1c8a6c7fTom Taylor * Copyright (C) 2012 The Android Open Source Project 380f4abfb682426384e88fb1dddc682be1c8a6c7fTom Taylor * 480f4abfb682426384e88fb1dddc682be1c8a6c7fTom Taylor * Licensed under the Apache License, Version 2.0 (the "License"); 580f4abfb682426384e88fb1dddc682be1c8a6c7fTom Taylor * you may not use this file except in compliance with the License. 680f4abfb682426384e88fb1dddc682be1c8a6c7fTom Taylor * You may obtain a copy of the License at 780f4abfb682426384e88fb1dddc682be1c8a6c7fTom Taylor * 880f4abfb682426384e88fb1dddc682be1c8a6c7fTom Taylor * http://www.apache.org/licenses/LICENSE-2.0 980f4abfb682426384e88fb1dddc682be1c8a6c7fTom Taylor * 1080f4abfb682426384e88fb1dddc682be1c8a6c7fTom Taylor * Unless required by applicable law or agreed to in writing, software 1180f4abfb682426384e88fb1dddc682be1c8a6c7fTom Taylor * distributed under the License is distributed on an "AS IS" BASIS, 1280f4abfb682426384e88fb1dddc682be1c8a6c7fTom Taylor * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1380f4abfb682426384e88fb1dddc682be1c8a6c7fTom Taylor * See the License for the specific language governing permissions and 1480f4abfb682426384e88fb1dddc682be1c8a6c7fTom Taylor * limitations under the License. 1580f4abfb682426384e88fb1dddc682be1c8a6c7fTom Taylor */ 1680f4abfb682426384e88fb1dddc682be1c8a6c7fTom Taylor 1780f4abfb682426384e88fb1dddc682be1c8a6c7fTom Taylorpackage com.android.ex.chips; 1880f4abfb682426384e88fb1dddc682be1c8a6c7fTom Taylor 1980f4abfb682426384e88fb1dddc682be1c8a6c7fTom Taylorimport android.content.res.Resources; 2080f4abfb682426384e88fb1dddc682be1c8a6c7fTom Taylorimport android.net.Uri; 217a4e67708498ec46c2e9b3bad69d3807d88c064eScott Kennedyimport android.provider.ContactsContract; 2280f4abfb682426384e88fb1dddc682be1c8a6c7fTom Taylorimport android.provider.ContactsContract.CommonDataKinds.Email; 2380f4abfb682426384e88fb1dddc682be1c8a6c7fTom Taylorimport android.provider.ContactsContract.CommonDataKinds.Phone; 24a5d37c8a968edf94755215617b593d3f61738a92Makoto Onukiimport android.provider.ContactsContract.Contacts; 2580f4abfb682426384e88fb1dddc682be1c8a6c7fTom Taylor 2680f4abfb682426384e88fb1dddc682be1c8a6c7fTom Taylor/** 2780f4abfb682426384e88fb1dddc682be1c8a6c7fTom Taylor * Phone and Email queries for supporting Chips UI. 2880f4abfb682426384e88fb1dddc682be1c8a6c7fTom Taylor */ 2980f4abfb682426384e88fb1dddc682be1c8a6c7fTom Taylor/* package */ class Queries { 3080f4abfb682426384e88fb1dddc682be1c8a6c7fTom Taylor 3180f4abfb682426384e88fb1dddc682be1c8a6c7fTom Taylor public static final Query PHONE = new Query(new String[] { 327a4e67708498ec46c2e9b3bad69d3807d88c064eScott Kennedy Contacts.DISPLAY_NAME, // 0 337a4e67708498ec46c2e9b3bad69d3807d88c064eScott Kennedy Phone.NUMBER, // 1 347a4e67708498ec46c2e9b3bad69d3807d88c064eScott Kennedy Phone.TYPE, // 2 357a4e67708498ec46c2e9b3bad69d3807d88c064eScott Kennedy Phone.LABEL, // 3 367a4e67708498ec46c2e9b3bad69d3807d88c064eScott Kennedy Phone.CONTACT_ID, // 4 377a4e67708498ec46c2e9b3bad69d3807d88c064eScott Kennedy Phone._ID, // 5 387a4e67708498ec46c2e9b3bad69d3807d88c064eScott Kennedy Contacts.PHOTO_THUMBNAIL_URI, // 6 397a4e67708498ec46c2e9b3bad69d3807d88c064eScott Kennedy Contacts.DISPLAY_NAME_SOURCE, // 7 407a4e67708498ec46c2e9b3bad69d3807d88c064eScott Kennedy Contacts.LOOKUP_KEY, // 8 417a4e67708498ec46c2e9b3bad69d3807d88c064eScott Kennedy ContactsContract.CommonDataKinds.Email.MIMETYPE // 9 4280f4abfb682426384e88fb1dddc682be1c8a6c7fTom Taylor }, Phone.CONTENT_FILTER_URI, Phone.CONTENT_URI) { 4380f4abfb682426384e88fb1dddc682be1c8a6c7fTom Taylor 4480f4abfb682426384e88fb1dddc682be1c8a6c7fTom Taylor @Override 4580f4abfb682426384e88fb1dddc682be1c8a6c7fTom Taylor public CharSequence getTypeLabel(Resources res, int type, CharSequence label) { 4680f4abfb682426384e88fb1dddc682be1c8a6c7fTom Taylor return Phone.getTypeLabel(res, type, label); 4780f4abfb682426384e88fb1dddc682be1c8a6c7fTom Taylor } 4880f4abfb682426384e88fb1dddc682be1c8a6c7fTom Taylor 4980f4abfb682426384e88fb1dddc682be1c8a6c7fTom Taylor }; 5080f4abfb682426384e88fb1dddc682be1c8a6c7fTom Taylor 5180f4abfb682426384e88fb1dddc682be1c8a6c7fTom Taylor public static final Query EMAIL = new Query(new String[]{ 527a4e67708498ec46c2e9b3bad69d3807d88c064eScott Kennedy Contacts.DISPLAY_NAME, // 0 537a4e67708498ec46c2e9b3bad69d3807d88c064eScott Kennedy Email.DATA, // 1 547a4e67708498ec46c2e9b3bad69d3807d88c064eScott Kennedy Email.TYPE, // 2 557a4e67708498ec46c2e9b3bad69d3807d88c064eScott Kennedy Email.LABEL, // 3 567a4e67708498ec46c2e9b3bad69d3807d88c064eScott Kennedy Email.CONTACT_ID, // 4 577a4e67708498ec46c2e9b3bad69d3807d88c064eScott Kennedy Email._ID, // 5 587a4e67708498ec46c2e9b3bad69d3807d88c064eScott Kennedy Contacts.PHOTO_THUMBNAIL_URI, // 6 597a4e67708498ec46c2e9b3bad69d3807d88c064eScott Kennedy Contacts.DISPLAY_NAME_SOURCE, // 7 607a4e67708498ec46c2e9b3bad69d3807d88c064eScott Kennedy Contacts.LOOKUP_KEY, // 8 617a4e67708498ec46c2e9b3bad69d3807d88c064eScott Kennedy ContactsContract.CommonDataKinds.Email.MIMETYPE // 9 6280f4abfb682426384e88fb1dddc682be1c8a6c7fTom Taylor }, Email.CONTENT_FILTER_URI, Email.CONTENT_URI) { 6380f4abfb682426384e88fb1dddc682be1c8a6c7fTom Taylor 6480f4abfb682426384e88fb1dddc682be1c8a6c7fTom Taylor @Override 6580f4abfb682426384e88fb1dddc682be1c8a6c7fTom Taylor public CharSequence getTypeLabel(Resources res, int type, CharSequence label) { 6680f4abfb682426384e88fb1dddc682be1c8a6c7fTom Taylor return Email.getTypeLabel(res, type, label); 6780f4abfb682426384e88fb1dddc682be1c8a6c7fTom Taylor } 6880f4abfb682426384e88fb1dddc682be1c8a6c7fTom Taylor 6980f4abfb682426384e88fb1dddc682be1c8a6c7fTom Taylor }; 7080f4abfb682426384e88fb1dddc682be1c8a6c7fTom Taylor 7180f4abfb682426384e88fb1dddc682be1c8a6c7fTom Taylor static abstract class Query { 7280f4abfb682426384e88fb1dddc682be1c8a6c7fTom Taylor private final String[] mProjection; 7380f4abfb682426384e88fb1dddc682be1c8a6c7fTom Taylor private final Uri mContentFilterUri; 7480f4abfb682426384e88fb1dddc682be1c8a6c7fTom Taylor private final Uri mContentUri; 7580f4abfb682426384e88fb1dddc682be1c8a6c7fTom Taylor 76a5d37c8a968edf94755215617b593d3f61738a92Makoto Onuki public static final int NAME = 0; // String 77a5d37c8a968edf94755215617b593d3f61738a92Makoto Onuki public static final int DESTINATION = 1; // String 78a5d37c8a968edf94755215617b593d3f61738a92Makoto Onuki public static final int DESTINATION_TYPE = 2; // int 79a5d37c8a968edf94755215617b593d3f61738a92Makoto Onuki public static final int DESTINATION_LABEL = 3; // String 80a5d37c8a968edf94755215617b593d3f61738a92Makoto Onuki public static final int CONTACT_ID = 4; // long 81a5d37c8a968edf94755215617b593d3f61738a92Makoto Onuki public static final int DATA_ID = 5; // long 82a5d37c8a968edf94755215617b593d3f61738a92Makoto Onuki public static final int PHOTO_THUMBNAIL_URI = 6; // String 83a5d37c8a968edf94755215617b593d3f61738a92Makoto Onuki public static final int DISPLAY_NAME_SOURCE = 7; // int 847a4e67708498ec46c2e9b3bad69d3807d88c064eScott Kennedy public static final int LOOKUP_KEY = 8; // String 857a4e67708498ec46c2e9b3bad69d3807d88c064eScott Kennedy public static final int MIME_TYPE = 9; // String 8680f4abfb682426384e88fb1dddc682be1c8a6c7fTom Taylor 877a4e67708498ec46c2e9b3bad69d3807d88c064eScott Kennedy public Query(String[] projection, Uri contentFilter, Uri content) { 8880f4abfb682426384e88fb1dddc682be1c8a6c7fTom Taylor mProjection = projection; 8980f4abfb682426384e88fb1dddc682be1c8a6c7fTom Taylor mContentFilterUri = contentFilter; 9080f4abfb682426384e88fb1dddc682be1c8a6c7fTom Taylor mContentUri = content; 9180f4abfb682426384e88fb1dddc682be1c8a6c7fTom Taylor } 9280f4abfb682426384e88fb1dddc682be1c8a6c7fTom Taylor 9380f4abfb682426384e88fb1dddc682be1c8a6c7fTom Taylor public String[] getProjection() { 9480f4abfb682426384e88fb1dddc682be1c8a6c7fTom Taylor return mProjection; 9580f4abfb682426384e88fb1dddc682be1c8a6c7fTom Taylor } 9680f4abfb682426384e88fb1dddc682be1c8a6c7fTom Taylor 9780f4abfb682426384e88fb1dddc682be1c8a6c7fTom Taylor public Uri getContentFilterUri() { 9880f4abfb682426384e88fb1dddc682be1c8a6c7fTom Taylor return mContentFilterUri; 9980f4abfb682426384e88fb1dddc682be1c8a6c7fTom Taylor } 10080f4abfb682426384e88fb1dddc682be1c8a6c7fTom Taylor 10180f4abfb682426384e88fb1dddc682be1c8a6c7fTom Taylor public Uri getContentUri() { 10280f4abfb682426384e88fb1dddc682be1c8a6c7fTom Taylor return mContentUri; 10380f4abfb682426384e88fb1dddc682be1c8a6c7fTom Taylor } 10480f4abfb682426384e88fb1dddc682be1c8a6c7fTom Taylor 10580f4abfb682426384e88fb1dddc682be1c8a6c7fTom Taylor public abstract CharSequence getTypeLabel(Resources res, int type, CharSequence label); 10680f4abfb682426384e88fb1dddc682be1c8a6c7fTom Taylor } 10780f4abfb682426384e88fb1dddc682be1c8a6c7fTom Taylor} 108