diff --git a/app/src/main/java/org/mozilla/fenix/browser/BrowserFragment.kt b/app/src/main/java/org/mozilla/fenix/browser/BrowserFragment.kt index 423c1a241..abcd0402c 100644 --- a/app/src/main/java/org/mozilla/fenix/browser/BrowserFragment.kt +++ b/app/src/main/java/org/mozilla/fenix/browser/BrowserFragment.kt @@ -181,6 +181,12 @@ class BrowserFragment : Fragment(), BackHandler, CoroutineScope { } } + sharedElementEnterTransition = + TransitionInflater.from(context).inflateTransition(android.R.transition.move).setDuration( + SHARED_TRANSITION_MS + ) + startPostponedEnterTransition() + QuickActionComponent( view.nestedScrollQuickAction, ActionBusFactory.get(this), @@ -223,9 +229,6 @@ class BrowserFragment : Fragment(), BackHandler, CoroutineScope { view = view ) - sharedElementEnterTransition = TransitionInflater.from(context).inflateTransition(android.R.transition.move) - startPostponedEnterTransition() - val sessionManager = requireComponents.core.sessionManager contextMenuFeature.set( @@ -829,6 +832,7 @@ class BrowserFragment : Fragment(), BackHandler, CoroutineScope { } companion object { + private const val SHARED_TRANSITION_MS = 200L private const val TAB_ITEM_TRANSITION_NAME = "tab_item" private const val REQUEST_CODE_DOWNLOAD_PERMISSIONS = 1 private const val REQUEST_CODE_PROMPT_PERMISSIONS = 2 diff --git a/app/src/main/java/org/mozilla/fenix/home/HomeFragment.kt b/app/src/main/java/org/mozilla/fenix/home/HomeFragment.kt index 7a01fa79b..4f735025a 100644 --- a/app/src/main/java/org/mozilla/fenix/home/HomeFragment.kt +++ b/app/src/main/java/org/mozilla/fenix/home/HomeFragment.kt @@ -15,16 +15,11 @@ import android.view.ViewGroup import android.view.ViewTreeObserver import androidx.appcompat.app.AlertDialog import androidx.appcompat.app.AppCompatActivity -import androidx.constraintlayout.motion.widget.MotionLayout -import androidx.constraintlayout.motion.widget.MotionScene import androidx.constraintlayout.widget.ConstraintLayout.LayoutParams.PARENT_ID import androidx.fragment.app.Fragment import androidx.lifecycle.Observer import androidx.lifecycle.ViewModelProviders -import androidx.navigation.NavController -import androidx.navigation.NavDirections import androidx.navigation.Navigation -import androidx.navigation.Navigator import androidx.navigation.fragment.FragmentNavigator import androidx.navigation.fragment.NavHostFragment.findNavController import androidx.transition.TransitionInflater @@ -109,6 +104,7 @@ class HomeFragment : Fragment(), CoroutineScope, AccountObserver { super.onCreate(savedInstanceState) postponeEnterTransition() sharedElementEnterTransition = TransitionInflater.from(context).inflateTransition(android.R.transition.move) + .setDuration(SHARED_TRANSITION_MS) sessionObserver = BrowserSessionsObserver(requireComponents.core.sessionManager, singleSessionObserver) { emitSessionChanges() @@ -202,16 +198,7 @@ class HomeFragment : Fragment(), CoroutineScope, AccountObserver { FragmentNavigator.Extras.Builder() .addSharedElement(toolbar_wrapper, "toolbar_wrapper_transition") .build() - - if (homeLayout.progress == 1.0F) { - Navigation.findNavController(it).navigate(directions, extras) - } else { - homeLayout.setTransitionDuration(TRANSITION_DURATION_MOTION) - homeLayout.transitionToEnd() - val listener = getTransitionListener(Navigation.findNavController(it), directions, extras) - homeLayout.setTransitionListener(listener) - } - + Navigation.findNavController(it).navigate(directions, extras) requireComponents.analytics.metrics.track(Event.SearchBarTapped(Event.SearchBarTapped.Source.HOME)) } @@ -240,26 +227,6 @@ class HomeFragment : Fragment(), CoroutineScope, AccountObserver { homeDividerShadow.bringToFront() } - private fun getTransitionListener( - navController: NavController, - directions: NavDirections, - extras: Navigator.Extras - ) = object : MotionLayout.TransitionListener { - override fun onTransitionTrigger(p0: MotionLayout?, p1: Int, p2: Boolean, p3: Float) {} - - override fun allowsTransition(p0: MotionScene.Transition?): Boolean { - return true - } - - override fun onTransitionStarted(p0: MotionLayout?, p1: Int, p2: Int) { - navController.navigate(directions, extras) - } - - override fun onTransitionChange(p0: MotionLayout?, p1: Int, p2: Int, p3: Float) {} - - override fun onTransitionCompleted(p0: MotionLayout?, p1: Int) {} - } - override fun onDestroyView() { homeMenu = null job.cancel() @@ -689,7 +656,7 @@ class HomeFragment : Fragment(), CoroutineScope, AccountObserver { override fun onProfileUpdated(profile: Profile) { emitAccountChanges() } companion object { - private const val TRANSITION_DURATION_MOTION = 400 + private const val SHARED_TRANSITION_MS = 200L private const val TAB_ITEM_TRANSITION_NAME = "tab_item" private const val toolbarPaddingDp = 12f private const val MOTION_LAYOUT_PROGRESS_ROUND_POINT = 0.25f diff --git a/app/src/main/java/org/mozilla/fenix/search/SearchFragment.kt b/app/src/main/java/org/mozilla/fenix/search/SearchFragment.kt index 614b85c60..36dba8420 100644 --- a/app/src/main/java/org/mozilla/fenix/search/SearchFragment.kt +++ b/app/src/main/java/org/mozilla/fenix/search/SearchFragment.kt @@ -63,7 +63,10 @@ class SearchFragment : Fragment(), BackHandler { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) postponeEnterTransition() - sharedElementEnterTransition = TransitionInflater.from(context).inflateTransition(android.R.transition.move) + sharedElementEnterTransition = + TransitionInflater.from(context).inflateTransition(android.R.transition.move).setDuration( + SHARED_TRANSITION_MS + ) } override fun onCreateView( @@ -321,6 +324,7 @@ class SearchFragment : Fragment(), BackHandler { } companion object { + private const val SHARED_TRANSITION_MS = 150L private const val REQUEST_CODE_CAMERA_PERMISSIONS = 1 } }