From 9775e8c32b506879b67271c42face738bc8c1da9 Mon Sep 17 00:00:00 2001
From: Benoit Marty <benoitm@matrix.org>
Date: Thu, 9 Jan 2020 15:01:16 +0100
Subject: [PATCH] Fix crash in syncService

---
 .../java/im/vector/matrix/android/api/session/Session.kt    | 6 ++++++
 .../matrix/android/internal/session/DefaultSession.kt       | 2 +-
 .../main/java/im/vector/riotx/core/extensions/Session.kt    | 2 +-
 3 files changed, 8 insertions(+), 2 deletions(-)

diff --git a/matrix-sdk-android/src/main/java/im/vector/matrix/android/api/session/Session.kt b/matrix-sdk-android/src/main/java/im/vector/matrix/android/api/session/Session.kt
index 1c73d4c5d1..1d283531f2 100644
--- a/matrix-sdk-android/src/main/java/im/vector/matrix/android/api/session/Session.kt
+++ b/matrix-sdk-android/src/main/java/im/vector/matrix/android/api/session/Session.kt
@@ -19,6 +19,7 @@ package im.vector.matrix.android.api.session
 import androidx.annotation.MainThread
 import androidx.lifecycle.LiveData
 import im.vector.matrix.android.api.auth.data.SessionParams
+import im.vector.matrix.android.api.auth.data.sessionId
 import im.vector.matrix.android.api.failure.GlobalError
 import im.vector.matrix.android.api.pushrules.PushRuleService
 import im.vector.matrix.android.api.session.cache.CacheService
@@ -73,6 +74,11 @@ interface Session :
     val myUserId: String
         get() = sessionParams.credentials.userId
 
+    /**
+     * The sessionId
+     */
+    val sessionId: String
+
     /**
      * This method allow to open a session. It does start some service on the background.
      */
diff --git a/matrix-sdk-android/src/main/java/im/vector/matrix/android/internal/session/DefaultSession.kt b/matrix-sdk-android/src/main/java/im/vector/matrix/android/internal/session/DefaultSession.kt
index 4ca385b94e..dc1a20802b 100644
--- a/matrix-sdk-android/src/main/java/im/vector/matrix/android/internal/session/DefaultSession.kt
+++ b/matrix-sdk-android/src/main/java/im/vector/matrix/android/internal/session/DefaultSession.kt
@@ -65,7 +65,7 @@ internal class DefaultSession @Inject constructor(
         private val context: Context,
         private val eventBus: EventBus,
         @SessionId
-        private val sessionId: String,
+        override val sessionId: String,
         private val liveEntityObservers: Set<@JvmSuppressWildcards LiveEntityObserver>,
         private val sessionListeners: SessionListeners,
         private val roomService: Lazy<RoomService>,
diff --git a/vector/src/main/java/im/vector/riotx/core/extensions/Session.kt b/vector/src/main/java/im/vector/riotx/core/extensions/Session.kt
index 620e32f51f..0a8345c650 100644
--- a/vector/src/main/java/im/vector/riotx/core/extensions/Session.kt
+++ b/vector/src/main/java/im/vector/riotx/core/extensions/Session.kt
@@ -47,7 +47,7 @@ fun Session.configureAndStart(context: Context,
 fun Session.startSyncing(context: Context) {
     val applicationContext = context.applicationContext
     if (!hasAlreadySynced()) {
-        VectorSyncService.newIntent(applicationContext, myUserId).also {
+        VectorSyncService.newIntent(applicationContext, sessionId).also {
             try {
                 ContextCompat.startForegroundService(applicationContext, it)
             } catch (ex: Throwable) {