57 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			Java
		
	
	
	
	
	
			
		
		
	
	
			57 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			Java
		
	
	
	
	
	
| package androidx.transition;
 | |
| 
 | |
| import android.graphics.Rect;
 | |
| import android.view.ViewGroup;
 | |
| 
 | |
| /* loaded from: classes.dex */
 | |
| public class CircularPropagation extends VisibilityPropagation {
 | |
|     private float mPropagationSpeed = 3.0f;
 | |
| 
 | |
|     public void setPropagationSpeed(float f) {
 | |
|         if (f == 0.0f) {
 | |
|             throw new IllegalArgumentException("propagationSpeed may not be 0");
 | |
|         }
 | |
|         this.mPropagationSpeed = f;
 | |
|     }
 | |
| 
 | |
|     @Override // androidx.transition.TransitionPropagation
 | |
|     public long getStartDelay(ViewGroup viewGroup, Transition transition, TransitionValues transitionValues, TransitionValues transitionValues2) {
 | |
|         int i;
 | |
|         int round;
 | |
|         int i2;
 | |
|         if (transitionValues == null && transitionValues2 == null) {
 | |
|             return 0L;
 | |
|         }
 | |
|         if (transitionValues2 == null || getViewVisibility(transitionValues) == 0) {
 | |
|             i = -1;
 | |
|         } else {
 | |
|             transitionValues = transitionValues2;
 | |
|             i = 1;
 | |
|         }
 | |
|         int viewX = getViewX(transitionValues);
 | |
|         int viewY = getViewY(transitionValues);
 | |
|         Rect epicenter = transition.getEpicenter();
 | |
|         if (epicenter != null) {
 | |
|             i2 = epicenter.centerX();
 | |
|             round = epicenter.centerY();
 | |
|         } else {
 | |
|             viewGroup.getLocationOnScreen(new int[2]);
 | |
|             int round2 = Math.round(r5[0] + (viewGroup.getWidth() / 2) + viewGroup.getTranslationX());
 | |
|             round = Math.round(r5[1] + (viewGroup.getHeight() / 2) + viewGroup.getTranslationY());
 | |
|             i2 = round2;
 | |
|         }
 | |
|         float distance = distance(viewX, viewY, i2, round) / distance(0.0f, 0.0f, viewGroup.getWidth(), viewGroup.getHeight());
 | |
|         long duration = transition.getDuration();
 | |
|         if (duration < 0) {
 | |
|             duration = 300;
 | |
|         }
 | |
|         return Math.round(((duration * i) / this.mPropagationSpeed) * distance);
 | |
|     }
 | |
| 
 | |
|     private static float distance(float f, float f2, float f3, float f4) {
 | |
|         float f5 = f3 - f;
 | |
|         float f6 = f4 - f2;
 | |
|         return (float) Math.sqrt((f5 * f5) + (f6 * f6));
 | |
|     }
 | |
| }
 |