271 lines
		
	
	
		
			12 KiB
		
	
	
	
		
			Java
		
	
	
	
	
	
			
		
		
	
	
			271 lines
		
	
	
		
			12 KiB
		
	
	
	
		
			Java
		
	
	
	
	
	
| package androidx.constraintlayout.helper.widget;
 | |
| 
 | |
| import android.content.Context;
 | |
| import android.content.res.TypedArray;
 | |
| import android.util.AttributeSet;
 | |
| import android.util.SparseArray;
 | |
| import android.view.View;
 | |
| import androidx.constraintlayout.core.widgets.ConstraintWidget;
 | |
| import androidx.constraintlayout.core.widgets.HelperWidget;
 | |
| import androidx.constraintlayout.widget.ConstraintLayout;
 | |
| import androidx.constraintlayout.widget.ConstraintSet;
 | |
| import androidx.constraintlayout.widget.R;
 | |
| import androidx.constraintlayout.widget.VirtualLayout;
 | |
| 
 | |
| /* loaded from: classes.dex */
 | |
| public class Flow extends VirtualLayout {
 | |
|     public static final int CHAIN_PACKED = 2;
 | |
|     public static final int CHAIN_SPREAD = 0;
 | |
|     public static final int CHAIN_SPREAD_INSIDE = 1;
 | |
|     public static final int HORIZONTAL = 0;
 | |
|     public static final int HORIZONTAL_ALIGN_CENTER = 2;
 | |
|     public static final int HORIZONTAL_ALIGN_END = 1;
 | |
|     public static final int HORIZONTAL_ALIGN_START = 0;
 | |
|     private static final String TAG = "Flow";
 | |
|     public static final int VERTICAL = 1;
 | |
|     public static final int VERTICAL_ALIGN_BASELINE = 3;
 | |
|     public static final int VERTICAL_ALIGN_BOTTOM = 1;
 | |
|     public static final int VERTICAL_ALIGN_CENTER = 2;
 | |
|     public static final int VERTICAL_ALIGN_TOP = 0;
 | |
|     public static final int WRAP_ALIGNED = 2;
 | |
|     public static final int WRAP_CHAIN = 1;
 | |
|     public static final int WRAP_NONE = 0;
 | |
|     private androidx.constraintlayout.core.widgets.Flow mFlow;
 | |
| 
 | |
|     public Flow(Context context) {
 | |
|         super(context);
 | |
|     }
 | |
| 
 | |
|     public Flow(Context context, AttributeSet attrs) {
 | |
|         super(context, attrs);
 | |
|     }
 | |
| 
 | |
|     public Flow(Context context, AttributeSet attrs, int defStyleAttr) {
 | |
|         super(context, attrs, defStyleAttr);
 | |
|     }
 | |
| 
 | |
|     @Override // androidx.constraintlayout.widget.ConstraintHelper
 | |
|     public void resolveRtl(ConstraintWidget widget, boolean isRtl) {
 | |
|         this.mFlow.applyRtl(isRtl);
 | |
|     }
 | |
| 
 | |
|     @Override // androidx.constraintlayout.widget.ConstraintHelper, android.view.View
 | |
|     protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
 | |
|         onMeasure(this.mFlow, widthMeasureSpec, heightMeasureSpec);
 | |
|     }
 | |
| 
 | |
|     @Override // androidx.constraintlayout.widget.VirtualLayout
 | |
|     public void onMeasure(androidx.constraintlayout.core.widgets.VirtualLayout layout, int widthMeasureSpec, int heightMeasureSpec) {
 | |
|         int mode = View.MeasureSpec.getMode(widthMeasureSpec);
 | |
|         int size = View.MeasureSpec.getSize(widthMeasureSpec);
 | |
|         int mode2 = View.MeasureSpec.getMode(heightMeasureSpec);
 | |
|         int size2 = View.MeasureSpec.getSize(heightMeasureSpec);
 | |
|         if (layout != null) {
 | |
|             layout.measure(mode, size, mode2, size2);
 | |
|             setMeasuredDimension(layout.getMeasuredWidth(), layout.getMeasuredHeight());
 | |
|         } else {
 | |
|             setMeasuredDimension(0, 0);
 | |
|         }
 | |
|     }
 | |
