/* * CDDL HEADER START * * The contents of this file are subject to the terms of the Common Development * and Distribution License (the "License"). * You may not use this file except in compliance with the License. * * You can obtain a copy of the license at * src/com/vodafone360/people/VODAFONE.LICENSE.txt or * http://github.com/360/360-Engine-for-Android * See the License for the specific language governing permissions and * limitations under the License. * * When distributing Covered Code, include this CDDL HEADER in each file and * include the License file at src/com/vodafone360/people/VODAFONE.LICENSE.txt. * If applicable, add the following below this CDDL HEADER, with the fields * enclosed by brackets "[]" replaced with your own identifying information: * Portions Copyright [yyyy] [name of copyright owner] * * CDDL HEADER END * * Copyright 2010 Vodafone Sales & Services Ltd. All rights reserved. * Use is subject to license terms. */ package com.vodafone360.people.service.io.api; import java.util.List; import com.vodafone360.people.Settings; import com.vodafone360.people.datatypes.ChatMessage; import com.vodafone360.people.engine.EngineManager.EngineId; import com.vodafone360.people.service.io.QueueManager; import com.vodafone360.people.service.io.Request; import com.vodafone360.people.utils.LogUtils; public class Chat { private static final String EMPTY = ""; // TODO: What is the name of this // function? /** * Sends chat message to server * * @param msg - ChatMessage to be sent * @return request id */ public static int sendChatMessage(ChatMessage msg) { if (msg.getTos() == null) { LogUtils.logE("Chat.sentChatMessage() msg.mTos can't be null"); return -1; } if (msg.getBody() == null) { LogUtils.logE("Chat.sentChatMessage() msg.mBody can't be null"); return -1; } if (msg.getConversationId() == null) { LogUtils.logE("Chat.sentChatMessage() msg.mConversationId can't be null"); return -1; } Request request = new Request(EMPTY, Request.Type.SEND_CHAT_MESSAGE, EngineId.PRESENCE_ENGINE, true, Settings.API_REQUESTS_TIMEOUT_CHAT_SEND_MESSAGE); request.addData(ChatMessage.Tags.BODY.tag(), msg.getBody()); request.addData(ChatMessage.Tags.RECIPIENTS_LIST.tag(), msg.getTos()); request.addData(ChatMessage.Tags.CONVERSATION_ID.tag(), msg.getConversationId()); QueueManager queue = QueueManager.getInstance(); int requestId = queue.addRequest(request); queue.fireQueueStateChanged(); return requestId; } /** * Starts new chat session * * @param recipients - list of UserIds * @return request id */ public static int startChat(List<String> recipients) { if (recipients == null) { LogUtils.logE("Chat.sentChatMessage() recipients can't be null"); return -1; } Request request = new Request(EMPTY, Request.Type.CREATE_CONVERSATION, EngineId.PRESENCE_ENGINE, false, Settings.API_REQUESTS_TIMEOUT_CHAT_CREATE_CONV); request.addData(ChatMessage.Tags.RECIPIENTS_LIST.tag(), recipients); QueueManager queue = QueueManager.getInstance(); int requestId = queue.addRequest(request); queue.fireQueueStateChanged(); return requestId; } }