Mercury-IM/domain/src/main/java/org/mercury_im/messenger/core/viewmodel/ikey/IkeySecretKeyBackupCreation...

46 lines
1.7 KiB
Java

package org.mercury_im.messenger.core.viewmodel.ikey;
import org.jivesoftware.smackx.ikey.IkeyManager;
import org.jivesoftware.smackx.ox.OpenPgpSecretKeyBackupPassphrase;
import org.mercury_im.messenger.core.connection.MercuryConnection;
import org.mercury_im.messenger.core.connection.MercuryConnectionManager;
import org.mercury_im.messenger.core.crypto.ikey.IkeyInitializer;
import org.mercury_im.messenger.core.crypto.ikey.IkeyRepository;
import org.mercury_im.messenger.core.util.Optional;
import org.mercury_im.messenger.core.viewmodel.MercuryViewModel;
import org.mercury_im.messenger.entity.Account;
import java.util.UUID;
import javax.inject.Inject;
import io.reactivex.Observable;
public class IkeySecretKeyBackupCreationViewModel implements MercuryViewModel {
private final MercuryConnectionManager connectionManager;
private final IkeyInitializer ikeyInitializer;
private UUID accountId;
private final IkeyRepository ikeyRepository;
@Inject
public IkeySecretKeyBackupCreationViewModel(MercuryConnectionManager connectionManager, IkeyInitializer ikeyInitializer, IkeyRepository ikeyRepository) {
this.connectionManager = connectionManager;
this.ikeyInitializer = ikeyInitializer;
this.ikeyRepository = ikeyRepository;
}
public void setAccountId(UUID accountId) {
this.accountId = accountId;
}
public void createIkeySecretKeyBackup(Account account) {
MercuryConnection connection = connectionManager.getConnection(account);
IkeyManager ikeyManager = ikeyInitializer.initFor(connection);
}
public Observable<Optional<OpenPgpSecretKeyBackupPassphrase>> getPassphrase() {
return ikeyRepository.loadBackupPassphrase(accountId).toObservable();
}
}