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"