| /* |
| * Copyright (C) 2007 Esmertec AG. |
| * Copyright (C) 2007 The Android Open Source Project |
| * |
| * Licensed under the Apache License, Version 2.0 (the "License"); |
| * you may not use this file except in compliance with the License. |
| * You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| * See the License for the specific language governing permissions and |
| * limitations under the License. |
| */ |
| |
| package com.android.im.imps; |
| |
| import com.android.im.imps.ImpsConnectionConfig.CirMethod; |
| import com.android.im.imps.ImpsConnectionConfig.TransportType; |
| |
| /** |
| * The configuration of the capabilities of the client. |
| */ |
| final class ImpsClientCapability { |
| |
| private ImpsClientCapability() { |
| } |
| |
| /** |
| * Gets the type of the client. |
| * |
| * @return the type of the client. |
| */ |
| public static String getClientType() { |
| return "MOBILE_PHONE"; |
| } |
| |
| /** |
| * Get the maximum number of bytes of XML (WBXML, SMS - depending on the |
| * actual encoding) primitive that the client-side parser can handle. |
| * |
| * @return the maximum number of bytes that the parser can handle. |
| */ |
| public static int getParserSize() { |
| // TODO: we do not really have a limit for this for now. Just return |
| // a number big enough. |
| return 256 * 1024; |
| } |
| |
| /** |
| * Get the maximum number of bytes of the message content that the client |
| * can handle. |
| * |
| * @return the maximum number of bytes of the message content that the |
| * client can handle. |
| */ |
| public static int getAcceptedContentLength() { |
| return 256 * 1024; |
| } |
| |
| /** |
| * Gets the maximum number of open transactions from both client and |
| * server side at any given time. |
| * |
| * @return the maximum number of open transactions. |
| */ |
| public static int getMultiTrans() { |
| return 1; |
| } |
| |
| /** |
| * Gets the maximum number of primitives that the client can handle within |
| * the same transport message at any given time. |
| * |
| * @return the maximum number of primitives within the same transport |
| * message. |
| */ |
| public static int getMultiTransPerMessage() { |
| return 1; |
| } |
| |
| /** |
| * Gets the initial IM delivery method that the recipient client prefers in |
| * the set of "PUSH" and "Notify/Get". |
| * |
| * @return "P" if prefers "PUSH", or "N" if prefers "Notify/Get". |
| */ |
| public static String getInitialDeliveryMethod() { |
| return "P"; |
| } |
| |
| /** |
| * Get supported CIR methods in preferred order. |
| * |
| * @return a array of supported CIR methods. |
| */ |
| public static CirMethod[] getSupportedCirMethods() { |
| return new CirMethod[] { |
| CirMethod.STCP, |
| CirMethod.SSMS, |
| CirMethod.SHTTP, |
| }; |
| } |
| |
| /** |
| * Get supported bearers (HTTP(S), WSP, SMS). |
| * |
| * @return the array of supported bearers. |
| */ |
| public static TransportType[] getSupportedBearers() { |
| return new TransportType[] { |
| TransportType.HTTP |
| }; |
| } |
| |
| /** |
| * Get supported Presence attributes |
| * |
| * @return the array of supported Presence attributes |
| */ |
| public static String[] getSupportedPresenceAttribs() { |
| return new String[] { |
| ImpsTags.OnlineStatus, |
| ImpsTags.ClientInfo, |
| ImpsTags.UserAvailability, |
| ImpsTags.StatusText, |
| ImpsTags.StatusContent, |
| }; |
| }; |
| |
| /** |
| * Gets the basic presence attributes. |
| * |
| * @return an array of the basic Presence attributes. |
| */ |
| public static String[] getBasicPresenceAttributes() { |
| return new String[] { |
| ImpsTags.OnlineStatus, |
| ImpsTags.ClientInfo, |
| ImpsTags.UserAvailability, |
| }; |
| } |
| |
| } |