| 
 | |
|     @Override // androidx.constraintlayout.widget.ConstraintHelper
 | |
|     public void loadParameters(ConstraintSet.Constraint constraint, HelperWidget child, ConstraintLayout.LayoutParams layoutParams, SparseArray<ConstraintWidget> mapIdToWidget) {
 | |
|         super.loadParameters(constraint, child, layoutParams, mapIdToWidget);
 | |
|         if (child instanceof androidx.constraintlayout.core.widgets.Flow) {
 | |
|             androidx.constraintlayout.core.widgets.Flow flow = (androidx.constraintlayout.core.widgets.Flow) child;
 | |
|             if (layoutParams.orientation != -1) {
 | |
|                 flow.setOrientation(layoutParams.orientation);
 | |
|             }
 | |
|         }
 | |
|     }
 | |
| 
 | |
|     @Override // androidx.constraintlayout.widget.VirtualLayout, androidx.constraintlayout.widget.ConstraintHelper
 | |
|     protected void init(AttributeSet attrs) {
 | |
|         super.init(attrs);
 | |
|         this.mFlow = new androidx.constraintlayout.core.widgets.Flow();
 | |
|         if (attrs != null) {
 | |
|             TypedArray obtainStyledAttributes = getContext().obtainStyledAttributes(attrs, R.styleable.ConstraintLayout_Layout);
 | |
|             int indexCount = obtainStyledAttributes.getIndexCount();
 | |
|             for (int i = 0; i < indexCount; i++) {
 | |
|                 int index = obtainStyledAttributes.getIndex(i);
 | |
|                 if (index == R.styleable.ConstraintLayout_Layout_android_orientation) {
 | |
|                     this.mFlow.setOrientation(obtainStyledAttributes.getInt(index, 0));
 | |
|                 } else if (index == R.styleable.ConstraintLayout_Layout_android_padding) {
 | |
|                     this.mFlow.setPadding(obtainStyledAttributes.getDimensionPixelSize(index, 0));
 | |
|                 } else if (index == R.styleable.ConstraintLayout_Layout_android_paddingStart) {
 | |
|                     this.mFlow.setPaddingStart(obtainStyledAttributes.getDimensionPixelSize(index, 0));
 | |
|                 } else if (index == R.styleable.ConstraintLayout_Layout_android_paddingEnd) {
 | |
|                     this.mFlow.setPaddingEnd(obtainStyledAttributes.getDimensionPixelSize(index, 0));
 | |
|                 } else if (index == R.styleable.ConstraintLayout_Layout_android_paddingLeft) {
 | |
|                     this.mFlow.setPaddingLeft(obtainStyledAttributes.getDimensionPixelSize(index, 0));
 | |
|                 } else if (index == R.styleable.ConstraintLayout_Layout_android_paddingTop) {
 | |
|                     this.mFlow.setPaddingTop(obtainStyledAttributes.getDimensionPixelSize(index, 0));
 | |
|                 } else if (index == R.styleable.ConstraintLayout_Layout_android_paddingRight) {
 | |
|                     this.mFlow.setPaddingRight(obtainStyledAttributes.getDimensionPixelSize(index, 0));
 | |
|                 } else if (index == R.styleable.ConstraintLayout_Layout_android_paddingBottom) {
 | |
|                     this.mFlow.setPaddingBottom(obtainStyledAttributes.getDimensionPixelSize(index, 0));
 | |
|                 } else if (index == R.styleable.ConstraintLayout_Layout_flow_wrapMode) {
 | |
|                     this.mFlow.setWrapMode(obtainStyledAttributes.getInt(index, 0));
 | |
|                 } else if (index == R.styleable.ConstraintLayout_Layout_flow_horizontalStyle) {
 | |
|                     this.mFlow.setHorizontalStyle(obtainStyledAttributes.getInt(index, 0));
 | |
|                 } else if (index == R.styleable.ConstraintLayout_Layout_flow_verticalStyle) {
 | |
|                     this.mFlow.setVerticalStyle(obtainStyledAttributes.getInt(index, 0));
 | |
|                 } else if (index == R.styleable.ConstraintLayout_Layout_flow_firstHorizontalStyle) {
 | |
|                     this.mFlow.setFirstHorizontalStyle(obtainStyledAttributes.getInt(index, 0));
 | |
|                 } else if (index == R.styleable.ConstraintLayout_Layout_flow_lastHorizontalStyle) {
 | |
|                     this.mFlow.setLastHorizontalStyle(obtainStyledAttributes.getInt(index, 0));
 | |
|                 } else if (index == R.styleable.ConstraintLayout_Layout_flow_firstVerticalStyle) {
 | |
|                     this.mFlow.setFirstVerticalStyle(obtainStyledAttributes.getInt(index, 0));
 | |
|                 } else if (index == R.styleable.ConstraintLayout_Layout_flow_lastVerticalStyle) {
 | |
|                     this.mFlow.setLastVerticalStyle(obtainStyledAttributes.getInt(index, 0));
 | |
|                 } else if (index == R.styleable.ConstraintLayout_Layout_flow_horizontalBias) {
 | |
|                     this.mFlow.setHorizontalBias(obtainStyledAttributes.getFloat(index, 0.5f));
 | |
|                 } else if (index == R.styleable.ConstraintLayout_Layout_flow_firstHorizontalBias) {
 | |
|                     this.mFlow.setFirstHorizontalBias(obtainStyledAttributes.getFloat(index, 0.5f));
 | |
|                 } else if (index == R.styleable.ConstraintLayout_Layout_flow_lastHorizontalBias) {
 | |
|                     this.mFlow.setLastHorizontalBias(obtainStyledAttributes.getFloat(index, 0.5f));
 | |
|                 } else if (index == R.styleable.ConstraintLayout_Layout_flow_firstVerticalBias) {
 | |
|                     this.mFlow.setFirstVerticalBias(obtainStyledAttributes.getFloat(index, 0.5f));
 | |
|                 } else if (index == R.styleable.ConstraintLayout_Layout_flow_lastVerticalBias) {
 | |
|                     this.mFlow.setLastVerticalBias(obtainStyledAttributes.getFloat(index, 0.5f));
 | |
|                 } else if (index == R.styleable.ConstraintLayout_Layout_flow_verticalBias) {
 | |
|                     this.mFlow.setVerticalBias(obtainStyledAttributes.getFloat(index, 0.5f));
 | |
|                 } else if (index == R.styleable.ConstraintLayout_Layout_flow_horizontalAlign) {
 | |
|                     this.mFlow.setHorizontalAlign(obtainStyledAttributes.getInt(index, 2));
 | |
|                 } else if (index == R.styleable.ConstraintLayout_Layout_flow_verticalAlign) {
 | |
|                     this.mFlow.setVerticalAlign(obtainStyledAttributes.getInt(index, 2));
 | |
|                 } else if (index == R.styleable.ConstraintLayout_Layout_flow_horizontalGap) {
 | |
|                     this.mFlow.setHorizontalGap(obtainStyledAttributes.getDimensionPixelSize(index, 0));
 | |
|                 } else if (index == R.styleable.ConstraintLayout_Layout_flow_verticalGap) {
 | |
|                     this.mFlow.setVerticalGap(obtainStyledAttributes.getDimensionPixelSize(index, 0));
 | |
|                 } else if (index == R.styleable.ConstraintLayout_Layout_flow_maxElementsWrap) {
 | |
|                     this.mFlow.setMaxElementsWrap(obtainStyledAttributes.getInt(index, -1));
 | |
|                 }
 | |
|             }
 | |
|             obtainStyledAttributes.recycle();
 | |
|         }
 | |
|         this.mHelperWidget = this.mFlow;
 | |
|         validateParams();
 | |
|     }
 | |
