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 c819cb2ca6088797cf8279db855d575eab54930b..ec8eadcc96ade1723c8a4d477cfe3d21a06730ab 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 c15b4273c502a03491872dab9c42198b7b3ecd26..7b66da97df57fe4a74223c33af9474e7ff1b0463 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 1b9097aaa126c668ee506f056cf5ad30755700ce..12e475f26a08e44972f0fc9a215d974ec552fe41 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) } } }