Skip to content
Snippets Groups Projects
Verified Commit 588d15d8 authored by Janne Mareike Koschinski's avatar Janne Mareike Koschinski
Browse files

(Hopefully) fixes #122

parent 9ab1bdca
Branches
Tags
No related merge requests found
...@@ -604,6 +604,10 @@ class ChatActivity : ServiceBoundActivity(), SharedPreferences.OnSharedPreferenc ...@@ -604,6 +604,10 @@ class ChatActivity : ServiceBoundActivity(), SharedPreferences.OnSharedPreferenc
} }
override fun onStart() { override fun onStart() {
val buffers = viewModel.bufferList.value
val bufferId = viewModel.buffer.value
val bufferViewConfigId = viewModel.bufferViewConfigId.value
val bufferViewConfig = viewModel.bufferViewConfig.value
if (Settings.autoComplete(this) != autoCompleteSettings) { if (Settings.autoComplete(this) != autoCompleteSettings) {
recreate() recreate()
} }
......
...@@ -231,6 +231,7 @@ class BufferViewConfigFragment : ServiceBoundFragment() { ...@@ -231,6 +231,7 @@ class BufferViewConfigFragment : ServiceBoundFragment() {
} }
if (!hasSetBufferViewConfigId) { if (!hasSetBufferViewConfigId) {
chatListSpinner.setSelection(adapter.indexOf(viewModel.bufferViewConfigId.value)) chatListSpinner.setSelection(adapter.indexOf(viewModel.bufferViewConfigId.value))
viewModel.bufferViewConfigId.onNext(chatListSpinner.selectedItemId.toInt())
hasSetBufferViewConfigId = true hasSetBufferViewConfigId = true
} }
} }
...@@ -446,6 +447,11 @@ class BufferViewConfigFragment : ServiceBoundFragment() { ...@@ -446,6 +447,11 @@ class BufferViewConfigFragment : ServiceBoundFragment() {
chatListSpinner.onRestoreInstanceState(getParcelable(KEY_STATE_SPINNER)) chatListSpinner.onRestoreInstanceState(getParcelable(KEY_STATE_SPINNER))
} }
viewModel.stateReset.toLiveData().observe(this, Observer {
hasSetBufferViewConfigId = false
hasRestoredSpinnerState = false
})
return view return view
} }
......
...@@ -47,13 +47,16 @@ import java.util.concurrent.TimeUnit ...@@ -47,13 +47,16 @@ import java.util.concurrent.TimeUnit
class QuasselViewModel : ViewModel() { class QuasselViewModel : ViewModel() {
fun resetAccount() { fun resetAccount() {
stateReset.onNext(Unit)
buffer.onNext(Int.MAX_VALUE) buffer.onNext(Int.MAX_VALUE)
bufferViewConfigId.onNext(Int.MAX_VALUE) bufferViewConfigId.onNext(-1)
selectedMessages.onNext(emptyMap()) selectedMessages.onNext(emptyMap())
expandedMessages.onNext(emptySet()) expandedMessages.onNext(emptySet())
recentlySentMessages.onNext(emptyList()) recentlySentMessages.onNext(emptyList())
} }
val stateReset = PublishSubject.create<Unit>()
val backendWrapper = BehaviorSubject.createDefault(Observable.empty<Optional<Backend>>()) val backendWrapper = BehaviorSubject.createDefault(Observable.empty<Optional<Backend>>())
val selectedMessages = BehaviorSubject.createDefault(emptyMap<MsgId, FormattedMessage>()) val selectedMessages = BehaviorSubject.createDefault(emptyMap<MsgId, FormattedMessage>())
...@@ -69,7 +72,7 @@ class QuasselViewModel : ViewModel() { ...@@ -69,7 +72,7 @@ class QuasselViewModel : ViewModel() {
val buffer = BehaviorSubject.createDefault(Int.MAX_VALUE) val buffer = BehaviorSubject.createDefault(Int.MAX_VALUE)
val bufferOpened = PublishSubject.create<Unit>() val bufferOpened = PublishSubject.create<Unit>()
val bufferViewConfigId = BehaviorSubject.createDefault(Int.MAX_VALUE) val bufferViewConfigId = BehaviorSubject.createDefault(-1)
val MAX_RECENT_MESSAGES = 20 val MAX_RECENT_MESSAGES = 20
val recentlySentMessages = BehaviorSubject.createDefault(emptyList<CharSequence>()) val recentlySentMessages = BehaviorSubject.createDefault(emptyList<CharSequence>())
...@@ -321,7 +324,7 @@ class QuasselViewModel : ViewModel() { ...@@ -321,7 +324,7 @@ class QuasselViewModel : ViewModel() {
} }
} }
val bufferList: Observable<Pair<BufferViewConfig?, List<BufferProps>>?> = val bufferList: Observable<Pair<BufferViewConfig?, List<BufferProps>>> =
combineLatest(session, bufferViewConfig, showHidden) combineLatest(session, bufferViewConfig, showHidden)
.switchMap { (sessionOptional, configOptional, showHiddenRaw) -> .switchMap { (sessionOptional, configOptional, showHiddenRaw) ->
val session = sessionOptional.orNull() val session = sessionOptional.orNull()
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment