1
0
Fork 0

#7700 fixed scrolling, parallax action to match both images and some code clean up

master
Marc Leclair 2020-02-04 01:13:20 -05:00 committed by Jeff Boek
parent 72007590f7
commit 92b38206c7
2 changed files with 26 additions and 37 deletions

View File

@ -137,6 +137,7 @@ class HomeFragment : Fragment() {
data class PendingSessionDeletion(val deletionJob: (suspend () -> Unit), val sessionId: String)
private lateinit var homeAppBarOffSetListener : AppBarLayout.OnOffsetChangedListener
private val onboarding by lazy { FenixOnboarding(requireContext()) }
private lateinit var homeFragmentStore: HomeFragmentStore
private lateinit var sessionControlInteractor: SessionControlInteractor
@ -205,20 +206,10 @@ class HomeFragment : Fragment() {
showDeleteCollectionPrompt = ::showDeleteCollectionPrompt
)
)
view.homeAppBar.addOnOffsetChangedListener(
AppBarLayout.OnOffsetChangedListener { appBarLayout, verticalOffset ->
appBarLayout.alpha =
1.0f - abs(verticalOffset / appBarLayout.totalScrollRange.toFloat())
}
)
updateLayout(view)
setOffset(view)
sessionControlView = SessionControlView(homeFragmentStore,
view.sessionControlRecyclerView, sessionControlInteractor)
updateLayout(view)
activity.themeManager.applyStatusBarTheme(activity)
return view
}
@ -226,33 +217,25 @@ class HomeFragment : Fragment() {
private fun updateLayout(view: View) {
val shouldUseBottomToolbar = view.context.settings().shouldUseBottomToolbar
if(!shouldUseBottomToolbar){
view.toolbarLayout.layoutParams = CoordinatorLayout.LayoutParams(ConstraintLayout.LayoutParams.MATCH_PARENT, ConstraintLayout.LayoutParams.WRAP_CONTENT)
.apply {
gravity = Gravity.TOP
}
}
val headingsTopMargins = if (shouldUseBottomToolbar) { HEADER_MARGIN } else { TOP_TOOLBAR_HEADER_MARGIN }
val sessionControlViewTopMargin = if (shouldUseBottomToolbar) {
SESSION_CONTROL_VIEW_TOP_MARGIN
} else {
SESSION_CONTROL_VIEW_TOP_TOOLBAR_MARGIN
}
view.wordmark.updateLayoutParams<ViewGroup.MarginLayoutParams> {
topMargin = headingsTopMargins.dpToPx(resources.displayMetrics)
}
sessionControlView!!.view.updateLayoutParams<ViewGroup.MarginLayoutParams> {
topMargin = sessionControlViewTopMargin.dpToPx(resources.displayMetrics)
}
if (!shouldUseBottomToolbar) {
view.privateBrowsingButton.updateLayoutParams<ViewGroup.MarginLayoutParams> {
topMargin = PRIVATE_BROWSING_BUTTON_TOP_MARGIN.dpToPx(resources.displayMetrics)
view.homeAppBar.updateLayoutParams<ViewGroup.MarginLayoutParams>{
topMargin = HEADER_MARGIN.dpToPx(resources.displayMetrics)
}
createNewAppBarListener(HEADER_MARGIN.dpToPx(resources.displayMetrics).toFloat())
view.homeAppBar.addOnOffsetChangedListener(
homeAppBarOffSetListener
)
}else {
createNewAppBarListener(0F)
view.homeAppBar.addOnOffsetChangedListener(
homeAppBarOffSetListener
)
}
}
@ExperimentalCoroutinesApi
@ -342,6 +325,7 @@ class HomeFragment : Fragment() {
override fun onDestroyView() {
sessionControlView = null
view!!.homeAppBar.removeOnOffsetChangedListener(homeAppBarOffSetListener)
super.onDestroyView()
}
@ -846,6 +830,13 @@ class HomeFragment : Fragment() {
}
}
private fun createNewAppBarListener(margin : Float){
homeAppBarOffSetListener = AppBarLayout.OnOffsetChangedListener { appBarLayout, verticalOffset ->
val reduceScrollRanged = appBarLayout.totalScrollRange.toFloat() - margin
appBarLayout.alpha = 1.0f - abs(verticalOffset / reduceScrollRanged)
}
}
companion object {
private const val NON_TAB_ITEM_NUM = 3
private const val ANIM_SCROLL_DELAY = 100L
@ -858,10 +849,6 @@ class HomeFragment : Fragment() {
// Layout
private const val HEADER_MARGIN = 60
private const val TOP_TOOLBAR_HEADER_MARGIN = 120
private const val SESSION_CONTROL_VIEW_TOP_MARGIN = 32
private const val SESSION_CONTROL_VIEW_TOP_TOOLBAR_MARGIN = 64
private const val PRIVATE_BROWSING_BUTTON_TOP_MARGIN = 40
}
}

View File

@ -37,7 +37,8 @@
android:background="?android:attr/selectableItemBackgroundBorderless"
android:contentDescription="@string/content_description_private_browsing_button"
app:srcCompat="@drawable/private_browsing_button"
app:layout_collapseMode="parallax"/>
app:layout_collapseMode="parallax"
app:layout_collapseParallaxMultiplier=".8"/>
<ImageView
android:id="@+id/wordmark"
@ -52,7 +53,8 @@
android:focusable="false"
android:importantForAccessibility="no"
app:srcCompat="?fenixLogo"
app:layout_collapseMode="pin"/>
app:layout_collapseMode="parallax"
app:layout_collapseParallaxMultiplier=".1"/>
</com.google.android.material.appbar.CollapsingToolbarLayout>