Mercury-IM/persistence-room/src/main/java/org/mercury_im/messenger/persistence/room/dao/ContactDao.java
2019-06-10 02:52:08 +02:00

33 lines
1.1 KiB
Java

package org.mercury_im.messenger.persistence.room.dao;
import androidx.lifecycle.LiveData;
import androidx.room.Dao;
import androidx.room.Query;
import androidx.room.TypeConverters;
import org.jxmpp.jid.EntityBareJid;
import org.mercury_im.messenger.persistence.room.model.RoomContactModel;
import org.mercury_im.messenger.persistence.room.type_converter.EntityBareJidConverter;
import java.util.List;
@Dao
@TypeConverters(EntityBareJidConverter.class)
public interface ContactDao extends BaseDao<RoomContactModel> {
/**
* Return a {@link LiveData} wrapping a {@link List} of all {@link RoomContactModel RosterEntries}
* which are currently found in the database.
*
* @return
*/
@Query("SELECT * FROM contacts")
LiveData<List<RoomContactModel>> getAllRosterEntries();
@Query("SELECT contacts.* FROM contacts JOIN entities WHERE jid = :jid")
RoomContactModel getRosterEntryByJid(EntityBareJid jid);
@Query("SELECT * FROM contacts WHERE accountId = :accountId")
LiveData<List<RoomContactModel>> getRosterEntriesForAccount(long accountId);
}