1
0
Fork 0

Issue #9132: Update to search animation for top toolbar (#9524)

* let animation in top toolbar mode play nicely.

* remove duplicate methods, make code readable.

* migrate getToolbarNavOptions method to BrowserAnimator, one method to rule them all.

* Update linting

Co-authored-by: ahmedmamdouh13 <ahmedmamdouh13196@gmail.com>
master
Sawyer Blatz 2020-03-30 12:07:00 -07:00 committed by GitHub
parent 3d55578242
commit 4ac29530cd
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 31 additions and 10 deletions

View File

@ -5,6 +5,7 @@
package org.mozilla.fenix.browser
import android.animation.ValueAnimator
import android.content.Context
import android.graphics.Color
import android.graphics.drawable.ColorDrawable
import android.os.Bundle
@ -15,10 +16,13 @@ import androidx.core.graphics.drawable.toDrawable
import androidx.fragment.app.Fragment
import androidx.lifecycle.LifecycleCoroutineScope
import androidx.lifecycle.lifecycleScope
import androidx.navigation.NavOptions
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.delay
import kotlinx.coroutines.launch
import mozilla.components.concept.engine.EngineView
import org.mozilla.fenix.R
import org.mozilla.fenix.ext.settings
import java.lang.ref.WeakReference
/**
@ -43,8 +47,10 @@ class BrowserAnimator(
private val browserZoomInValueAnimator = ValueAnimator.ofFloat(0f, END_ANIMATOR_VALUE).apply {
addUpdateListener {
unwrappedSwipeRefresh?.scaleX = STARTING_XY_SCALE + XY_SCALE_MULTIPLIER * it.animatedFraction
unwrappedSwipeRefresh?.scaleY = STARTING_XY_SCALE + XY_SCALE_MULTIPLIER * it.animatedFraction
unwrappedSwipeRefresh?.scaleX =
STARTING_XY_SCALE + XY_SCALE_MULTIPLIER * it.animatedFraction
unwrappedSwipeRefresh?.scaleY =
STARTING_XY_SCALE + XY_SCALE_MULTIPLIER * it.animatedFraction
unwrappedSwipeRefresh?.alpha = it.animatedFraction
}
@ -154,5 +160,19 @@ class BrowserAnimator(
private const val END_ANIMATOR_VALUE = 500f
private const val XY_SCALE_MULTIPLIER = .05f
private const val STARTING_XY_SCALE = .95f
fun getToolbarNavOptions(context: Context): NavOptions {
val navOptions = NavOptions.Builder()
if (!context.settings().shouldUseBottomToolbar) {
navOptions.setEnterAnim(R.anim.fade_in)
navOptions.setExitAnim(R.anim.fade_out)
} else {
navOptions.setEnterAnim(R.anim.fade_in_up)
navOptions.setExitAnim(R.anim.fade_out_down)
}
return navOptions.build()
}
}
}

View File

@ -24,6 +24,7 @@ import mozilla.components.support.ktx.kotlin.isUrl
import org.mozilla.fenix.NavGraphDirections
import org.mozilla.fenix.R
import org.mozilla.fenix.browser.BrowserAnimator
import org.mozilla.fenix.browser.BrowserAnimator.Companion.getToolbarNavOptions
import org.mozilla.fenix.browser.BrowserFragment
import org.mozilla.fenix.browser.BrowserFragmentDirections
import org.mozilla.fenix.browser.browsingmode.BrowsingModeManager
@ -91,7 +92,7 @@ class DefaultBrowserToolbarController(
pastedText = text
)
navController.nav(R.id.browserFragment, directions)
navController.nav(R.id.browserFragment, directions, getToolbarNavOptions(activity))
}
}
@ -116,7 +117,7 @@ class DefaultBrowserToolbarController(
currentSession?.id
)
navController.nav(R.id.browserFragment, directions)
navController.nav(R.id.browserFragment, directions, getToolbarNavOptions(activity))
}
}
@ -131,8 +132,7 @@ class DefaultBrowserToolbarController(
ToolbarMenu.Item.AddToHomeScreen -> activity.settings().installPwaOpened = true
is ToolbarMenu.Item.ReaderMode -> activity.settings().readerModeOpened = true
ToolbarMenu.Item.OpenInApp -> activity.settings().openInAppOpened = true
else -> {
}
else -> { }
}
}
}

View File

@ -79,6 +79,7 @@ import mozilla.components.support.ktx.kotlinx.coroutines.flow.ifChanged
import org.mozilla.fenix.BrowserDirection
import org.mozilla.fenix.HomeActivity
import org.mozilla.fenix.R
import org.mozilla.fenix.browser.BrowserAnimator.Companion.getToolbarNavOptions
import org.mozilla.fenix.browser.browsingmode.BrowsingMode
import org.mozilla.fenix.components.FenixSnackbar
import org.mozilla.fenix.components.PrivateShortcutCreateManager
@ -246,9 +247,9 @@ class HomeFragment : Fragment() {
if (!shouldUseBottomToolbar) {
view.toolbarLayout.layoutParams = CoordinatorLayout.LayoutParams(
ConstraintLayout.LayoutParams.MATCH_PARENT,
ConstraintLayout.LayoutParams.WRAP_CONTENT
)
ConstraintLayout.LayoutParams.MATCH_PARENT,
ConstraintLayout.LayoutParams.WRAP_CONTENT
)
.apply {
gravity = Gravity.TOP
}
@ -591,7 +592,7 @@ class HomeFragment : Fragment() {
sessionId = null
)
nav(R.id.homeFragment, directions)
nav(R.id.homeFragment, directions, getToolbarNavOptions(requireContext()))
}
private fun openSettingsScreen() {