1be22ff8b8b3aa6057de165b76da433cabad4dcfdYu Ping Hu/* 2be22ff8b8b3aa6057de165b76da433cabad4dcfdYu Ping Hu * Copyright (C) 2013 The Android Open Source Project 3be22ff8b8b3aa6057de165b76da433cabad4dcfdYu Ping Hu * 4be22ff8b8b3aa6057de165b76da433cabad4dcfdYu Ping Hu * Licensed under the Apache License, Version 2.0 (the "License"); 5be22ff8b8b3aa6057de165b76da433cabad4dcfdYu Ping Hu * you may not use this file except in compliance with the License. 6be22ff8b8b3aa6057de165b76da433cabad4dcfdYu Ping Hu * You may obtain a copy of the License at 7be22ff8b8b3aa6057de165b76da433cabad4dcfdYu Ping Hu * 8be22ff8b8b3aa6057de165b76da433cabad4dcfdYu Ping Hu * http://www.apache.org/licenses/LICENSE-2.0 9be22ff8b8b3aa6057de165b76da433cabad4dcfdYu Ping Hu * 10be22ff8b8b3aa6057de165b76da433cabad4dcfdYu Ping Hu * Unless required by applicable law or agreed to in writing, software 11be22ff8b8b3aa6057de165b76da433cabad4dcfdYu Ping Hu * distributed under the License is distributed on an "AS IS" BASIS, 12be22ff8b8b3aa6057de165b76da433cabad4dcfdYu Ping Hu * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13be22ff8b8b3aa6057de165b76da433cabad4dcfdYu Ping Hu * See the License for the specific language governing permissions and 14be22ff8b8b3aa6057de165b76da433cabad4dcfdYu Ping Hu * limitations under the License. 15be22ff8b8b3aa6057de165b76da433cabad4dcfdYu Ping Hu */ 16be22ff8b8b3aa6057de165b76da433cabad4dcfdYu Ping Hu 17be22ff8b8b3aa6057de165b76da433cabad4dcfdYu Ping Hupackage com.android.exchange.eas; 18be22ff8b8b3aa6057de165b76da433cabad4dcfdYu Ping Hu 19be22ff8b8b3aa6057de165b76da433cabad4dcfdYu Ping Huimport com.android.exchange.EasResponse; 20be22ff8b8b3aa6057de165b76da433cabad4dcfdYu Ping Huimport com.android.exchange.adapter.Serializer; 21be22ff8b8b3aa6057de165b76da433cabad4dcfdYu Ping Huimport com.android.exchange.adapter.SettingsParser; 22be22ff8b8b3aa6057de165b76da433cabad4dcfdYu Ping Huimport com.android.exchange.adapter.Tags; 23be22ff8b8b3aa6057de165b76da433cabad4dcfdYu Ping Hu 24be22ff8b8b3aa6057de165b76da433cabad4dcfdYu Ping Huimport org.apache.http.HttpEntity; 25be22ff8b8b3aa6057de165b76da433cabad4dcfdYu Ping Hu 26be22ff8b8b3aa6057de165b76da433cabad4dcfdYu Ping Huimport java.io.IOException; 27be22ff8b8b3aa6057de165b76da433cabad4dcfdYu Ping Hu 28be22ff8b8b3aa6057de165b76da433cabad4dcfdYu Ping Hu/** 29be22ff8b8b3aa6057de165b76da433cabad4dcfdYu Ping Hu * Performs an Exchange Settings request to the server to communicate our device information. 30be22ff8b8b3aa6057de165b76da433cabad4dcfdYu Ping Hu * While the settings command can be used for all sorts of things, we currently only use it to 31be22ff8b8b3aa6057de165b76da433cabad4dcfdYu Ping Hu * notify the server of our device information after a Provision command, and only for certain 32be22ff8b8b3aa6057de165b76da433cabad4dcfdYu Ping Hu * versions of the protocol (12.1 and 14.0; versions after 14.0 instead specify the device info 33be22ff8b8b3aa6057de165b76da433cabad4dcfdYu Ping Hu * in the provision command). 34be22ff8b8b3aa6057de165b76da433cabad4dcfdYu Ping Hu * 35be22ff8b8b3aa6057de165b76da433cabad4dcfdYu Ping Hu * See http://msdn.microsoft.com/en-us/library/ee202944(v=exchg.80).aspx for details on the Settings 36be22ff8b8b3aa6057de165b76da433cabad4dcfdYu Ping Hu * command in general. 37be22ff8b8b3aa6057de165b76da433cabad4dcfdYu Ping Hu * See http://msdn.microsoft.com/en-us/library/gg675476(v=exchg.80).aspx for details on the 38be22ff8b8b3aa6057de165b76da433cabad4dcfdYu Ping Hu * requirement for communicating device info for some versions of Exchange. 39be22ff8b8b3aa6057de165b76da433cabad4dcfdYu Ping Hu */ 40be22ff8b8b3aa6057de165b76da433cabad4dcfdYu Ping Hupublic class EasSettings extends EasOperation { 41be22ff8b8b3aa6057de165b76da433cabad4dcfdYu Ping Hu 42be22ff8b8b3aa6057de165b76da433cabad4dcfdYu Ping Hu 43be22ff8b8b3aa6057de165b76da433cabad4dcfdYu Ping Hu /** Result code indicating the Settings command succeeded. */ 44be22ff8b8b3aa6057de165b76da433cabad4dcfdYu Ping Hu private static final int RESULT_OK = 1; 45be22ff8b8b3aa6057de165b76da433cabad4dcfdYu Ping Hu 46be22ff8b8b3aa6057de165b76da433cabad4dcfdYu Ping Hu public EasSettings(final EasOperation parentOperation) { 47be22ff8b8b3aa6057de165b76da433cabad4dcfdYu Ping Hu super(parentOperation); 48be22ff8b8b3aa6057de165b76da433cabad4dcfdYu Ping Hu } 49be22ff8b8b3aa6057de165b76da433cabad4dcfdYu Ping Hu 508c95506ad96f5990d5e4d4ca86b05ec95dd4b1d6Yu Ping Hu public boolean sendDeviceInformation() { 518c95506ad96f5990d5e4d4ca86b05ec95dd4b1d6Yu Ping Hu return performOperation() == RESULT_OK; 52be22ff8b8b3aa6057de165b76da433cabad4dcfdYu Ping Hu } 53be22ff8b8b3aa6057de165b76da433cabad4dcfdYu Ping Hu 54be22ff8b8b3aa6057de165b76da433cabad4dcfdYu Ping Hu @Override 55be22ff8b8b3aa6057de165b76da433cabad4dcfdYu Ping Hu protected String getCommand() { 56be22ff8b8b3aa6057de165b76da433cabad4dcfdYu Ping Hu return "Settings"; 57be22ff8b8b3aa6057de165b76da433cabad4dcfdYu Ping Hu } 58be22ff8b8b3aa6057de165b76da433cabad4dcfdYu Ping Hu 59be22ff8b8b3aa6057de165b76da433cabad4dcfdYu Ping Hu @Override 60be22ff8b8b3aa6057de165b76da433cabad4dcfdYu Ping Hu protected HttpEntity getRequestEntity() throws IOException { 61be22ff8b8b3aa6057de165b76da433cabad4dcfdYu Ping Hu final Serializer s = new Serializer(); 62be22ff8b8b3aa6057de165b76da433cabad4dcfdYu Ping Hu s.start(Tags.SETTINGS_SETTINGS); 63a09e6cc2e8fca144de4d0b69f129b177f4a3219bAnthony Lee addDeviceInformationToSerializer(s); 64be22ff8b8b3aa6057de165b76da433cabad4dcfdYu Ping Hu s.end().done(); 65be22ff8b8b3aa6057de165b76da433cabad4dcfdYu Ping Hu return makeEntity(s); 66be22ff8b8b3aa6057de165b76da433cabad4dcfdYu Ping Hu } 67be22ff8b8b3aa6057de165b76da433cabad4dcfdYu Ping Hu 68be22ff8b8b3aa6057de165b76da433cabad4dcfdYu Ping Hu @Override 698c95506ad96f5990d5e4d4ca86b05ec95dd4b1d6Yu Ping Hu protected int handleResponse(final EasResponse response) throws IOException { 70be22ff8b8b3aa6057de165b76da433cabad4dcfdYu Ping Hu return new SettingsParser(response.getInputStream()).parse() 71be22ff8b8b3aa6057de165b76da433cabad4dcfdYu Ping Hu ? RESULT_OK : RESULT_OTHER_FAILURE; 72be22ff8b8b3aa6057de165b76da433cabad4dcfdYu Ping Hu } 73be22ff8b8b3aa6057de165b76da433cabad4dcfdYu Ping Hu 74be22ff8b8b3aa6057de165b76da433cabad4dcfdYu Ping Hu} 75