From 59f17b7ae69635adfd2a6b4c510270137ef466d6 Mon Sep 17 00:00:00 2001 From: Janne Koschinski <janne@kuschku.de> Date: Thu, 3 May 2018 00:20:38 +0200 Subject: [PATCH] Unhide buffers on activity Signed-off-by: Janne Koschinski <janne@kuschku.de> --- .../de/kuschku/libquassel/quassel/syncables/BufferSyncer.kt | 5 +++++ .../kuschku/libquassel/quassel/syncables/BufferViewConfig.kt | 5 ++++- .../libquassel/quassel/syncables/BufferViewManager.kt | 4 ++-- 3 files changed, 11 insertions(+), 3 deletions(-) diff --git a/lib/src/main/java/de/kuschku/libquassel/quassel/syncables/BufferSyncer.kt b/lib/src/main/java/de/kuschku/libquassel/quassel/syncables/BufferSyncer.kt index c819cb2ca..ec8eadcc9 100644 --- a/lib/src/main/java/de/kuschku/libquassel/quassel/syncables/BufferSyncer.kt +++ b/lib/src/main/java/de/kuschku/libquassel/quassel/syncables/BufferSyncer.kt @@ -222,6 +222,11 @@ class BufferSyncer constructor( override fun setBufferActivity(buffer: BufferId, activity: Int) { val flags = Message_Types.of<Message_Type>(activity) super.setBufferActivity(buffer, activity) + if (activity != 0) { + bufferInfo(buffer)?.let { + session.bufferViewManager?.handleBuffer(it, this, true) + } + } _bufferActivities[buffer] = flags live_bufferActivities.onNext(Unit) } diff --git a/lib/src/main/java/de/kuschku/libquassel/quassel/syncables/BufferViewConfig.kt b/lib/src/main/java/de/kuschku/libquassel/quassel/syncables/BufferViewConfig.kt index c15b4273c..7b66da97d 100644 --- a/lib/src/main/java/de/kuschku/libquassel/quassel/syncables/BufferViewConfig.kt +++ b/lib/src/main/java/de/kuschku/libquassel/quassel/syncables/BufferViewConfig.kt @@ -337,13 +337,16 @@ class BufferViewConfig constructor( } } - fun handleBuffer(info: BufferInfo, bufferSyncer: BufferSyncer) { + fun handleBuffer(info: BufferInfo, bufferSyncer: BufferSyncer, unhide: Boolean = false) { if (_addNewBuffersAutomatically && !_buffers.contains(info.bufferId) && !_temporarilyRemovedBuffers.contains(info.bufferId) && !_removedBuffers.contains(info.bufferId) && !info.type.hasFlag(Buffer_Type.StatusBuffer)) { insertBufferSorted(info, bufferSyncer) + } else if (unhide && !_buffers.contains(info.bufferId) && + _temporarilyRemovedBuffers.contains(info.bufferId)) { + insertBufferSorted(info, bufferSyncer) } } diff --git a/lib/src/main/java/de/kuschku/libquassel/quassel/syncables/BufferViewManager.kt b/lib/src/main/java/de/kuschku/libquassel/quassel/syncables/BufferViewManager.kt index 1b9097aaa..12e475f26 100644 --- a/lib/src/main/java/de/kuschku/libquassel/quassel/syncables/BufferViewManager.kt +++ b/lib/src/main/java/de/kuschku/libquassel/quassel/syncables/BufferViewManager.kt @@ -82,9 +82,9 @@ class BufferViewManager constructor( private val live_bufferViewConfigs: BehaviorSubject<Set<Int>> = BehaviorSubject.createDefault<Set<Int>>( emptySet()) - fun handleBuffer(info: BufferInfo, bufferSyncer: BufferSyncer) { + fun handleBuffer(info: BufferInfo, bufferSyncer: BufferSyncer, unhide: Boolean = false) { for (bufferViewConfig in bufferViewConfigs()) { - bufferViewConfig.handleBuffer(info, bufferSyncer) + bufferViewConfig.handleBuffer(info, bufferSyncer, unhide) } } } -- GitLab