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

Fixes #185

parent 1c0bc5e0
No related branches found
No related tags found
No related merge requests found
...@@ -46,6 +46,8 @@ import de.kuschku.libquassel.quassel.syncables.BufferViewConfig ...@@ -46,6 +46,8 @@ import de.kuschku.libquassel.quassel.syncables.BufferViewConfig
import de.kuschku.libquassel.quassel.syncables.interfaces.INetwork import de.kuschku.libquassel.quassel.syncables.interfaces.INetwork
import de.kuschku.libquassel.util.flag.hasFlag import de.kuschku.libquassel.util.flag.hasFlag
import de.kuschku.libquassel.util.flag.minus import de.kuschku.libquassel.util.flag.minus
import de.kuschku.libquassel.util.helpers.mapMap
import de.kuschku.libquassel.util.helpers.mapOrElse
import de.kuschku.libquassel.util.helpers.nullIf import de.kuschku.libquassel.util.helpers.nullIf
import de.kuschku.libquassel.util.helpers.value import de.kuschku.libquassel.util.helpers.value
import de.kuschku.quasseldroid.R import de.kuschku.quasseldroid.R
...@@ -461,8 +463,14 @@ class BufferViewConfigFragment : ServiceBoundFragment() { ...@@ -461,8 +463,14 @@ class BufferViewConfigFragment : ServiceBoundFragment() {
}) })
chatListToolbar.inflateMenu(R.menu.context_bufferlist) chatListToolbar.inflateMenu(R.menu.context_bufferlist)
chatListToolbar.menu.findItem(R.id.action_search).isChecked = viewModel.bufferSearchTemporarilyVisible.value
chatListToolbar.setOnMenuItemClickListener { item -> chatListToolbar.setOnMenuItemClickListener { item ->
when (item.itemId) { when (item.itemId) {
R.id.action_search -> {
item.isChecked = !item.isChecked
viewModel.bufferSearchTemporarilyVisible.onNext(item.isChecked)
true
}
R.id.action_show_hidden -> { R.id.action_show_hidden -> {
item.isChecked = !item.isChecked item.isChecked = !item.isChecked
viewModel.showHidden.onNext(item.isChecked) viewModel.showHidden.onNext(item.isChecked)
...@@ -482,8 +490,18 @@ class BufferViewConfigFragment : ServiceBoundFragment() { ...@@ -482,8 +490,18 @@ class BufferViewConfigFragment : ServiceBoundFragment() {
hasSetBufferViewConfigId = false hasSetBufferViewConfigId = false
}) })
viewModel.bufferViewConfig.toLiveData().observe(this, Observer { val bufferSearchPermanentlyVisible = viewModel.bufferViewConfig
val visible = it.orNull()?.showSearch() ?: false .mapMap(BufferViewConfig::showSearch)
.mapOrElse(false)
combineLatest(viewModel.bufferSearchTemporarilyVisible, bufferSearchPermanentlyVisible)
.toLiveData().observe(this, Observer { (temporarily, permanently) ->
val visible = temporarily || permanently
val menuItem = chatListToolbar.menu.findItem(R.id.action_search)
menuItem.isVisible = !permanently
if (permanently) menuItem.isChecked = false
bufferSearchContainer.visibleIf(visible) bufferSearchContainer.visibleIf(visible)
if (!visible) bufferSearch.setText("") if (!visible) bufferSearch.setText("")
}) })
...@@ -515,6 +533,7 @@ class BufferViewConfigFragment : ServiceBoundFragment() { ...@@ -515,6 +533,7 @@ class BufferViewConfigFragment : ServiceBoundFragment() {
longClickListener(bufferId) longClickListener(bufferId)
} else { } else {
context?.let { context?.let {
viewModel.bufferSearchTemporarilyVisible.onNext(false)
ChatActivity.launch(it, bufferId = bufferId) ChatActivity.launch(it, bufferId = bufferId)
} }
} }
......
...@@ -18,6 +18,10 @@ ...@@ -18,6 +18,10 @@
--> -->
<menu xmlns:android="http://schemas.android.com/apk/res/android"> <menu xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:id="@+id/action_search"
android:checkable="true"
android:title="@string/label_search_buffer" />
<item <item
android:id="@+id/action_show_hidden" android:id="@+id/action_show_hidden"
android:checkable="true" android:checkable="true"
......
...@@ -102,7 +102,8 @@ ...@@ -102,7 +102,8 @@
<string name="label_rename">Rename</string> <string name="label_rename">Rename</string>
<string name="label_save">Save</string> <string name="label_save">Save</string>
<string name="label_saving">Saving…</string> <string name="label_saving">Saving…</string>
<string name="label_search_buffer">Search…</string> <string name="label_search">Search…</string>
<string name="label_search_buffer">Search Chats</string>
<string name="label_select">Select</string> <string name="label_select">Select</string>
<string name="label_send">Send</string> <string name="label_send">Send</string>
<string name="label_set_default">Set Default</string> <string name="label_set_default">Set Default</string>
......
...@@ -116,6 +116,8 @@ class QuasselViewModel : ViewModel() { ...@@ -116,6 +116,8 @@ class QuasselViewModel : ViewModel() {
}.mapSwitchMap(BufferViewConfig::liveUpdates) }.mapSwitchMap(BufferViewConfig::liveUpdates)
} }
val bufferSearchTemporarilyVisible = BehaviorSubject.createDefault(false)
val errors = sessionManager.switchMap { val errors = sessionManager.switchMap {
it.orNull()?.error ?: Observable.empty() it.orNull()?.error ?: Observable.empty()
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment