Skip to content
Snippets Groups Projects
Commit 27623edb authored by Kamal Bramwell's avatar Kamal Bramwell
Browse files

Initialize Crust with UD instance

parent fa1a0629
Branches
Tags
No related merge requests found
package io.xxlabs.messenger.backup.bindings package io.xxlabs.messenger.backup.bindings
import bindings.UserDiscovery
import io.xxlabs.messenger.backup.data.restore.RestoreLogger import io.xxlabs.messenger.backup.data.restore.RestoreLogger
import io.xxlabs.messenger.bindings.wrapper.contact.ContactWrapperBase import io.xxlabs.messenger.bindings.wrapper.contact.ContactWrapperBase
interface BackupService { interface BackupService {
fun initializeCrustIntegration(userDiscovery: UserDiscovery, receptionRsaPrivKey: ByteArray)
val backupFilePath: String val backupFilePath: String
/** /**
* Assists in debugging restore-related issues. * Assists in debugging restore-related issues.
......
package io.xxlabs.messenger.backup.bindings package io.xxlabs.messenger.backup.bindings
import bindings.UserDiscovery
import io.xxlabs.messenger.backup.data.restore.RestoreLogger import io.xxlabs.messenger.backup.data.restore.RestoreLogger
import io.xxlabs.messenger.bindings.listeners.MessageReceivedListener import io.xxlabs.messenger.bindings.listeners.MessageReceivedListener
import io.xxlabs.messenger.bindings.wrapper.contact.ContactWrapperBase import io.xxlabs.messenger.bindings.wrapper.contact.ContactWrapperBase
...@@ -28,6 +29,13 @@ class BindingsBackupMediator @Inject constructor( ...@@ -28,6 +29,13 @@ class BindingsBackupMediator @Inject constructor(
private val restoreHandler = private val restoreHandler =
BindingsRestoreHandler(preferences, daoRepo, messageReceivedListener, backupHandler) BindingsRestoreHandler(preferences, daoRepo, messageReceivedListener, backupHandler)
override fun initializeCrustIntegration(
userDiscovery: UserDiscovery,
receptionRsaPrivKey: ByteArray
) {
}
override val backupFilePath: String override val backupFilePath: String
get() = File(appContext().filesDir, BACKUP_FILE_NAME).path get() = File(appContext().filesDir, BACKUP_FILE_NAME).path
......
...@@ -14,7 +14,7 @@ abstract class BackupLocationRepository( ...@@ -14,7 +14,7 @@ abstract class BackupLocationRepository(
backupService: BackupService, backupService: BackupService,
) : AccountBackupDataSource { ) : AccountBackupDataSource {
private val crustApi = BindingsCrustMediator() protected val crustApi = BindingsCrustMediator()
protected val googleDrive = GoogleDrive.getInstance(backupService, preferences) protected val googleDrive = GoogleDrive.getInstance(backupService, preferences)
protected val dropbox = Dropbox.getInstance(backupService, preferences) protected val dropbox = Dropbox.getInstance(backupService, preferences)
......
package io.xxlabs.messenger.backup.data.backup package io.xxlabs.messenger.backup.data.backup
import bindings.UserDiscovery
import io.xxlabs.messenger.backup.bindings.BackupService import io.xxlabs.messenger.backup.bindings.BackupService
import io.xxlabs.messenger.backup.data.BackupLocationRepository import io.xxlabs.messenger.backup.data.BackupLocationRepository
import io.xxlabs.messenger.backup.model.AccountBackup import io.xxlabs.messenger.backup.model.AccountBackup
...@@ -15,6 +16,16 @@ class BackupMediator @Inject constructor( ...@@ -15,6 +16,16 @@ class BackupMediator @Inject constructor(
BackupService by backupService, BackupService by backupService,
BackupTaskPublisher by backupTaskPublisher BackupTaskPublisher by backupTaskPublisher
{ {
override fun initializeCrustIntegration(
userDiscovery: UserDiscovery,
receptionRsaPrivKey: ByteArray
) {
crustApi.apply {
udManager = userDiscovery
receptionRsaPrivateKey = receptionRsaPrivKey
}
}
private val settingsHandler: BackupPreferencesDelegate by lazy { private val settingsHandler: BackupPreferencesDelegate by lazy {
BackupPreferencesDelegate(preferences, this) BackupPreferencesDelegate(preferences, this)
} }
......
...@@ -3,6 +3,7 @@ package io.xxlabs.messenger.repository.client ...@@ -3,6 +3,7 @@ package io.xxlabs.messenger.repository.client
import android.content.Context import android.content.Context
import bindings.Bindings import bindings.Bindings
import bindings.NetworkHealthCallback import bindings.NetworkHealthCallback
import bindings.UserDiscovery
import com.google.android.gms.tasks.OnCompleteListener import com.google.android.gms.tasks.OnCompleteListener
import com.google.firebase.messaging.FirebaseMessaging import com.google.firebase.messaging.FirebaseMessaging
import io.reactivex.Maybe import io.reactivex.Maybe
...@@ -224,6 +225,7 @@ class ClientRepository @Inject constructor( ...@@ -224,6 +225,7 @@ class ClientRepository @Inject constructor(
try { try {
udWrapperBindings = BindingsWrapperBindings udWrapperBindings = BindingsWrapperBindings
.newUserDiscovery(clientWrapper) as UserDiscoveryWrapperBindings .newUserDiscovery(clientWrapper) as UserDiscoveryWrapperBindings
initializeCrust(udWrapperBindings.userDiscovery)
emitter.onSuccess(true) emitter.onSuccess(true)
} catch (e: Exception) { } catch (e: Exception) {
emitter.onError(e) emitter.onError(e)
...@@ -231,6 +233,13 @@ class ClientRepository @Inject constructor( ...@@ -231,6 +233,13 @@ class ClientRepository @Inject constructor(
} }
} }
private fun initializeCrust(userDiscovery: UserDiscovery) {
backupService.initializeCrustIntegration(
userDiscovery,
clientWrapper.client.user.receptionRSAPrivateKeyPem
)
}
override fun isLoggedIn(): Single<Boolean> { override fun isLoggedIn(): Single<Boolean> {
return hasInitialized() return hasInitialized()
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment