diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversationlist/ConversationFilterBehavior.kt b/app/src/main/java/org/thoughtcrime/securesms/conversationlist/ConversationFilterBehavior.kt index 377656adb8..9486141613 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversationlist/ConversationFilterBehavior.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/conversationlist/ConversationFilterBehavior.kt @@ -22,14 +22,14 @@ class ConversationFilterBehavior(context: Context, attributeSet: AttributeSet) : override fun onStopNestedScroll(coordinatorLayout: CoordinatorLayout, child: AppBarLayout, target: View, type: Int) { super.onStopNestedScroll(coordinatorLayout, child, target, type) - child.setExpanded(false, true) callback?.onStopNestedScroll() + child.setExpanded(false, true) } override fun onTouchEvent(parent: CoordinatorLayout, child: AppBarLayout, ev: MotionEvent): Boolean { if (ev.action == MotionEvent.ACTION_UP) { - child.setExpanded(false, true) callback?.onStopNestedScroll() + child.setExpanded(false, true) } return super.onTouchEvent(parent, child, ev) } diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversationlist/chatfilter/ConversationListFilterPullView.kt b/app/src/main/java/org/thoughtcrime/securesms/conversationlist/chatfilter/ConversationListFilterPullView.kt index 8ae05c6271..ae2afd5bc9 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversationlist/chatfilter/ConversationListFilterPullView.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/conversationlist/chatfilter/ConversationListFilterPullView.kt @@ -78,6 +78,7 @@ class ConversationListFilterPullView @JvmOverloads constructor( private val velocityTracker = ProgressVelocityTracker(5) private var animateHelpText = 0 private var helpTextStartFraction = 0.35f + private var previousDragProgress: Float? = null private val pillDefaultBackgroundTint = ContextCompat.getColor(context, CoreUiR.color.signal_colorSecondaryContainer) private val pillWillCloseBackgroundTint = ContextCompat.getColor(context, CoreUiR.color.signal_colorSurface1) @@ -114,6 +115,9 @@ class ConversationListFilterPullView @JvmOverloads constructor( } fun onUserDrag(progress: Float) { + val previousProgress = previousDragProgress ?: progress + val enteredApexFromBelow = previousProgress < 1f && progress >= 1f + binding.filterCircle.progress = progress if (state == FilterPullState.CLOSED && progress <= 0) { @@ -123,7 +127,7 @@ class ConversationListFilterPullView @JvmOverloads constructor( vibrate() resetHelpText() resetPillColor() - } else if (state == FilterPullState.OPEN && progress >= 1f) { + } else if (state == FilterPullState.OPEN && enteredApexFromBelow) { setState(FilterPullState.CLOSE_APEX, ConversationFilterSource.DRAG) vibrate() animatePillColor() @@ -167,6 +171,8 @@ class ConversationListFilterPullView @JvmOverloads constructor( if (state == FilterPullState.CLOSE_APEX) { binding.filterText.alpha = FilterLerp.getPillCloseApexAlphaLerp(progress) } + + previousDragProgress = progress } fun onUserDragFinished() {