| 
 | |
|     public void setOrientation(int orientation) {
 | |
|         this.mFlow.setOrientation(orientation);
 | |
|         requestLayout();
 | |
|     }
 | |
| 
 | |
|     public void setPadding(int padding) {
 | |
|         this.mFlow.setPadding(padding);
 | |
|         requestLayout();
 | |
|     }
 | |
| 
 | |
|     public void setPaddingLeft(int paddingLeft) {
 | |
|         this.mFlow.setPaddingLeft(paddingLeft);
 | |
|         requestLayout();
 | |
|     }
 | |
| 
 | |
|     public void setPaddingTop(int paddingTop) {
 | |
|         this.mFlow.setPaddingTop(paddingTop);
 | |
|         requestLayout();
 | |
|     }
 | |
| 
 | |
|     public void setPaddingRight(int paddingRight) {
 | |
|         this.mFlow.setPaddingRight(paddingRight);
 | |
|         requestLayout();
 | |
|     }
 | |
| 
 | |
|     public void setPaddingBottom(int paddingBottom) {
 | |
|         this.mFlow.setPaddingBottom(paddingBottom);
 | |
|         requestLayout();
 | |
|     }
 | |
| 
 | |
|     public void setLastHorizontalStyle(int style) {
 | |
|         this.mFlow.setLastHorizontalStyle(style);
 | |
|         requestLayout();
 | |
|     }
 | |
