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

46 lines
1.7 KiB
Java
Raw Normal View History

2020-10-11 11:44:47 +02:00
package org.mercury_im.messenger.core.viewmodel.ikey;
import org.jivesoftware.smackx.ikey.IkeyManager;
2020-10-24 19:25:28 +02:00
import org.jivesoftware.smackx.ox.OpenPgpSecretKeyBackupPassphrase;
2020-10-11 11:44:47 +02:00
import org.mercury_im.messenger.core.connection.MercuryConnection;
import org.mercury_im.messenger.core.connection.MercuryConnectionManager;
2020-10-24 19:25:28 +02:00
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;
2020-10-11 11:44:47 +02:00
import org.mercury_im.messenger.core.viewmodel.MercuryViewModel;
import org.mercury_im.messenger.entity.Account;
2020-10-24 19:25:28 +02:00
import java.util.UUID;
2020-10-11 11:44:47 +02:00
import javax.inject.Inject;
2020-10-24 19:25:28 +02:00
import io.reactivex.Observable;
2020-10-11 11:44:47 +02:00
public class IkeySecretKeyBackupCreationViewModel implements MercuryViewModel {
private final MercuryConnectionManager connectionManager;
2020-10-24 19:25:28 +02:00
private final IkeyInitializer ikeyInitializer;
private UUID accountId;
private final IkeyRepository ikeyRepository;
2020-10-11 11:44:47 +02:00
@Inject
2020-10-24 19:25:28 +02:00
public IkeySecretKeyBackupCreationViewModel(MercuryConnectionManager connectionManager, IkeyInitializer ikeyInitializer, IkeyRepository ikeyRepository) {
2020-10-11 11:44:47 +02:00
this.connectionManager = connectionManager;
2020-10-24 19:25:28 +02:00
this.ikeyInitializer = ikeyInitializer;
this.ikeyRepository = ikeyRepository;
}
public void setAccountId(UUID accountId) {
this.accountId = accountId;
2020-10-11 11:44:47 +02:00
}
public void createIkeySecretKeyBackup(Account account) {
MercuryConnection connection = connectionManager.getConnection(account);
2020-10-24 19:25:28 +02:00
IkeyManager ikeyManager = ikeyInitializer.initFor(connection);
}
2020-10-11 11:44:47 +02:00
2020-10-24 19:25:28 +02:00
public Observable<Optional<OpenPgpSecretKeyBackupPassphrase>> getPassphrase() {
return ikeyRepository.loadBackupPassphrase(accountId).toObservable();
2020-10-11 11:44:47 +02:00
}
}