VCardConstants.java revision c13101ba38c929d91dcb68e21165c82c19af35d7
1/* 2 * Copyright (C) 2009 The Android Open Source Project 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16package com.android.vcard; 17 18/** 19 * Constants used in both exporter and importer code. 20 */ 21public class VCardConstants { 22 public static final String VERSION_V21 = "2.1"; 23 public static final String VERSION_V30 = "3.0"; 24 public static final String VERSION_V40 = "4.0"; 25 26 // The property names valid both in vCard 2.1 and 3.0. 27 public static final String PROPERTY_BEGIN = "BEGIN"; 28 public static final String PROPERTY_VERSION = "VERSION"; 29 public static final String PROPERTY_N = "N"; 30 public static final String PROPERTY_FN = "FN"; 31 public static final String PROPERTY_ADR = "ADR"; 32 public static final String PROPERTY_EMAIL = "EMAIL"; 33 public static final String PROPERTY_NOTE = "NOTE"; 34 public static final String PROPERTY_ORG = "ORG"; 35 public static final String PROPERTY_SOUND = "SOUND"; // Not fully supported. 36 public static final String PROPERTY_TEL = "TEL"; 37 public static final String PROPERTY_TITLE = "TITLE"; 38 public static final String PROPERTY_ROLE = "ROLE"; 39 public static final String PROPERTY_PHOTO = "PHOTO"; 40 public static final String PROPERTY_LOGO = "LOGO"; 41 public static final String PROPERTY_URL = "URL"; 42 public static final String PROPERTY_BDAY = "BDAY"; // Birthday (3.0, 4.0) 43 public static final String PROPERTY_BIRTH = "BIRTH"; // Place of birth (4.0) 44 public static final String PROPERTY_ANNIVERSARY = "ANNIVERSARY"; // Date of marriage (4.0) 45 public static final String PROPERTY_NAME = "NAME"; // (3.0, 4,0) 46 public static final String PROPERTY_NICKNAME = "NICKNAME"; // (3.0, 4.0) 47 public static final String PROPERTY_SORT_STRING = "SORT-STRING"; // (3.0, 4.0) 48 public static final String PROPERTY_END = "END"; 49 50 // Valid property names not supported (not appropriately handled) by our importer. 51 // TODO: Should be removed from the view of memory efficiency? 52 public static final String PROPERTY_REV = "REV"; 53 public static final String PROPERTY_AGENT = "AGENT"; // (3.0) 54 public static final String PROPERTY_DDAY = "DDAY"; // Date of death (4.0) 55 public static final String PROPERTY_DEATH = "DEATH"; // Place of death (4.0) 56 57 // Available in vCard 3.0. Shoud not use when composing vCard 2.1 file. 58 59 // De-fact property values expressing phonetic names. 60 public static final String PROPERTY_X_PHONETIC_FIRST_NAME = "X-PHONETIC-FIRST-NAME"; 61 public static final String PROPERTY_X_PHONETIC_MIDDLE_NAME = "X-PHONETIC-MIDDLE-NAME"; 62 public static final String PROPERTY_X_PHONETIC_LAST_NAME = "X-PHONETIC-LAST-NAME"; 63 64 // Properties both ContactsStruct in Eclair and de-fact vCard extensions 65 // shown in http://en.wikipedia.org/wiki/VCard support are defined here. 66 public static final String PROPERTY_X_AIM = "X-AIM"; 67 public static final String PROPERTY_X_MSN = "X-MSN"; 68 public static final String PROPERTY_X_YAHOO = "X-YAHOO"; 69 public static final String PROPERTY_X_ICQ = "X-ICQ"; 70 public static final String PROPERTY_X_JABBER = "X-JABBER"; 71 public static final String PROPERTY_X_GOOGLE_TALK = "X-GOOGLE-TALK"; 72 public static final String PROPERTY_X_SKYPE_USERNAME = "X-SKYPE-USERNAME"; 73 // Properties only ContactsStruct has. We alse use this. 74 public static final String PROPERTY_X_QQ = "X-QQ"; 75 public static final String PROPERTY_X_NETMEETING = "X-NETMEETING"; 76 77 // Phone number for Skype, available as usual phone. 78 public static final String PROPERTY_X_SKYPE_PSTNNUMBER = "X-SKYPE-PSTNNUMBER"; 79 80 // Property for Android-specific fields. 81 public static final String PROPERTY_X_ANDROID_CUSTOM = "X-ANDROID-CUSTOM"; 82 83 // Properties for DoCoMo vCard. 84 public static final String PROPERTY_X_CLASS = "X-CLASS"; 85 public static final String PROPERTY_X_REDUCTION = "X-REDUCTION"; 86 public static final String PROPERTY_X_NO = "X-NO"; 87 public static final String PROPERTY_X_DCM_HMN_MODE = "X-DCM-HMN-MODE"; 88 89 public static final String PARAM_TYPE = "TYPE"; 90 91 public static final String PARAM_TYPE_HOME = "HOME"; 92 public static final String PARAM_TYPE_WORK = "WORK"; 93 public static final String PARAM_TYPE_FAX = "FAX"; 94 public static final String PARAM_TYPE_CELL = "CELL"; 95 public static final String PARAM_TYPE_VOICE = "VOICE"; 96 public static final String PARAM_TYPE_INTERNET = "INTERNET"; 97 98 // Abbreviation of "prefered" according to vCard 2.1 specification. 99 // We interpret this value as "primary" property during import/export. 100 // 101 // Note: Both vCard specs does not mention anything about the requirement for this parameter, 102 // but there may be some vCard importer which will get confused with more than 103 // one "PREF"s in one property name, while Android accepts them. 104 public static final String PARAM_TYPE_PREF = "PREF"; 105 106 // Phone type parameters valid in vCard and known to ContactsContract, but not so common. 107 public static final String PARAM_TYPE_CAR = "CAR"; 108 public static final String PARAM_TYPE_ISDN = "ISDN"; 109 public static final String PARAM_TYPE_PAGER = "PAGER"; 110 public static final String PARAM_TYPE_TLX = "TLX"; // Telex 111 112 // Phone types existing in vCard 2.1 but not known to ContactsContract. 113 public static final String PARAM_TYPE_MODEM = "MODEM"; 114 public static final String PARAM_TYPE_MSG = "MSG"; 115 public static final String PARAM_TYPE_BBS = "BBS"; 116 public static final String PARAM_TYPE_VIDEO = "VIDEO"; 117 118 public static final String PARAM_ENCODING_7BIT = "7BIT"; 119 public static final String PARAM_ENCODING_8BIT = "8BIT"; 120 public static final String PARAM_ENCODING_QP = "QUOTED-PRINTABLE"; 121 public static final String PARAM_ENCODING_BASE64 = "BASE64"; // Available in vCard 2.1 122 public static final String PARAM_ENCODING_B = "B"; // Available in vCard 3.0 123 124 // TYPE parameters for Phones, which are not formally valid in vCard (at least 2.1). 125 // These types are basically encoded to "X-" parameters when composing vCard. 126 // Parser passes these when "X-" is added to the parameter or not. 127 public static final String PARAM_PHONE_EXTRA_TYPE_CALLBACK = "CALLBACK"; 128 public static final String PARAM_PHONE_EXTRA_TYPE_RADIO = "RADIO"; 129 public static final String PARAM_PHONE_EXTRA_TYPE_TTY_TDD = "TTY-TDD"; 130 public static final String PARAM_PHONE_EXTRA_TYPE_ASSISTANT = "ASSISTANT"; 131 // vCard composer translates this type to "WORK" + "PREF". Just for parsing. 132 public static final String PARAM_PHONE_EXTRA_TYPE_COMPANY_MAIN = "COMPANY-MAIN"; 133 // vCard composer translates this type to "VOICE" Just for parsing. 134 public static final String PARAM_PHONE_EXTRA_TYPE_OTHER = "OTHER"; 135 136 // TYPE parameters for postal addresses. 137 public static final String PARAM_ADR_TYPE_PARCEL = "PARCEL"; 138 public static final String PARAM_ADR_TYPE_DOM = "DOM"; 139 public static final String PARAM_ADR_TYPE_INTL = "INTL"; 140 141 // TYPE parameters not officially valid but used in some vCard exporter. 142 // Do not use in composer side. 143 public static final String PARAM_EXTRA_TYPE_COMPANY = "COMPANY"; 144 145 public interface ImportOnly { 146 public static final String PROPERTY_X_NICKNAME = "X-NICKNAME"; 147 // Some device emits this "X-" parameter for expressing Google Talk, 148 // which is specifically invalid but should be always properly accepted, and emitted 149 // in some special case (for that device/application). 150 public static final String PROPERTY_X_GOOGLE_TALK_WITH_SPACE = "X-GOOGLE TALK"; 151 } 152 153 //// Mainly for package constants. 154 155 // DoCoMo specific type parameter. Used with "SOUND" property, which is alternate of 156 // SORT-STRING invCard 3.0. 157 /* package */ static final String PARAM_TYPE_X_IRMC_N = "X-IRMC-N"; 158 159 /* package */ static final int MAX_DATA_COLUMN = 15; 160 161 /* package */ static final int MAX_CHARACTER_NUMS_QP = 76; 162 static final int MAX_CHARACTER_NUMS_BASE64_V30 = 75; 163 164 private VCardConstants() { 165 } 166}