From d09c828b457e40d9154cf65a6f74500af95dc02b Mon Sep 17 00:00:00 2001
From: Janne Koschinski <janne@kuschku.de>
Date: Wed, 6 Jun 2018 19:49:38 +0200
Subject: [PATCH] Reset selected buffer and more if the account changes

---
 .../java/de/kuschku/quasseldroid/ui/chat/ChatActivity.kt  | 1 +
 .../de/kuschku/quasseldroid/viewmodel/QuasselViewModel.kt | 8 ++++++++
 2 files changed, 9 insertions(+)

diff --git a/app/src/main/java/de/kuschku/quasseldroid/ui/chat/ChatActivity.kt b/app/src/main/java/de/kuschku/quasseldroid/ui/chat/ChatActivity.kt
index a3c369327..bd19969fc 100644
--- a/app/src/main/java/de/kuschku/quasseldroid/ui/chat/ChatActivity.kt
+++ b/app/src/main/java/de/kuschku/quasseldroid/ui/chat/ChatActivity.kt
@@ -740,6 +740,7 @@ class ChatActivity : ServiceBoundActivity(), SharedPreferences.OnSharedPreferenc
     if (!startedSelection) {
       startActivityForResult(AccountSelectionActivity.intent(this), REQUEST_SELECT_ACCOUNT)
       startedSelection = true
+      viewModel.resetAccount()
     }
   }
 
diff --git a/viewmodel/src/main/java/de/kuschku/quasseldroid/viewmodel/QuasselViewModel.kt b/viewmodel/src/main/java/de/kuschku/quasseldroid/viewmodel/QuasselViewModel.kt
index a16314f81..7c4dbf0a9 100644
--- a/viewmodel/src/main/java/de/kuschku/quasseldroid/viewmodel/QuasselViewModel.kt
+++ b/viewmodel/src/main/java/de/kuschku/quasseldroid/viewmodel/QuasselViewModel.kt
@@ -46,6 +46,14 @@ import io.reactivex.subjects.PublishSubject
 import java.util.concurrent.TimeUnit
 
 class QuasselViewModel : ViewModel() {
+  fun resetAccount() {
+    buffer.onNext(Int.MAX_VALUE)
+    bufferViewConfigId.onNext(Int.MAX_VALUE)
+    selectedMessages.onNext(emptyMap())
+    expandedMessages.onNext(emptySet())
+    recentlySentMessages.onNext(emptyList())
+  }
+
   val backendWrapper = BehaviorSubject.createDefault(Observable.empty<Optional<Backend>>())
 
   val selectedMessages = BehaviorSubject.createDefault(emptyMap<MsgId, FormattedMessage>())
-- 
GitLab