From 749372bd23e2bb4d41850a4c15239d993b8cdbc2 Mon Sep 17 00:00:00 2001 From: Kamal Bramwell <kamal@elixxir.io> Date: Fri, 2 Dec 2022 11:23:56 -0500 Subject: [PATCH] Move CrustDataSource to BackupService interface --- .../xxlabs/messenger/backup/bindings/BackupService.kt | 8 +++++++- .../backup/bindings/BindingsBackupMediator.kt | 8 +++++++- .../messenger/backup/cloud/crust/CrustDataSource.kt | 1 - .../messenger/backup/data/BackupLocationRepository.kt | 4 +--- .../messenger/backup/data/backup/BackupMediator.kt | 11 ----------- .../backup/data/backup/BackupPreferencesRepository.kt | 1 + .../messenger/repository/base/BasePreferences.kt | 1 - 7 files changed, 16 insertions(+), 18 deletions(-) diff --git a/app/src/main/java/io/xxlabs/messenger/backup/bindings/BackupService.kt b/app/src/main/java/io/xxlabs/messenger/backup/bindings/BackupService.kt index 4583b0c7..7e2710f1 100644 --- a/app/src/main/java/io/xxlabs/messenger/backup/bindings/BackupService.kt +++ b/app/src/main/java/io/xxlabs/messenger/backup/bindings/BackupService.kt @@ -1,11 +1,15 @@ package io.xxlabs.messenger.backup.bindings import bindings.UserDiscovery +import io.xxlabs.messenger.backup.cloud.crust.CrustDataSource import io.xxlabs.messenger.backup.data.restore.RestoreLogger import io.xxlabs.messenger.bindings.wrapper.contact.ContactWrapperBase interface BackupService { - fun initializeCrustIntegration(userDiscovery: UserDiscovery, receptionRsaPrivKey: ByteArray) + /** + * Exposes upload and restore functions to/from Crust storage. + */ + val crustApi: CrustDataSource val backupFilePath: String /** @@ -13,6 +17,8 @@ interface BackupService { */ val restoreLogger: RestoreLogger + fun initializeCrustIntegration(userDiscovery: UserDiscovery, receptionRsaPrivKey: ByteArray) + /** * Set a [BackupTaskCallback] to be notified whenever a new backup file is created. */ diff --git a/app/src/main/java/io/xxlabs/messenger/backup/bindings/BindingsBackupMediator.kt b/app/src/main/java/io/xxlabs/messenger/backup/bindings/BindingsBackupMediator.kt index c1cd03d4..61b1c1b7 100644 --- a/app/src/main/java/io/xxlabs/messenger/backup/bindings/BindingsBackupMediator.kt +++ b/app/src/main/java/io/xxlabs/messenger/backup/bindings/BindingsBackupMediator.kt @@ -1,6 +1,7 @@ package io.xxlabs.messenger.backup.bindings import bindings.UserDiscovery +import io.xxlabs.messenger.backup.cloud.crust.BindingsCrustMediator import io.xxlabs.messenger.backup.data.restore.RestoreLogger import io.xxlabs.messenger.bindings.listeners.MessageReceivedListener import io.xxlabs.messenger.bindings.wrapper.contact.ContactWrapperBase @@ -29,11 +30,16 @@ class BindingsBackupMediator @Inject constructor( private val restoreHandler = BindingsRestoreHandler(preferences, daoRepo, messageReceivedListener, backupHandler) + override val crustApi = BindingsCrustMediator() + override fun initializeCrustIntegration( userDiscovery: UserDiscovery, receptionRsaPrivKey: ByteArray ) { - + crustApi.apply { + udManager = userDiscovery + receptionRsaPrivateKey = receptionRsaPrivKey + } } override val backupFilePath: String diff --git a/app/src/main/java/io/xxlabs/messenger/backup/cloud/crust/CrustDataSource.kt b/app/src/main/java/io/xxlabs/messenger/backup/cloud/crust/CrustDataSource.kt index 6ac3f6dd..dab2ef4a 100644 --- a/app/src/main/java/io/xxlabs/messenger/backup/cloud/crust/CrustDataSource.kt +++ b/app/src/main/java/io/xxlabs/messenger/backup/cloud/crust/CrustDataSource.kt @@ -13,7 +13,6 @@ class BindingsCrustMediator( var receptionRsaPrivateKey: ByteArray = byteArrayOf() ) : CrustDataSource { - override suspend fun uploadBackup(path: String): Result<ByteArray> { return try { udManager?.let { diff --git a/app/src/main/java/io/xxlabs/messenger/backup/data/BackupLocationRepository.kt b/app/src/main/java/io/xxlabs/messenger/backup/data/BackupLocationRepository.kt index c9835be0..67741c02 100644 --- a/app/src/main/java/io/xxlabs/messenger/backup/data/BackupLocationRepository.kt +++ b/app/src/main/java/io/xxlabs/messenger/backup/data/BackupLocationRepository.kt @@ -14,12 +14,10 @@ abstract class BackupLocationRepository( backupService: BackupService, ) : AccountBackupDataSource { - protected val crustApi = BindingsCrustMediator() - protected val googleDrive = GoogleDrive.getInstance(backupService, preferences) protected val dropbox = Dropbox.getInstance(backupService, preferences) protected val sftp = Sftp.getInstance(backupService, preferences) - protected val crust = Crust.getInstance(backupService, preferences, crustApi) + protected val crust = Crust.getInstance(backupService, preferences, backupService.crustApi) override val locations: List<AccountBackup> = listOf( googleDrive, diff --git a/app/src/main/java/io/xxlabs/messenger/backup/data/backup/BackupMediator.kt b/app/src/main/java/io/xxlabs/messenger/backup/data/backup/BackupMediator.kt index fa357a46..fa696e60 100644 --- a/app/src/main/java/io/xxlabs/messenger/backup/data/backup/BackupMediator.kt +++ b/app/src/main/java/io/xxlabs/messenger/backup/data/backup/BackupMediator.kt @@ -1,6 +1,5 @@ package io.xxlabs.messenger.backup.data.backup -import bindings.UserDiscovery import io.xxlabs.messenger.backup.bindings.BackupService import io.xxlabs.messenger.backup.data.BackupLocationRepository import io.xxlabs.messenger.backup.model.AccountBackup @@ -16,16 +15,6 @@ class BackupMediator @Inject constructor( BackupService by backupService, BackupTaskPublisher by backupTaskPublisher { - override fun initializeCrustIntegration( - userDiscovery: UserDiscovery, - receptionRsaPrivKey: ByteArray - ) { - crustApi.apply { - udManager = userDiscovery - receptionRsaPrivateKey = receptionRsaPrivKey - } - } - private val settingsHandler: BackupPreferencesDelegate by lazy { BackupPreferencesDelegate(preferences, this) } diff --git a/app/src/main/java/io/xxlabs/messenger/backup/data/backup/BackupPreferencesRepository.kt b/app/src/main/java/io/xxlabs/messenger/backup/data/backup/BackupPreferencesRepository.kt index e4325468..f14154e4 100644 --- a/app/src/main/java/io/xxlabs/messenger/backup/data/backup/BackupPreferencesRepository.kt +++ b/app/src/main/java/io/xxlabs/messenger/backup/data/backup/BackupPreferencesRepository.kt @@ -1,6 +1,7 @@ package io.xxlabs.messenger.backup.data.backup interface BackupPreferencesRepository { + var name: String var isBackupEnabled: Boolean var isGoogleDriveEnabled: Boolean var isDropboxEnabled: Boolean diff --git a/app/src/main/java/io/xxlabs/messenger/repository/base/BasePreferences.kt b/app/src/main/java/io/xxlabs/messenger/repository/base/BasePreferences.kt index dc693ac0..e9531f25 100644 --- a/app/src/main/java/io/xxlabs/messenger/repository/base/BasePreferences.kt +++ b/app/src/main/java/io/xxlabs/messenger/repository/base/BasePreferences.kt @@ -27,7 +27,6 @@ abstract class BasePreferences : BackupPreferencesRepository, NotificationPrefer abstract var currentNotificationsTokenId: String abstract var notificationsTokenId: String abstract var userId: String - abstract var name: String //Settings abstract var areNotificationsOn: Boolean -- GitLab