From f387785a46b0289f0b7ce417705f27ecd02ea76c Mon Sep 17 00:00:00 2001 From: Alex Hart Date: Tue, 3 Jan 2023 12:22:52 -0400 Subject: [PATCH] Add chat filter pill fade out on slide close. --- .../chatfilter/ConversationListFilterPullView.kt | 4 ++++ .../conversationlist/chatfilter/FilterLerp.kt | 10 ++++++++++ 2 files changed, 14 insertions(+) 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 e1894645eb..fdc56a5eb7 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 @@ -103,6 +103,10 @@ class ConversationListFilterPullView @JvmOverloads constructor( } else { binding.filterText.translationY = 0f } + + if (state == FilterPullState.CLOSE_APEX) { + binding.filterText.alpha = FilterLerp.getPillCloseApexAlphaLerp(progress) + } } fun onUserDragFinished() { diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversationlist/chatfilter/FilterLerp.kt b/app/src/main/java/org/thoughtcrime/securesms/conversationlist/chatfilter/FilterLerp.kt index dfa9b1d4ee..9168bbe8be 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversationlist/chatfilter/FilterLerp.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/conversationlist/chatfilter/FilterLerp.kt @@ -3,6 +3,7 @@ package org.thoughtcrime.securesms.conversationlist.chatfilter import android.animation.FloatEvaluator import androidx.annotation.FloatRange import org.signal.core.util.dp +import org.thoughtcrime.securesms.util.Util /** * Centralized location for filter view linear interpolations. @@ -37,6 +38,11 @@ object FilterLerp { Point(1f, FILTER_APEX * 0.55f) ) + private val PILL_CLOSE_APEX_ALPHA_LERP = getFn( + Point(0.35f * FILTER_APEX / 100, 0f), + Point(0.7f * FILTER_APEX / 100, 1f) + ) + private fun helpTextAlphaLerp(@FloatRange(from = 0.0, to = 1.0) startFraction: Float) = getFn( Point(startFraction, 0f), Point(1f, 1f) @@ -46,6 +52,10 @@ object FilterLerp { return getLerp(fraction, helpTextAlphaLerp(startFraction)) } + fun getPillCloseApexAlphaLerp(fraction: Float): Float { + return Util.clamp(getLerp(fraction, PILL_CLOSE_APEX_ALPHA_LERP), 0f, 1f) + } + /** * Get the LERP for the "Filter enabled" pill. */