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

Fixes bug where info pages would not show up

parent ace51098
Branches
Tags
No related merge requests found
...@@ -585,7 +585,7 @@ class ChatActivity : ServiceBoundActivity(), SharedPreferences.OnSharedPreferenc ...@@ -585,7 +585,7 @@ class ChatActivity : ServiceBoundActivity(), SharedPreferences.OnSharedPreferenc
}) })
// Only show nick list when we’re in a channel buffer // Only show nick list when we’re in a channel buffer
viewModel.bufferData.toLiveData().observe(this, Observer { viewModel.bufferDataThrottled.toLiveData().observe(this, Observer {
bufferData = it bufferData = it
if (bufferData?.info?.type?.hasFlag(Buffer_Type.ChannelBuffer) == true) { if (bufferData?.info?.type?.hasFlag(Buffer_Type.ChannelBuffer) == true) {
drawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_UNLOCKED, Gravity.END) drawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_UNLOCKED, Gravity.END)
......
...@@ -91,7 +91,7 @@ class ToolbarFragment : ServiceBoundFragment() { ...@@ -91,7 +91,7 @@ class ToolbarFragment : ServiceBoundFragment() {
description, messageSettings.colorizeMirc description, messageSettings.colorizeMirc
) )
combineLatest(viewModel.bufferData, viewModel.lag).toLiveData() combineLatest(viewModel.bufferDataThrottled, viewModel.lag).toLiveData()
.observe(this, Observer { .observe(this, Observer {
if (it != null) { if (it != null) {
val (data, lag) = it val (data, lag) = it
...@@ -119,15 +119,22 @@ class ToolbarFragment : ServiceBoundFragment() { ...@@ -119,15 +119,22 @@ class ToolbarFragment : ServiceBoundFragment() {
}) })
actionArea.setOnClickListener { actionArea.setOnClickListener {
viewModel.bufferData.value?.info?.let { info -> val bufferData = viewModel.bufferData.value
bufferData?.info?.let { info ->
when (info.type.toInt()) { when (info.type.toInt()) {
BufferInfo.Type.QueryBuffer.toInt() -> { BufferInfo.Type.QueryBuffer.toInt() -> {
UserInfoActivity.launch(requireContext(), bufferId = info.bufferId, openBuffer = true) UserInfoActivity.launch(
requireContext(),
bufferId = info.bufferId,
openBuffer = true
)
} }
BufferInfo.Type.ChannelBuffer.toInt() -> { BufferInfo.Type.ChannelBuffer.toInt() -> {
ChannelInfoActivity.launch(requireContext(), ChannelInfoActivity.launch(
requireContext(),
bufferId = info.bufferId, bufferId = info.bufferId,
openBuffer = true) openBuffer = true
)
} }
else -> null else -> null
} }
......
...@@ -267,7 +267,9 @@ class BufferViewConfigFragment : ServiceBoundFragment() { ...@@ -267,7 +267,9 @@ class BufferViewConfigFragment : ServiceBoundFragment() {
getColor(0, 0) getColor(0, 0)
} }
combineLatest(viewModel.bufferList, viewModel.expandedNetworks, viewModel.selectedBuffer) combineLatest(viewModel.bufferListThrottled,
viewModel.expandedNetworks,
viewModel.selectedBuffer)
.toLiveData().zip(database.filtered().listen(accountId), .toLiveData().zip(database.filtered().listen(accountId),
accountDatabase.accounts().listen(accountId)) accountDatabase.accounts().listen(accountId))
.observe(this, Observer { it -> .observe(this, Observer { it ->
......
...@@ -101,7 +101,7 @@ class NickListFragment : ServiceBoundFragment() { ...@@ -101,7 +101,7 @@ class NickListFragment : ServiceBoundFragment() {
val colorContext = ColorContext(requireContext(), messageSettings) val colorContext = ColorContext(requireContext(), messageSettings)
val avatarSize = resources.getDimensionPixelSize(R.dimen.avatar_size) val avatarSize = resources.getDimensionPixelSize(R.dimen.avatar_size)
viewModel.nickData.toLiveData().observe(this, Observer { viewModel.nickDataThrottled.toLiveData().observe(this, Observer {
runInBackground { runInBackground {
it?.asSequence()?.map { it?.asSequence()?.map {
val nickName = it.nick val nickName = it.nick
......
...@@ -202,7 +202,9 @@ class QuasselViewModel : ViewModel() { ...@@ -202,7 +202,9 @@ class QuasselViewModel : ViewModel() {
} else { } else {
Observable.just(BufferData()) Observable.just(BufferData())
} }
}.distinctUntilChanged().throttleLast(100, TimeUnit.MILLISECONDS) }
val bufferDataThrottled = bufferData.distinctUntilChanged().throttleLast(100,
TimeUnit.MILLISECONDS)
val nickData: Observable<List<IrcUserItem>> = combineLatest(session, buffer) val nickData: Observable<List<IrcUserItem>> = combineLatest(session, buffer)
.switchMap { (sessionOptional, buffer) -> .switchMap { (sessionOptional, buffer) ->
...@@ -243,7 +245,8 @@ class QuasselViewModel : ViewModel() { ...@@ -243,7 +245,8 @@ class QuasselViewModel : ViewModel() {
} else { } else {
Observable.just(emptyList()) Observable.just(emptyList())
} }
}.distinctUntilChanged().throttleLast(100, TimeUnit.MILLISECONDS) }
val nickDataThrottled = nickData.distinctUntilChanged().throttleLast(100, TimeUnit.MILLISECONDS)
val bufferViewConfigs = bufferViewManager.mapSwitchMap { manager -> val bufferViewConfigs = bufferViewManager.mapSwitchMap { manager ->
manager.liveBufferViewConfigs().map { ids -> manager.liveBufferViewConfigs().map { ids ->
...@@ -517,5 +520,7 @@ class QuasselViewModel : ViewModel() { ...@@ -517,5 +520,7 @@ class QuasselViewModel : ViewModel() {
} else { } else {
Observable.just(Pair<BufferViewConfig?, List<BufferProps>>(null, emptyList())) Observable.just(Pair<BufferViewConfig?, List<BufferProps>>(null, emptyList()))
} }
}.distinctUntilChanged().throttleLast(100, TimeUnit.MILLISECONDS) }
val bufferListThrottled = bufferList.distinctUntilChanged().throttleLast(100,
TimeUnit.MILLISECONDS)
} }
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment