12aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton/* 22aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton * Copyright (C) 2009 The Android Open Source Project 32aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton * 42aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton * Licensed under the Apache License, Version 2.0 (the "License"); 52aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton * you may not use this file except in compliance with the License. 62aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton * You may obtain a copy of the License at 72aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton * 82aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton * http://www.apache.org/licenses/LICENSE-2.0 92aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton * 102aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton * Unless required by applicable law or agreed to in writing, software 112aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton * distributed under the License is distributed on an "AS IS" BASIS, 122aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 132aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton * See the License for the specific language governing permissions and 142aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton * limitations under the License. 152aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton */ 162aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton 178166c06de0a132f9086e62fbe1b04c44e9ebeb1cJeff Hamiltonpackage com.android.loaderapp.model; 182aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton 192aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamiltonimport com.android.loaderapp.util.Constants; 202aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton 212aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamiltonimport android.provider.ContactsContract.CommonDataKinds.Email; 222aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamiltonimport android.provider.ContactsContract.CommonDataKinds.Im; 232aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamiltonimport android.provider.ContactsContract.CommonDataKinds.Organization; 242aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamiltonimport android.provider.ContactsContract.CommonDataKinds.Phone; 252aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamiltonimport android.provider.ContactsContract.CommonDataKinds.StructuredPostal; 262aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton 272aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton/** 282aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton * This class contains utility functions for determining the precedence of 292aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton * different types associated with contact data items. 302aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton */ 312aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamiltonpublic final class TypePrecedence { 322aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton 332aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton /* This utility class has cannot be instantiated.*/ 342aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton private TypePrecedence() {} 352aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton 362aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton //TODO These may need to be tweaked. 372aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton private static final int[] TYPE_PRECEDENCE_PHONES = { 382aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton Phone.TYPE_CUSTOM, 392aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton Phone.TYPE_MOBILE, 402aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton Phone.TYPE_HOME, 412aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton Phone.TYPE_WORK, 422aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton Phone.TYPE_OTHER, 432aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton Phone.TYPE_FAX_HOME, 442aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton Phone.TYPE_FAX_WORK, 452aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton Phone.TYPE_PAGER}; 462aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton 472aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton private static final int[] TYPE_PRECEDENCE_EMAIL = { 482aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton Email.TYPE_CUSTOM, 492aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton Email.TYPE_HOME, 502aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton Email.TYPE_WORK, 512aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton Email.TYPE_OTHER}; 522aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton 532aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton private static final int[] TYPE_PRECEDENCE_POSTAL = { 542aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton StructuredPostal.TYPE_CUSTOM, 552aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton StructuredPostal.TYPE_HOME, 562aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton StructuredPostal.TYPE_WORK, 572aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton StructuredPostal.TYPE_OTHER}; 582aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton 592aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton private static final int[] TYPE_PRECEDENCE_IM = { 602aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton Im.TYPE_CUSTOM, 612aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton Im.TYPE_HOME, 622aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton Im.TYPE_WORK, 632aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton Im.TYPE_OTHER}; 642aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton 652aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton private static final int[] TYPE_PRECEDENCE_ORG = { 662aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton Organization.TYPE_CUSTOM, 672aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton Organization.TYPE_WORK, 682aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton Organization.TYPE_OTHER}; 692aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton 702aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton /** 712aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton * Returns the precedence (1 being the highest) of a type in the context of it's mimetype. 722aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton * 732aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton * @param mimetype The mimetype of the data with which the type is associated. 742aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton * @param type The integer type as defined in {@Link ContactsContract#CommonDataKinds}. 752aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton * @return The integer precedence, where 1 is the highest. 762aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton */ 772aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton @Deprecated 782aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton public static int getTypePrecedence(String mimetype, int type) { 792aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton int[] typePrecedence = getTypePrecedenceList(mimetype); 802aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton if (typePrecedence == null) { 812aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton return -1; 822aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton } 832aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton 842aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton for (int i = 0; i < typePrecedence.length; i++) { 852aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton if (typePrecedence[i] == type) { 862aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton return i; 872aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton } 882aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton } 892aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton return typePrecedence.length; 902aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton } 912aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton 922aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton @Deprecated 932aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton private static int[] getTypePrecedenceList(String mimetype) { 942aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton if (mimetype.equals(Phone.CONTENT_ITEM_TYPE)) { 952aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton return TYPE_PRECEDENCE_PHONES; 962aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton } else if (mimetype.equals(Constants.MIME_SMS_ADDRESS)) { 972aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton return TYPE_PRECEDENCE_PHONES; 982aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton } else if (mimetype.equals(Email.CONTENT_ITEM_TYPE)) { 992aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton return TYPE_PRECEDENCE_EMAIL; 1002aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton } else if (mimetype.equals(StructuredPostal.CONTENT_ITEM_TYPE)) { 1012aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton return TYPE_PRECEDENCE_POSTAL; 1022aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton } else if (mimetype.equals(Im.CONTENT_ITEM_TYPE)) { 1032aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton return TYPE_PRECEDENCE_IM; 1042aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton } else if (mimetype.equals(Organization.CONTENT_ITEM_TYPE)) { 1052aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton return TYPE_PRECEDENCE_ORG; 1062aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton } else { 1072aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton return null; 1082aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton } 1092aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton } 1102aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton 1112aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton 1122aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton} 113