8000 Programmatically disable omnibar scrolling on new tab page (#432) · rzoro/Android@71360c8 · GitHub
[go: up one dir, main page]

Skip to content

Commit 71360c8

Browse files
authored
Programmatically disable omnibar scrolling on new tab page (duckduckgo#432)
1 parent 651d545 commit 71360c8

File tree

3 files changed

+48
-0
lines changed

3 files changed

+48
-0
lines changed

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

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,7 @@ import com.duckduckgo.app.browser.downloader.FileDownloader
6363
import com.duckduckgo.app.browser.downloader.FileDownloader.PendingFileDownload
6464
import com.duckduckgo.app.browser.filechooser.FileChooserIntentBuilder
6565
import com.duckduckgo.app.browser.omnibar.KeyboardAwareEditText
66+
import com.duckduckgo.app.browser.omnibar.OmnibarScrolling
6667
import com.duckduckgo.app.browser.session.WebViewSessionStorage
6768
import com.duckduckgo.app.browser.shortcut.ShortcutBuilder
6869
import com.duckduckgo.app.browser.useragent.UserAgentProvider
@@ -130,6 +131,9 @@ class BrowserTabFragment : Fragment(), FindListener {
130131
@Inject
131132
lateinit var ctaViewModel: CtaViewModel
132133

134+
@Inject
135+
lateinit var omnibarScrolling: OmnibarScrolling
136+
133137
val tabId get() = arguments!![TAB_ID_ARG] as String
134138

135139
private val initialUrl get() = arguments!![URL_EXTRA_ARG] as String?
@@ -940,9 +944,11 @@ class BrowserTabFragment : Fragment(), FindListener {
940944
val browserShowing = viewState.browserShowing
941945
if (browserShowing) {
942946
webView?.show()
947+
omnibarScrolling.enableOmnibarScrolling(toolbarContainer)
943948
} else {
944949
logoHidingLayoutChangeListener.callToActionView = ctaContainer
945950
webView?.hide()
951+
omnibarScrolling.disableOmnibarScrolling(toolbarContainer)
946952
}
947953

948954
toggleDesktopSiteMode(viewState.isDesktopBrowsingMode)
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
/*
2+
* Copyright (c) 2019 DuckDuckGo
3+
*
4+
* Licensed under the Apache License, Version 2.0 (the "License");
5+
* you may not use this file except in compliance with the License.
6+
* You may obtain a copy of the License at
7+
*
8+
* http://www.apache.org/licenses/LICENSE-2.0
9+
*
10+
* Unless required by applicable law or agreed to in writing, software
11+
* distributed under the License is distributed on an "AS IS" BASIS,
12+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13+
* See the License for the specific language governing permissions and
14+
* limitations under the License.
15+
*/
16+
17+
package com.duckduckgo.app.browser.omnibar
18+
19+
import android.view.View
20+
import com.google.android.material.appbar.AppBarLayout
21+
import com.google.android.material.appbar.AppBarLayout.LayoutParams.SCROLL_FLAG_ENTER_ALWAYS
22+
import com.google.android.material.appbar.AppBarLayout.LayoutParams.SCROLL_FLAG_SCROLL
23+
import javax.inject.Inject
24+
25+
26+
class OmnibarScrolling @Inject constructor() {
27+
28+
fun enableOmnibarScrolling(toolbarContainer: View) {
29+
updateScrollFlag(SCROLL_FLAG_SCROLL or SCROLL_FLAG_ENTER_ALWAYS, toolbarContainer)
30+
}
31+
32+
fun disableOmnibarScrolling(toolbarContainer: View) {
33+
updateScrollFlag(0, toolbarContainer)
34+
}
35+
36+
private fun updateScrollFlag(flags: Int, toolbarContainer: View) {
37+
val params = toolbarContainer.layoutParams as AppBarLayout.LayoutParams
38+
params.scrollFlags = flags
39+
8873 toolbarContainer.layoutParams = params
40+
}
41+
}

app/src/main/res/layout/include_omnibar_toolbar.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@
3232
app:layout_scrollFlags="scroll|enterAlways">
3333

3434
<androidx.constraintlayout.widget.ConstraintLayout
35+
android:id="@+id/toolbarContainer"
3536
android:layout_width="match_parent"
3637
android:layout_height="match_parent"
3738
app:layout_scrollFlags="scroll|enterAlways">

0 commit comments

Comments
 (0)
0