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

52 lines
1.8 KiB
Java

package org.mercury_im.messenger;
import org.jivesoftware.smack.ReconnectionManager;
import org.jivesoftware.smackx.caps.EntityCapsManager;
import org.jivesoftware.smackx.iqversion.VersionManager;
import org.jivesoftware.smackx.receipts.DeliveryReceiptManager;
import org.jivesoftware.smackx.sid.StableUniqueStanzaIdManager;
import org.mercury_im.messenger.data.repository.Repositories;
import org.mercury_im.messenger.store.MercuryEntityCapsStore;
import org.mercury_im.messenger.xmpp.MercuryConnectionManager;
import javax.inject.Inject;
import javax.inject.Singleton;
@Singleton
public class Messenger {
public static final String TAG = "MercuryIM";
private final MercuryConnectionManager connectionManager;
private final Repositories repositories;
static {
ReconnectionManager.setEnabledPerDefault(true);
ReconnectionManager.setDefaultReconnectionPolicy(ReconnectionManager.ReconnectionPolicy.RANDOM_INCREASING_DELAY);
VersionManager.setAutoAppendSmackVersion(false);
VersionManager.setDefaultVersion("Mercury-IM", "0.0.1-little-joe");
DeliveryReceiptManager.setDefaultAutoReceiptMode(DeliveryReceiptManager.AutoReceiptMode.ifIsSubscribed);
StableUniqueStanzaIdManager.setEnabledByDefault(true);
}
@Inject
public Messenger(Repositories repositories,
MercuryConnectionManager connectionManager,
MercuryEntityCapsStore entityCapsStore) {
this.repositories = repositories;
this.connectionManager = connectionManager;
connectionManager.setRepositories(repositories);
EntityCapsManager.setPersistentCache(entityCapsStore);
getConnectionManager().connectActiveAccounts();
}
public MercuryConnectionManager getConnectionManager() {
return connectionManager;
}
}