Eas.java revision 4f15001bdfd11c79524b4e44d60041967779e763
1ab30d429e0c6069604aead9b5e6845b6b91b6a02Marc Blank/* 2ab30d429e0c6069604aead9b5e6845b6b91b6a02Marc Blank * Copyright (C) 2008-2009 Marc Blank 3ab30d429e0c6069604aead9b5e6845b6b91b6a02Marc Blank * Licensed to The Android Open Source Project. 4ab30d429e0c6069604aead9b5e6845b6b91b6a02Marc Blank * 5ab30d429e0c6069604aead9b5e6845b6b91b6a02Marc Blank * Licensed under the Apache License, Version 2.0 (the "License"); 6ab30d429e0c6069604aead9b5e6845b6b91b6a02Marc Blank * you may not use this file except in compliance with the License. 7ab30d429e0c6069604aead9b5e6845b6b91b6a02Marc Blank * You may obtain a copy of the License at 8ab30d429e0c6069604aead9b5e6845b6b91b6a02Marc Blank * 9ab30d429e0c6069604aead9b5e6845b6b91b6a02Marc Blank * http://www.apache.org/licenses/LICENSE-2.0 10ab30d429e0c6069604aead9b5e6845b6b91b6a02Marc Blank * 11ab30d429e0c6069604aead9b5e6845b6b91b6a02Marc Blank * Unless required by applicable law or agreed to in writing, software 12ab30d429e0c6069604aead9b5e6845b6b91b6a02Marc Blank * distributed under the License is distributed on an "AS IS" BASIS, 13ab30d429e0c6069604aead9b5e6845b6b91b6a02Marc Blank * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14ab30d429e0c6069604aead9b5e6845b6b91b6a02Marc Blank * See the License for the specific language governing permissions and 15ab30d429e0c6069604aead9b5e6845b6b91b6a02Marc Blank * limitations under the License. 16ab30d429e0c6069604aead9b5e6845b6b91b6a02Marc Blank */ 17ab30d429e0c6069604aead9b5e6845b6b91b6a02Marc Blank 18ab30d429e0c6069604aead9b5e6845b6b91b6a02Marc Blankpackage com.android.exchange; 19ab30d429e0c6069604aead9b5e6845b6b91b6a02Marc Blank 2077424af660458104b732bdcb718874b17d0cab3aMarc Blankimport android.util.Log; 2177424af660458104b732bdcb718874b17d0cab3aMarc Blank 22ab30d429e0c6069604aead9b5e6845b6b91b6a02Marc Blank/** 23ab30d429e0c6069604aead9b5e6845b6b91b6a02Marc Blank * Constants used throughout the EAS implementation are stored here. 24ab30d429e0c6069604aead9b5e6845b6b91b6a02Marc Blank * 25ab30d429e0c6069604aead9b5e6845b6b91b6a02Marc Blank */ 26ab30d429e0c6069604aead9b5e6845b6b91b6a02Marc Blankpublic class Eas { 277c582a7fb883b3be728f270fbe5277676fe37cf9Marc Blank // For debugging 287c582a7fb883b3be728f270fbe5277676fe37cf9Marc Blank public static boolean WAIT_DEBUG = false; // DO NOT CHECK IN WITH THIS SET TO TRUE 2977424af660458104b732bdcb718874b17d0cab3aMarc Blank public static boolean DEBUG = false; // DO NOT CHECK IN WITH THIS SET TO TRUE 30ab30d429e0c6069604aead9b5e6845b6b91b6a02Marc Blank 317c582a7fb883b3be728f270fbe5277676fe37cf9Marc Blank // The following two are for user logging (the second providing more detail) 327c582a7fb883b3be728f270fbe5277676fe37cf9Marc Blank public static boolean USER_LOG = false; // DO NOT CHECK IN WITH THIS SET TO TRUE 337c582a7fb883b3be728f270fbe5277676fe37cf9Marc Blank public static boolean PARSER_LOG = false; // DO NOT CHECK IN WITH THIS SET TO TRUE 3477424af660458104b732bdcb718874b17d0cab3aMarc Blank public static boolean FILE_LOG = false; // DO NOT CHECK IN WITH THIS SET TO TRUE 3577424af660458104b732bdcb718874b17d0cab3aMarc Blank 3677424af660458104b732bdcb718874b17d0cab3aMarc Blank public static final int DEBUG_BIT = 1; 3777424af660458104b732bdcb718874b17d0cab3aMarc Blank public static final int DEBUG_EXCHANGE_BIT = 2; 3877424af660458104b732bdcb718874b17d0cab3aMarc Blank public static final int DEBUG_FILE_BIT = 4; 396396cfb310b09c53b8e9b51d9ba58d2f6b65c266Andrew Stadler 4077382ac1a020285b838c7d86e409e2f6c12860a4Marc Blank public static final String CLIENT_VERSION = "EAS-1.2"; 41e8ea6833e0541f0a0a3ceb1d78c84ac9ce359210Marc Blank public static final String ACCOUNT_MAILBOX_PREFIX = "__eas"; 4222bc4e0e4f4a5e43e4eea8d59e1961860c507594Marc Blank 43d5fadc87ea52aee033afd476369b29b29bfd434fMarc Blank // Define our default protocol version as 2.5 (Exchange 2003) 44d5fadc87ea52aee033afd476369b29b29bfd434fMarc Blank public static final String SUPPORTED_PROTOCOL_EX2003 = "2.5"; 45d5fadc87ea52aee033afd476369b29b29bfd434fMarc Blank public static final double SUPPORTED_PROTOCOL_EX2003_DOUBLE = 2.5; 46d5fadc87ea52aee033afd476369b29b29bfd434fMarc Blank public static final String SUPPORTED_PROTOCOL_EX2007 = "12.0"; 47d5fadc87ea52aee033afd476369b29b29bfd434fMarc Blank public static final double SUPPORTED_PROTOCOL_EX2007_DOUBLE = 12.0; 48e7d9602fce0d4b404d68716da7eb0567da9dad47Marc Blank public static final String SUPPORTED_PROTOCOL_EX2007_SP1 = "12.1"; 49e7d9602fce0d4b404d68716da7eb0567da9dad47Marc Blank public static final double SUPPORTED_PROTOCOL_EX2007_SP1_DOUBLE = 12.1; 50d5fadc87ea52aee033afd476369b29b29bfd434fMarc Blank public static final String DEFAULT_PROTOCOL_VERSION = SUPPORTED_PROTOCOL_EX2003; 51d5fadc87ea52aee033afd476369b29b29bfd434fMarc Blank 52ab30d429e0c6069604aead9b5e6845b6b91b6a02Marc Blank // From EAS spec 53ab30d429e0c6069604aead9b5e6845b6b91b6a02Marc Blank // Mail Cal 54ab30d429e0c6069604aead9b5e6845b6b91b6a02Marc Blank // 0 No filter Yes Yes 55ab30d429e0c6069604aead9b5e6845b6b91b6a02Marc Blank // 1 1 day ago Yes No 56ab30d429e0c6069604aead9b5e6845b6b91b6a02Marc Blank // 2 3 days ago Yes No 57ab30d429e0c6069604aead9b5e6845b6b91b6a02Marc Blank // 3 1 week ago Yes No 58ab30d429e0c6069604aead9b5e6845b6b91b6a02Marc Blank // 4 2 weeks ago Yes Yes 59ab30d429e0c6069604aead9b5e6845b6b91b6a02Marc Blank // 5 1 month ago Yes Yes 60ab30d429e0c6069604aead9b5e6845b6b91b6a02Marc Blank // 6 3 months ago No Yes 61ab30d429e0c6069604aead9b5e6845b6b91b6a02Marc Blank // 7 6 months ago No Yes 62ab30d429e0c6069604aead9b5e6845b6b91b6a02Marc Blank 6300d91b2e12d65df06916afdc4bebca67fd27214cMarc Blank public static final String FILTER_ALL = "0"; 6400d91b2e12d65df06916afdc4bebca67fd27214cMarc Blank public static final String FILTER_1_DAY = "1"; 6500d91b2e12d65df06916afdc4bebca67fd27214cMarc Blank public static final String FILTER_3_DAYS = "2"; 6600d91b2e12d65df06916afdc4bebca67fd27214cMarc Blank public static final String FILTER_1_WEEK = "3"; 6700d91b2e12d65df06916afdc4bebca67fd27214cMarc Blank public static final String FILTER_2_WEEKS = "4"; 6800d91b2e12d65df06916afdc4bebca67fd27214cMarc Blank public static final String FILTER_1_MONTH = "5"; 6900d91b2e12d65df06916afdc4bebca67fd27214cMarc Blank public static final String FILTER_3_MONTHS = "6"; 7000d91b2e12d65df06916afdc4bebca67fd27214cMarc Blank public static final String FILTER_6_MONTHS = "7"; 7100d91b2e12d65df06916afdc4bebca67fd27214cMarc Blank public static final String BODY_PREFERENCE_TEXT = "1"; 7200d91b2e12d65df06916afdc4bebca67fd27214cMarc Blank public static final String BODY_PREFERENCE_HTML = "2"; 734f15001bdfd11c79524b4e44d60041967779e763Marc Blank public static final String MIME_BODY_PREFERENCE_TEXT = "0"; 744f15001bdfd11c79524b4e44d60041967779e763Marc Blank public static final String MIME_BODY_PREFERENCE_MIME = "2"; 75ab30d429e0c6069604aead9b5e6845b6b91b6a02Marc Blank 76895d1e3132622653160516d420231ed366ab411bMarc Blank // For EAS 12, we use HTML, so we want a larger size than in EAS 2.5 77895d1e3132622653160516d420231ed366ab411bMarc Blank public static final String EAS12_TRUNCATION_SIZE = "200000"; 78895d1e3132622653160516d420231ed366ab411bMarc Blank // For EAS 2.5, truncation is a code; the largest is "7", which is 100k 79895d1e3132622653160516d420231ed366ab411bMarc Blank public static final String EAS2_5_TRUNCATION_SIZE = "7"; 80ab30d429e0c6069604aead9b5e6845b6b91b6a02Marc Blank 81ab30d429e0c6069604aead9b5e6845b6b91b6a02Marc Blank public static final int FOLDER_STATUS_OK = 1; 82ab30d429e0c6069604aead9b5e6845b6b91b6a02Marc Blank public static final int FOLDER_STATUS_INVALID_KEY = 9; 83ab30d429e0c6069604aead9b5e6845b6b91b6a02Marc Blank 84ed5b71376cb6fc3f54d63268afbd798e0b0c0a1bMarc Blank public static final int EXCHANGE_ERROR_NOTIFICATION = 0x10; 85ed5b71376cb6fc3f54d63268afbd798e0b0c0a1bMarc Blank 8677424af660458104b732bdcb718874b17d0cab3aMarc Blank public static void setUserDebug(int state) { 877c582a7fb883b3be728f270fbe5277676fe37cf9Marc Blank // DEBUG takes precedence and is never true in a user build 887c582a7fb883b3be728f270fbe5277676fe37cf9Marc Blank if (!DEBUG) { 8977424af660458104b732bdcb718874b17d0cab3aMarc Blank USER_LOG = (state & DEBUG_BIT) != 0; 9077424af660458104b732bdcb718874b17d0cab3aMarc Blank PARSER_LOG = (state & DEBUG_EXCHANGE_BIT) != 0; 9177424af660458104b732bdcb718874b17d0cab3aMarc Blank FILE_LOG = (state & DEBUG_FILE_BIT) != 0; 9242f891bb2c7465686ecbf864680ec2359d8960aeMarc Blank if (FILE_LOG || PARSER_LOG) { 9377424af660458104b732bdcb718874b17d0cab3aMarc Blank USER_LOG = true; 9477424af660458104b732bdcb718874b17d0cab3aMarc Blank } 9577424af660458104b732bdcb718874b17d0cab3aMarc Blank Log.d("Eas Debug", "Logging: " + (USER_LOG ? "User " : "") + 9677424af660458104b732bdcb718874b17d0cab3aMarc Blank (PARSER_LOG ? "Parser " : "") + (FILE_LOG ? "File" : "")); 977c582a7fb883b3be728f270fbe5277676fe37cf9Marc Blank } 98cb5c48824628e93e98ca24edec46f05c54851af1Marc Blank } 99cb5c48824628e93e98ca24edec46f05c54851af1Marc Blank 100cb5c48824628e93e98ca24edec46f05c54851af1Marc Blank static public Double getProtocolVersionDouble(String version) { 101cb5c48824628e93e98ca24edec46f05c54851af1Marc Blank if (SUPPORTED_PROTOCOL_EX2003.equals(version)) { 102cb5c48824628e93e98ca24edec46f05c54851af1Marc Blank return SUPPORTED_PROTOCOL_EX2003_DOUBLE; 103cb5c48824628e93e98ca24edec46f05c54851af1Marc Blank } else if (SUPPORTED_PROTOCOL_EX2007.equals(version)) { 104cb5c48824628e93e98ca24edec46f05c54851af1Marc Blank return SUPPORTED_PROTOCOL_EX2007_DOUBLE; 105cb5c48824628e93e98ca24edec46f05c54851af1Marc Blank } if (SUPPORTED_PROTOCOL_EX2007_SP1.equals(version)) { 106cb5c48824628e93e98ca24edec46f05c54851af1Marc Blank return SUPPORTED_PROTOCOL_EX2007_SP1_DOUBLE; 107cb5c48824628e93e98ca24edec46f05c54851af1Marc Blank } 108cb5c48824628e93e98ca24edec46f05c54851af1Marc Blank throw new IllegalArgumentException("illegal protocol version"); 109cb5c48824628e93e98ca24edec46f05c54851af1Marc Blank } 110ab30d429e0c6069604aead9b5e6845b6b91b6a02Marc Blank} 111