From 7b8dcaea035f0b1c8b581abaeb2996a1dbf5640c Mon Sep 17 00:00:00 2001
From: Kamal Bramwell <kamal@elixxir.io>
Date: Fri, 2 Dec 2022 11:24:24 -0500
Subject: [PATCH] Create CrustBackupData, a BackupSnapshot implementation

---
 .../xxlabs/messenger/backup/cloud/crust/Crust.kt  | 15 ++++++++++++++-
 1 file changed, 14 insertions(+), 1 deletion(-)

diff --git a/app/src/main/java/io/xxlabs/messenger/backup/cloud/crust/Crust.kt b/app/src/main/java/io/xxlabs/messenger/backup/cloud/crust/Crust.kt
index 7cab3048..6f7dada1 100644
--- a/app/src/main/java/io/xxlabs/messenger/backup/cloud/crust/Crust.kt
+++ b/app/src/main/java/io/xxlabs/messenger/backup/cloud/crust/Crust.kt
@@ -7,6 +7,7 @@ import io.xxlabs.messenger.backup.cloud.CloudStorage
 import io.xxlabs.messenger.backup.data.backup.BackupPreferencesRepository
 import io.xxlabs.messenger.backup.data.restore.RestoreEnvironment
 import io.xxlabs.messenger.backup.model.BackupLocation
+import io.xxlabs.messenger.backup.model.BackupSnapshot
 import kotlinx.coroutines.Dispatchers
 import kotlinx.coroutines.launch
 import kotlinx.coroutines.withContext
@@ -49,8 +50,10 @@ class Crust private constructor(
     }
 
     private suspend fun fetchData() {
-        cachedBackupData = crustApi.recoverBackup("").getOrNull()?.let {
+        cachedBackupData = crustApi.recoverBackup(preferences.name).getOrNull()?.let {
             AccountArchive(it)
+        }?.also {
+            updateLastBackup(CrustBackupData.from(it))
         }
     }
 
@@ -89,4 +92,14 @@ class Crust private constructor(
             crustApi: CrustDataSource
         ): Crust = instance ?: Crust(backupService, preferences, crustApi)
     }
+}
+
+private class CrustBackupData(
+    override val sizeBytes: Long,
+    override val date: Long = System.currentTimeMillis()
+) : BackupSnapshot {
+
+    companion object Factory {
+        fun from(backupData: AccountArchive) = CrustBackupData(backupData.data.size.toLong())
+    }
 }
\ No newline at end of file
-- 
GitLab