package androidx.cardview.widget; import android.content.Context; import android.content.res.ColorStateList; import android.view.View; import androidx.annotation.Nullable; import androidx.annotation.RequiresApi; @RequiresApi(21) public class CardViewApi21Impl implements CardViewImpl { private RoundRectDrawable getCardBackground(CardViewDelegate cardViewDelegate) { return (RoundRectDrawable) cardViewDelegate.getCardBackground(); } @Override // androidx.cardview.widget.CardViewImpl public ColorStateList getBackgroundColor(CardViewDelegate cardViewDelegate) { return getCardBackground(cardViewDelegate).getColor(); } @Override // androidx.cardview.widget.CardViewImpl public float getElevation(CardViewDelegate cardViewDelegate) { return cardViewDelegate.getCardView().getElevation(); } @Override // androidx.cardview.widget.CardViewImpl public float getMaxElevation(CardViewDelegate cardViewDelegate) { return getCardBackground(cardViewDelegate).getPadding(); } @Override // androidx.cardview.widget.CardViewImpl public float getMinHeight(CardViewDelegate cardViewDelegate) { return getRadius(cardViewDelegate) * 2.0f; } @Override // androidx.cardview.widget.CardViewImpl public float getMinWidth(CardViewDelegate cardViewDelegate) { return getRadius(cardViewDelegate) * 2.0f; } @Override // androidx.cardview.widget.CardViewImpl public float getRadius(CardViewDelegate cardViewDelegate) { return getCardBackground(cardViewDelegate).getRadius(); } @Override // androidx.cardview.widget.CardViewImpl public void initStatic() { } @Override // androidx.cardview.widget.CardViewImpl public void initialize(CardViewDelegate cardViewDelegate, Context context, ColorStateList colorStateList, float f, float f2, float f3) { cardViewDelegate.setCardBackground(new RoundRectDrawable(colorStateList, f)); View cardView = cardViewDelegate.getCardView(); cardView.setClipToOutline(true); cardView.setElevation(f2); setMaxElevation(cardViewDelegate, f3); } @Override // androidx.cardview.widget.CardViewImpl public void onCompatPaddingChanged(CardViewDelegate cardViewDelegate) { setMaxElevation(cardViewDelegate, getMaxElevation(cardViewDelegate)); } @Override // androidx.cardview.widget.CardViewImpl public void onPreventCornerOverlapChanged(CardViewDelegate cardViewDelegate) { setMaxElevation(cardViewDelegate, getMaxElevation(cardViewDelegate)); } @Override // androidx.cardview.widget.CardViewImpl public void setBackgroundColor(CardViewDelegate cardViewDelegate, @Nullable ColorStateList colorStateList) { getCardBackground(cardViewDelegate).setColor(colorStateList); } @Override // androidx.cardview.widget.CardViewImpl public void setElevation(CardViewDelegate cardViewDelegate, float f) { cardViewDelegate.getCardView().setElevation(f); } @Override // androidx.cardview.widget.CardViewImpl public void setMaxElevation(CardViewDelegate cardViewDelegate, float f) { getCardBackground(cardViewDelegate).setPadding(f, cardViewDelegate.getUseCompatPadding(), cardViewDelegate.getPreventCornerOverlap()); updatePadding(cardViewDelegate); } @Override // androidx.cardview.widget.CardViewImpl public void setRadius(CardViewDelegate cardViewDelegate, float f) { getCardBackground(cardViewDelegate).setRadius(f); } @Override // androidx.cardview.widget.CardViewImpl public void updatePadding(CardViewDelegate cardViewDelegate) { if (!cardViewDelegate.getUseCompatPadding()) { cardViewDelegate.setShadowPadding(0, 0, 0, 0); return; } float maxElevation = getMaxElevation(cardViewDelegate); float radius = getRadius(cardViewDelegate); int ceil = (int) Math.ceil((double) RoundRectDrawableWithShadow.calculateHorizontalPadding(maxElevation, radius, cardViewDelegate.getPreventCornerOverlap())); int ceil2 = (int) Math.ceil((double) RoundRectDrawableWithShadow.calculateVerticalPadding(maxElevation, radius, cardViewDelegate.getPreventCornerOverlap())); cardViewDelegate.setShadowPadding(ceil, ceil2, ceil, ceil2); } }