1
0
Fork 0
fenix/app/src/main/java/org/mozilla/fenix/search/SearchLayouts.kt

80 lines
2.7 KiB
Kotlin

/* This Source Code Form is subject to the terms of the Mozilla Public
License, v. 2.0. If a copy of the MPL was not distributed with this
file, You can obtain one at http://mozilla.org/MPL/2.0/. */
package org.mozilla.fenix.search
import androidx.constraintlayout.widget.ConstraintLayout
import androidx.constraintlayout.widget.ConstraintLayout.LayoutParams.PARENT_ID
import androidx.constraintlayout.widget.ConstraintLayout.LayoutParams.UNSET
import androidx.recyclerview.widget.LinearLayoutManager
import kotlinx.android.synthetic.main.fragment_search.*
import mozilla.components.support.base.log.logger.Logger
import org.jetbrains.anko.constraint.layout.ConstraintSetBuilder.Side.BOTTOM
import org.jetbrains.anko.constraint.layout.ConstraintSetBuilder.Side.TOP
import org.jetbrains.anko.constraint.layout.applyConstraintSet
import org.mozilla.fenix.Experiments.AATestDescriptor
import org.mozilla.fenix.isInExperiment
internal fun SearchFragment.layoutComponents(layout: ConstraintLayout) {
context?.let {
when {
it.isInExperiment(AATestDescriptor) -> {
setInExperimentConstraints(layout)
}
else -> {
setOutOfExperimentConstraints(layout)
}
}
} // we're unattached if context is null
}
internal fun SearchFragment.setInExperimentConstraints(layout: ConstraintLayout) {
Logger.debug("Loading in experiment constraints")
layout.applyConstraintSet {
toolbar_wrapper {
connect(
TOP to TOP of UNSET,
BOTTOM to TOP of pill_wrapper
)
}
awesomeBar {
connect(
TOP to TOP of PARENT_ID,
BOTTOM to TOP of toolbar_wrapper
)
}
(awesomeBar.layoutManager as? LinearLayoutManager)?.reverseLayout = true
pill_wrapper {
connect(
BOTTOM to BOTTOM of PARENT_ID
)
}
}
}
internal fun SearchFragment.setOutOfExperimentConstraints(layout: ConstraintLayout) {
Logger.debug("Loading out of experiment constraints")
layout.applyConstraintSet {
toolbar_wrapper {
connect(
TOP to TOP of PARENT_ID,
BOTTOM to TOP of UNSET
)
}
awesomeBar {
connect(
TOP to TOP of UNSET,
TOP to BOTTOM of toolbar_wrapper,
BOTTOM to TOP of pill_wrapper
)
}
(awesomeBar.layoutManager as? LinearLayoutManager)?.reverseLayout = false
pill_wrapper {
connect(
BOTTOM to BOTTOM of PARENT_ID
)
}
}
}