ADD week 5
This commit is contained in:
		| @@ -0,0 +1,113 @@ | ||||
| package com.google.android.material.carousel; | ||||
|  | ||||
| import android.content.Context; | ||||
| import com.google.android.material.R; | ||||
| import com.google.android.material.carousel.KeylineState; | ||||
|  | ||||
| /* loaded from: classes.dex */ | ||||
| final class CarouselStrategyHelper { | ||||
|     static float addStart(float f, float f2, int i) { | ||||
|         return i > 0 ? f + (f2 / 2.0f) : f; | ||||
|     } | ||||
|  | ||||
|     static float updateCurPosition(float f, float f2, float f3, int i) { | ||||
|         return i > 0 ? f2 + (f3 / 2.0f) : f; | ||||
|     } | ||||
|  | ||||
|     private CarouselStrategyHelper() { | ||||
|     } | ||||
|  | ||||
|     static float getExtraSmallSize(Context context) { | ||||
|         return context.getResources().getDimension(R.dimen.m3_carousel_gone_size); | ||||
|     } | ||||
|  | ||||
|     static float getSmallSizeMin(Context context) { | ||||
|         return context.getResources().getDimension(R.dimen.m3_carousel_small_item_size_min); | ||||
|     } | ||||
|  | ||||
|     static float getSmallSizeMax(Context context) { | ||||
|         return context.getResources().getDimension(R.dimen.m3_carousel_small_item_size_max); | ||||
|     } | ||||
|  | ||||
|     static KeylineState createKeylineState(Context context, float f, float f2, Arrangement arrangement, int i) { | ||||
|         if (i == 1) { | ||||
|             return createCenterAlignedKeylineState(context, f, f2, arrangement); | ||||
|         } | ||||
|         return createLeftAlignedKeylineState(context, f, f2, arrangement); | ||||
|     } | ||||
|  | ||||
|     static KeylineState createLeftAlignedKeylineState(Context context, float f, float f2, Arrangement arrangement) { | ||||
|         float min = Math.min(getExtraSmallSize(context) + f, arrangement.largeSize); | ||||
|         float f3 = min / 2.0f; | ||||
|         float f4 = 0.0f - f3; | ||||
|         float addStart = addStart(0.0f, arrangement.largeSize, arrangement.largeCount); | ||||
|         float updateCurPosition = updateCurPosition(0.0f, addEnd(addStart, arrangement.largeSize, arrangement.largeCount), arrangement.largeSize, arrangement.largeCount); | ||||
|         float addStart2 = addStart(updateCurPosition, arrangement.mediumSize, arrangement.mediumCount); | ||||
|         float addStart3 = addStart(updateCurPosition(updateCurPosition, addStart2, arrangement.mediumSize, arrangement.mediumCount), arrangement.smallSize, arrangement.smallCount); | ||||
|         float f5 = f3 + f2; | ||||
|         float childMaskPercentage = CarouselStrategy.getChildMaskPercentage(min, arrangement.largeSize, f); | ||||
|         float childMaskPercentage2 = CarouselStrategy.getChildMaskPercentage(arrangement.smallSize, arrangement.largeSize, f); | ||||
|         float childMaskPercentage3 = CarouselStrategy.getChildMaskPercentage(arrangement.mediumSize, arrangement.largeSize, f); | ||||
|         KeylineState.Builder addKeylineRange = new KeylineState.Builder(arrangement.largeSize, f2).addAnchorKeyline(f4, childMaskPercentage, min).addKeylineRange(addStart, 0.0f, arrangement.largeSize, arrangement.largeCount, true); | ||||
|         if (arrangement.mediumCount > 0) { | ||||
|             addKeylineRange.addKeyline(addStart2, childMaskPercentage3, arrangement.mediumSize); | ||||
|         } | ||||
|         if (arrangement.smallCount > 0) { | ||||
|             addKeylineRange.addKeylineRange(addStart3, childMaskPercentage2, arrangement.smallSize, arrangement.smallCount); | ||||
|         } | ||||
|         addKeylineRange.addAnchorKeyline(f5, childMaskPercentage, min); | ||||
|         return addKeylineRange.build(); | ||||
|     } | ||||
|  | ||||
|     static KeylineState createCenterAlignedKeylineState(Context context, float f, float f2, Arrangement arrangement) { | ||||
|         float f3; | ||||
|         float min = Math.min(getExtraSmallSize(context) + f, arrangement.largeSize); | ||||
|         float f4 = min / 2.0f; | ||||
|         float f5 = 0.0f - f4; | ||||
|         float addStart = addStart(0.0f, arrangement.smallSize, arrangement.smallCount); | ||||
|         float updateCurPosition = updateCurPosition(0.0f, addEnd(addStart, arrangement.smallSize, (int) Math.floor(arrangement.smallCount / 2.0f)), arrangement.smallSize, arrangement.smallCount); | ||||
|         float addStart2 = addStart(updateCurPosition, arrangement.mediumSize, arrangement.mediumCount); | ||||
|         float updateCurPosition2 = updateCurPosition(updateCurPosition, addEnd(addStart2, arrangement.mediumSize, (int) Math.floor(arrangement.mediumCount / 2.0f)), arrangement.mediumSize, arrangement.mediumCount); | ||||
|         float addStart3 = addStart(updateCurPosition2, arrangement.largeSize, arrangement.largeCount); | ||||
|         float updateCurPosition3 = updateCurPosition(updateCurPosition2, addEnd(addStart3, arrangement.largeSize, arrangement.largeCount), arrangement.largeSize, arrangement.largeCount); | ||||
|         float addStart4 = addStart(updateCurPosition3, arrangement.mediumSize, arrangement.mediumCount); | ||||
|         float addStart5 = addStart(updateCurPosition(updateCurPosition3, addEnd(addStart4, arrangement.mediumSize, (int) Math.ceil(arrangement.mediumCount / 2.0f)), arrangement.mediumSize, arrangement.mediumCount), arrangement.smallSize, arrangement.smallCount); | ||||
|         float f6 = f4 + f2; | ||||
|         float childMaskPercentage = CarouselStrategy.getChildMaskPercentage(min, arrangement.largeSize, f); | ||||
|         float childMaskPercentage2 = CarouselStrategy.getChildMaskPercentage(arrangement.smallSize, arrangement.largeSize, f); | ||||
|         float childMaskPercentage3 = CarouselStrategy.getChildMaskPercentage(arrangement.mediumSize, arrangement.largeSize, f); | ||||
|         KeylineState.Builder addAnchorKeyline = new KeylineState.Builder(arrangement.largeSize, f2).addAnchorKeyline(f5, childMaskPercentage, min); | ||||
|         if (arrangement.smallCount > 0) { | ||||
|             f3 = f6; | ||||
|             addAnchorKeyline.addKeylineRange(addStart, childMaskPercentage2, arrangement.smallSize, (int) Math.floor(arrangement.smallCount / 2.0f)); | ||||
|         } else { | ||||
|             f3 = f6; | ||||
|         } | ||||
|         if (arrangement.mediumCount > 0) { | ||||
|             addAnchorKeyline.addKeylineRange(addStart2, childMaskPercentage3, arrangement.mediumSize, (int) Math.floor(arrangement.mediumCount / 2.0f)); | ||||
|         } | ||||
|         addAnchorKeyline.addKeylineRange(addStart3, 0.0f, arrangement.largeSize, arrangement.largeCount, true); | ||||
|         if (arrangement.mediumCount > 0) { | ||||
|             addAnchorKeyline.addKeylineRange(addStart4, childMaskPercentage3, arrangement.mediumSize, (int) Math.ceil(arrangement.mediumCount / 2.0f)); | ||||
|         } | ||||
|         if (arrangement.smallCount > 0) { | ||||
|             addAnchorKeyline.addKeylineRange(addStart5, childMaskPercentage2, arrangement.smallSize, (int) Math.ceil(arrangement.smallCount / 2.0f)); | ||||
|         } | ||||
|         addAnchorKeyline.addAnchorKeyline(f3, childMaskPercentage, min); | ||||
|         return addAnchorKeyline.build(); | ||||
|     } | ||||
|  | ||||
|     static int maxValue(int[] iArr) { | ||||
|         int i = Integer.MIN_VALUE; | ||||
|         for (int i2 : iArr) { | ||||
|             if (i2 > i) { | ||||
|                 i = i2; | ||||
|             } | ||||
|         } | ||||
|         return i; | ||||
|     } | ||||
|  | ||||
|     static float addEnd(float f, float f2, int i) { | ||||
|         return f + (Math.max(0, i - 1) * f2); | ||||
|     } | ||||
| } | ||||
		Reference in New Issue
	
	Block a user