ADD week 5
This commit is contained in:
		| @@ -0,0 +1,129 @@ | ||||
| package com.google.android.material.snackbar; | ||||
|  | ||||
| import android.animation.TimeInterpolator; | ||||
| import android.content.Context; | ||||
| import android.text.Layout; | ||||
| import android.util.AttributeSet; | ||||
| import android.view.View; | ||||
| import android.widget.Button; | ||||
| import android.widget.LinearLayout; | ||||
| import android.widget.TextView; | ||||
| import androidx.core.view.ViewCompat; | ||||
| import com.google.android.material.R; | ||||
| import com.google.android.material.animation.AnimationUtils; | ||||
| import com.google.android.material.color.MaterialColors; | ||||
| import com.google.android.material.motion.MotionUtils; | ||||
|  | ||||
| /* loaded from: classes.dex */ | ||||
| public class SnackbarContentLayout extends LinearLayout implements ContentViewCallback { | ||||
|     private Button actionView; | ||||
|     private final TimeInterpolator contentInterpolator; | ||||
|     private int maxInlineActionWidth; | ||||
|     private TextView messageView; | ||||
|  | ||||
|     public Button getActionView() { | ||||
|         return this.actionView; | ||||
|     } | ||||
|  | ||||
|     public TextView getMessageView() { | ||||
|         return this.messageView; | ||||
|     } | ||||
|  | ||||
|     public void setMaxInlineActionWidth(int i) { | ||||
|         this.maxInlineActionWidth = i; | ||||
|     } | ||||
|  | ||||
|     public SnackbarContentLayout(Context context) { | ||||
|         this(context, null); | ||||
|     } | ||||
|  | ||||
|     public SnackbarContentLayout(Context context, AttributeSet attributeSet) { | ||||
|         super(context, attributeSet); | ||||
|         this.contentInterpolator = MotionUtils.resolveThemeInterpolator(context, R.attr.motionEasingEmphasizedInterpolator, AnimationUtils.FAST_OUT_SLOW_IN_INTERPOLATOR); | ||||
|     } | ||||
|  | ||||
|     @Override // android.view.View | ||||
|     protected void onFinishInflate() { | ||||
|         super.onFinishInflate(); | ||||
|         this.messageView = (TextView) findViewById(R.id.snackbar_text); | ||||
|         this.actionView = (Button) findViewById(R.id.snackbar_action); | ||||
|     } | ||||
|  | ||||
|     void updateActionTextColorAlphaIfNeeded(float f) { | ||||
|         if (f != 1.0f) { | ||||
|             this.actionView.setTextColor(MaterialColors.layer(MaterialColors.getColor(this, R.attr.colorSurface), this.actionView.getCurrentTextColor(), f)); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     @Override // android.widget.LinearLayout, android.view.View | ||||
|     protected void onMeasure(int i, int i2) { | ||||
|         super.onMeasure(i, i2); | ||||
|         if (getOrientation() == 1) { | ||||
|             return; | ||||
|         } | ||||
|         int dimensionPixelSize = getResources().getDimensionPixelSize(R.dimen.design_snackbar_padding_vertical_2lines); | ||||
|         int dimensionPixelSize2 = getResources().getDimensionPixelSize(R.dimen.design_snackbar_padding_vertical); | ||||
|         Layout layout = this.messageView.getLayout(); | ||||
|         boolean z = layout != null && layout.getLineCount() > 1; | ||||
|         if (z && this.maxInlineActionWidth > 0 && this.actionView.getMeasuredWidth() > this.maxInlineActionWidth) { | ||||
|             if (!updateViewsWithinLayout(1, dimensionPixelSize, dimensionPixelSize - dimensionPixelSize2)) { | ||||
|                 return; | ||||
|             } | ||||
|         } else { | ||||
|             if (!z) { | ||||
|                 dimensionPixelSize = dimensionPixelSize2; | ||||
|             } | ||||
|             if (!updateViewsWithinLayout(0, dimensionPixelSize, dimensionPixelSize)) { | ||||
|                 return; | ||||
|             } | ||||
|         } | ||||
|         super.onMeasure(i, i2); | ||||
|     } | ||||
|  | ||||
|     private boolean updateViewsWithinLayout(int i, int i2, int i3) { | ||||
|         boolean z; | ||||
|         if (i != getOrientation()) { | ||||
|             setOrientation(i); | ||||
|             z = true; | ||||
|         } else { | ||||
|             z = false; | ||||
|         } | ||||
|         if (this.messageView.getPaddingTop() == i2 && this.messageView.getPaddingBottom() == i3) { | ||||
|             return z; | ||||
|         } | ||||
|         updateTopBottomPadding(this.messageView, i2, i3); | ||||
|         return true; | ||||
|     } | ||||
|  | ||||
|     private static void updateTopBottomPadding(View view, int i, int i2) { | ||||
|         if (ViewCompat.isPaddingRelative(view)) { | ||||
|             ViewCompat.setPaddingRelative(view, ViewCompat.getPaddingStart(view), i, ViewCompat.getPaddingEnd(view), i2); | ||||
|         } else { | ||||
|             view.setPadding(view.getPaddingLeft(), i, view.getPaddingRight(), i2); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     @Override // com.google.android.material.snackbar.ContentViewCallback | ||||
|     public void animateContentIn(int i, int i2) { | ||||
|         this.messageView.setAlpha(0.0f); | ||||
|         long j = i2; | ||||
|         long j2 = i; | ||||
|         this.messageView.animate().alpha(1.0f).setDuration(j).setInterpolator(this.contentInterpolator).setStartDelay(j2).start(); | ||||
|         if (this.actionView.getVisibility() == 0) { | ||||
|             this.actionView.setAlpha(0.0f); | ||||
|             this.actionView.animate().alpha(1.0f).setDuration(j).setInterpolator(this.contentInterpolator).setStartDelay(j2).start(); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     @Override // com.google.android.material.snackbar.ContentViewCallback | ||||
|     public void animateContentOut(int i, int i2) { | ||||
|         this.messageView.setAlpha(1.0f); | ||||
|         long j = i2; | ||||
|         long j2 = i; | ||||
|         this.messageView.animate().alpha(0.0f).setDuration(j).setInterpolator(this.contentInterpolator).setStartDelay(j2).start(); | ||||
|         if (this.actionView.getVisibility() == 0) { | ||||
|             this.actionView.setAlpha(1.0f); | ||||
|             this.actionView.animate().alpha(0.0f).setDuration(j).setInterpolator(this.contentInterpolator).setStartDelay(j2).start(); | ||||
|         } | ||||
|     } | ||||
| } | ||||
		Reference in New Issue
	
	Block a user