From d5083dd570704c50514ad93763c6764f3f992ed5 Mon Sep 17 00:00:00 2001
From: Janne Mareike Koschinski <mail@justjanne.de>
Date: Mon, 4 Dec 2023 23:53:58 +0100
Subject: [PATCH] fix: remember user account selected via navigation

---
 .../meteroid/ui/navigation/MeteroidNavigation.kt      |  1 +
 .../meteroid/ui/navigation/NavigationViewModel.kt     | 11 ++++++++++-
 .../meteroid/ui/userlist/UserListViewModel.kt         |  1 -
 3 files changed, 11 insertions(+), 2 deletions(-)

diff --git a/app/src/main/kotlin/de/chaosdorf/meteroid/ui/navigation/MeteroidNavigation.kt b/app/src/main/kotlin/de/chaosdorf/meteroid/ui/navigation/MeteroidNavigation.kt
index 3b5cab6..267caa3 100644
--- a/app/src/main/kotlin/de/chaosdorf/meteroid/ui/navigation/MeteroidNavigation.kt
+++ b/app/src/main/kotlin/de/chaosdorf/meteroid/ui/navigation/MeteroidNavigation.kt
@@ -120,6 +120,7 @@ fun MeteroidNavigation(navController: NavController, viewModel: NavigationViewMo
                       saveState = false
                     }
                   }
+                  viewModel.selectUser(entry.user.serverId, entry.user.userId)
                 }
               }
 
diff --git a/app/src/main/kotlin/de/chaosdorf/meteroid/ui/navigation/NavigationViewModel.kt b/app/src/main/kotlin/de/chaosdorf/meteroid/ui/navigation/NavigationViewModel.kt
index 45d298c..e94f2be 100644
--- a/app/src/main/kotlin/de/chaosdorf/meteroid/ui/navigation/NavigationViewModel.kt
+++ b/app/src/main/kotlin/de/chaosdorf/meteroid/ui/navigation/NavigationViewModel.kt
@@ -24,6 +24,7 @@
 
 package de.chaosdorf.meteroid.ui.navigation
 
+import android.util.Log
 import androidx.lifecycle.ViewModel
 import androidx.lifecycle.viewModelScope
 import dagger.hilt.android.lifecycle.HiltViewModel
@@ -44,7 +45,8 @@ class NavigationViewModel @Inject constructor(
   userRepository: UserRepository,
   pinnedUserRepository: PinnedUserRepository,
   syncManager: SyncManager,
-  private val accountProvider: AccountProvider
+  private val accountProvider: AccountProvider,
+  private val preferences: AccountPreferences
 ) : ViewModel() {
   val expanded = MutableStateFlow(false)
   val account = MutableStateFlow<AccountPreferences.State?>(null)
@@ -117,4 +119,11 @@ class NavigationViewModel @Inject constructor(
       accountProvider.togglePin(serverId, userId)
     }
   }
+
+  fun selectUser(serverId: ServerId, userId: UserId) {
+    Log.i("UserListViewModel", "Updating AccountPreferences: $serverId $userId")
+    viewModelScope.launch {
+      preferences.setUser(serverId, userId)
+    }
+  }
 }
diff --git a/app/src/main/kotlin/de/chaosdorf/meteroid/ui/userlist/UserListViewModel.kt b/app/src/main/kotlin/de/chaosdorf/meteroid/ui/userlist/UserListViewModel.kt
index 22a6a09..e50d80d 100644
--- a/app/src/main/kotlin/de/chaosdorf/meteroid/ui/userlist/UserListViewModel.kt
+++ b/app/src/main/kotlin/de/chaosdorf/meteroid/ui/userlist/UserListViewModel.kt
@@ -64,7 +64,6 @@ class UserListViewModel @Inject constructor(
   fun selectUser(serverId: ServerId, userId: UserId) {
     Log.i("UserListViewModel", "Updating AccountPreferences: $serverId $userId")
     viewModelScope.launch {
-
       preferences.setUser(serverId, userId)
     }
   }
-- 
GitLab