@Override public void sessionStatusChanged(SessionID sessionID) { if (sessionID .getRemoteUserId() .equals(mChatSession.getParticipant().getAddress().getAddress())) onStatusChanged(mChatSession, OtrChatManager.getInstance().getSessionStatus(sessionID)); }
private void initOtrChatSession(ImEntity participant) { try { if (mConnection != null) { mDataHandler = new OtrDataHandler(mChatSession); mDataHandlerListener = new DataHandlerListenerImpl(); mDataHandler.setDataListener(mDataHandlerListener); OtrChatManager cm = service.getOtrChatManager(); cm.addOtrEngineListener(mListenerAdapter); mChatSession.setMessageListener(new OtrChatListener(cm, mListenerAdapter)); if (participant instanceof Contact) { String key = participant.getAddress().getAddress(); if (!mOtrChatSessions.containsKey(key)) { OtrChatSessionAdapter adapter = new OtrChatSessionAdapter( mConnection.getLoginUser().getAddress().getAddress(), participant, cm); mOtrChatSessions.put(key, adapter); } } else if (participant instanceof ChatGroup) { ChatGroup group = (ChatGroup) mChatSession.getParticipant(); for (Contact contact : group.getMembers()) { String key = contact.getAddress().getAddress(); if (!mOtrChatSessions.containsKey(key)) { OtrChatSessionAdapter adapter = new OtrChatSessionAdapter( mConnection.getLoginUser().getAddress().getAddress(), contact, cm); mOtrChatSessions.put(key, adapter); } } } mDataHandler.setChatId(getId()); } } catch (NullPointerException npe) { Log.e(ImApp.LOG_TAG, "error init OTR session", npe); } }