From 848be8f806af2db1c040ad38d01002c06bcd4f7e Mon Sep 17 00:00:00 2001 From: Viktor De Pasquale Date: Fri, 6 Dec 2019 18:06:59 +0100 Subject: [PATCH] Fixed rtl for reveal animations --- .../java/com/topjohnwu/magisk/utils/MotionRevealHelper.kt | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/com/topjohnwu/magisk/utils/MotionRevealHelper.kt b/app/src/main/java/com/topjohnwu/magisk/utils/MotionRevealHelper.kt index df7254c1f..5fe6fc09e 100644 --- a/app/src/main/java/com/topjohnwu/magisk/utils/MotionRevealHelper.kt +++ b/app/src/main/java/com/topjohnwu/magisk/utils/MotionRevealHelper.kt @@ -5,6 +5,7 @@ import android.animation.AnimatorSet import android.animation.ObjectAnimator import android.view.View import androidx.core.animation.addListener +import androidx.core.text.layoutDirection import androidx.core.view.isInvisible import androidx.core.view.isVisible import androidx.core.view.marginBottom @@ -61,9 +62,9 @@ object MotionRevealHelper { it.interpolator = FastOutSlowInInterpolator() it.addListener(onStart = { show() }, onEnd = { if (revealInfo.radius != 0f) hide() }) - // fixme rtl + val rtlMod = if (currentLocale.layoutDirection == View.LAYOUT_DIRECTION_RTL) 1f else -1f val maxX = revealInfo.centerX - marginEnd - measuredWidth / 2f - val targetX = if (revealInfo.radius == 0f) 0f else -maxX + val targetX = if (revealInfo.radius == 0f) 0f else maxX * rtlMod val moveX = ObjectAnimator.ofFloat(this, View.TRANSLATION_X, targetX) val maxY = revealInfo.centerY - marginBottom - measuredHeight / 2f