From 461a75661321c891c163a0e1c4f268d4a08ef8c1 Mon Sep 17 00:00:00 2001
From: Taras <tarassmakula@gmail.com>
Date: Fri, 2 Sep 2022 18:27:25 +0300
Subject: [PATCH] Fix lazy session init on login

---
 .../restore/RestorePassPhraseDataSource.kt            | 11 ++++++-----
 .../circles/core/matrix/room/CoreSpacesTreeBuilder.kt |  3 +--
 2 files changed, 7 insertions(+), 7 deletions(-)

diff --git a/app/src/main/java/org/futo/circles/core/matrix/pass_phrase/restore/RestorePassPhraseDataSource.kt b/app/src/main/java/org/futo/circles/core/matrix/pass_phrase/restore/RestorePassPhraseDataSource.kt
index a1b69db08..90a8540ad 100644
--- a/app/src/main/java/org/futo/circles/core/matrix/pass_phrase/restore/RestorePassPhraseDataSource.kt
+++ b/app/src/main/java/org/futo/circles/core/matrix/pass_phrase/restore/RestorePassPhraseDataSource.kt
@@ -14,7 +14,6 @@ import org.matrix.android.sdk.api.util.awaitCallback
 
 class RestorePassPhraseDataSource(private val context: Context) {
 
-    private val session by lazy { MatrixSessionProvider.currentSession }
     val loadingLiveData = MutableLiveData<LoadingData>()
     private val passPhraseLoadingData = LoadingData()
 
@@ -46,15 +45,17 @@ class RestorePassPhraseDataSource(private val context: Context) {
 
     suspend fun getEncryptionAlgorithm(): String? {
         val keyVersion = awaitCallback {
-            session?.cryptoService()?.keysBackupService()?.getCurrentVersion(it)
+            MatrixSessionProvider.currentSession?.cryptoService()?.keysBackupService()
+                ?.getCurrentVersion(it)
         }.toKeysVersionResult()
 
         return keyVersion?.algorithm
     }
 
     suspend fun restoreKeysWithPassPhase(passphrase: String) {
-        val keysBackupService = session?.cryptoService()?.keysBackupService()
-            ?: throw Exception(context.getString(R.string.session_is_not_created))
+        val keysBackupService =
+            MatrixSessionProvider.currentSession?.cryptoService()?.keysBackupService()
+                ?: throw Exception(context.getString(R.string.session_is_not_created))
         val keyVersion = awaitCallback<KeysBackupLastVersionResult> {
             keysBackupService.getCurrentVersion(it)
         }.toKeysVersionResult()
@@ -66,7 +67,7 @@ class RestorePassPhraseDataSource(private val context: Context) {
                     keyVersion,
                     passphrase,
                     null,
-                    session?.myUserId,
+                    MatrixSessionProvider.currentSession?.myUserId,
                     progressObserver,
                     it
                 )
diff --git a/app/src/main/java/org/futo/circles/core/matrix/room/CoreSpacesTreeBuilder.kt b/app/src/main/java/org/futo/circles/core/matrix/room/CoreSpacesTreeBuilder.kt
index a0460bf80..78ba01bef 100644
--- a/app/src/main/java/org/futo/circles/core/matrix/room/CoreSpacesTreeBuilder.kt
+++ b/app/src/main/java/org/futo/circles/core/matrix/room/CoreSpacesTreeBuilder.kt
@@ -13,7 +13,6 @@ class CoreSpacesTreeBuilder(
     private val context: Context,
     private val createRoomDataSource: CreateRoomDataSource
 ) {
-    private val session by lazy { MatrixSessionProvider.currentSession }
 
     suspend fun createCoreSpacesTree() {
         createRoomDataSource.createRoom(RootSpace())
@@ -27,7 +26,7 @@ class CoreSpacesTreeBuilder(
         createRoomDataSource.createRoom(Gallery(), context.getString(R.string.photos))
     }
 
-    fun isCirclesHierarchyCreated(): Boolean = session?.roomService()
+    fun isCirclesHierarchyCreated(): Boolean = MatrixSessionProvider.currentSession?.roomService()
         ?.getRoomSummaries(roomSummaryQueryParams { excludeType = null })
         ?.firstOrNull { summary -> summary.hasTag(ROOT_SPACE_TAG) } != null
 
-- 
GitLab