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