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 172aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamiltonpackage com.android.loaderapp.model; 182aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton 192aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamiltonimport com.android.loaderapp.R; 202aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamiltonimport com.google.android.collect.Lists; 212aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton 222aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamiltonimport android.content.ContentValues; 232aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamiltonimport android.content.Context; 242aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamiltonimport android.provider.ContactsContract.CommonDataKinds.Email; 252aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamiltonimport android.provider.ContactsContract.CommonDataKinds.Im; 262aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamiltonimport android.provider.ContactsContract.CommonDataKinds.Nickname; 272aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamiltonimport android.provider.ContactsContract.CommonDataKinds.Note; 282aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamiltonimport android.provider.ContactsContract.CommonDataKinds.Organization; 292aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamiltonimport android.provider.ContactsContract.CommonDataKinds.Phone; 302aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamiltonimport android.provider.ContactsContract.CommonDataKinds.Photo; 312aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamiltonimport android.provider.ContactsContract.CommonDataKinds.StructuredName; 322aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamiltonimport android.provider.ContactsContract.CommonDataKinds.StructuredPostal; 332aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamiltonimport android.provider.ContactsContract.CommonDataKinds.Website; 342aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton 352aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamiltonimport java.util.Locale; 362aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton 372aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamiltonpublic class ExchangeSource extends FallbackSource { 382aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton 392aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton public static final String ACCOUNT_TYPE = "com.android.exchange"; 402aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton 412aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton public ExchangeSource(String resPackageName) { 422aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton this.accountType = ACCOUNT_TYPE; 432aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton this.resPackageName = null; 442aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton this.summaryResPackageName = resPackageName; 452aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton } 462aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton 472aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton @Override 482aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton protected void inflate(Context context, int inflateLevel) { 492aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton 502aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton inflateStructuredName(context, inflateLevel); 512aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton inflateNickname(context, inflateLevel); 522aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton inflatePhone(context, inflateLevel); 532aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton inflateEmail(context, inflateLevel); 542aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton inflateStructuredPostal(context, inflateLevel); 552aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton inflateIm(context, inflateLevel); 562aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton inflateOrganization(context, inflateLevel); 572aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton inflatePhoto(context, inflateLevel); 582aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton inflateNote(context, inflateLevel); 592aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton inflateWebsite(context, inflateLevel); 602aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton 612aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton setInflatedLevel(inflateLevel); 622aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton } 632aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton 642aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton @Override 652aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton protected DataKind inflateStructuredName(Context context, int inflateLevel) { 662aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton final DataKind kind = super.inflateStructuredName(context, ContactsSource.LEVEL_MIMETYPES); 672aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton 682aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton if (inflateLevel >= ContactsSource.LEVEL_CONSTRAINTS) { 692aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton final boolean useJapaneseOrder = 702aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton Locale.JAPANESE.getLanguage().equals(Locale.getDefault().getLanguage()); 712aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton kind.typeOverallMax = 1; 722aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton 732aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton kind.fieldList = Lists.newArrayList(); 742aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton kind.fieldList.add(new EditField(StructuredName.PREFIX, R.string.name_prefix, 752aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton FLAGS_PERSON_NAME).setOptional(true)); 762aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton if (useJapaneseOrder) { 772aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton kind.fieldList.add(new EditField(StructuredName.FAMILY_NAME, 782aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton R.string.name_family, FLAGS_PERSON_NAME)); 792aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton kind.fieldList.add(new EditField(StructuredName.MIDDLE_NAME, 802aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton R.string.name_middle, FLAGS_PERSON_NAME).setOptional(true)); 812aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton kind.fieldList.add(new EditField(StructuredName.GIVEN_NAME, 822aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton R.string.name_given, FLAGS_PERSON_NAME)); 832aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton kind.fieldList.add(new EditField(StructuredName.SUFFIX, 842aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton R.string.name_suffix, FLAGS_PERSON_NAME).setOptional(true)); 852aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton kind.fieldList.add(new EditField(StructuredName.PHONETIC_FAMILY_NAME, 862aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton R.string.name_phonetic_family, FLAGS_PHONETIC).setOptional(true)); 872aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton kind.fieldList.add(new EditField(StructuredName.PHONETIC_GIVEN_NAME, 882aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton R.string.name_phonetic_given, FLAGS_PHONETIC).setOptional(true)); 892aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton } else { 902aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton kind.fieldList.add(new EditField(StructuredName.GIVEN_NAME, 912aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton R.string.name_given, FLAGS_PERSON_NAME)); 922aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton kind.fieldList.add(new EditField(StructuredName.MIDDLE_NAME, 932aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton R.string.name_middle, FLAGS_PERSON_NAME).setOptional(true)); 942aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton kind.fieldList.add(new EditField(StructuredName.FAMILY_NAME, 952aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton R.string.name_family, FLAGS_PERSON_NAME)); 962aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton kind.fieldList.add(new EditField(StructuredName.SUFFIX, 972aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton R.string.name_suffix, FLAGS_PERSON_NAME).setOptional(true)); 982aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton kind.fieldList.add(new EditField(StructuredName.PHONETIC_GIVEN_NAME, 992aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton R.string.name_phonetic_given, FLAGS_PHONETIC).setOptional(true)); 1002aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton kind.fieldList.add(new EditField(StructuredName.PHONETIC_FAMILY_NAME, 1012aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton R.string.name_phonetic_family, FLAGS_PHONETIC).setOptional(true)); 1022aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton } 1032aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton } 1042aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton 1052aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton return kind; 1062aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton } 1072aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton 1082aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton @Override 1092aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton protected DataKind inflateNickname(Context context, int inflateLevel) { 1102aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton final DataKind kind = super.inflateNickname(context, ContactsSource.LEVEL_MIMETYPES); 1112aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton 1122aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton if (inflateLevel >= ContactsSource.LEVEL_CONSTRAINTS) { 1132aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton kind.isList = false; 1142aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton 1152aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton kind.fieldList = Lists.newArrayList(); 1162aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton kind.fieldList.add(new EditField(Nickname.NAME, R.string.nicknameLabelsGroup, 1172aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton FLAGS_PERSON_NAME)); 1182aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton } 1192aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton 1202aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton return kind; 1212aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton } 1222aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton 1232aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton @Override 1242aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton protected DataKind inflatePhone(Context context, int inflateLevel) { 1252aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton final DataKind kind = super.inflatePhone(context, ContactsSource.LEVEL_MIMETYPES); 1262aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton 1272aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton if (inflateLevel >= ContactsSource.LEVEL_CONSTRAINTS) { 1282aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton kind.typeColumn = Phone.TYPE; 1292aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton kind.typeList = Lists.newArrayList(); 1302aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton kind.typeList.add(buildPhoneType(Phone.TYPE_HOME).setSpecificMax(2)); 1312aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton kind.typeList.add(buildPhoneType(Phone.TYPE_MOBILE).setSpecificMax(1)); 1322aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton kind.typeList.add(buildPhoneType(Phone.TYPE_WORK).setSpecificMax(2)); 1332aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton kind.typeList.add(buildPhoneType(Phone.TYPE_FAX_WORK).setSecondary(true) 1342aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton .setSpecificMax(1)); 1352aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton kind.typeList.add(buildPhoneType(Phone.TYPE_FAX_HOME).setSecondary(true) 1362aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton .setSpecificMax(1)); 1372aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton kind.typeList 1382aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton .add(buildPhoneType(Phone.TYPE_PAGER).setSecondary(true).setSpecificMax(1)); 1392aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton kind.typeList.add(buildPhoneType(Phone.TYPE_CAR).setSecondary(true).setSpecificMax(1)); 1402aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton kind.typeList.add(buildPhoneType(Phone.TYPE_COMPANY_MAIN).setSecondary(true) 1412aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton .setSpecificMax(1)); 1422aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton kind.typeList.add(buildPhoneType(Phone.TYPE_MMS).setSecondary(true).setSpecificMax(1)); 1432aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton kind.typeList 1442aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton .add(buildPhoneType(Phone.TYPE_RADIO).setSecondary(true).setSpecificMax(1)); 1452aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton kind.typeList.add(buildPhoneType(Phone.TYPE_ASSISTANT).setSecondary(true) 1462aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton .setSpecificMax(1).setCustomColumn(Phone.LABEL)); 1472aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton 1482aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton kind.fieldList = Lists.newArrayList(); 1492aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton kind.fieldList.add(new EditField(Phone.NUMBER, R.string.phoneLabelsGroup, FLAGS_PHONE)); 1502aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton } 1512aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton 1522aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton return kind; 1532aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton } 1542aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton 1552aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton @Override 1562aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton protected DataKind inflateEmail(Context context, int inflateLevel) { 1572aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton final DataKind kind = super.inflateEmail(context, ContactsSource.LEVEL_MIMETYPES); 1582aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton 1592aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton if (inflateLevel >= ContactsSource.LEVEL_CONSTRAINTS) { 1602aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton kind.typeOverallMax = 3; 1612aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton 1622aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton kind.fieldList = Lists.newArrayList(); 1632aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton kind.fieldList.add(new EditField(Email.DATA, R.string.emailLabelsGroup, FLAGS_EMAIL)); 1642aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton } 1652aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton 1662aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton return kind; 1672aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton } 1682aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton 1692aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton @Override 1702aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton protected DataKind inflateStructuredPostal(Context context, int inflateLevel) { 1712aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton final DataKind kind = super.inflateStructuredPostal(context, ContactsSource.LEVEL_MIMETYPES); 1722aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton 1732aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton if (inflateLevel >= ContactsSource.LEVEL_CONSTRAINTS) { 1742aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton final boolean useJapaneseOrder = 1752aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton Locale.JAPANESE.getLanguage().equals(Locale.getDefault().getLanguage()); 1762aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton kind.typeColumn = StructuredPostal.TYPE; 1772aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton kind.typeList = Lists.newArrayList(); 1782aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton kind.typeList.add(buildPostalType(StructuredPostal.TYPE_WORK).setSpecificMax(1)); 1792aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton kind.typeList.add(buildPostalType(StructuredPostal.TYPE_HOME).setSpecificMax(1)); 1802aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton kind.typeList.add(buildPostalType(StructuredPostal.TYPE_OTHER).setSpecificMax(1)); 1812aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton 1822aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton kind.fieldList = Lists.newArrayList(); 1832aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton if (useJapaneseOrder) { 1842aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton kind.fieldList.add(new EditField(StructuredPostal.COUNTRY, 1852aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton R.string.postal_country, FLAGS_POSTAL).setOptional(true)); 1862aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton kind.fieldList.add(new EditField(StructuredPostal.POSTCODE, 1872aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton R.string.postal_postcode, FLAGS_POSTAL)); 1882aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton kind.fieldList.add(new EditField(StructuredPostal.REGION, 1892aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton R.string.postal_region, FLAGS_POSTAL)); 1902aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton kind.fieldList.add(new EditField(StructuredPostal.CITY, 1912aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton R.string.postal_city,FLAGS_POSTAL)); 1922aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton kind.fieldList.add(new EditField(StructuredPostal.STREET, 1932aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton R.string.postal_street, FLAGS_POSTAL)); 1942aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton } else { 1952aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton kind.fieldList.add(new EditField(StructuredPostal.STREET, 1962aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton R.string.postal_street, FLAGS_POSTAL)); 1972aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton kind.fieldList.add(new EditField(StructuredPostal.CITY, 1982aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton R.string.postal_city,FLAGS_POSTAL)); 1992aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton kind.fieldList.add(new EditField(StructuredPostal.REGION, 2002aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton R.string.postal_region, FLAGS_POSTAL)); 2012aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton kind.fieldList.add(new EditField(StructuredPostal.POSTCODE, 2022aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton R.string.postal_postcode, FLAGS_POSTAL)); 2032aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton kind.fieldList.add(new EditField(StructuredPostal.COUNTRY, 2042aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton R.string.postal_country, FLAGS_POSTAL).setOptional(true)); 2052aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton } 2062aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton } 2072aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton 2082aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton return kind; 2092aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton } 2102aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton 2112aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton @Override 2122aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton protected DataKind inflateIm(Context context, int inflateLevel) { 2132aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton final DataKind kind = super.inflateIm(context, ContactsSource.LEVEL_MIMETYPES); 2142aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton 2152aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton if (inflateLevel >= ContactsSource.LEVEL_CONSTRAINTS) { 2162aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton kind.typeOverallMax = 3; 2172aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton 2182aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton // NOTE: even though a traditional "type" exists, for editing 2192aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton // purposes we're using the protocol to pick labels 2202aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton 2212aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton kind.defaultValues = new ContentValues(); 2222aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton kind.defaultValues.put(Im.TYPE, Im.TYPE_OTHER); 2232aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton 2242aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton kind.typeColumn = Im.PROTOCOL; 2252aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton kind.typeList = Lists.newArrayList(); 2262aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton kind.typeList.add(buildImType(Im.PROTOCOL_AIM)); 2272aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton kind.typeList.add(buildImType(Im.PROTOCOL_MSN)); 2282aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton kind.typeList.add(buildImType(Im.PROTOCOL_YAHOO)); 2292aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton kind.typeList.add(buildImType(Im.PROTOCOL_SKYPE)); 2302aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton kind.typeList.add(buildImType(Im.PROTOCOL_QQ)); 2312aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton kind.typeList.add(buildImType(Im.PROTOCOL_GOOGLE_TALK)); 2322aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton kind.typeList.add(buildImType(Im.PROTOCOL_ICQ)); 2332aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton kind.typeList.add(buildImType(Im.PROTOCOL_JABBER)); 2342aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton kind.typeList.add(buildImType(Im.PROTOCOL_CUSTOM).setSecondary(true).setCustomColumn( 2352aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton Im.CUSTOM_PROTOCOL)); 2362aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton 2372aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton kind.fieldList = Lists.newArrayList(); 2382aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton kind.fieldList.add(new EditField(Im.DATA, R.string.imLabelsGroup, FLAGS_EMAIL)); 2392aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton } 2402aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton 2412aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton return kind; 2422aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton } 2432aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton 2442aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton @Override 2452aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton protected DataKind inflateOrganization(Context context, int inflateLevel) { 2462aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton final DataKind kind = super.inflateOrganization(context, ContactsSource.LEVEL_MIMETYPES); 2472aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton 2482aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton if (inflateLevel >= ContactsSource.LEVEL_CONSTRAINTS) { 2492aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton kind.isList = false; 2502aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton kind.typeColumn = Organization.TYPE; 2512aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton kind.typeList = Lists.newArrayList(); 2522aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton kind.typeList.add(buildOrgType(Organization.TYPE_WORK).setSpecificMax(1)); 2532aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton kind.typeList.add(buildOrgType(Organization.TYPE_OTHER).setSpecificMax(1)); 2542aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton kind.typeList.add(buildOrgType(Organization.TYPE_CUSTOM).setSecondary(true) 2552aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton .setSpecificMax(1)); 2562aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton 2572aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton kind.fieldList = Lists.newArrayList(); 2582aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton kind.fieldList.add(new EditField(Organization.COMPANY, R.string.ghostData_company, 2592aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton FLAGS_GENERIC_NAME)); 2602aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton kind.fieldList.add(new EditField(Organization.TITLE, R.string.ghostData_title, 2612aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton FLAGS_GENERIC_NAME)); 2622aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton } 2632aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton 2642aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton return kind; 2652aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton } 2662aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton 2672aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton @Override 2682aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton protected DataKind inflatePhoto(Context context, int inflateLevel) { 2692aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton final DataKind kind = super.inflatePhoto(context, ContactsSource.LEVEL_MIMETYPES); 2702aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton 2712aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton if (inflateLevel >= ContactsSource.LEVEL_CONSTRAINTS) { 2722aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton kind.typeOverallMax = 1; 2732aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton 2742aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton kind.fieldList = Lists.newArrayList(); 2752aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton kind.fieldList.add(new EditField(Photo.PHOTO, -1, -1)); 2762aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton } 2772aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton 2782aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton return kind; 2792aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton } 2802aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton 2812aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton @Override 2822aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton protected DataKind inflateNote(Context context, int inflateLevel) { 2832aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton final DataKind kind = super.inflateNote(context, ContactsSource.LEVEL_MIMETYPES); 2842aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton 2852aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton if (inflateLevel >= ContactsSource.LEVEL_CONSTRAINTS) { 2862aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton kind.fieldList = Lists.newArrayList(); 2872aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton kind.fieldList.add(new EditField(Note.NOTE, R.string.label_notes, FLAGS_NOTE)); 2882aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton } 2892aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton 2902aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton return kind; 2912aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton } 2922aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton 2932aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton @Override 2942aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton protected DataKind inflateWebsite(Context context, int inflateLevel) { 2952aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton final DataKind kind = super.inflateWebsite(context, ContactsSource.LEVEL_MIMETYPES); 2962aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton 2972aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton if (inflateLevel >= ContactsSource.LEVEL_CONSTRAINTS) { 2982aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton kind.isList = false; 2992aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton 3002aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton kind.fieldList = Lists.newArrayList(); 3012aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton kind.fieldList.add(new EditField(Website.URL, R.string.websiteLabelsGroup, FLAGS_WEBSITE)); 3022aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton } 3032aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton 3042aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton return kind; 3052aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton } 3062aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton 3072aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton @Override 3082aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton public int getHeaderColor(Context context) { 3092aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton return 0xffd5ba96; 3102aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton } 3112aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton 3122aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton @Override 3132aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton public int getSideBarColor(Context context) { 3142aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton return 0xffb58e59; 3152aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton } 3162aee0983597c8b0e65766c4b278d4b1c7d13605fJeff Hamilton} 317