From 92ef507810cd6e718ca55bf3a03e4450314d5a54 Mon Sep 17 00:00:00 2001 From: Matthew Chen Date: Tue, 21 Nov 2017 11:01:20 -0500 Subject: [PATCH] Make swipe-for-details RTL-safe. --- Signal/src/UserInterface/SlideOffAnimatedTransition.swift | 4 ++-- .../ConversationView/ConversationViewController.m | 5 +++-- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/Signal/src/UserInterface/SlideOffAnimatedTransition.swift b/Signal/src/UserInterface/SlideOffAnimatedTransition.swift index ce2a73218..867edefe0 100644 --- a/Signal/src/UserInterface/SlideOffAnimatedTransition.swift +++ b/Signal/src/UserInterface/SlideOffAnimatedTransition.swift @@ -20,7 +20,7 @@ class SlideOffAnimatedTransition: NSObject, UIViewControllerAnimatedTransitionin } let width = containerView.frame.width - let offsetLeft = fromView.frame.offsetBy(dx: -width, dy: 0) + let offsetFrame = fromView.frame.offsetBy(dx: (containerView.isRTL() ? +width : -width), dy: 0) toView.frame = fromView.frame fromView.layer.shadowRadius = 15.0 @@ -29,7 +29,7 @@ class SlideOffAnimatedTransition: NSObject, UIViewControllerAnimatedTransitionin containerView.insertSubview(toView, belowSubview: fromView) UIView.animate(withDuration: transitionDuration(using: transitionContext), delay:0, options: .curveLinear, animations: { - fromView.frame = offsetLeft + fromView.frame = offsetFrame toView.layer.opacity = 1.0 fromView.layer.shadowOpacity = 0.1 diff --git a/Signal/src/ViewControllers/ConversationView/ConversationViewController.m b/Signal/src/ViewControllers/ConversationView/ConversationViewController.m index 07f206c47..ea7920910 100644 --- a/Signal/src/ViewControllers/ConversationView/ConversationViewController.m +++ b/Signal/src/ViewControllers/ConversationView/ConversationViewController.m @@ -4211,8 +4211,9 @@ typedef NS_ENUM(NSInteger, MessagesRangeSizeMode) { { self.currentShowMessageDetailsPanGesture = gestureRecognizer; - const CGFloat leftTranslation = -1 * [gestureRecognizer translationInView:self.view].x; - const CGFloat ratioComplete = Clamp(leftTranslation / self.view.frame.size.width, 0, 1); + const CGFloat swipeTranslation + = ([gestureRecognizer translationInView:self.view].x * (self.view.isRTL ? +1.f : -1.f)); + const CGFloat ratioComplete = Clamp(swipeTranslation / self.view.frame.size.width, 0, 1); switch (gestureRecognizer.state) { case UIGestureRecognizerStateBegan: {