From 5fdfa49e6da4d1a44fc57b16aa1ccdbdb44dbe2c Mon Sep 17 00:00:00 2001 From: Marcel Hibbe Date: Tue, 28 Jan 2025 15:15:06 +0100 Subject: [PATCH] fix to not execute getAnyUserAndSetAsActive() until userRepository.getActiveUser() is empty MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit To make sure getAnyUserAndSetAsActive() is invoked lazily and avoid any side effects, it's explicitly wrapped it in a lambda. Maybe.defer ensures that getAnyUserAndSetAsActive() is not invoked until switchIfEmpty decides it’s needed. Signed-off-by: Marcel Hibbe --- app/src/main/java/com/nextcloud/talk/users/UserManager.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/java/com/nextcloud/talk/users/UserManager.kt b/app/src/main/java/com/nextcloud/talk/users/UserManager.kt index ec4de2853..8df87671e 100644 --- a/app/src/main/java/com/nextcloud/talk/users/UserManager.kt +++ b/app/src/main/java/com/nextcloud/talk/users/UserManager.kt @@ -31,7 +31,7 @@ class UserManager internal constructor(private val userRepository: UsersReposito val currentUser: Maybe get() { return userRepository.getActiveUser() - .switchIfEmpty(getAnyUserAndSetAsActive()) + .switchIfEmpty(Maybe.defer { getAnyUserAndSetAsActive() }) } val currentUserObservable: Observable