1
0
Fork 0

For #6820: Place address bar at top or bottom of the home screen based on user preference

master
David Walsh 2020-01-22 11:06:26 -06:00 committed by Jeff Boek
parent 97915107eb
commit 4b3effdfab
2 changed files with 57 additions and 17 deletions

View File

@ -202,25 +202,61 @@ class HomeFragment : Fragment() {
sessionControlView = SessionControlView(homeFragmentStore, view.homeLayout, sessionControlInteractor)
ConstraintSet().apply {
clone(view.homeLayout)
connect(sessionControlView.view.id, TOP, view.wordmark.id, BOTTOM)
connect(sessionControlView.view.id, START, PARENT_ID, START)
connect(sessionControlView.view.id, END, PARENT_ID, END)
connect(sessionControlView.view.id, BOTTOM, view.bottom_bar.id, TOP)
applyTo(view.homeLayout)
}
@Suppress("MagicNumber") // we need constants if we define layouts in code.
sessionControlView.view.updateLayoutParams<ViewGroup.MarginLayoutParams> {
topMargin = 32.dpToPx(resources.displayMetrics)
}
updateLayout(view)
activity.themeManager.applyStatusBarTheme(activity)
return view
}
private fun updateLayout(view: View) {
var shouldUseBottomToolbar = view.context.settings().shouldUseBottomToolbar
ConstraintSet().apply {
clone(view.homeLayout)
if (shouldUseBottomToolbar) {
connect(sessionControlView.view.id, TOP, view.wordmark.id, BOTTOM)
connect(sessionControlView.view.id, BOTTOM, view.bottom_bar.id, TOP)
connect(view.bottom_bar.id, BOTTOM, PARENT_ID, BOTTOM)
connect(view.bottomBarShadow.id, BOTTOM, view.bottom_bar.id, TOP)
connect(view.privateBrowsingButton.id, TOP, PARENT_ID, TOP)
} else {
connect(sessionControlView.view.id, TOP, view.wordmark.id, TOP)
connect(sessionControlView.view.id, BOTTOM, PARENT_ID, BOTTOM)
connect(view.bottomBarShadow.id, BOTTOM, view.bottom_bar.id, BOTTOM)
connect(view.privateBrowsingButton.id, TOP, view.bottomBarShadow.id, TOP)
}
connect(sessionControlView.view.id, START, PARENT_ID, START)
connect(sessionControlView.view.id, END, PARENT_ID, END)
applyTo(view.homeLayout)
}
var headingsTopMargins = if (shouldUseBottomToolbar) { HEADER_MARGIN } else { TOP_TOOLBAR_HEADER_MARGIN }
var 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)
}
}
}
@ExperimentalCoroutinesApi
@SuppressWarnings("LongMethod")
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
@ -799,6 +835,13 @@ class HomeFragment : Fragment() {
private const val SHARED_TRANSITION_MS = 200L
private const val CFR_WIDTH_DIVIDER = 1.7
private const val CFR_Y_OFFSET = -20
// 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

@ -22,15 +22,13 @@
android:contentDescription="@string/content_description_private_browsing_button"
app:srcCompat="@drawable/private_browsing_button"
app:layout_constraintBottom_toTopOf="@+id/wordmark"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent" />
app:layout_constraintEnd_toEndOf="parent" />
<ImageView
android:id="@+id/wordmark"
android:layout_width="wrap_content"
android:layout_height="80dp"
android:layout_marginStart="16dp"
android:layout_marginTop="60dp"
android:layout_marginBottom="32dp"
android:adjustViewBounds="true"
android:clickable="false"
@ -55,7 +53,6 @@
android:layout_width="0dp"
android:layout_height="56dp"
android:background="?bottomBarBackground"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" />