Fix filter display when returning to conversation list from another tab.

This commit is contained in:
Alex Hart
2025-05-14 12:35:59 -03:00
committed by Michelle Tang
parent 28ecb37103
commit 918b792d83
2 changed files with 13 additions and 1 deletions

View File

@@ -869,6 +869,10 @@ public class ConversationListFragment extends MainFragment implements ActionMode
lifecycleDisposable.add(viewModel.getWebSocketState().subscribe(pipeState -> requireCallback().updateProxyStatus(pipeState)));
lifecycleDisposable.add(viewModel.getChatFolderState().subscribe(this::onChatFoldersChanged));
if (viewModel.getConversationFilterRequest().getFilter() == ConversationFilter.UNREAD) {
pullView.openAfterNextLayout();
}
appForegroundObserver = new AppForegroundObserver.Listener() {
@Override
public void onForeground() {

View File

@@ -20,6 +20,7 @@ import org.thoughtcrime.securesms.R
import org.thoughtcrime.securesms.animation.AnimationCompleteListener
import org.thoughtcrime.securesms.databinding.ConversationListFilterPullViewBinding
import org.thoughtcrime.securesms.util.VibrateUtil
import org.thoughtcrime.securesms.util.doAfterNextLayout
import org.thoughtcrime.securesms.util.doOnEachLayout
import kotlin.math.max
import kotlin.math.min
@@ -104,7 +105,7 @@ class ConversationListFilterPullView @JvmOverloads constructor(
doOnNextLayout {
when (restoredState.toLatestSettledState()) {
FilterPullState.OPEN -> toggle(restoredSource)
FilterPullState.OPEN -> open(restoredSource)
FilterPullState.CLOSED -> Unit
else -> throw IllegalStateException("Unexpected settled state.")
}
@@ -195,6 +196,7 @@ class ConversationListFilterPullView @JvmOverloads constructor(
}
fun openImmediate() {
println("openImmediate from $state")
if (state == FilterPullState.CLOSED) {
setState(FilterPullState.OPEN_APEX, source)
setState(FilterPullState.OPENING, source)
@@ -206,6 +208,12 @@ class ConversationListFilterPullView @JvmOverloads constructor(
}
}
fun openAfterNextLayout() {
doAfterNextLayout {
openImmediate()
}
}
private fun open(source: ConversationFilterSource) {
setState(FilterPullState.OPENING, source)
animatePillIn(source)