Mercury-IM/persistence-room/src/main/java/org/mercury_im/messenger/persistence/room/repository/IContactRepository.java

45 lines
1.3 KiB
Java

package org.mercury_im.messenger.persistence.room.repository;
import org.jxmpp.jid.EntityBareJid;
import org.mercury_im.messenger.persistence.model.EntityModel;
import org.mercury_im.messenger.persistence.repository.ContactRepository;
import org.mercury_im.messenger.persistence.room.dao.ContactDao;
import org.mercury_im.messenger.persistence.room.model.RoomContactModel;
import java.util.List;
import javax.inject.Inject;
import io.reactivex.Maybe;
import io.reactivex.Observable;
public class IContactRepository implements ContactRepository<RoomContactModel> {
private final ContactDao dao;
@Inject
public IContactRepository(ContactDao dao) {
this.dao = dao;
}
@Override
public Maybe<RoomContactModel> getContact(long accountId, EntityBareJid jid) {
return dao.getContactAndEntity(accountId, jid);
}
@Override
public Maybe<RoomContactModel> getContactForEntity(EntityModel entityModel) {
return getContact(entityModel.getAccountId(), entityModel.getJid());
}
@Override
public Observable<List<RoomContactModel>> getAllContactsOfAccount(long accountId) {
return dao.getAllContactAndEntities(accountId);
}
@Override
public Observable<List<RoomContactModel>> getAllContacts() {
return dao.getAllContactAndEntities();
}
}