34 lines
1.3 KiB
Java
34 lines
1.3 KiB
Java
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;
|
|
|
|
import javax.inject.Inject;
|
|
|
|
public class RosterStoreBinder {
|
|
|
|
private final AccountRepository accountRepository;
|
|
private final PeerRepository peerRepository;
|
|
|
|
@Inject
|
|
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);
|
|
}
|
|
}
|