@ -5,6 +5,7 @@
package org.mozilla.fenix.browser
package org.mozilla.fenix.browser
import android.animation.ValueAnimator
import android.animation.ValueAnimator
import android.content.Context
import android.graphics.Color
import android.graphics.Color
import android.graphics.drawable.ColorDrawable
import android.graphics.drawable.ColorDrawable
import android.os.Bundle
import android.os.Bundle
@ -15,10 +16,13 @@ import androidx.core.graphics.drawable.toDrawable
import androidx.fragment.app.Fragment
import androidx.fragment.app.Fragment
import androidx.lifecycle.LifecycleCoroutineScope
import androidx.lifecycle.LifecycleCoroutineScope
import androidx.lifecycle.lifecycleScope
import androidx.lifecycle.lifecycleScope
import androidx.navigation.NavOptions
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.delay
import kotlinx.coroutines.delay
import kotlinx.coroutines.launch
import kotlinx.coroutines.launch
import mozilla.components.concept.engine.EngineView
import mozilla.components.concept.engine.EngineView
import org.mozilla.fenix.R
import org.mozilla.fenix.ext.settings
import java.lang.ref.WeakReference
import java.lang.ref.WeakReference
/ * *
/ * *
@ -43,8 +47,10 @@ class BrowserAnimator(
private val browserZoomInValueAnimator = ValueAnimator . ofFloat ( 0f , END _ANIMATOR _VALUE ) . apply {
private val browserZoomInValueAnimator = ValueAnimator . ofFloat ( 0f , END _ANIMATOR _VALUE ) . apply {
addUpdateListener {
addUpdateListener {
unwrappedSwipeRefresh ?. scaleX = STARTING _XY _SCALE + XY _SCALE _MULTIPLIER * it . animatedFraction
unwrappedSwipeRefresh ?. scaleX =
unwrappedSwipeRefresh ?. scaleY = STARTING _XY _SCALE + XY _SCALE _MULTIPLIER * it . animatedFraction
STARTING _XY _SCALE + XY _SCALE _MULTIPLIER * it . animatedFraction
unwrappedSwipeRefresh ?. scaleY =
STARTING _XY _SCALE + XY _SCALE _MULTIPLIER * it . animatedFraction
unwrappedSwipeRefresh ?. alpha = it . animatedFraction
unwrappedSwipeRefresh ?. alpha = it . animatedFraction
}
}
@ -154,5 +160,19 @@ class BrowserAnimator(
private const val END _ANIMATOR _VALUE = 500f
private const val END _ANIMATOR _VALUE = 500f
private const val XY _SCALE _MULTIPLIER = . 05f
private const val XY _SCALE _MULTIPLIER = . 05f
private const val STARTING _XY _SCALE = . 95f
private const val STARTING _XY _SCALE = . 95f
fun getToolbarNavOptions ( context : Context ) : NavOptions {
val navOptions = NavOptions . Builder ( )
if ( ! context . settings ( ) . shouldUseBottomToolbar ) {
navOptions . setEnterAnim ( R . anim . fade _in )
navOptions . setExitAnim ( R . anim . fade _out )
} else {
navOptions . setEnterAnim ( R . anim . fade _in _up )
navOptions . setExitAnim ( R . anim . fade _out _down )
}
return navOptions . build ( )
}
}
}
}
}