89 lines
		
	
	
		
			4.4 KiB
		
	
	
	
		
			Java
		
	
	
	
	
	
			
		
		
	
	
			89 lines
		
	
	
		
			4.4 KiB
		
	
	
	
		
			Java
		
	
	
	
	
	
| package com.google.android.material.textview;
 | |
| 
 | |
| import android.R;
 | |
| import android.content.Context;
 | |
| import android.content.res.Resources;
 | |
| import android.content.res.TypedArray;
 | |
| import android.util.AttributeSet;
 | |
| import androidx.appcompat.widget.AppCompatTextView;
 | |
| import com.google.android.material.resources.MaterialAttributes;
 | |
| import com.google.android.material.resources.MaterialResources;
 | |
| import com.google.android.material.theme.overlay.MaterialThemeOverlay;
 | |
| 
 | |
| /* loaded from: classes.dex */
 | |
| public class MaterialTextView extends AppCompatTextView {
 | |
|     public MaterialTextView(Context context) {
 | |
|         this(context, null);
 | |
|     }
 | |
| 
 | |
|     public MaterialTextView(Context context, AttributeSet attributeSet) {
 | |
|         this(context, attributeSet, R.attr.textViewStyle);
 | |
|     }
 | |
| 
 | |
|     public MaterialTextView(Context context, AttributeSet attributeSet, int i) {
 | |
|         super(MaterialThemeOverlay.wrap(context, attributeSet, i, 0), attributeSet, i);
 | |
|         initialize(attributeSet, i, 0);
 | |
|     }
 | |
| 
 | |
|     @Deprecated
 | |
|     public MaterialTextView(Context context, AttributeSet attributeSet, int i, int i2) {
 | |
|         super(MaterialThemeOverlay.wrap(context, attributeSet, i, i2), attributeSet, i);
 | |
|         initialize(attributeSet, i, i2);
 | |
|     }
 | |
| 
 | |
|     @Override // androidx.appcompat.widget.AppCompatTextView, android.widget.TextView
 | |
|     public void setTextAppearance(Context context, int i) {
 | |
|         super.setTextAppearance(context, i);
 | |
|         if (canApplyTextAppearanceLineHeight(context)) {
 | |
|             applyLineHeightFromViewAppearance(context.getTheme(), i);
 | |
|         }
 | |
|     }
 | |
| 
 | |
|     private void initialize(AttributeSet attributeSet, int i, int i2) {
 | |
|         int findViewAppearanceResourceId;
 | |
|         Context context = getContext();
 | |
|         if (canApplyTextAppearanceLineHeight(context)) {
 | |
|             Resources.Theme theme = context.getTheme();
 | |
|             if (viewAttrsHasLineHeight(context, theme, attributeSet, i, i2) || (findViewAppearanceResourceId = findViewAppearanceResourceId(theme, attributeSet, i, i2)) == -1) {
 | |
|                 return;
 | |
|             }
 | |
|             applyLineHeightFromViewAppearance(theme, findViewAppearanceResourceId);
 | |
|         }
 | |
|     }
 | |
| 
 | |
|     private void applyLineHeightFromViewAppearance(Resources.Theme theme, int i) {
 | |
|         TypedArray obtainStyledAttributes = theme.obtainStyledAttributes(i, com.google.android.material.R.styleable.MaterialTextAppearance);
 | |
|         int readFirstAvailableDimension = readFirstAvailableDimension(getContext(), obtainStyledAttributes, com.google.android.material.R.styleable.MaterialTextAppearance_android_lineHeight, com.google.android.material.R.styleable.MaterialTextAppearance_lineHeight);
 | |
|         obtainStyledAttributes.recycle();
 | |
|         if (readFirstAvailableDimension >= 0) {
 | |
|             setLineHeight(readFirstAvailableDimension);
 | |
|         }
 | |
|     }
 | |
| 
 | |
|     private static boolean canApplyTextAppearanceLineHeight(Context context) {
 | |
|         return MaterialAttributes.resolveBoolean(context, com.google.android.material.R.attr.textAppearanceLineHeightEnabled, true);
 | |
|     }
 | |
| 
 | |
|     private static int readFirstAvailableDimension(Context context, TypedArray typedArray, int... iArr) {
 | |
|         int i = -1;
 | |
|         for (int i2 = 0; i2 < iArr.length && i < 0; i2++) {
 | |
|             i = MaterialResources.getDimensionPixelSize(context, typedArray, iArr[i2], -1);
 | |
|         }
 | |
|         return i;
 | |
|     }
 | |
| 
 | |
|     private static boolean viewAttrsHasLineHeight(Context context, Resources.Theme theme, AttributeSet attributeSet, int i, int i2) {
 | |
|         TypedArray obtainStyledAttributes = theme.obtainStyledAttributes(attributeSet, com.google.android.material.R.styleable.MaterialTextView, i, i2);
 | |
|         int readFirstAvailableDimension = readFirstAvailableDimension(context, obtainStyledAttributes, com.google.android.material.R.styleable.MaterialTextView_android_lineHeight, com.google.android.material.R.styleable.MaterialTextView_lineHeight);
 | |
|         obtainStyledAttributes.recycle();
 | |
|         return readFirstAvailableDimension != -1;
 | |
|     }
 | |
| 
 | |
|     private static int findViewAppearanceResourceId(Resources.Theme theme, AttributeSet attributeSet, int i, int i2) {
 | |
|         TypedArray obtainStyledAttributes = theme.obtainStyledAttributes(attributeSet, com.google.android.material.R.styleable.MaterialTextView, i, i2);
 | |
|         int resourceId = obtainStyledAttributes.getResourceId(com.google.android.material.R.styleable.MaterialTextView_android_textAppearance, -1);
 | |
|         obtainStyledAttributes.recycle();
 | |
|         return resourceId;
 | |
|     }
 | |
| }
 |