* 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
parent
3d55578242
commit
4ac29530cd
|
@ -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()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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 -> { }
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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() {
|
||||
|
|
Loading…
Reference in New Issue