mirror of
				https://github.com/mihonapp/mihon.git
				synced 2025-10-31 14:27:57 +01:00 
			
		
		
		
	Remove up/down animation for FAB, add list padding (#2456)
This commit is contained in:
		| @@ -1,35 +0,0 @@ | ||||
| package eu.kanade.tachiyomi.widget | ||||
|  | ||||
| import androidx.coordinatorlayout.widget.CoordinatorLayout | ||||
| import com.google.android.material.floatingactionbutton.FloatingActionButton | ||||
| import androidx.core.view.ViewCompat | ||||
| import android.view.View | ||||
|  | ||||
| abstract class FABAnimationBase : FloatingActionButton.Behavior() { | ||||
|  | ||||
|     var isAnimatingOut = false | ||||
|  | ||||
|     override fun onStartNestedScroll(coordinatorLayout: CoordinatorLayout, child: FloatingActionButton, | ||||
|                                      directTargetChild: View, target: View, axes: Int, type: Int): Boolean { | ||||
|         // Ensure we react to vertical scrolling | ||||
|         return axes == ViewCompat.SCROLL_AXIS_VERTICAL || | ||||
|                 super.onStartNestedScroll(coordinatorLayout, child, directTargetChild, target, axes, type) | ||||
|     } | ||||
|  | ||||
|     override fun onNestedScroll(coordinatorLayout: CoordinatorLayout, child: FloatingActionButton, | ||||
|                                 target: View, dxConsumed: Int, dyConsumed: Int, dxUnconsumed: Int, | ||||
|                                 dyUnconsumed: Int, type: Int) { | ||||
|         super.onNestedScroll(coordinatorLayout, child, target, dxConsumed, dyConsumed, dxUnconsumed, dyUnconsumed, type) | ||||
|  | ||||
|         if (dyConsumed > 0 && !isAnimatingOut && child.visibility == View.VISIBLE) { | ||||
|             // User scrolled down and the FAB is currently visible -> hide the FAB | ||||
|             animateOut(child) | ||||
|         } else if (dyConsumed < 0 && child.visibility != View.VISIBLE) { | ||||
|             // User scrolled up and the FAB is currently not visible -> show the FAB | ||||
|             animateIn(child) | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     abstract fun animateOut(button: FloatingActionButton) | ||||
|     abstract fun animateIn(button: FloatingActionButton) | ||||
| } | ||||
| @@ -1,51 +0,0 @@ | ||||
| package eu.kanade.tachiyomi.widget | ||||
|  | ||||
| import android.content.Context | ||||
| import com.google.android.material.floatingactionbutton.FloatingActionButton | ||||
| import androidx.interpolator.view.animation.FastOutSlowInInterpolator | ||||
| import android.util.AttributeSet | ||||
| import android.view.View | ||||
| import android.view.animation.Animation | ||||
| import android.view.animation.AnimationUtils | ||||
| import eu.kanade.tachiyomi.R | ||||
|  | ||||
| @Suppress("unused", "UNUSED_PARAMETER") | ||||
| class FABAnimationUpDown @JvmOverloads constructor(ctx: Context, attrs: AttributeSet? = null) : FABAnimationBase() { | ||||
|  | ||||
|     private val INTERPOLATOR = FastOutSlowInInterpolator() | ||||
|  | ||||
|     private val outAnimation by lazy { | ||||
|         AnimationUtils.loadAnimation(ctx, R.anim.fab_hide_to_bottom).apply { | ||||
|             duration = 200 | ||||
|             interpolator = INTERPOLATOR | ||||
|         } | ||||
|     } | ||||
|     private val inAnimation by lazy { | ||||
|         AnimationUtils.loadAnimation(ctx, R.anim.fab_show_from_bottom).apply { | ||||
|             duration = 200 | ||||
|             interpolator = INTERPOLATOR | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     override fun animateOut(button: FloatingActionButton) { | ||||
|         outAnimation.setAnimationListener(object : Animation.AnimationListener { | ||||
|             override fun onAnimationStart(animation: Animation) { | ||||
|                 isAnimatingOut = true | ||||
|             } | ||||
|  | ||||
|             override fun onAnimationEnd(animation: Animation) { | ||||
|                 isAnimatingOut = false | ||||
|                 button.visibility = View.INVISIBLE | ||||
|             } | ||||
|  | ||||
|             override fun onAnimationRepeat(animation: Animation) { | ||||
|             } | ||||
|         }) | ||||
|         button.startAnimation(outAnimation) | ||||
|     } | ||||
|  | ||||
|     override fun animateIn(button: FloatingActionButton) { | ||||
|         button.visibility = View.VISIBLE | ||||
|         button.startAnimation(inAnimation) | ||||
|     } | ||||
| } | ||||
		Reference in New Issue
	
	Block a user