From f4d0bf900c76f7329d30b2422759871e613cc9db Mon Sep 17 00:00:00 2001 From: Alex Hart Date: Tue, 27 Sep 2022 14:57:39 -0300 Subject: [PATCH] Add polish to story crossfader when exiting viewer. --- .../stories/viewer/StoryViewerFragment.kt | 5 +++++ .../viewer/page/StoryViewerPageFragment.kt | 19 +++++++++++++------ 2 files changed, 18 insertions(+), 6 deletions(-) diff --git a/app/src/main/java/org/thoughtcrime/securesms/stories/viewer/StoryViewerFragment.kt b/app/src/main/java/org/thoughtcrime/securesms/stories/viewer/StoryViewerFragment.kt index f558c50796..6c1201bd6e 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/stories/viewer/StoryViewerFragment.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/stories/viewer/StoryViewerFragment.kt @@ -145,6 +145,11 @@ class StoryViewerFragment : viewModel.addHiddenAndRefresh(setOf(recipientId)) } + override fun onContentTranslation(x: Float, y: Float) { + storyCrossfader.translationX = x + storyCrossfader.translationY = y + } + override fun onReadyToAnimate() { } diff --git a/app/src/main/java/org/thoughtcrime/securesms/stories/viewer/page/StoryViewerPageFragment.kt b/app/src/main/java/org/thoughtcrime/securesms/stories/viewer/page/StoryViewerPageFragment.kt index cb558c8b85..7d8547e874 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/stories/viewer/page/StoryViewerPageFragment.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/stories/viewer/page/StoryViewerPageFragment.kt @@ -214,6 +214,7 @@ class StoryViewerPageFragment : viewModel::goToNextPost, viewModel::goToPreviousPost, this::startReply, + requireListener()::onContentTranslation, sharedViewModel = sharedViewModel ) ) @@ -252,6 +253,8 @@ class StoryViewerPageFragment : .setDuration(100) .translationX(0f) .translationY(0f) + + requireListener().onContentTranslation(0f, 0f) } } @@ -1144,6 +1147,7 @@ class StoryViewerPageFragment : private val onGoToNext: () -> Unit, private val onGoToPrevious: () -> Unit, private val onReplyToPost: () -> Unit, + private val onContentTranslation: (Float, Float) -> Unit, private val viewToTranslate: View = container.parent as View, private val sharedViewModel: StoryViewerViewModel ) : GestureDetector.SimpleOnGestureListener() { @@ -1194,6 +1198,8 @@ class StoryViewerPageFragment : viewToTranslate.animate().cancel() viewToTranslate.translationX = distance + onContentTranslation(viewToTranslate.translationX, viewToTranslate.translationY) + return true } @@ -1303,12 +1309,6 @@ class StoryViewerPageFragment : sharedViewModel.setContentIsReady() } - interface Callback { - fun onGoToPreviousStory(recipientId: RecipientId) - fun onFinishedPosts(recipientId: RecipientId) - fun onStoryHidden(recipientId: RecipientId) - } - override fun userHasSeenFirstNavigationView(): Boolean { return SignalStore.storyValues().userHasSeenFirstNavView } @@ -1333,4 +1333,11 @@ class StoryViewerPageFragment : override fun onCanceled() { viewModel.setIsDisplayingPartialSendDialog(false) } + + interface Callback { + fun onGoToPreviousStory(recipientId: RecipientId) + fun onFinishedPosts(recipientId: RecipientId) + fun onStoryHidden(recipientId: RecipientId) + fun onContentTranslation(x: Float, y: Float) + } }