For #6820: Place address bar at top or bottom of the home screen based on user preference
parent
97915107eb
commit
4b3effdfab
|
@ -202,25 +202,61 @@ class HomeFragment : Fragment() {
|
||||||
|
|
||||||
sessionControlView = SessionControlView(homeFragmentStore, view.homeLayout, sessionControlInteractor)
|
sessionControlView = SessionControlView(homeFragmentStore, view.homeLayout, sessionControlInteractor)
|
||||||
|
|
||||||
ConstraintSet().apply {
|
updateLayout(view)
|
||||||
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)
|
|
||||||
}
|
|
||||||
|
|
||||||
activity.themeManager.applyStatusBarTheme(activity)
|
activity.themeManager.applyStatusBarTheme(activity)
|
||||||
|
|
||||||
return view
|
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
|
@ExperimentalCoroutinesApi
|
||||||
@SuppressWarnings("LongMethod")
|
@SuppressWarnings("LongMethod")
|
||||||
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||||
|
@ -799,6 +835,13 @@ class HomeFragment : Fragment() {
|
||||||
private const val SHARED_TRANSITION_MS = 200L
|
private const val SHARED_TRANSITION_MS = 200L
|
||||||
private const val CFR_WIDTH_DIVIDER = 1.7
|
private const val CFR_WIDTH_DIVIDER = 1.7
|
||||||
private const val CFR_Y_OFFSET = -20
|
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
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -22,15 +22,13 @@
|
||||||
android:contentDescription="@string/content_description_private_browsing_button"
|
android:contentDescription="@string/content_description_private_browsing_button"
|
||||||
app:srcCompat="@drawable/private_browsing_button"
|
app:srcCompat="@drawable/private_browsing_button"
|
||||||
app:layout_constraintBottom_toTopOf="@+id/wordmark"
|
app:layout_constraintBottom_toTopOf="@+id/wordmark"
|
||||||
app:layout_constraintEnd_toEndOf="parent"
|
app:layout_constraintEnd_toEndOf="parent" />
|
||||||
app:layout_constraintTop_toTopOf="parent" />
|
|
||||||
|
|
||||||
<ImageView
|
<ImageView
|
||||||
android:id="@+id/wordmark"
|
android:id="@+id/wordmark"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="80dp"
|
android:layout_height="80dp"
|
||||||
android:layout_marginStart="16dp"
|
android:layout_marginStart="16dp"
|
||||||
android:layout_marginTop="60dp"
|
|
||||||
android:layout_marginBottom="32dp"
|
android:layout_marginBottom="32dp"
|
||||||
android:adjustViewBounds="true"
|
android:adjustViewBounds="true"
|
||||||
android:clickable="false"
|
android:clickable="false"
|
||||||
|
@ -55,7 +53,6 @@
|
||||||
android:layout_width="0dp"
|
android:layout_width="0dp"
|
||||||
android:layout_height="56dp"
|
android:layout_height="56dp"
|
||||||
android:background="?bottomBarBackground"
|
android:background="?bottomBarBackground"
|
||||||
app:layout_constraintBottom_toBottomOf="parent"
|
|
||||||
app:layout_constraintEnd_toEndOf="parent"
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
app:layout_constraintStart_toStartOf="parent" />
|
app:layout_constraintStart_toStartOf="parent" />
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue