From ff410a0f956ff856a8dae8fc91f251f1226b44a6 Mon Sep 17 00:00:00 2001 From: Emily Kager Date: Thu, 23 May 2019 10:48:26 -0700 Subject: [PATCH] [fenix] Restore progress --- .../org/mozilla/fenix/home/HomeFragment.kt | 20 ++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) 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 9ed5cd27b..f1bb40c52 100644 --- a/app/src/main/java/org/mozilla/fenix/home/HomeFragment.kt +++ b/app/src/main/java/org/mozilla/fenix/home/HomeFragment.kt @@ -12,6 +12,7 @@ import android.view.ContextThemeWrapper import android.view.LayoutInflater import android.view.View import android.view.ViewGroup +import android.view.ViewTreeObserver import androidx.appcompat.app.AlertDialog import androidx.appcompat.app.AppCompatActivity import androidx.constraintlayout.widget.ConstraintLayout.LayoutParams.PARENT_ID @@ -137,6 +138,16 @@ class HomeFragment : Fragment(), CoroutineScope, AccountObserver { } } + postponeEnterTransition() + val listener = object : ViewTreeObserver.OnPreDrawListener { + override fun onPreDraw(): Boolean { + startPostponedEnterTransition() + sessionControlComponent.view.viewTreeObserver.removeOnPreDrawListener(this) + return true + } + } + sessionControlComponent.view.viewTreeObserver.addOnPreDrawListener(listener) + ActionBusFactory.get(this).logMergedObservables() val activity = activity as HomeActivity DefaultThemeManager.applyStatusBarTheme(activity.window, activity.themeManager, activity) @@ -165,13 +176,6 @@ class HomeFragment : Fragment(), CoroutineScope, AccountObserver { } } - postponeEnterTransition() - sessionControlComponent.view.getViewTreeObserver() - .addOnPreDrawListener { - startPostponedEnterTransition() - true - } - view.menuButton.setOnClickListener { homeMenu?.menuBuilder?.build(requireContext())?.show( anchor = it, @@ -242,6 +246,8 @@ class HomeFragment : Fragment(), CoroutineScope, AccountObserver { homeViewModel?.layoutManagerState?.also { parcelable -> sessionControlComponent.view.layoutManager?.onRestoreInstanceState(parcelable) } + homeLayout?.progress = + if (homeViewModel?.motionLayoutProgress ?: 0F > MOTION_LAYOUT_PROGRESS_ROUND_POINT) 1.0f else 0f homeViewModel?.layoutManagerState = null } }