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());
}
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());
}
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;
}
Aggregations