1863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton/* 2863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton * Copyright (C) 2009 The Android Open Source Project 3863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton * 4863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton * Licensed under the Apache License, Version 2.0 (the "License"); 5863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton * you may not use this file except in compliance with the License. 6863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton * You may obtain a copy of the License at 7863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton * 8863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton * http://www.apache.org/licenses/LICENSE-2.0 9863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton * 10863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton * Unless required by applicable law or agreed to in writing, software 11863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton * distributed under the License is distributed on an "AS IS" BASIS, 12863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton * See the License for the specific language governing permissions and 14863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton * limitations under the License. 15863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton */ 16863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton 17863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamiltonpackage com.android.loaderapp.model; 18863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton 19863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamiltonimport com.android.loaderapp.R; 20863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamiltonimport com.google.android.collect.Lists; 21863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton 22863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamiltonimport android.content.ContentValues; 23863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamiltonimport android.content.Context; 24863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamiltonimport android.content.res.Resources; 25863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamiltonimport android.database.Cursor; 26863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamiltonimport android.provider.ContactsContract.CommonDataKinds.BaseTypes; 27863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamiltonimport android.provider.ContactsContract.CommonDataKinds.Email; 28863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamiltonimport android.provider.ContactsContract.CommonDataKinds.Event; 29863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamiltonimport android.provider.ContactsContract.CommonDataKinds.Im; 30863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamiltonimport android.provider.ContactsContract.CommonDataKinds.Nickname; 31863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamiltonimport android.provider.ContactsContract.CommonDataKinds.Note; 32863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamiltonimport android.provider.ContactsContract.CommonDataKinds.Organization; 33863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamiltonimport android.provider.ContactsContract.CommonDataKinds.Phone; 34863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamiltonimport android.provider.ContactsContract.CommonDataKinds.Photo; 35863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamiltonimport android.provider.ContactsContract.CommonDataKinds.StructuredName; 36863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamiltonimport android.provider.ContactsContract.CommonDataKinds.StructuredPostal; 37863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamiltonimport android.provider.ContactsContract.CommonDataKinds.Website; 38863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamiltonimport android.view.inputmethod.EditorInfo; 39863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton 40863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamiltonimport java.util.Locale; 41863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton 42863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamiltonpublic class FallbackSource extends ContactsSource { 43863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton protected static final int FLAGS_PHONE = EditorInfo.TYPE_CLASS_PHONE; 44863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton protected static final int FLAGS_EMAIL = EditorInfo.TYPE_CLASS_TEXT 45863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton | EditorInfo.TYPE_TEXT_VARIATION_EMAIL_ADDRESS; 46863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton protected static final int FLAGS_PERSON_NAME = EditorInfo.TYPE_CLASS_TEXT 47863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton | EditorInfo.TYPE_TEXT_FLAG_CAP_WORDS | EditorInfo.TYPE_TEXT_VARIATION_PERSON_NAME; 48863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton protected static final int FLAGS_PHONETIC = EditorInfo.TYPE_CLASS_TEXT 49863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton | EditorInfo.TYPE_TEXT_VARIATION_PHONETIC; 50863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton protected static final int FLAGS_GENERIC_NAME = EditorInfo.TYPE_CLASS_TEXT 51863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton | EditorInfo.TYPE_TEXT_FLAG_CAP_WORDS; 52863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton protected static final int FLAGS_NOTE = EditorInfo.TYPE_CLASS_TEXT 53863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton | EditorInfo.TYPE_TEXT_FLAG_CAP_SENTENCES | EditorInfo.TYPE_TEXT_FLAG_MULTI_LINE; 54863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton protected static final int FLAGS_WEBSITE = EditorInfo.TYPE_CLASS_TEXT 55863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton | EditorInfo.TYPE_TEXT_VARIATION_URI; 56863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton protected static final int FLAGS_POSTAL = EditorInfo.TYPE_CLASS_TEXT 57863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton | EditorInfo.TYPE_TEXT_VARIATION_POSTAL_ADDRESS | EditorInfo.TYPE_TEXT_FLAG_CAP_WORDS 58863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton | EditorInfo.TYPE_TEXT_FLAG_MULTI_LINE; 59863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton 60863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton public FallbackSource() { 61863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton this.accountType = null; 62863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton this.titleRes = R.string.account_phone; 63863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton this.iconRes = R.drawable.ic_launcher_contacts; 64863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton } 65863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton 66863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton @Override 67863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton protected void inflate(Context context, int inflateLevel) { 68863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton 69863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton inflateStructuredName(context, inflateLevel); 70863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton inflateNickname(context, inflateLevel); 71863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton inflatePhone(context, inflateLevel); 72863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton inflateEmail(context, inflateLevel); 73863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton inflateStructuredPostal(context, inflateLevel); 74863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton inflateIm(context, inflateLevel); 75863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton inflateOrganization(context, inflateLevel); 76863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton inflatePhoto(context, inflateLevel); 77863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton inflateNote(context, inflateLevel); 78863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton inflateWebsite(context, inflateLevel); 79863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton inflateEvent(context, inflateLevel); 80863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton 81863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton setInflatedLevel(inflateLevel); 82863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton 83863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton } 84863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton 85863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton protected EditType buildPhoneType(int type) { 86863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton return new EditType(type, Phone.getTypeLabelResource(type)); 87863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton } 88863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton 89863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton protected EditType buildEmailType(int type) { 90863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton return new EditType(type, Email.getTypeLabelResource(type)); 91863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton } 92863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton 93863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton protected EditType buildPostalType(int type) { 94863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton return new EditType(type, StructuredPostal.getTypeLabelResource(type)); 95863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton } 96863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton 97863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton protected EditType buildImType(int type) { 98863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton return new EditType(type, Im.getProtocolLabelResource(type)); 99863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton } 100863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton 101863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton protected EditType buildOrgType(int type) { 102863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton return new EditType(type, Organization.getTypeLabelResource(type)); 103863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton } 104863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton 105863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton protected DataKind inflateStructuredName(Context context, int inflateLevel) { 106863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton DataKind kind = getKindForMimetype(StructuredName.CONTENT_ITEM_TYPE); 107863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton if (kind == null) { 108863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton kind = addKind(new DataKind(StructuredName.CONTENT_ITEM_TYPE, 109863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton R.string.nameLabelsGroup, -1, -1, true)); 110863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton } 111863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton 112863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton if (inflateLevel >= ContactsSource.LEVEL_CONSTRAINTS) { 113863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton boolean displayOrderPrimary = 114863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton context.getResources().getBoolean(R.bool.config_editor_field_order_primary); 115863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton 116863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton kind.fieldList = Lists.newArrayList(); 117863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton kind.fieldList.add(new EditField(StructuredName.PREFIX, R.string.name_prefix, 118863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton FLAGS_PERSON_NAME).setOptional(true)); 119863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton if (!displayOrderPrimary) { 120863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton kind.fieldList.add(new EditField(StructuredName.FAMILY_NAME, R.string.name_family, 121863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton FLAGS_PERSON_NAME)); 122863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton kind.fieldList.add(new EditField(StructuredName.MIDDLE_NAME, R.string.name_middle, 123863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton FLAGS_PERSON_NAME).setOptional(true)); 124863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton kind.fieldList.add(new EditField(StructuredName.GIVEN_NAME, R.string.name_given, 125863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton FLAGS_PERSON_NAME)); 126863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton kind.fieldList.add(new EditField(StructuredName.SUFFIX, R.string.name_suffix, 127863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton FLAGS_PERSON_NAME).setOptional(true)); 128863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton kind.fieldList.add(new EditField(StructuredName.PHONETIC_FAMILY_NAME, 129863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton R.string.name_phonetic_family, FLAGS_PHONETIC).setOptional(true)); 130863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton kind.fieldList.add(new EditField(StructuredName.PHONETIC_MIDDLE_NAME, 131863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton R.string.name_phonetic_middle, FLAGS_PHONETIC).setOptional(true)); 132863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton kind.fieldList.add(new EditField(StructuredName.PHONETIC_GIVEN_NAME, 133863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton R.string.name_phonetic_given, FLAGS_PHONETIC).setOptional(true)); 134863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton } else { 135863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton kind.fieldList.add(new EditField(StructuredName.GIVEN_NAME, R.string.name_given, 136863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton FLAGS_PERSON_NAME)); 137863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton kind.fieldList.add(new EditField(StructuredName.MIDDLE_NAME, R.string.name_middle, 138863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton FLAGS_PERSON_NAME).setOptional(true)); 139863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton kind.fieldList.add(new EditField(StructuredName.FAMILY_NAME, R.string.name_family, 140863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton FLAGS_PERSON_NAME)); 141863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton kind.fieldList.add(new EditField(StructuredName.SUFFIX, R.string.name_suffix, 142863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton FLAGS_PERSON_NAME).setOptional(true)); 143863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton kind.fieldList.add(new EditField(StructuredName.PHONETIC_GIVEN_NAME, 144863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton R.string.name_phonetic_given, FLAGS_PHONETIC).setOptional(true)); 145863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton kind.fieldList.add(new EditField(StructuredName.PHONETIC_MIDDLE_NAME, 146863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton R.string.name_phonetic_middle, FLAGS_PHONETIC).setOptional(true)); 147863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton kind.fieldList.add(new EditField(StructuredName.PHONETIC_FAMILY_NAME, 148863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton R.string.name_phonetic_family, FLAGS_PHONETIC).setOptional(true)); 149863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton } 150863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton } 151863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton 152863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton return kind; 153863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton } 154863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton 155863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton protected DataKind inflateNickname(Context context, int inflateLevel) { 156863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton DataKind kind = getKindForMimetype(Nickname.CONTENT_ITEM_TYPE); 157863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton if (kind == null) { 158863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton kind = addKind(new DataKind(Nickname.CONTENT_ITEM_TYPE, 159863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton R.string.nicknameLabelsGroup, -1, 115, true)); 160863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton kind.secondary = true; 161863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton kind.isList = false; 162863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton kind.actionHeader = new SimpleInflater(R.string.nicknameLabelsGroup); 163863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton kind.actionBody = new SimpleInflater(Nickname.NAME); 164863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton } 165863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton 166863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton if (inflateLevel >= ContactsSource.LEVEL_CONSTRAINTS) { 167863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton kind.defaultValues = new ContentValues(); 168863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton kind.defaultValues.put(Nickname.TYPE, Nickname.TYPE_DEFAULT); 169863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton 170863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton kind.fieldList = Lists.newArrayList(); 171863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton kind.fieldList.add(new EditField(Nickname.NAME, R.string.nicknameLabelsGroup, 172863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton FLAGS_PERSON_NAME)); 173863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton } 174863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton 175863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton return kind; 176863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton } 177863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton 178863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton protected DataKind inflatePhone(Context context, int inflateLevel) { 179863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton DataKind kind = getKindForMimetype(Phone.CONTENT_ITEM_TYPE); 180863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton if (kind == null) { 181863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton kind = addKind(new DataKind(Phone.CONTENT_ITEM_TYPE, R.string.phoneLabelsGroup, 182863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton android.R.drawable.sym_action_call, 10, true)); 183863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton kind.iconAltRes = R.drawable.sym_action_sms; 184863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton kind.actionHeader = new PhoneActionInflater(); 185863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton kind.actionAltHeader = new PhoneActionAltInflater(); 186863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton kind.actionBody = new SimpleInflater(Phone.NUMBER); 187863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton } 188863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton 189863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton if (inflateLevel >= ContactsSource.LEVEL_CONSTRAINTS) { 190863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton kind.typeColumn = Phone.TYPE; 191863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton kind.typeList = Lists.newArrayList(); 192863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton kind.typeList.add(buildPhoneType(Phone.TYPE_HOME)); 193863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton kind.typeList.add(buildPhoneType(Phone.TYPE_MOBILE)); 194863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton kind.typeList.add(buildPhoneType(Phone.TYPE_WORK)); 195863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton kind.typeList.add(buildPhoneType(Phone.TYPE_FAX_WORK).setSecondary(true)); 196863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton kind.typeList.add(buildPhoneType(Phone.TYPE_FAX_HOME).setSecondary(true)); 197863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton kind.typeList.add(buildPhoneType(Phone.TYPE_PAGER).setSecondary(true)); 198863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton kind.typeList.add(buildPhoneType(Phone.TYPE_OTHER)); 199863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton kind.typeList.add(buildPhoneType(Phone.TYPE_CUSTOM).setSecondary(true).setCustomColumn( 200863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton Phone.LABEL)); 201863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton kind.typeList.add(buildPhoneType(Phone.TYPE_CALLBACK).setSecondary(true)); 202863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton kind.typeList.add(buildPhoneType(Phone.TYPE_CAR).setSecondary(true)); 203863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton kind.typeList.add(buildPhoneType(Phone.TYPE_COMPANY_MAIN).setSecondary(true)); 204863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton kind.typeList.add(buildPhoneType(Phone.TYPE_ISDN).setSecondary(true)); 205863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton kind.typeList.add(buildPhoneType(Phone.TYPE_MAIN).setSecondary(true)); 206863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton kind.typeList.add(buildPhoneType(Phone.TYPE_OTHER_FAX).setSecondary(true)); 207863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton kind.typeList.add(buildPhoneType(Phone.TYPE_RADIO).setSecondary(true)); 208863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton kind.typeList.add(buildPhoneType(Phone.TYPE_TELEX).setSecondary(true)); 209863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton kind.typeList.add(buildPhoneType(Phone.TYPE_TTY_TDD).setSecondary(true)); 210863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton kind.typeList.add(buildPhoneType(Phone.TYPE_WORK_MOBILE).setSecondary(true)); 211863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton kind.typeList.add(buildPhoneType(Phone.TYPE_WORK_PAGER).setSecondary(true)); 212863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton kind.typeList.add(buildPhoneType(Phone.TYPE_ASSISTANT).setSecondary(true) 213863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton .setCustomColumn(Phone.LABEL)); 214863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton kind.typeList.add(buildPhoneType(Phone.TYPE_MMS).setSecondary(true)); 215863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton 216863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton kind.fieldList = Lists.newArrayList(); 217863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton kind.fieldList.add(new EditField(Phone.NUMBER, R.string.phoneLabelsGroup, FLAGS_PHONE)); 218863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton } 219863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton 220863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton return kind; 221863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton } 222863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton 223863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton protected DataKind inflateEmail(Context context, int inflateLevel) { 224863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton DataKind kind = getKindForMimetype(Email.CONTENT_ITEM_TYPE); 225863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton if (kind == null) { 226863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton kind = addKind(new DataKind(Email.CONTENT_ITEM_TYPE, 227863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton R.string.emailLabelsGroup, android.R.drawable.sym_action_email, 15, true)); 228863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton kind.actionHeader = new EmailActionInflater(); 229863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton kind.actionBody = new SimpleInflater(Email.DATA); 230863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton } 231863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton 232863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton if (inflateLevel >= ContactsSource.LEVEL_CONSTRAINTS) { 233863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton kind.typeColumn = Email.TYPE; 234863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton kind.typeList = Lists.newArrayList(); 235863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton kind.typeList.add(buildEmailType(Email.TYPE_HOME)); 236863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton kind.typeList.add(buildEmailType(Email.TYPE_WORK)); 237863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton kind.typeList.add(buildEmailType(Email.TYPE_OTHER)); 238863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton kind.typeList.add(buildEmailType(Email.TYPE_MOBILE)); 239863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton kind.typeList.add(buildEmailType(Email.TYPE_CUSTOM).setSecondary(true).setCustomColumn( 240863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton Email.LABEL)); 241863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton 242863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton kind.fieldList = Lists.newArrayList(); 243863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton kind.fieldList.add(new EditField(Email.DATA, R.string.emailLabelsGroup, FLAGS_EMAIL)); 244863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton } 245863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton 246863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton return kind; 247863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton } 248863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton 249863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton protected DataKind inflateStructuredPostal(Context context, int inflateLevel) { 250863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton DataKind kind = getKindForMimetype(StructuredPostal.CONTENT_ITEM_TYPE); 251863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton if (kind == null) { 252863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton kind = addKind(new DataKind(StructuredPostal.CONTENT_ITEM_TYPE, 253863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton R.string.postalLabelsGroup, R.drawable.sym_action_map, 25, true)); 254863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton kind.actionHeader = new PostalActionInflater(); 255863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton kind.actionBody = new SimpleInflater(StructuredPostal.FORMATTED_ADDRESS); 256863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton } 257863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton 258863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton if (inflateLevel >= ContactsSource.LEVEL_CONSTRAINTS) { 259863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton final boolean useJapaneseOrder = 260863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton Locale.JAPANESE.getLanguage().equals(Locale.getDefault().getLanguage()); 261863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton kind.typeColumn = StructuredPostal.TYPE; 262863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton kind.typeList = Lists.newArrayList(); 263863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton kind.typeList.add(buildPostalType(StructuredPostal.TYPE_HOME)); 264863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton kind.typeList.add(buildPostalType(StructuredPostal.TYPE_WORK)); 265863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton kind.typeList.add(buildPostalType(StructuredPostal.TYPE_OTHER)); 266863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton kind.typeList.add(buildPostalType(StructuredPostal.TYPE_CUSTOM).setSecondary(true) 267863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton .setCustomColumn(StructuredPostal.LABEL)); 268863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton 269863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton kind.fieldList = Lists.newArrayList(); 270863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton 271863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton if (useJapaneseOrder) { 272863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton kind.fieldList.add(new EditField(StructuredPostal.COUNTRY, 273863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton R.string.postal_country, FLAGS_POSTAL).setOptional(true)); 274863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton kind.fieldList.add(new EditField(StructuredPostal.POSTCODE, 275863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton R.string.postal_postcode, FLAGS_POSTAL)); 276863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton kind.fieldList.add(new EditField(StructuredPostal.REGION, 277863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton R.string.postal_region, FLAGS_POSTAL)); 278863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton kind.fieldList.add(new EditField(StructuredPostal.CITY, 279863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton R.string.postal_city, FLAGS_POSTAL)); 280863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton kind.fieldList.add(new EditField(StructuredPostal.NEIGHBORHOOD, 281863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton R.string.postal_neighborhood, FLAGS_POSTAL).setOptional(true)); 282863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton kind.fieldList.add(new EditField(StructuredPostal.STREET, 283863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton R.string.postal_street, FLAGS_POSTAL)); 284863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton kind.fieldList.add(new EditField(StructuredPostal.POBOX, 285863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton R.string.postal_pobox, FLAGS_POSTAL).setOptional(true)); 286863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton } else { 287863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton kind.fieldList.add(new EditField(StructuredPostal.STREET, 288863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton R.string.postal_street, FLAGS_POSTAL)); 289863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton kind.fieldList.add(new EditField(StructuredPostal.POBOX, 290863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton R.string.postal_pobox, FLAGS_POSTAL).setOptional(true)); 291863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton kind.fieldList.add(new EditField(StructuredPostal.NEIGHBORHOOD, 292863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton R.string.postal_neighborhood, FLAGS_POSTAL).setOptional(true)); 293863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton kind.fieldList.add(new EditField(StructuredPostal.CITY, 294863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton R.string.postal_city, FLAGS_POSTAL)); 295863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton kind.fieldList.add(new EditField(StructuredPostal.REGION, 296863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton R.string.postal_region, FLAGS_POSTAL)); 297863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton kind.fieldList.add(new EditField(StructuredPostal.POSTCODE, 298863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton R.string.postal_postcode, FLAGS_POSTAL)); 299863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton kind.fieldList.add(new EditField(StructuredPostal.COUNTRY, 300863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton R.string.postal_country, FLAGS_POSTAL).setOptional(true)); 301863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton } 302863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton } 303863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton 304863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton return kind; 305863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton } 306863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton 307863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton protected DataKind inflateIm(Context context, int inflateLevel) { 308863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton DataKind kind = getKindForMimetype(Im.CONTENT_ITEM_TYPE); 309863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton if (kind == null) { 310863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton kind = addKind(new DataKind(Im.CONTENT_ITEM_TYPE, R.string.imLabelsGroup, 311863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton android.R.drawable.sym_action_chat, 20, true)); 312863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton kind.secondary = true; 313863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton kind.actionHeader = new ImActionInflater(); 314863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton kind.actionBody = new SimpleInflater(Im.DATA); 315863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton } 316863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton 317863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton if (inflateLevel >= ContactsSource.LEVEL_CONSTRAINTS) { 318863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton // NOTE: even though a traditional "type" exists, for editing 319863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton // purposes we're using the protocol to pick labels 320863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton 321863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton kind.defaultValues = new ContentValues(); 322863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton kind.defaultValues.put(Im.TYPE, Im.TYPE_OTHER); 323863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton 324863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton kind.typeColumn = Im.PROTOCOL; 325863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton kind.typeList = Lists.newArrayList(); 326863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton kind.typeList.add(buildImType(Im.PROTOCOL_AIM)); 327863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton kind.typeList.add(buildImType(Im.PROTOCOL_MSN)); 328863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton kind.typeList.add(buildImType(Im.PROTOCOL_YAHOO)); 329863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton kind.typeList.add(buildImType(Im.PROTOCOL_SKYPE)); 330863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton kind.typeList.add(buildImType(Im.PROTOCOL_QQ)); 331863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton kind.typeList.add(buildImType(Im.PROTOCOL_GOOGLE_TALK)); 332863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton kind.typeList.add(buildImType(Im.PROTOCOL_ICQ)); 333863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton kind.typeList.add(buildImType(Im.PROTOCOL_JABBER)); 334863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton kind.typeList.add(buildImType(Im.PROTOCOL_CUSTOM).setSecondary(true).setCustomColumn( 335863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton Im.CUSTOM_PROTOCOL)); 336863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton 337863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton kind.fieldList = Lists.newArrayList(); 338863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton kind.fieldList.add(new EditField(Im.DATA, R.string.imLabelsGroup, FLAGS_EMAIL)); 339863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton } 340863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton 341863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton return kind; 342863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton } 343863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton 344863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton protected DataKind inflateOrganization(Context context, int inflateLevel) { 345863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton DataKind kind = getKindForMimetype(Organization.CONTENT_ITEM_TYPE); 346863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton if (kind == null) { 347863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton kind = addKind(new DataKind(Organization.CONTENT_ITEM_TYPE, 348863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton R.string.organizationLabelsGroup, R.drawable.sym_action_organization, 30, true)); 349863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton kind.actionHeader = new SimpleInflater(Organization.COMPANY); 350863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton kind.actionBody = new SimpleInflater(Organization.TITLE); 351863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton } 352863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton 353863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton if (inflateLevel >= ContactsSource.LEVEL_CONSTRAINTS) { 354863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton kind.typeColumn = Organization.TYPE; 355863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton kind.typeList = Lists.newArrayList(); 356863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton kind.typeList.add(buildOrgType(Organization.TYPE_WORK)); 357863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton kind.typeList.add(buildOrgType(Organization.TYPE_OTHER)); 358863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton kind.typeList.add(buildOrgType(Organization.TYPE_CUSTOM).setSecondary(true) 359863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton .setCustomColumn(Organization.LABEL)); 360863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton 361863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton kind.fieldList = Lists.newArrayList(); 362863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton kind.fieldList.add(new EditField(Organization.COMPANY, R.string.ghostData_company, 363863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton FLAGS_GENERIC_NAME)); 364863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton kind.fieldList.add(new EditField(Organization.TITLE, R.string.ghostData_title, 365863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton FLAGS_GENERIC_NAME)); 366863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton } 367863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton 368863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton return kind; 369863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton } 370863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton 371863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton protected DataKind inflatePhoto(Context context, int inflateLevel) { 372863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton DataKind kind = getKindForMimetype(Photo.CONTENT_ITEM_TYPE); 373863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton if (kind == null) { 374863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton kind = addKind(new DataKind(Photo.CONTENT_ITEM_TYPE, -1, -1, -1, true)); 375863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton } 376863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton 377863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton if (inflateLevel >= ContactsSource.LEVEL_CONSTRAINTS) { 378863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton kind.fieldList = Lists.newArrayList(); 379863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton kind.fieldList.add(new EditField(Photo.PHOTO, -1, -1)); 380863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton } 381863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton 382863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton return kind; 383863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton } 384863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton 385863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton protected DataKind inflateNote(Context context, int inflateLevel) { 386863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton DataKind kind = getKindForMimetype(Note.CONTENT_ITEM_TYPE); 387863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton if (kind == null) { 388863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton kind = addKind(new DataKind(Note.CONTENT_ITEM_TYPE, 389863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton R.string.label_notes, R.drawable.sym_note, 110, true)); 390863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton kind.isList = false; 391863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton kind.secondary = true; 392863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton kind.actionHeader = new SimpleInflater(R.string.label_notes); 393863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton kind.actionBody = new SimpleInflater(Note.NOTE); 394863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton } 395863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton 396863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton if (inflateLevel >= ContactsSource.LEVEL_CONSTRAINTS) { 397863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton kind.fieldList = Lists.newArrayList(); 398863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton kind.fieldList.add(new EditField(Note.NOTE, R.string.label_notes, FLAGS_NOTE)); 399863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton } 400863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton 401863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton return kind; 402863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton } 403863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton 404863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton protected DataKind inflateWebsite(Context context, int inflateLevel) { 405863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton DataKind kind = getKindForMimetype(Website.CONTENT_ITEM_TYPE); 406863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton if (kind == null) { 407863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton kind = addKind(new DataKind(Website.CONTENT_ITEM_TYPE, 408863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton R.string.websiteLabelsGroup, -1, 120, true)); 409863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton kind.secondary = true; 410863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton kind.actionHeader = new SimpleInflater(R.string.websiteLabelsGroup); 411863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton kind.actionBody = new SimpleInflater(Website.URL); 412863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton } 413863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton 414863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton if (inflateLevel >= ContactsSource.LEVEL_CONSTRAINTS) { 415863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton kind.defaultValues = new ContentValues(); 416863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton kind.defaultValues.put(Website.TYPE, Website.TYPE_OTHER); 417863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton 418863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton kind.fieldList = Lists.newArrayList(); 419863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton kind.fieldList.add(new EditField(Website.URL, R.string.websiteLabelsGroup, FLAGS_WEBSITE)); 420863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton } 421863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton 422863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton return kind; 423863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton } 424863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton 425863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton protected DataKind inflateEvent(Context context, int inflateLevel) { 426863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton DataKind kind = getKindForMimetype(Event.CONTENT_ITEM_TYPE); 427863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton if (kind == null) { 428863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton kind = addKind(new DataKind(Event.CONTENT_ITEM_TYPE, 429863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton R.string.eventLabelsGroup, -1, 150, false)); 430863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton kind.secondary = true; 431863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton kind.actionHeader = new EventActionInflater(); 432863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton kind.actionBody = new SimpleInflater(Event.START_DATE); 433863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton } 434863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton 435863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton return kind; 436863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton } 437863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton 438863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton /** 439863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton * Simple inflater that assumes a string resource has a "%s" that will be 440863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton * filled from the given column. 441863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton */ 442863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton public static class SimpleInflater implements StringInflater { 443863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton private final int mStringRes; 444863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton private final String mColumnName; 445863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton 446863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton public SimpleInflater(int stringRes) { 447863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton this(stringRes, null); 448863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton } 449863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton 450863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton public SimpleInflater(String columnName) { 451863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton this(-1, columnName); 452863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton } 453863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton 454863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton public SimpleInflater(int stringRes, String columnName) { 455863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton mStringRes = stringRes; 456863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton mColumnName = columnName; 457863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton } 458863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton 459863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton public CharSequence inflateUsing(Context context, Cursor cursor) { 460863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton final int index = mColumnName != null ? cursor.getColumnIndex(mColumnName) : -1; 461863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton final boolean validString = mStringRes > 0; 462863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton final boolean validColumn = index != -1; 463863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton 464863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton final CharSequence stringValue = validString ? context.getText(mStringRes) : null; 465863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton final CharSequence columnValue = validColumn ? cursor.getString(index) : null; 466863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton 467863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton if (validString && validColumn) { 468863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton return String.format(stringValue.toString(), columnValue); 469863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton } else if (validString) { 470863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton return stringValue; 471863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton } else if (validColumn) { 472863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton return columnValue; 473863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton } else { 474863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton return null; 475863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton } 476863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton } 477863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton 478863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton public CharSequence inflateUsing(Context context, ContentValues values) { 479863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton final boolean validColumn = values.containsKey(mColumnName); 480863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton final boolean validString = mStringRes > 0; 481863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton 482863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton final CharSequence stringValue = validString ? context.getText(mStringRes) : null; 483863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton final CharSequence columnValue = validColumn ? values.getAsString(mColumnName) : null; 484863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton 485863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton if (validString && validColumn) { 486863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton return String.format(stringValue.toString(), columnValue); 487863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton } else if (validString) { 488863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton return stringValue; 489863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton } else if (validColumn) { 490863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton return columnValue; 491863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton } else { 492863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton return null; 493863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton } 494863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton } 495863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton } 496863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton 497863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton public static abstract class CommonInflater implements StringInflater { 498863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton protected abstract int getTypeLabelResource(Integer type); 499863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton 500863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton protected boolean isCustom(Integer type) { 501863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton return type == BaseTypes.TYPE_CUSTOM; 502863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton } 503863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton 504863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton protected String getTypeColumn() { 505863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton return Phone.TYPE; 506863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton } 507863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton 508863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton protected String getLabelColumn() { 509863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton return Phone.LABEL; 510863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton } 511863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton 512863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton protected CharSequence getTypeLabel(Resources res, Integer type, CharSequence label) { 513863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton final int labelRes = getTypeLabelResource(type); 514863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton if (type == null) { 515863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton return res.getText(labelRes); 516863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton } else if (isCustom(type)) { 517863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton return res.getString(labelRes, label == null ? "" : label); 518863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton } else { 519863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton return res.getText(labelRes); 520863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton } 521863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton } 522863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton 523863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton public CharSequence inflateUsing(Context context, Cursor cursor) { 524863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton final Integer type = cursor.getInt(cursor.getColumnIndex(getTypeColumn())); 525863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton final String label = cursor.getString(cursor.getColumnIndex(getLabelColumn())); 526863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton return getTypeLabel(context.getResources(), type, label); 527863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton } 528863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton 529863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton public CharSequence inflateUsing(Context context, ContentValues values) { 530863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton final Integer type = values.getAsInteger(getTypeColumn()); 531863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton final String label = values.getAsString(getLabelColumn()); 532863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton return getTypeLabel(context.getResources(), type, label); 533863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton } 534863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton } 535863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton 536863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton public static class PhoneActionInflater extends CommonInflater { 537863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton @Override 538863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton protected boolean isCustom(Integer type) { 539863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton return type == Phone.TYPE_CUSTOM || type == Phone.TYPE_ASSISTANT; 540863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton } 541863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton 542863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton @Override 543863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton protected int getTypeLabelResource(Integer type) { 544863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton if (type == null) return R.string.call_other; 545863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton switch (type) { 546863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton case Phone.TYPE_HOME: return R.string.call_home; 547863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton case Phone.TYPE_MOBILE: return R.string.call_mobile; 548863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton case Phone.TYPE_WORK: return R.string.call_work; 549863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton case Phone.TYPE_FAX_WORK: return R.string.call_fax_work; 550863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton case Phone.TYPE_FAX_HOME: return R.string.call_fax_home; 551863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton case Phone.TYPE_PAGER: return R.string.call_pager; 552863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton case Phone.TYPE_OTHER: return R.string.call_other; 553863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton case Phone.TYPE_CALLBACK: return R.string.call_callback; 554863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton case Phone.TYPE_CAR: return R.string.call_car; 555863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton case Phone.TYPE_COMPANY_MAIN: return R.string.call_company_main; 556863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton case Phone.TYPE_ISDN: return R.string.call_isdn; 557863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton case Phone.TYPE_MAIN: return R.string.call_main; 558863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton case Phone.TYPE_OTHER_FAX: return R.string.call_other_fax; 559863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton case Phone.TYPE_RADIO: return R.string.call_radio; 560863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton case Phone.TYPE_TELEX: return R.string.call_telex; 561863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton case Phone.TYPE_TTY_TDD: return R.string.call_tty_tdd; 562863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton case Phone.TYPE_WORK_MOBILE: return R.string.call_work_mobile; 563863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton case Phone.TYPE_WORK_PAGER: return R.string.call_work_pager; 564863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton case Phone.TYPE_ASSISTANT: return R.string.call_assistant; 565863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton case Phone.TYPE_MMS: return R.string.call_mms; 566863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton default: return R.string.call_custom; 567863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton } 568863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton } 569863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton } 570863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton 571863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton public static class PhoneActionAltInflater extends CommonInflater { 572863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton @Override 573863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton protected boolean isCustom(Integer type) { 574863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton return (type == Phone.TYPE_CUSTOM || type == Phone.TYPE_ASSISTANT); 575863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton } 576863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton 577863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton @Override 578863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton protected int getTypeLabelResource(Integer type) { 579863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton if (type == null) return R.string.sms_other; 580863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton switch (type) { 581863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton case Phone.TYPE_HOME: return R.string.sms_home; 582863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton case Phone.TYPE_MOBILE: return R.string.sms_mobile; 583863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton case Phone.TYPE_WORK: return R.string.sms_work; 584863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton case Phone.TYPE_FAX_WORK: return R.string.sms_fax_work; 585863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton case Phone.TYPE_FAX_HOME: return R.string.sms_fax_home; 586863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton case Phone.TYPE_PAGER: return R.string.sms_pager; 587863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton case Phone.TYPE_OTHER: return R.string.sms_other; 588863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton case Phone.TYPE_CALLBACK: return R.string.sms_callback; 589863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton case Phone.TYPE_CAR: return R.string.sms_car; 590863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton case Phone.TYPE_COMPANY_MAIN: return R.string.sms_company_main; 591863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton case Phone.TYPE_ISDN: return R.string.sms_isdn; 592863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton case Phone.TYPE_MAIN: return R.string.sms_main; 593863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton case Phone.TYPE_OTHER_FAX: return R.string.sms_other_fax; 594863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton case Phone.TYPE_RADIO: return R.string.sms_radio; 595863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton case Phone.TYPE_TELEX: return R.string.sms_telex; 596863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton case Phone.TYPE_TTY_TDD: return R.string.sms_tty_tdd; 597863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton case Phone.TYPE_WORK_MOBILE: return R.string.sms_work_mobile; 598863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton case Phone.TYPE_WORK_PAGER: return R.string.sms_work_pager; 599863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton case Phone.TYPE_ASSISTANT: return R.string.sms_assistant; 600863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton case Phone.TYPE_MMS: return R.string.sms_mms; 601863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton default: return R.string.sms_custom; 602863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton } 603863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton } 604863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton } 605863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton 606863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton public static class EmailActionInflater extends CommonInflater { 607863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton @Override 608863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton protected int getTypeLabelResource(Integer type) { 609863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton if (type == null) return R.string.email; 610863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton switch (type) { 611863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton case Email.TYPE_HOME: return R.string.email_home; 612863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton case Email.TYPE_WORK: return R.string.email_work; 613863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton case Email.TYPE_OTHER: return R.string.email_other; 614863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton case Email.TYPE_MOBILE: return R.string.email_mobile; 615863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton default: return R.string.email_custom; 616863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton } 617863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton } 618863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton } 619863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton 620863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton public static class EventActionInflater extends CommonInflater { 621863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton @Override 622863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton protected int getTypeLabelResource(Integer type) { 623863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton return Event.getTypeResource(type); 624863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton } 625863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton } 626863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton 627863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton public static class PostalActionInflater extends CommonInflater { 628863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton @Override 629863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton protected int getTypeLabelResource(Integer type) { 630863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton if (type == null) return R.string.map_other; 631863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton switch (type) { 632863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton case StructuredPostal.TYPE_HOME: return R.string.map_home; 633863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton case StructuredPostal.TYPE_WORK: return R.string.map_work; 634863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton case StructuredPostal.TYPE_OTHER: return R.string.map_other; 635863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton default: return R.string.map_custom; 636863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton } 637863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton } 638863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton } 639863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton 640863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton public static class ImActionInflater extends CommonInflater { 641863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton @Override 642863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton protected String getTypeColumn() { 643863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton return Im.PROTOCOL; 644863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton } 645863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton 646863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton @Override 647863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton protected String getLabelColumn() { 648863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton return Im.CUSTOM_PROTOCOL; 649863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton } 650863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton 651863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton @Override 652863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton protected int getTypeLabelResource(Integer type) { 653863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton if (type == null) return R.string.chat; 654863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton switch (type) { 655863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton case Im.PROTOCOL_AIM: return R.string.chat_aim; 656863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton case Im.PROTOCOL_MSN: return R.string.chat_msn; 657863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton case Im.PROTOCOL_YAHOO: return R.string.chat_yahoo; 658863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton case Im.PROTOCOL_SKYPE: return R.string.chat_skype; 659863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton case Im.PROTOCOL_QQ: return R.string.chat_qq; 660863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton case Im.PROTOCOL_GOOGLE_TALK: return R.string.chat_gtalk; 661863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton case Im.PROTOCOL_ICQ: return R.string.chat_icq; 662863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton case Im.PROTOCOL_JABBER: return R.string.chat_jabber; 663863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton case Im.PROTOCOL_NETMEETING: return R.string.chat; 664863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton default: return R.string.chat; 665863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton } 666863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton } 667863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton } 668863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton 669863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton @Override 670863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton public int getHeaderColor(Context context) { 671863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton return 0xff7f93bc; 672863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton } 673863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton 674863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton @Override 675863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton public int getSideBarColor(Context context) { 676863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton return 0xffbdc7b8; 677863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton } 678863e7a55dc45cd1210e4d07e5847f48dfe301876Jeff Hamilton} 679