⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 impsutils.java

📁 Android平台上即时通讯聊天工具源代码。 支持手机聊天。
💻 JAVA
字号:
/* * Copyright (C) 2007-2008 Esmertec AG. * Copyright (C) 2007-2008 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 java.util.Collections;import java.util.HashMap;import java.util.Map;import java.util.Random;import com.android.im.engine.ImErrorInfo;public class ImpsUtils {    private static final HashMap<String, String> sClientInfo;    private static String sSessionCookie;    private static int sSessionCookieNumber;    private ImpsUtils() {    }    static {        // TODO: v1.2 doesn't support ClientContentLimit        sClientInfo = new HashMap<String, String>();        sClientInfo.put(ImpsTags.ClientType, ImpsClientCapability.getClientType());        sClientInfo.put(ImpsTags.ClientProducer, ImpsConstants.CLIENT_PRODUCER);        sClientInfo.put(ImpsTags.ClientVersion, ImpsConstants.CLIENT_VERSION);    }    /**     * Checks if a string is a boolean value of true IMPS.     *     * @param value the string value.     * @return <code>true</code> if it's true in IMPS.     */    public static boolean isTrue(String value) {        return ImpsConstants.TRUE.equalsIgnoreCase(value);    }    /**     * Checks if a string is a boolean value of false in IMPS.     *     * @param value the string value.     * @return true if it's false in IMPS     */    public static boolean isFalse(String value) {        return ImpsConstants.FALSE.equalsIgnoreCase(value);    }    /**     * Return the IMPS String presentation of the boolean value     *     * @param isTrue the boolean value     * @return the String presentation     */    public static String toImpsBool(boolean isTrue) {        if (isTrue) {            return ImpsConstants.TRUE;        }        return ImpsConstants.FALSE;    }    /**     * Checks if the response primitive indicates successful.     *     * @param response the response primitive.     * @returns <code>null</code> if the status code is 200 or an ImpsErrorInfo instance     */    public static ImpsErrorInfo checkResultError(Primitive response) {        PrimitiveElement result = response.getElement(ImpsTags.Result);        if (result == null) {            return null;        }        String resultCode = result.getChild(ImpsTags.Code).getContents();        if (!ImpsConstants.SUCCESS_CODE.equals(resultCode)) {            PrimitiveElement descElem = result.getChild(ImpsTags.Description);            String errorDesc = (descElem == null) ? "" : descElem.getContents();            int statusCode = parseInt(resultCode, ImErrorInfo.ILLEGAL_SERVER_RESPONSE);            return new ImpsErrorInfo(statusCode, errorDesc, response);        }        return null;    }    /**     * Returns a copy of the string, with leading and trailing whitespace     * omitted. Unlike the standard trim which just removes '\u0020'(the space     * character), it removes all possible leading and trailing whitespace     * character.     *     * @param str the string.     * @return a copy of the string, with leading and trailing whitespace     *         omitted.     */    public static String trim(String str) {        if (null == str || "".equals(str))            return str;        int strLen = str.length();        int start = 0;        while (start < strLen && Character.isWhitespace(str.charAt(start)))            start++;        int end = strLen - 1;        while (end >= 0 && Character.isWhitespace(str.charAt(end)))            end--;        if (end < start)            return "";        str = str.substring(start, end + 1);        return str;    }    /**     * Check whether the presence element has a qualified attribute value.     * An attribute value is invalid when:     *  1. An attribute is authorized but not yet updated for the first time     *  2. The user wants to indicate that the value of the attribute is unknown.     *     * @param elem the presence element     * @return <code>true</code> if the value of attribute is valid.     */    public static boolean isQualifiedPresence(PrimitiveElement elem) {        if (null == elem || null == elem.getChild(ImpsTags.Qualifier)) {            return false;        }        return ImpsUtils.isTrue(elem.getChildContents(ImpsTags.Qualifier));    }    public static Map<String, String> getClientInfo() {        return Collections.unmodifiableMap(sClientInfo);    }    synchronized static String genSessionCookie() {        if(sSessionCookie == null) {            Random random = new Random();            sSessionCookie = System.currentTimeMillis() + "" + random.nextInt();        }        return sSessionCookie + (sSessionCookieNumber++);    }    public static int parseInt(String s, int defaultValue) {        try {            return Integer.parseInt(s);        } catch (NumberFormatException e) {            // ignore            return defaultValue;        }    }    public static long parseLong(String s, long defaultValue) {        try {            return Long.parseLong(s);        } catch (NumberFormatException e) {            // ignore            return defaultValue;        }    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -