diff --git a/app/src/main/java/org/mozilla/fenix/home/HomeFragment.kt b/app/src/main/java/org/mozilla/fenix/home/HomeFragment.kt
index d44582e18a..ab68ea2590 100644
--- a/app/src/main/java/org/mozilla/fenix/home/HomeFragment.kt
+++ b/app/src/main/java/org/mozilla/fenix/home/HomeFragment.kt
@@ -15,7 +15,6 @@ import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import androidx.appcompat.app.AppCompatActivity
-import androidx.constraintlayout.motion.widget.MotionLayout
import androidx.fragment.app.Fragment
import androidx.lifecycle.Observer
import androidx.navigation.Navigation
@@ -139,34 +138,6 @@ class HomeFragment : Fragment(), CoroutineScope {
requireComponents.analytics.metrics.track(Event.SearchBarTapped(Event.SearchBarTapped.Source.HOME))
}
- // There is currently an issue with visibility changes in ConstraintLayout 2.0.0-alpha3
- // https://issuetracker.google.com/issues/122090772
- // For now we're going to manually implement KeyTriggers.
- view.homeLayout.setTransitionListener(object : MotionLayout.TransitionListener {
- private val firstKeyTrigger = KeyTrigger(
- firstKeyTriggerFrame,
- { view.toolbar_wrapper.transitionToDark() },
- { view.toolbar_wrapper.transitionToLight() }
- )
- private val secondKeyTrigger = KeyTrigger(
- secondKeyTriggerFrame,
- { view.toolbar_wrapper.transitionToDarkNoBorder() },
- { view.toolbar_wrapper.transitionToDarkFromNoBorder() }
- )
-
- override fun onTransitionChange(
- motionLayout: MotionLayout?,
- startId: Int,
- endId: Int,
- progress: Float
- ) {
- firstKeyTrigger.conditionallyFire(progress)
- secondKeyTrigger.conditionallyFire(progress)
- }
-
- override fun onTransitionCompleted(p0: MotionLayout?, p1: Int) { }
- })
-
val isPrivate = (activity as HomeActivity).browsingModeManager.isPrivate
view.toolbar_wrapper.isPrivateModeEnabled = isPrivate
diff --git a/app/src/main/java/org/mozilla/fenix/home/KeyTrigger.kt b/app/src/main/java/org/mozilla/fenix/home/KeyTrigger.kt
deleted file mode 100644
index 25cdcedddf..0000000000
--- a/app/src/main/java/org/mozilla/fenix/home/KeyTrigger.kt
+++ /dev/null
@@ -1,47 +0,0 @@
-package org.mozilla.fenix.home
-
-/* 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/. */
-
-@SuppressWarnings("MagicNumber")
-class KeyTrigger(
- frame: Int,
- private val onPositiveCross: () -> Unit,
- private val onNegativeCross: () -> Unit
-) {
- private val fireThreshhold = (frame + 0.5F) / 100.0F
- private var negativeReset = false
- private var positiveReset = false
- private var lastFirePosition = 0f
- private val triggerSlack = 0.1f
-
- fun conditionallyFire(progress: Float) {
- var offset: Float
- var lastOffset: Float
-
- if (negativeReset) {
- offset = progress - fireThreshhold
- lastOffset = lastFirePosition - fireThreshhold
- if (offset * lastOffset < 0.0f && offset < 0.0f) {
- onNegativeCross.invoke()
- negativeReset = false
- }
- } else if (Math.abs(progress - fireThreshhold) > triggerSlack) {
- negativeReset = true
- }
-
- if (positiveReset) {
- offset = progress - fireThreshhold
- lastOffset = lastFirePosition - fireThreshhold
- if (offset * lastOffset < 0.0f && offset > 0.0f) {
- onPositiveCross.invoke()
- positiveReset = false
- }
- } else if (Math.abs(progress - fireThreshhold) > triggerSlack) {
- positiveReset = true
- }
-
- lastFirePosition = progress
- }
-}
diff --git a/app/src/main/java/org/mozilla/fenix/home/SearchView.kt b/app/src/main/java/org/mozilla/fenix/home/SearchView.kt
index 0fcef47c55..15b1a93048 100644
--- a/app/src/main/java/org/mozilla/fenix/home/SearchView.kt
+++ b/app/src/main/java/org/mozilla/fenix/home/SearchView.kt
@@ -73,6 +73,6 @@ class SearchView(context: Context, attrs: AttributeSet) : FrameLayout(context, a
}
companion object {
- const val transitionDurationMs = 500
+ const val transitionDurationMs = 200
}
}
diff --git a/app/src/main/res/layout/fragment_home.xml b/app/src/main/res/layout/fragment_home.xml
index 63a4e72da7..0b623fe7fb 100644
--- a/app/src/main/res/layout/fragment_home.xml
+++ b/app/src/main/res/layout/fragment_home.xml
@@ -48,33 +48,33 @@
app:layout_constraintTop_toBottomOf="@id/menuButton" />
+ android:id="@+id/toolbar_wrapper"
+ android:layout_width="0dp"
+ android:layout_height="wrap_content"
+ android:layout_marginEnd="16dp"
+ android:layout_marginTop="64dp"
+ android:layout_marginStart="16dp"
+ android:elevation="@dimen/toolbar_elevation"
+ android:background="?attr/toolbarWrapperBackground"
+ app:layout_constraintEnd_toEndOf="parent"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintTop_toBottomOf="@id/wordmark">
+ android:id="@+id/toolbar"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:paddingStart="12sp"
+ android:paddingEnd="12sp"
+ android:paddingTop="16sp"
+ android:paddingBottom="16sp"
+ android:drawablePadding="12sp"
+ android:clickable="true"
+ android:focusable="true"
+ android:gravity="center_vertical"
+ android:text="@string/search_hint"
+ android:textColor="?attr/toolbarTextColor"
+ android:textSize="14sp" />
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:motion="http://schemas.android.com/apk/res-auto">
+ motion:dragDirection="dragUp"
+ motion:touchAnchorId="@id/homeScrollView"
+ motion:touchAnchorSide="top" />
-
-
-
+ motion:motionTarget="@id/toolbar_wrapper"
+ motion:framePosition="90"
+ motion:onPositiveCross="transitionToDarkNoBorder"
+ motion:onNegativeCross="transitionToDarkFromNoBorder" />
@@ -86,14 +79,15 @@
+ android:id="@+id/wordmark"
+ android:layout_marginStart="16dp"
+ android:layout_marginTop="16dp"
+ android:alpha="0"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:translationY="-10dp"
+ motion:layout_constraintStart_toStartOf="parent"
+ motion:layout_constraintTop_toTopOf="parent" />
+ android:elevation="0dp" />
-
-
-
\ No newline at end of file
+
diff --git a/buildSrc/src/main/java/Dependencies.kt b/buildSrc/src/main/java/Dependencies.kt
index ba084c61c9..ed91d5a6a2 100644
--- a/buildSrc/src/main/java/Dependencies.kt
+++ b/buildSrc/src/main/java/Dependencies.kt
@@ -13,7 +13,7 @@ private object Versions {
const val leanplum = "4.3.1"
const val androidx_appcompat = "1.1.0-alpha04"
- const val androidx_constraint_layout = "2.0.0-alpha2"
+ const val androidx_constraint_layout = "2.0.0-alpha4"
const val androidx_preference = "1.1.0-alpha03"
const val androidx_legacy = "1.0.0"
const val androidx_annotation = "1.1.0-beta01"