use of com.fanap.podchat.mainmodel.Contact in project pod-chat-android-sdk by FanapSoft.
the class ChatCore method reformatGetContactResponse.
@NonNull
private ChatResponse<ResultContact> reformatGetContactResponse(ChatMessage chatMessage, Callback callback) {
ResultContact resultContact = new ResultContact();
ChatResponse<ResultContact> outPutContact = new ChatResponse<>();
ArrayList<Contact> contacts = gson.fromJson(chatMessage.getContent(), new TypeToken<ArrayList<Contact>>() {
}.getType());
if (cache) {
// messageDatabaseHelper.saveContacts(contacts, getExpireAmount());
dataSource.saveContactsResultFromServer(contacts);
}
resultContact.setContacts(contacts);
resultContact.setContentCount(chatMessage.getContentCount());
resultContact.setHasNext(contacts.size() + callback.getOffset() < chatMessage.getContentCount());
resultContact.setNextOffset(callback.getOffset() + contacts.size());
resultContact.setContentCount(chatMessage.getContentCount());
outPutContact.setResult(resultContact);
outPutContact.setErrorMessage("");
outPutContact.setUniqueId(chatMessage.getUniqueId());
return outPutContact;
}
use of com.fanap.podchat.mainmodel.Contact in project pod-chat-android-sdk by FanapSoft.
the class ExampleUnitTest method sortContactsWithFullNameTest.
@Test
public void sortContactsWithFullNameTest() {
ArrayList<Contact> unsorted = new ArrayList<>();
ArrayList<Contact> expected = new ArrayList<>();
ArrayList<Contact> sorted;
Contact contact1 = new Contact();
contact1.setFirstName("Bahar");
contact1.setLastName("Bohloli");
contact1.setHasUser(true);
unsorted.add(contact1);
Contact contact2 = new Contact();
contact2.setFirstName("Ali");
contact2.setLastName("Alavi");
contact2.setHasUser(true);
unsorted.add(contact2);
expected.add(contact2);
expected.add(contact1);
sorted = new ArrayList<>(unsorted);
Collections.sort(sorted, compareContacts());
Assert.assertEquals(expected, sorted);
}
use of com.fanap.podchat.mainmodel.Contact in project pod-chat-android-sdk by FanapSoft.
the class CallPresenter method onGetContacts.
@Override
public void onGetContacts(String content, ChatResponse<ResultContact> outPutContact) {
super.onGetContacts(content, outPutContact);
ArrayList<ContactsWrapper> contactsWrappers = new ArrayList<>();
for (Contact c : outPutContact.getResult().getContacts()) {
ContactsWrapper contactsWrapper = new ContactsWrapper(c);
contactsWrappers.add(contactsWrapper);
}
ContactsFragment fragment = new ContactsFragment();
Bundle v = new Bundle();
v.putParcelableArrayList("CONTACTS", contactsWrappers);
fragment.setArguments(v);
if (!outPutContact.isCache())
view.showContactsFragment(fragment);
else
view.updateContactsFragment(contactsWrappers);
}
use of com.fanap.podchat.mainmodel.Contact in project pod-chat-android-sdk by FanapSoft.
the class AssistantCacheTest method unBlockAssistantAndCheckAssistantListInCache.
@Test
public void unBlockAssistantAndCheckAssistantListInCache() {
populateContactsFromServer();
ArrayList<AssistantVo> blockedListFromServer = new ArrayList<>();
chat.addListener(new ChatListener() {
@Override
public void onAssistantBlocks(ChatResponse<List<AssistantVo>> response) {
print("Blocked assistants list cache: " + response.isCache());
prettyLog(response.getJson());
blockedListFromServer.addAll(response.getResult());
chat.removeListener(this);
resumeProcess();
}
});
GetBlockedAssistantsRequest getBlockedAssistantsRequest = new GetBlockedAssistantsRequest.Builder().withNoCache().build();
chat.getBlocksAssistant(getBlockedAssistantsRequest);
pauseProcess();
Contact assistantContactToUnBlock = contacts.stream().filter(contact -> contact.getLinkedUser() != null && Objects.equals(contact.getLinkedUser().getUsername(), blockedListFromServer.get(0).getParticipantVO().getUsername())).findFirst().get();
print("Going to unblock " + assistantContactToUnBlock.getFirstName());
prettyLog(App.getGson().toJson(assistantContactToUnBlock));
Invitee invitee = new Invitee(assistantContactToUnBlock.getId(), InviteType.Constants.TO_BE_USER_CONTACT_ID);
AssistantVo assistantToUnBlock = new AssistantVo();
assistantToUnBlock.setInvitees(invitee);
List<AssistantVo> toUnBlockAssistantList = new ArrayList<>();
toUnBlockAssistantList.add(assistantToUnBlock);
chat.addListener(new ChatListener() {
@Override
public void onAssistantUnBlocked(ChatResponse<List<AssistantVo>> response) {
print("Assistant unblocked");
prettyLog(response.getJson());
toUnBlockAssistantList.clear();
toUnBlockAssistantList.addAll(response.getResult());
chat.removeListener(this);
resumeProcess();
}
});
ChatListener mMockedListener = Mockito.mock(ChatListener.class);
chat.addListener(mMockedListener);
BlockUnblockAssistantRequest requestBlock = new BlockUnblockAssistantRequest.Builder(toUnBlockAssistantList, false).build();
chat.unBlockAssistant(requestBlock);
pauseProcess();
ArrayList<AssistantVo> assistantListInCache = new ArrayList<>();
chat.addListener(new ChatListener() {
@Override
public void onGetAssistants(ChatResponse<List<AssistantVo>> response) {
print("Receive assistants list cache: " + response.isCache());
prettyLog(response.getJson());
if (response.isCache()) {
assistantListInCache.addAll(response.getResult());
chat.removeListener(this);
resumeProcess();
}
}
});
GetAssistantRequest getAssistantRequest = new GetAssistantRequest.Builder().build();
chat.getAssistants(getAssistantRequest);
pauseProcess();
Assert.assertTrue(assistantListInCache.stream().anyMatch(assistantInCache -> assistantInCache.getParticipantVO().getId() == toUnBlockAssistantList.get(0).getParticipantVO().getId() && !assistantInCache.getBlock()));
}
use of com.fanap.podchat.mainmodel.Contact in project pod-chat-android-sdk by FanapSoft.
the class AssistantCacheTest method checkRegisteredAssistantInCache.
// Register new assistant and check if it is in cache
@LargeTest
@Test
public void checkRegisteredAssistantInCache() {
populateContactsFromServer();
assert contacts.size() > 0;
Collections.shuffle(contacts);
Contact contact = getValidContact();
print("Selected contact for register as assistant " + App.getGson().toJson(contact));
ArrayList<String> typeRoles = new ArrayList<>();
typeRoles.add(RoleType.Constants.ADD_ROLE_TO_USER);
typeRoles.add(RoleType.Constants.READ_THREAD);
typeRoles.add(RoleType.Constants.EDIT_THREAD);
List<AssistantVo> assistantVos = new ArrayList<>();
AssistantVo assistantVo = new AssistantVo();
Invitee invite = new Invitee(contact.getId(), InviteType.Constants.TO_BE_USER_CONTACT_ID);
assistantVo.setInvitees(invite);
assistantVo.setContactType("default");
assistantVo.setRoles(typeRoles);
assistantVos.add(assistantVo);
final AssistantVo[] registeredAssistant = new AssistantVo[1];
ChatListener mListener = new ChatListener() {
@Override
public void onRegisterAssistant(ChatResponse<List<AssistantVo>> response) {
registeredAssistant[0] = response.getResult().get(0);
chat.removeListener(this);
resumeProcess();
}
};
chat.setListener(mListener);
RegisterAssistantRequest request = new RegisterAssistantRequest.Builder(assistantVos).build();
chat.registerAssistant(request);
pauseProcess();
ChatListener mTestListener = Mockito.mock(ChatListener.class);
chat.addListener(mTestListener);
GetAssistantRequest requestGet = new GetAssistantRequest.Builder().setCount(25).setOffset(0).build();
chat.getAssistants(requestGet);
Mockito.verify(mTestListener, Mockito.after(2000).atLeastOnce()).onGetAssistants(Mockito.argThat((ChatResponse<List<AssistantVo>> response) -> (response.isCache() && validateAssistantsAreSame(registeredAssistant[0], response.getResult()))));
}
Aggregations