Skip to content

Commit db59b83

Browse files
committed
Updated scrolling.
1 parent 34e0ea0 commit db59b83

File tree

2 files changed

+29
-2
lines changed

2 files changed

+29
-2
lines changed

app/src/main/java/com/duckduckgo/app/browser/BrowserTabFragment.kt

Lines changed: 26 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1018,14 +1018,38 @@ class BrowserTabFragment :
10181018
// Move the trackersBlockedSlidingView in sync with the top omnibar.
10191019
binding.trackersBlockedSlidingView.translationY = -binding.trackersBlockedSlidingView.height * (1 - scrollFraction)
10201020
if (scrollFraction == 0.0f) {
1021-
binding.trackersBlockedSlidingView.gone()
1021+
binding.trackersBlockedSlidingView.post {
1022+
binding.trackersBlockedSlidingView.gone()
1023+
}
1024+
offsetTopBySlidingView(binding.browserLayout, scrollFraction)
10221025
} else {
10231026
if (binding.trackersBurstAnimationView.isAnimating) {
10241027
binding.trackersBurstAnimationView.cancelAnimation()
10251028
}
10261029
experimentTrackersCountAnimationHelper.animate(binding.trackers, viewModel.siteLiveData)
10271030
binding.website.text = viewModel.url?.extractDomain()
1028-
binding.trackersBlockedSlidingView.show()
1031+
binding.trackersBlockedSlidingView.post {
1032+
binding.trackersBlockedSlidingView.x = 0f
1033+
binding.trackersBlockedSlidingView.y = 0f
1034+
binding.trackersBlockedSlidingView.show()
1035+
}
1036+
offsetTopBySlidingView(binding.browserLayout, scrollFraction)
1037+
}
1038+
}
1039+
1040+
private fun offsetTopBySlidingView(
1041+
view: View?,
1042+
scrollFraction: Float,
1043+
) {
1044+
(view?.layoutParams as? CoordinatorLayout.LayoutParams)?.let { layoutParams ->
1045+
val newTopMargin =
1046+
binding.trackersBlockedSlidingView.measuredHeight - binding.trackersBlockedSlidingView.height * (1 - scrollFraction).toInt()
1047+
if (layoutParams.topMargin != newTopMargin) {
1048+
layoutParams.topMargin = newTopMargin
1049+
view.postOnAnimation {
1050+
view.requestLayout()
1051+
}
1052+
}
10291053
}
10301054
}
10311055

app/src/main/java/com/duckduckgo/app/browser/omnibar/TrackersBlockedViewSlideBehavior.kt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -93,14 +93,17 @@ class TrackersBlockedViewSlideBehavior(
9393
if (bottomOmnibar?.isOmnibarScrollingEnabled() == true && isSiteProtected()) {
9494
val translation = bottomOmnibar?.getTranslation() ?: 0f
9595
val bottomOmnibarHeight = bottomOmnibar?.height ?: 0
96+
val childHeight = child.height
9697
if (translation == 0f || translation < bottomOmnibarHeight || browserLayout?.isGone == true || bottomOmnibar?.isInsideScreen() == true) {
98+
browserLayout?.setPadding(0, 0, 0, 0)
9799
child.hide()
98100
} else {
99101
trackers?.let { experimentTrackersCountAnimationHelper.animate(it, siteLiveData) }
100102
website?.text = siteLiveData.value?.url?.extractDomain()
101103
if (trackersBurstAnimationView?.isAnimating == true) {
102104
trackersBurstAnimationView?.cancelAnimation()
103105
}
106+
browserLayout?.setPadding(0, 0, 0, childHeight)
104107
child.show()
105108
}
106109
child.postOnAnimation {

0 commit comments

Comments
 (0)