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 4583b0c70a46fcaebd59bf8ca7da5e4904791a2c..7e2710f1b139699a72756b555c5081c069e8025d 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 c1cd03d4613430fb164d708f6861d83ee96aabe1..61b1c1b796720020d430a56ae095c496984629d5 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 6ac3f6dd6581dc23889cf9f157c3845cb69dd30e..dab2ef4ad1d529bcc3829a6f9fc7e36f1006dc48 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 c9835be0217d3f724f93877026a9bb6eb2e0e6c9..67741c02e5d169f64dc7eb0330f49fb5fa066b69 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 fa357a46c5c7b74d3c4e4dd29dfb04881ad5156c..fa696e60a01b93aca16212827d56da75c849689b 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 e43254683e109fa0b1281b20c96b970cf6ee0440..f14154e40b253b4b990669102c6531f4584cc651 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 dc693ac01d6c4ff02b0ee2dbf72df244c9bca145..e9531f25c8760c25bd9a7421391ad00fc8fd6f2d 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