void closeChatSession(String address) { ChatSessionManagerAdapter sessionManager = (ChatSessionManagerAdapter) mConn.getChatSessionManager(); ChatSessionAdapter session = (ChatSessionAdapter) sessionManager.getChatSession(address); if (session != null) { session.leave(); } }
void updateChatPresence(String address, String nickname, Presence p) { ChatSessionManagerAdapter sessionManager = (ChatSessionManagerAdapter) mConn.getChatSessionManager(); // TODO: This only find single chat sessions, we need to go through all // active chat sessions and find if the contact is a participant of the // session. ChatSessionAdapter session = (ChatSessionAdapter) sessionManager.getChatSession(address); if (session != null) { session.insertPresenceUpdatesMsg(nickname, p); } }
private void init(ChatGroup group, boolean isNewSession) { mIsGroupChat = true; mContactId = insertOrUpdateGroupContactInDb(group); group.addMemberListener(mListenerAdapter); try { mChatSessionManager .getChatGroupManager() .joinChatGroupAsync(group.getAddress(), group.getName()); mMessageURI = Imps.Messages.getContentUriByThreadId(mContactId); mChatURI = ContentUris.withAppendedId(Imps.Chats.CONTENT_URI, mContactId); if (isNewSession) insertOrUpdateChat(""); for (Contact c : group.getMembers()) { mContactStatusMap.put(c.getName(), c.getPresence().getStatus()); } } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } }
public void leave() { if (mIsGroupChat) { getGroupManager().leaveChatGroupAsync((ChatGroup) mChatSession.getParticipant()); } mContentResolver.delete(mMessageURI, null, null); mContentResolver.delete(mChatURI, null, null); mStatusBarNotifier.dismissChatNotification(mConnection.getProviderId(), getAddress()); mChatSessionManager.closeChatSession(this); }
void onConvertToGroupChatSuccess(ChatGroup group) { Contact oldParticipant = (Contact) mChatSession.getParticipant(); String oldAddress = getAddress(); // mChatSession.setParticipant(group); mChatSessionManager.updateChatSession(oldAddress, this); Uri oldChatUri = mChatURI; Uri oldMessageUri = mMessageURI; init(group, false); // copyHistoryMessages(oldParticipant); mContentResolver.delete(oldMessageUri, NON_CHAT_MESSAGE_SELECTION, null); mContentResolver.delete(oldChatUri, null, null); mListenerAdapter.notifyChatSessionConverted(); mConvertingToGroupChat = false; }
public int getChatSessionCount() { if (mChatSessionManager == null) { return 0; } return mChatSessionManager.getChatSessionCount(); }