Search in sources :

Example 6 with ResultContact

use of com.fanap.podchat.model.ResultContact in project pod-chat-android-sdk by FanapSoft.

the class AssistantCacheTest method populateContactsFromServer.

public void populateContactsFromServer() {
    chatListeners = new ChatListener() {

        @Override
        public void onGetContacts(String content, ChatResponse<ResultContact> response) {
            if (!response.isCache()) {
                print("Received List: " + content);
                contacts.addAll(response.getResult().getContacts());
                chat.removeListener(chatListeners);
                resumeProcess();
            }
        }
    };
    chat.setListener(chatListeners);
    RequestGetContact request = new RequestGetContact.Builder().count(50).offset(0).build();
    chat.getContacts(request, null);
    pauseProcess();
    print("Received Contact List: " + contacts.size());
}
Also used : ResultContact(com.fanap.podchat.model.ResultContact) ChatListener(com.fanap.podchat.chat.ChatListener) RequestGetContact(com.fanap.podchat.requestobject.RequestGetContact)

Example 7 with ResultContact

use of com.fanap.podchat.model.ResultContact in project pod-chat-android-sdk by FanapSoft.

the class ContactCacheTest method populateContactsFromCache.

public void populateContactsFromCache() {
    chatListeners = new ChatListener() {

        @Override
        public void onGetContacts(String content, ChatResponse<ResultContact> response) {
            if (response.isCache()) {
                System.out.println("Received Cache List: " + content);
                cacheContacts.addAll(response.getResult().getContacts());
                chat.removeListener(chatListeners);
                resumeProcess();
            }
        }
    };
    chat.setListener(chatListeners);
    RequestGetContact request = new RequestGetContact.Builder().count(50).offset(0).build();
    chat.getContacts(request, null);
    pauseProcess();
    System.out.println("Received Cache List: " + cacheContacts.size());
}
Also used : ResultContact(com.fanap.podchat.model.ResultContact) ChatListener(com.fanap.podchat.chat.ChatListener) RequestGetContact(com.fanap.podchat.requestobject.RequestGetContact)

Example 8 with ResultContact

use of com.fanap.podchat.model.ResultContact in project pod-chat-android-sdk by FanapSoft.

the class MessageDatabaseHelper method searchContacts.

