ADD week 5
This commit is contained in:
		
							
								
								
									
										243
									
								
								02-Easy5/E5/sources/androidx/cardview/widget/CardView.java
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										243
									
								
								02-Easy5/E5/sources/androidx/cardview/widget/CardView.java
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,243 @@ | ||||
| package androidx.cardview.widget; | ||||
|  | ||||
| import android.R; | ||||
| import android.content.Context; | ||||
| import android.content.res.ColorStateList; | ||||
| import android.content.res.TypedArray; | ||||
| import android.graphics.Color; | ||||
| import android.graphics.Rect; | ||||
| import android.graphics.drawable.Drawable; | ||||
| import android.util.AttributeSet; | ||||
| import android.view.View; | ||||
| import android.widget.FrameLayout; | ||||
|  | ||||
| /* loaded from: classes.dex */ | ||||
| public class CardView extends FrameLayout { | ||||
|     private static final int[] COLOR_BACKGROUND_ATTR = {R.attr.colorBackground}; | ||||
|     private static final CardViewImpl IMPL; | ||||
|     private final CardViewDelegate mCardViewDelegate; | ||||
|     private boolean mCompatPadding; | ||||
|     final Rect mContentPadding; | ||||
|     private boolean mPreventCornerOverlap; | ||||
|     final Rect mShadowBounds; | ||||
|     int mUserSetMinHeight; | ||||
|     int mUserSetMinWidth; | ||||
|  | ||||
|     public boolean getPreventCornerOverlap() { | ||||
|         return this.mPreventCornerOverlap; | ||||
|     } | ||||
|  | ||||
|     public boolean getUseCompatPadding() { | ||||
|         return this.mCompatPadding; | ||||
|     } | ||||
|  | ||||
|     @Override // android.view.View | ||||
|     public void setPadding(int i, int i2, int i3, int i4) { | ||||
|     } | ||||
|  | ||||
|     @Override // android.view.View | ||||
|     public void setPaddingRelative(int i, int i2, int i3, int i4) { | ||||
|     } | ||||
|  | ||||
|     static { | ||||
|         CardViewApi21Impl cardViewApi21Impl = new CardViewApi21Impl(); | ||||
|         IMPL = cardViewApi21Impl; | ||||
|         cardViewApi21Impl.initStatic(); | ||||
|     } | ||||
|  | ||||
|     public CardView(Context context) { | ||||
|         this(context, null); | ||||
|     } | ||||
|  | ||||
|     public CardView(Context context, AttributeSet attributeSet) { | ||||
|         this(context, attributeSet, androidx.cardview.R.attr.cardViewStyle); | ||||
|     } | ||||
|  | ||||
|     public CardView(Context context, AttributeSet attributeSet, int i) { | ||||
|         super(context, attributeSet, i); | ||||
|         int color; | ||||
|         ColorStateList valueOf; | ||||
|         Rect rect = new Rect(); | ||||
|         this.mContentPadding = rect; | ||||
|         this.mShadowBounds = new Rect(); | ||||
|         CardViewDelegate cardViewDelegate = new CardViewDelegate() { // from class: androidx.cardview.widget.CardView.1 | ||||
|             private Drawable mCardBackground; | ||||
|  | ||||
|             @Override // androidx.cardview.widget.CardViewDelegate | ||||
|             public Drawable getCardBackground() { | ||||
|                 return this.mCardBackground; | ||||
|             } | ||||
|  | ||||
|             @Override // androidx.cardview.widget.CardViewDelegate | ||||
|             public View getCardView() { | ||||
|                 return CardView.this; | ||||
|             } | ||||
|  | ||||
|             @Override // androidx.cardview.widget.CardViewDelegate | ||||
|             public void setCardBackground(Drawable drawable) { | ||||
|                 this.mCardBackground = drawable; | ||||
|                 CardView.this.setBackgroundDrawable(drawable); | ||||
|             } | ||||
|  | ||||
|             @Override // androidx.cardview.widget.CardViewDelegate | ||||
|             public boolean getUseCompatPadding() { | ||||
|                 return CardView.this.getUseCompatPadding(); | ||||
|             } | ||||
|  | ||||
|             @Override // androidx.cardview.widget.CardViewDelegate | ||||
|             public boolean getPreventCornerOverlap() { | ||||
|                 return CardView.this.getPreventCornerOverlap(); | ||||
|             } | ||||
|  | ||||
|             @Override // androidx.cardview.widget.CardViewDelegate | ||||
|             public void setShadowPadding(int i2, int i3, int i4, int i5) { | ||||
|                 CardView.this.mShadowBounds.set(i2, i3, i4, i5); | ||||
|                 CardView cardView = CardView.this; | ||||
|                 CardView.super.setPadding(i2 + cardView.mContentPadding.left, i3 + CardView.this.mContentPadding.top, i4 + CardView.this.mContentPadding.right, i5 + CardView.this.mContentPadding.bottom); | ||||
|             } | ||||
|  | ||||
|             @Override // androidx.cardview.widget.CardViewDelegate | ||||
|             public void setMinWidthHeightInternal(int i2, int i3) { | ||||
|                 if (i2 > CardView.this.mUserSetMinWidth) { | ||||
|                     CardView.super.setMinimumWidth(i2); | ||||
|                 } | ||||
|                 if (i3 > CardView.this.mUserSetMinHeight) { | ||||
|                     CardView.super.setMinimumHeight(i3); | ||||
|                 } | ||||
|             } | ||||
|         }; | ||||
|         this.mCardViewDelegate = cardViewDelegate; | ||||
|         TypedArray obtainStyledAttributes = context.obtainStyledAttributes(attributeSet, androidx.cardview.R.styleable.CardView, i, androidx.cardview.R.style.CardView); | ||||
|         if (obtainStyledAttributes.hasValue(androidx.cardview.R.styleable.CardView_cardBackgroundColor)) { | ||||
|             valueOf = obtainStyledAttributes.getColorStateList(androidx.cardview.R.styleable.CardView_cardBackgroundColor); | ||||
|         } else { | ||||
|             TypedArray obtainStyledAttributes2 = getContext().obtainStyledAttributes(COLOR_BACKGROUND_ATTR); | ||||
|             int color2 = obtainStyledAttributes2.getColor(0, 0); | ||||
|             obtainStyledAttributes2.recycle(); | ||||
|             float[] fArr = new float[3]; | ||||
|             Color.colorToHSV(color2, fArr); | ||||
|             if (fArr[2] > 0.5f) { | ||||
|                 color = getResources().getColor(androidx.cardview.R.color.cardview_light_background); | ||||
|             } else { | ||||
|                 color = getResources().getColor(androidx.cardview.R.color.cardview_dark_background); | ||||
|             } | ||||
|             valueOf = ColorStateList.valueOf(color); | ||||
|         } | ||||
|         ColorStateList colorStateList = valueOf; | ||||
|         float dimension = obtainStyledAttributes.getDimension(androidx.cardview.R.styleable.CardView_cardCornerRadius, 0.0f); | ||||
|         float dimension2 = obtainStyledAttributes.getDimension(androidx.cardview.R.styleable.CardView_cardElevation, 0.0f); | ||||
|         float dimension3 = obtainStyledAttributes.getDimension(androidx.cardview.R.styleable.CardView_cardMaxElevation, 0.0f); | ||||
|         this.mCompatPadding = obtainStyledAttributes.getBoolean(androidx.cardview.R.styleable.CardView_cardUseCompatPadding, false); | ||||
|         this.mPreventCornerOverlap = obtainStyledAttributes.getBoolean(androidx.cardview.R.styleable.CardView_cardPreventCornerOverlap, true); | ||||
|         int dimensionPixelSize = obtainStyledAttributes.getDimensionPixelSize(androidx.cardview.R.styleable.CardView_contentPadding, 0); | ||||
|         rect.left = obtainStyledAttributes.getDimensionPixelSize(androidx.cardview.R.styleable.CardView_contentPaddingLeft, dimensionPixelSize); | ||||
|         rect.top = obtainStyledAttributes.getDimensionPixelSize(androidx.cardview.R.styleable.CardView_contentPaddingTop, dimensionPixelSize); | ||||
|         rect.right = obtainStyledAttributes.getDimensionPixelSize(androidx.cardview.R.styleable.CardView_contentPaddingRight, dimensionPixelSize); | ||||
|         rect.bottom = obtainStyledAttributes.getDimensionPixelSize(androidx.cardview.R.styleable.CardView_contentPaddingBottom, dimensionPixelSize); | ||||
|         float f = dimension2 > dimension3 ? dimension2 : dimension3; | ||||
|         this.mUserSetMinWidth = obtainStyledAttributes.getDimensionPixelSize(androidx.cardview.R.styleable.CardView_android_minWidth, 0); | ||||
|         this.mUserSetMinHeight = obtainStyledAttributes.getDimensionPixelSize(androidx.cardview.R.styleable.CardView_android_minHeight, 0); | ||||
|         obtainStyledAttributes.recycle(); | ||||
|         IMPL.initialize(cardViewDelegate, context, colorStateList, dimension, dimension2, f); | ||||
|     } | ||||
|  | ||||
|     public void setUseCompatPadding(boolean z) { | ||||
|         if (this.mCompatPadding != z) { | ||||
|             this.mCompatPadding = z; | ||||
|             IMPL.onCompatPaddingChanged(this.mCardViewDelegate); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     public void setContentPadding(int i, int i2, int i3, int i4) { | ||||
|         this.mContentPadding.set(i, i2, i3, i4); | ||||
|         IMPL.updatePadding(this.mCardViewDelegate); | ||||
|     } | ||||
|  | ||||
|     @Override // android.widget.FrameLayout, android.view.View | ||||
|     protected void onMeasure(int i, int i2) { | ||||
|         if (!(IMPL instanceof CardViewApi21Impl)) { | ||||
|             int mode = View.MeasureSpec.getMode(i); | ||||
|             if (mode == Integer.MIN_VALUE || mode == 1073741824) { | ||||
|                 i = View.MeasureSpec.makeMeasureSpec(Math.max((int) Math.ceil(r0.getMinWidth(this.mCardViewDelegate)), View.MeasureSpec.getSize(i)), mode); | ||||
|             } | ||||
|             int mode2 = View.MeasureSpec.getMode(i2); | ||||
|             if (mode2 == Integer.MIN_VALUE || mode2 == 1073741824) { | ||||
|                 i2 = View.MeasureSpec.makeMeasureSpec(Math.max((int) Math.ceil(r0.getMinHeight(this.mCardViewDelegate)), View.MeasureSpec.getSize(i2)), mode2); | ||||
|             } | ||||
|             super.onMeasure(i, i2); | ||||
|             return; | ||||
|         } | ||||
|         super.onMeasure(i, i2); | ||||
|     } | ||||
|  | ||||
|     @Override // android.view.View | ||||
|     public void setMinimumWidth(int i) { | ||||
|         this.mUserSetMinWidth = i; | ||||
|         super.setMinimumWidth(i); | ||||
|     } | ||||
|  | ||||
|     @Override // android.view.View | ||||
|     public void setMinimumHeight(int i) { | ||||
|         this.mUserSetMinHeight = i; | ||||
|         super.setMinimumHeight(i); | ||||
|     } | ||||
|  | ||||
|     public void setCardBackgroundColor(int i) { | ||||
|         IMPL.setBackgroundColor(this.mCardViewDelegate, ColorStateList.valueOf(i)); | ||||
|     } | ||||
|  | ||||
|     public void setCardBackgroundColor(ColorStateList colorStateList) { | ||||
|         IMPL.setBackgroundColor(this.mCardViewDelegate, colorStateList); | ||||
|     } | ||||
|  | ||||
|     public ColorStateList getCardBackgroundColor() { | ||||
|         return IMPL.getBackgroundColor(this.mCardViewDelegate); | ||||
|     } | ||||
|  | ||||
|     public int getContentPaddingLeft() { | ||||
|         return this.mContentPadding.left; | ||||
|     } | ||||
|  | ||||
|     public int getContentPaddingRight() { | ||||
|         return this.mContentPadding.right; | ||||
|     } | ||||
|  | ||||
|     public int getContentPaddingTop() { | ||||
|         return this.mContentPadding.top; | ||||
|     } | ||||
|  | ||||
|     public int getContentPaddingBottom() { | ||||
|         return this.mContentPadding.bottom; | ||||
|     } | ||||
|  | ||||
|     public void setRadius(float f) { | ||||
|         IMPL.setRadius(this.mCardViewDelegate, f); | ||||
|     } | ||||
|  | ||||
|     public float getRadius() { | ||||
|         return IMPL.getRadius(this.mCardViewDelegate); | ||||
|     } | ||||
|  | ||||
|     public void setCardElevation(float f) { | ||||
|         IMPL.setElevation(this.mCardViewDelegate, f); | ||||
|     } | ||||
|  | ||||
|     public float getCardElevation() { | ||||
|         return IMPL.getElevation(this.mCardViewDelegate); | ||||
|     } | ||||
|  | ||||
|     public void setMaxCardElevation(float f) { | ||||
|         IMPL.setMaxElevation(this.mCardViewDelegate, f); | ||||
|     } | ||||
|  | ||||
|     public float getMaxCardElevation() { | ||||
|         return IMPL.getMaxElevation(this.mCardViewDelegate); | ||||
|     } | ||||
|  | ||||
|     public void setPreventCornerOverlap(boolean z) { | ||||
|         if (z != this.mPreventCornerOverlap) { | ||||
|             this.mPreventCornerOverlap = z; | ||||
|             IMPL.onPreventCornerOverlapChanged(this.mCardViewDelegate); | ||||
|         } | ||||
|     } | ||||
| } | ||||
		Reference in New Issue
	
	Block a user