use of com.fanap.podchat.call.persist.CacheCallParticipant in project pod-chat-android-sdk by FanapSoft.
the class MessageDatabaseHelper method saveCallParticipant.
private void saveCallParticipant(Participant participant, long callId) {
CacheCallParticipant callParticipant = new CacheCallParticipant().fromParticipant(participant, callId);
messageDao.insertCallParticipant(callParticipant);
if (callParticipant.getChatProfileVO() != null) {
ChatProfileVO chatProfileVO = callParticipant.getChatProfileVO();
chatProfileVO.setId(callParticipant.getId());
messageDao.insertChatProfile(chatProfileVO);
}
// CacheParticipantRoles cpr = new CacheParticipantRoles();
//
// cpr.setId(participant.getId());
//
// cpr.setThreadId(callId);
//
// cpr.setRoles(participant.getRoles());
//
// messageDao.insertRoles(cpr);
}
use of com.fanap.podchat.call.persist.CacheCallParticipant in project pod-chat-android-sdk by FanapSoft.
the class ExampleUnitTest method testCallParticipant.
@Test
public void testCallParticipant() {
Participant participant = new Participant();
participant.setName("John");
participant.setLastName("Doe");
participant.setImage("mmm");
CacheCallParticipant callParticipant = new CacheCallParticipant().fromParticipant(participant, 1000);
assertEquals(participant.getFirstName(), callParticipant.getFirstName());
}
use of com.fanap.podchat.call.persist.CacheCallParticipant in project pod-chat-android-sdk by FanapSoft.
the class MessageDatabaseHelper method getCallHistory.
public void getCallHistory(GetCallHistoryRequest request, FunctionalListener callback) throws RoomIntegrityException {
if (!canUseDatabase())
throw new RoomIntegrityException();
worker(() -> {
request.setCount(request.getCount() > 0 ? request.getCount() : 50);
List<CacheCall> cacheCalls = new ArrayList<>();
long contentCount = 0;
if (request.getCreatorCoreUserId() > 0) {
cacheCalls = messageDao.getCachedCallByUserId(request.getCount(), request.getOffset(), request.getCreatorCoreUserId(), request.getType());
contentCount = messageDao.getCountOfCachedCallByUserId(request.getCreatorCoreUserId(), request.getType());
} else if (!Util.isNullOrEmpty(request.getCallIds())) {
if (request.getCallIds().size() > 1) {
String ids = "";
for (Long callId : request.getCallIds()) {
ids = ids.concat("" + callId + ", ");
}
ids = ids.substring(0, ids.lastIndexOf(","));
cacheCalls = messageDao.getCachedCallByIds(request.getCount(), request.getOffset(), ids);
contentCount = messageDao.getCountOfCachedCallByIds(ids);
} else {
CacheCall cacheCall = messageDao.getCachedCallById(request.getCallIds().get(0));
contentCount = 1;
cacheCalls.add(cacheCall);
}
} else if (request.getThreadId() != null && request.getThreadId() > 0) {
cacheCalls = messageDao.getCachedCallByTypeAndThreadId(request.getCount(), request.getOffset(), request.getType(), request.getThreadId());
contentCount = messageDao.getCountOfCachedCallByTypeAndThreadId(request.getType(), request.getThreadId());
} else {
cacheCalls = messageDao.getCachedCallByType(request.getCount(), request.getOffset(), request.getType());
contentCount = messageDao.getCountOfCachedCallByType(request.getType());
}
ArrayList<CallVO> callVOList = new ArrayList<>();
for (CacheCall cacheCall : cacheCalls) {
@Nullable CacheCallParticipant callPartnerParticipant = messageDao.getCachedCallParticipant(cacheCall.getPartnerParticipantId());
if (callPartnerParticipant != null) {
Participant partnerParticipant = callPartnerParticipant.toParticipant();
ChatProfileVO chatProfileVO = messageDao.getChatProfileVOById(partnerParticipant.getId());
partnerParticipant.setChatProfileVO(chatProfileVO);
cacheCall.setPartnerParticipantVO(partnerParticipant);
}
if (cacheCall.isGroup()) {
List<CacheCallParticipant> cacheCallParticipants = messageDao.getCachedCallParticipants(cacheCall.getId());
if (!Util.isNullOrEmpty(cacheCallParticipants)) {
List<Participant> callParticipantsList = new ArrayList<>();
for (CacheCallParticipant cacheCll : cacheCallParticipants) {
Participant callParticipant = cacheCll.toParticipant();
ChatProfileVO profileVO = messageDao.getChatProfileVOById(callParticipant.getId());
callParticipant.setChatProfileVO(profileVO);
callParticipantsList.add(callParticipant);
}
cacheCall.setCallParticipants(callParticipantsList);
}
}
CallVO call = cacheCall.toCallVo();
if (cacheCall.getThreadId() > 0) {
ThreadVo threadVo = messageDao.getThreadById(cacheCall.getThreadId());
Thread thread;
if (threadVo != null) {
thread = threadVoToThreadMapper(threadVo, null);
} else {
thread = new Thread();
thread.setId(cacheCall.getThreadId());
}
call.setConversationVO(thread);
}
callVOList.add(call);
}
callback.onWorkDone(contentCount, callVOList);
});
}
Aggregations