@NonNull
public ChatResponse<ResultContact> searchContacts(RequestSearchContact requestSearchContact, String size, String offset) {
    List<Contact> contacts = new ArrayList<>();
    ChatResponse<ResultContact> chatResponse = new ChatResponse<>();
    chatResponse.setCache(true);
    ResultContact resultContact = new ResultContact();
    resultContact.setContacts(new ArrayList<>(contacts));
    chatResponse.setHasError(false);
    long nextOffset = Long.parseLong(offset) + Long.parseLong(size);
    resultContact.setHasNext(false);
    resultContact.setNextOffset(nextOffset);
    if (requestSearchContact.getId() != null) {
        try {
            CacheContact cacheContact = messageDao.getContactById(Long.parseLong(requestSearchContact.getId()));
            contacts.add(cacheContactToContactMapper(cacheContact));
            resultContact.setContacts(new ArrayList<>(contacts));
            resultContact.setContentCount(1);
        } catch (NumberFormatException e) {
            Log.e(TAG, "Invalid Id");
            chatResponse.setHasError(true);
            chatResponse.setErrorMessage("Invalid Id");
            chatResponse.setErrorCode(ChatConstant.ERROR_CODE_INVALID_CONTACT_ID);
            resultContact.setContentCount(0);
        }
        chatResponse.setResult(resultContact);
        return chatResponse;
    }
    String order = Util.isNullOrEmpty(requestSearchContact.getOrder()) ? "desc" : requestSearchContact.getOrder();
    String orderBy = " order by hasUser " + order + ", lastName is null or lastName='', lastName, firstName is null or firstName='', firstName";
    String query = "select * from CacheContact where";
    if (!Util.isNullOrEmpty(requestSearchContact.getQuery())) {
        query += " (firstName LIKE '%" + requestSearchContact.getQuery() + "%' OR lastName LIKE '%" + requestSearchContact.getQuery() + "%') AND";
    } else if (!Util.isNullOrEmpty(requestSearchContact.getFirstName()) && !Util.isNullOrEmpty(requestSearchContact.getLastName()))
        query += " (firstName LIKE '%" + requestSearchContact.getFirstName() + "%' AND lastName LIKE '%" + requestSearchContact.getLastName() + "%') AND";
    else if (!Util.isNullOrEmpty(requestSearchContact.getFirstName()))
        query += " firstName LIKE '%" + requestSearchContact.getFirstName() + "%' AND";
    else if (!Util.isNullOrEmpty(requestSearchContact.getLastName()))
        query += " lastName LIKE '%" + requestSearchContact.getLastName() + "%' AND";
    if (!Util.isNullOrEmpty(requestSearchContact.getEmail()))
        query += " email LIKE '%" + requestSearchContact.getEmail() + "%' AND";
    if (!Util.isNullOrEmpty(requestSearchContact.getCellphoneNumber()))
        query += " cellphoneNumber LIKE '%" + requestSearchContact.getCellphoneNumber() + "%'";
    if (query.endsWith("AND")) {
        query = query.substring(0, query.lastIndexOf("AND") - 1);
    }
    long contentCount = messageDao.getRawContactsCount(new SimpleSQLiteQuery(query.replaceFirst("select \\* ", "select count(id) ")));
    query += orderBy + " LIMIT " + size + " OFFSET " + offset;
    List<CacheContact> cachedContacts = messageDao.getRawContacts(new SimpleSQLiteQuery(query));
    if (!Util.isNullOrEmpty(cachedContacts)) {
        for (CacheContact cachedContact : cachedContacts) {
            contacts.add(cacheContactToContactMapper(cachedContact));
        }
    }
    resultContact.setContacts(new ArrayList<>(contacts));
    resultContact.setHasNext(Long.parseLong(offset) + contacts.size() < contentCount);
    resultContact.setNextOffset(Long.parseLong(offset) + contacts.size());
    resultContact.setContentCount(contentCount);
    chatResponse.setResult(resultContact);
    return chatResponse;
}
Also used : ArrayList(java.util.ArrayList) ResultContact(com.fanap.podchat.model.ResultContact) BlockedContact(com.fanap.podchat.mainmodel.BlockedContact) RequestSearchContact(com.fanap.podchat.mainmodel.RequestSearchContact) Contact(com.fanap.podchat.mainmodel.Contact) CacheContact(com.fanap.podchat.cachemodel.CacheContact) CacheBlockedContact(com.fanap.podchat.cachemodel.CacheBlockedContact) ResultContact(com.fanap.podchat.model.ResultContact) SimpleSQLiteQuery(android.arch.persistence.db.SimpleSQLiteQuery) ChatResponse(com.fanap.podchat.model.ChatResponse) CacheContact(com.fanap.podchat.cachemodel.CacheContact) NonNull(android.support.annotation.NonNull)

Aggregations

ResultContact (com.fanap.podchat.model.ResultContact)8 RequestGetContact (com.fanap.podchat.requestobject.RequestGetContact)6 ChatListener (com.fanap.podchat.chat.ChatListener)4 Contact (com.fanap.podchat.mainmodel.Contact)3 ChatResponse (com.fanap.podchat.model.ChatResponse)3 NonNull (android.support.annotation.NonNull)2 BlockedContact (com.fanap.podchat.mainmodel.BlockedContact)2 RequestSearchContact (com.fanap.podchat.mainmodel.RequestSearchContact)2 ResultAddContact (com.fanap.podchat.model.ResultAddContact)2 ArrayList (java.util.ArrayList)2 SimpleSQLiteQuery (android.arch.persistence.db.SimpleSQLiteQuery)1 Bundle (android.os.Bundle)1 LargeTest (android.support.test.filters.LargeTest)1 CacheBlockedContact (com.fanap.podchat.cachemodel.CacheBlockedContact)1 CacheContact (com.fanap.podchat.cachemodel.CacheContact)1 PhoneContact (com.fanap.podchat.cachemodel.PhoneContact)1 ContactsFragment (com.fanap.podchat.call.contacts.ContactsFragment)1 ContactsWrapper (com.fanap.podchat.call.contacts.ContactsWrapper)1 UpdateContact (com.fanap.podchat.mainmodel.UpdateContact)1 ResultRemoveContact (com.fanap.podchat.model.ResultRemoveContact)1