Mercury-IM/domain/src/main/java/org/mercury_im/messenger/usecase/RosterStoreBinder.java

34 lines
1.3 KiB
Java
Raw Normal View History

2020-01-04 22:56:34 +01:00
package org.mercury_im.messenger.usecase;
import org.jivesoftware.smack.roster.Roster;
import org.mercury_im.messenger.data.repository.AccountRepository;
import org.mercury_im.messenger.data.repository.PeerRepository;
import org.mercury_im.messenger.entity.Account;
import org.mercury_im.messenger.store.MercuryRosterStore;
import org.mercury_im.messenger.xmpp.MercuryConnection;
2020-01-06 01:27:11 +01:00
import javax.inject.Inject;
2020-01-04 22:56:34 +01:00
public class RosterStoreBinder {
private final AccountRepository accountRepository;
private final PeerRepository peerRepository;
2020-01-06 01:27:11 +01:00
@Inject
2020-01-04 22:56:34 +01:00
public RosterStoreBinder(AccountRepository accountRepository, PeerRepository peerRepository) {
this.accountRepository = accountRepository;
this.peerRepository = peerRepository;
}
public void setRosterStoreOn(MercuryConnection connection) {
MercuryRosterStore store =
createRosterStore(connection.getAccount(), accountRepository, peerRepository);
Roster roster = Roster.getInstanceFor(connection.getConnection());
roster.setRosterStore(store);
}
private MercuryRosterStore createRosterStore(Account account, AccountRepository accountRepository, PeerRepository peerRepository) {
return new MercuryRosterStore(account, peerRepository, accountRepository);
}
}