| 
 | |
|     public void setLastVerticalStyle(int style) {
 | |
|         this.mFlow.setLastVerticalStyle(style);
 | |
|         requestLayout();
 | |
|     }
 | |
| 
 | |
|     public void setLastHorizontalBias(float bias) {
 | |
|         this.mFlow.setLastHorizontalBias(bias);
 | |
|         requestLayout();
 | |
|     }
 | |
| 
 | |
|     public void setLastVerticalBias(float bias) {
 | |
|         this.mFlow.setLastVerticalBias(bias);
 | |
|         requestLayout();
 | |
|     }
 | |
| 
 | |
|     public void setWrapMode(int mode) {
 | |
|         this.mFlow.setWrapMode(mode);
 | |
|         requestLayout();
 | |
|     }
 | |
| 
 | |
|     public void setHorizontalStyle(int style) {
 | |
|         this.mFlow.setHorizontalStyle(style);
 | |
|         requestLayout();
 | |
|     }
 | |
| 
 | |
|     public void setVerticalStyle(int style) {
 | |
|         this.mFlow.setVerticalStyle(style);
 | |
|         requestLayout();
 | |
|     }
 | |
| 
 | |
|     public void setHorizontalBias(float bias) {
 | |
|         this.mFlow.setHorizontalBias(bias);
 | |
|         requestLayout();
 | |
|     }
 | |
| 
 | |
|     public void setVerticalBias(float bias) {
 | |
|         this.mFlow.setVerticalBias(bias);
 | |
|         requestLayout();
 | |
|     }
 | |
| 
 | |
|     public void setFirstHorizontalStyle(int style) {
 | |
|         this.mFlow.setFirstHorizontalStyle(style);
 | |
|         requestLayout();
 | |
|     }
 | |
| 
 | |
|     public void setFirstVerticalStyle(int style) {
 | |
|         this.mFlow.setFirstVerticalStyle(style);
 | |
|         requestLayout();
 | |
|     }
 | |
| 
 | |
|     public void setFirstHorizontalBias(float bias) {
 | |
|         this.mFlow.setFirstHorizontalBias(bias);
 | |
|         requestLayout();
 | |
|     }
 | |
| 
 | |
|     public void setFirstVerticalBias(float bias) {
 | |
|         this.mFlow.setFirstVerticalBias(bias);
 | |
|         requestLayout();
 | |
|     }
 | |
| 
 | |
|     public void setHorizontalAlign(int align) {
 | |
|         this.mFlow.setHorizontalAlign(align);
 | |
|         requestLayout();
 | |
|     }
 | |
| 
 | |
|     public void setVerticalAlign(int align) {
 | |
|         this.mFlow.setVerticalAlign(align);
 | |
|         requestLayout();
 | |
|     }
 | |
| 
 | |
|     public void setHorizontalGap(int gap) {
 | |
|         this.mFlow.setHorizontalGap(gap);
 | |
|         requestLayout();
 | |
|     }
 | |
| 
 | |
|     public void setVerticalGap(int gap) {
 | |
|         this.mFlow.setVerticalGap(gap);
 | |
|         requestLayout();
 | |
|     }
 | |
| 
 | |
|     public void setMaxElementsWrap(int max) {
 | |
|         this.mFlow.setMaxElementsWrap(max);
 | |
|         requestLayout();
 | |
|     }
 | |
| }
 |