Search in sources :

Example 1 with SecureSipCall

use of cx.ring.model.SecureSipCall in project ring-client-android by savoirfairelinux.

the class ConversationFacade method aggregateHistory.

private void aggregateHistory() {
    Map<String, ArrayList<String>> conferences = mConferenceService.getConferenceList();
    for (Map.Entry<String, ArrayList<String>> conferenceEntry : conferences.entrySet()) {
        Conference conference = new Conference(conferenceEntry.getKey());
        for (String callId : conferenceEntry.getValue()) {
            SipCall call = getCall(callId).second;
            if (call == null) {
                call = new SipCall(callId, mCallService.getCallDetails(callId));
            }
            Account account = mAccountService.getAccount(call.getAccount());
            if (account.isRing() || account.getDetailBoolean(ConfigKey.SRTP_ENABLE) || account.getDetailBoolean(ConfigKey.TLS_ENABLE)) {
                call = new SecureSipCall(call, account.getDetail(ConfigKey.SRTP_KEY_EXCHANGE));
            }
            conference.addParticipant(call);
        }
        List<SipCall> calls = conference.getParticipants();
        if (calls.size() == 1) {
            SipCall call = calls.get(0);
            CallContact contact = call.getContact();
            if (call.getContact() == null) {
                contact = mContactService.findContact(call.getNumberUri());
                call.setContact(contact);
            }
            Conversation conv = null;
            ArrayList<String> ids = contact.getIds();
            for (String id : ids) {
                conv = mConversationMap.get(id);
                if (conv != null) {
                    break;
                }
            }
            if (conv != null) {
                conv.addConference(conference);
            } else {
                conv = new Conversation(contact);
                conv.addConference(conference);
                mConversationMap.put(ids.get(0), conv);
            }
        }
    }
}
Also used : Account(cx.ring.model.Account) SipCall(cx.ring.model.SipCall) SecureSipCall(cx.ring.model.SecureSipCall) ArrayList(java.util.ArrayList) Conversation(cx.ring.model.Conversation) Conference(cx.ring.model.Conference) HashMap(java.util.HashMap) Map(java.util.Map) TreeMap(java.util.TreeMap) SecureSipCall(cx.ring.model.SecureSipCall) CallContact(cx.ring.model.CallContact)

Aggregations

Account (cx.ring.model.Account)1 CallContact (cx.ring.model.CallContact)1 Conference (cx.ring.model.Conference)1 Conversation (cx.ring.model.Conversation)1 SecureSipCall (cx.ring.model.SecureSipCall)1 SipCall (cx.ring.model.SipCall)1 ArrayList (java.util.ArrayList)1 HashMap (java.util.HashMap)1 Map (java.util.Map)1 TreeMap (java.util.TreeMap)1