use of com.fanap.podchat.mainmodel.RequestSearchContact in project pod-chat-android-sdk by FanapSoft.
the class ChatActivity method searchContact.
private void searchContact() {
RequestSearchContact requestSearchContact = new RequestSearchContact.Builder("0", "20").query("pO").build();
presenter.searchContact(requestSearchContact);
}
use of com.fanap.podchat.mainmodel.RequestSearchContact in project pod-chat-android-sdk by FanapSoft.
the class ChatTestIntegration method searchContact.
@Test
@MediumTest
public void searchContact() {
sleep(3000);
RequestSearchContact requestSearchContact = new RequestSearchContact.Builder("0", "2").id("1063").build();
presenter.searchContact(requestSearchContact);
sleep(3000);
Mockito.verify(view, Mockito.times(1)).onSearchContact();
}
use of com.fanap.podchat.mainmodel.RequestSearchContact in project pod-chat-android-sdk by FanapSoft.
the class ChatTestSandbox method searchContact.
@Test
@MediumTest
public void searchContact() {
sleep(3000);
RequestSearchContact requestSearchContact = new RequestSearchContact.Builder("0", "2").id("1063").build();
presenter.searchContact(requestSearchContact);
sleep(3000);
Mockito.verify(view, Mockito.times(1)).onSearchContact();
}
use of com.fanap.podchat.mainmodel.RequestSearchContact in project pod-chat-android-sdk by FanapSoft.
the class ChatTest method searchContact.
@Test
@MediumTest
public void searchContact() {
sleep(3000);
RequestSearchContact requestSearchContact = new RequestSearchContact.Builder("0", "2").id("1063").build();
presenter.searchContact(requestSearchContact);
sleep(3000);
Mockito.verify(view, Mockito.times(1)).onSearchContact();
}
use of com.fanap.podchat.mainmodel.RequestSearchContact 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