243 lines
		
	
	
		
			9.9 KiB
		
	
	
	
		
			Java
		
	
	
	
	
	
			
		
		
	
	
			243 lines
		
	
	
		
			9.9 KiB
		
	
	
	
		
			Java
		
	
	
	
	
	
| package androidx.recyclerview.widget;
 | |
| 
 | |
| import android.graphics.Rect;
 | |
| import android.view.View;
 | |
| import androidx.recyclerview.widget.RecyclerView;
 | |
| 
 | |
| /* loaded from: classes.dex */
 | |
| public abstract class OrientationHelper {
 | |
|     public static final int HORIZONTAL = 0;
 | |
|     private static final int INVALID_SIZE = Integer.MIN_VALUE;
 | |
|     public static final int VERTICAL = 1;
 | |
|     private int mLastTotalSpace;
 | |
|     protected final RecyclerView.LayoutManager mLayoutManager;
 | |
|     final Rect mTmpRect;
 | |
| 
 | |
|     public abstract int getDecoratedEnd(View view);
 | |
| 
 | |
|     public abstract int getDecoratedMeasurement(View view);
 | |
| 
 | |
|     public abstract int getDecoratedMeasurementInOther(View view);
 | |
| 
 | |
|     public abstract int getDecoratedStart(View view);
 | |
| 
 | |
|     public abstract int getEnd();
 | |
| 
 | |
|     public abstract int getEndAfterPadding();
 | |
| 
 | |
|     public abstract int getEndPadding();
 | |
| 
 | |
|     public RecyclerView.LayoutManager getLayoutManager() {
 | |
|         return this.mLayoutManager;
 | |
|     }
 | |
| 
 | |
|     public abstract int getMode();
 | |
| 
 | |
|     public abstract int getModeInOther();
 | |
| 
 | |
|     public abstract int getStartAfterPadding();
 | |
| 
 | |
|     public abstract int getTotalSpace();
 | |
| 
 | |
|     public abstract int getTransformedEndWithDecoration(View view);
 | |
| 
 | |
|     public abstract int getTransformedStartWithDecoration(View view);
 | |
| 
 | |
|     public abstract void offsetChild(View view, int i);
 | |
| 
 | |
|     public abstract void offsetChildren(int i);
 | |
| 
 | |
|     private OrientationHelper(RecyclerView.LayoutManager layoutManager) {
 | |
|         this.mLastTotalSpace = Integer.MIN_VALUE;
 | |
|         this.mTmpRect = new Rect();
 | |
|         this.mLayoutManager = layoutManager;
 | |
|     }
 | |
| 
 | |
|     public void onLayoutComplete() {
 | |
|         this.mLastTotalSpace = getTotalSpace();
 | |
|     }
 | |
| 
 | |
|     public int getTotalSpaceChange() {
 | |
|         if (Integer.MIN_VALUE == this.mLastTotalSpace) {
 | |
|             return 0;
 | |
|         }
 | |
|         return getTotalSpace() - this.mLastTotalSpace;
 | |
|     }
 | |
| 
 | |
|     public static OrientationHelper createOrientationHelper(RecyclerView.LayoutManager layoutManager, int i) {
 | |
|         if (i == 0) {
 | |
|             return createHorizontalHelper(layoutManager);
 | |
|         }
 | |
|         if (i == 1) {
 | |
|             return createVerticalHelper(layoutManager);
 | |
|         }
 | |
|         throw new IllegalArgumentException("invalid orientation");
 | |
|     }
 | |
| 
 | |
|     public static OrientationHelper createHorizontalHelper(RecyclerView.LayoutManager layoutManager) {
 | |
|         return new OrientationHelper(layoutManager) { // from class: androidx.recyclerview.widget.OrientationHelper.1
 | |
|             @Override // androidx.recyclerview.widget.OrientationHelper
 | |
|             public int getEndAfterPadding() {
 | |
|                 return this.mLayoutManager.getWidth() - this.mLayoutManager.getPaddingRight();
 | |
|             }
 | |
| 
 | |
|             @Override // androidx.recyclerview.widget.OrientationHelper
 | |
|             public int getEnd() {
 | |
|                 return this.mLayoutManager.getWidth();
 | |
|             }
 | |
| 
 | |
|             @Override // androidx.recyclerview.widget.OrientationHelper
 | |
|             public void offsetChildren(int i) {
 | |
|                 this.mLayoutManager.offsetChildrenHorizontal(i);
 | |
|             }
 | |
| 
 | |
|             @Override // androidx.recyclerview.widget.OrientationHelper
 | |
|             public int getStartAfterPadding() {
 | |
|                 return this.mLayoutManager.getPaddingLeft();
 | |
|             }
 | |
| 
 | |
|             @Override // androidx.recyclerview.widget.OrientationHelper
 | |
|             public int getDecoratedMeasurement(View view) {
 | |
|                 RecyclerView.LayoutParams layoutParams = (RecyclerView.LayoutParams) view.getLayoutParams();
 | |
|                 return this.mLayoutManager.getDecoratedMeasuredWidth(view) + layoutParams.leftMargin + layoutParams.rightMargin;
 | |
|             }
 | |
| 
 | |
|             @Override // androidx.recyclerview.widget.OrientationHelper
 | |
|             public int getDecoratedMeasurementInOther(View view) {
 | |
|                 RecyclerView.LayoutParams layoutParams = (RecyclerView.LayoutParams) view.getLayoutParams();
 | |
|                 return this.mLayoutManager.getDecoratedMeasuredHeight(view) + layoutParams.topMargin + layoutParams.bottomMargin;
 | |
|             }
 | |
| 
 | |
|             @Override // androidx.recyclerview.widget.OrientationHelper
 | |
|             public int getDecoratedEnd(View view) {
 | |
|                 return this.mLayoutManager.getDecoratedRight(view) + ((RecyclerView.LayoutParams) view.getLayoutParams()).rightMargin;
 | |
|             }
 | |
| 
 | |
|             @Override // androidx.recyclerview.widget.OrientationHelper
 | |
|             public int getDecoratedStart(View view) {
 | |
|                 return this.mLayoutManager.getDecoratedLeft(view) - ((RecyclerView.LayoutParams) view.getLayoutParams()).leftMargin;
 | |
|             }
 | |
| 
 | |
|             @Override // androidx.recyclerview.widget.OrientationHelper
 | |
|             public int getTransformedEndWithDecoration(View view) {
 | |
|                 this.mLayoutManager.getTransformedBoundingBox(view, true, this.mTmpRect);
 | |
|                 return this.mTmpRect.right;
 | |
|             }
 | |
| 
 | |
|             @Override // androidx.recyclerview.widget.OrientationHelper
 | |
|             public int getTransformedStartWithDecoration(View view) {
 | |
|                 this.mLayoutManager.getTransformedBoundingBox(view, true, this.mTmpRect);
 | |
|                 return this.mTmpRect.left;
 | |
|             }
 | |
| 
 | |
|             @Override // androidx.recyclerview.widget.OrientationHelper
 | |
|             public int getTotalSpace() {
 | |
|                 return (this.mLayoutManager.getWidth() - this.mLayoutManager.getPaddingLeft()) - this.mLayoutManager.getPaddingRight();
 | |
|             }
 | |
| 
 | |
|             @Override // androidx.recyclerview.widget.OrientationHelper
 | |
|             public void offsetChild(View view, int i) {
 | |
|                 view.offsetLeftAndRight(i);
 | |
|             }
 | |
| 
 | |
|             @Override // androidx.recyclerview.widget.OrientationHelper
 | |
|             public int getEndPadding() {
 | |
|                 return this.mLayoutManager.getPaddingRight();
 | |
|             }
 | |
| 
 | |
|             @Override // androidx.recyclerview.widget.OrientationHelper
 | |
|             public int getMode() {
 | |
|                 return this.mLayoutManager.getWidthMode();
 | |
|             }
 | |
| 
 | |
|             @Override // androidx.recyclerview.widget.OrientationHelper
 | |
|             public int getModeInOther() {
 | |
|                 return this.mLayoutManager.getHeightMode();
 | |
|             }
 | |
|         };
 | |
|     }
 | |
| 
 | |
|     public static OrientationHelper createVerticalHelper(RecyclerView.LayoutManager layoutManager) {
 | |
|         return new OrientationHelper(layoutManager) { // from class: androidx.recyclerview.widget.OrientationHelper.2
 | |
|             @Override // androidx.recyclerview.widget.OrientationHelper
 | |
|             public int getEndAfterPadding() {
 | |
|                 return this.mLayoutManager.getHeight() - this.mLayoutManager.getPaddingBottom();
 | |
|             }
 | |
| 
 | |
|             @Override // androidx.recyclerview.widget.OrientationHelper
 | |
|             public int getEnd() {
 | |
|                 return this.mLayoutManager.getHeight();
 | |
|             }
 | |
| 
 | |
|             @Override // androidx.recyclerview.widget.OrientationHelper
 | |
|             public void offsetChildren(int i) {
 | |
|                 this.mLayoutManager.offsetChildrenVertical(i);
 | |
|             }
 | |
| 
 | |
|             @Override // androidx.recyclerview.widget.OrientationHelper
 | |
|             public int getStartAfterPadding() {
 | |
|                 return this.mLayoutManager.getPaddingTop();
 | |
|             }
 | |
| 
 | |
|             @Override // androidx.recyclerview.widget.OrientationHelper
 | |
|             public int getDecoratedMeasurement(View view) {
 | |
|                 RecyclerView.LayoutParams layoutParams = (RecyclerView.LayoutParams) view.getLayoutParams();
 | |
|                 return this.mLayoutManager.getDecoratedMeasuredHeight(view) + layoutParams.topMargin + layoutParams.bottomMargin;
 | |
|             }
 | |
| 
 | |
|             @Override // androidx.recyclerview.widget.OrientationHelper
 | |
|             public int getDecoratedMeasurementInOther(View view) {
 | |
|                 RecyclerView.LayoutParams layoutParams = (RecyclerView.LayoutParams) view.getLayoutParams();
 | |
|                 return this.mLayoutManager.getDecoratedMeasuredWidth(view) + layoutParams.leftMargin + layoutParams.rightMargin;
 | |
|             }
 | |
| 
 | |
|             @Override // androidx.recyclerview.widget.OrientationHelper
 | |
|             public int getDecoratedEnd(View view) {
 | |
|                 return this.mLayoutManager.getDecoratedBottom(view) + ((RecyclerView.LayoutParams) view.getLayoutParams()).bottomMargin;
 | |
|             }
 | |
| 
 | |
|             @Override // androidx.recyclerview.widget.OrientationHelper
 | |
|             public int getDecoratedStart(View view) {
 | |
|                 return this.mLayoutManager.getDecoratedTop(view) - ((RecyclerView.LayoutParams) view.getLayoutParams()).topMargin;
 | |
|             }
 | |
| 
 | |
|             @Override // androidx.recyclerview.widget.OrientationHelper
 | |
|             public int getTransformedEndWithDecoration(View view) {
 | |
|                 this.mLayoutManager.getTransformedBoundingBox(view, true, this.mTmpRect);
 | |
|                 return this.mTmpRect.bottom;
 | |
|             }
 | |
| 
 | |
|             @Override // androidx.recyclerview.widget.OrientationHelper
 | |
|             public int getTransformedStartWithDecoration(View view) {
 | |
|                 this.mLayoutManager.getTransformedBoundingBox(view, true, this.mTmpRect);
 | |
|                 return this.mTmpRect.top;
 | |
|             }
 | |
| 
 | |
|             @Override // androidx.recyclerview.widget.OrientationHelper
 | |
|             public int getTotalSpace() {
 | |
|                 return (this.mLayoutManager.getHeight() - this.mLayoutManager.getPaddingTop()) - this.mLayoutManager.getPaddingBottom();
 | |
|             }
 | |
| 
 | |
|             @Override // androidx.recyclerview.widget.OrientationHelper
 | |
|             public void offsetChild(View view, int i) {
 | |
|                 view.offsetTopAndBottom(i);
 | |
|             }
 | |
| 
 | |
|             @Override // androidx.recyclerview.widget.OrientationHelper
 | |
|             public int getEndPadding() {
 | |
|                 return this.mLayoutManager.getPaddingBottom();
 | |
|             }
 | |
| 
 | |
|             @Override // androidx.recyclerview.widget.OrientationHelper
 | |
|             public int getMode() {
 | |
|                 return this.mLayoutManager.getHeightMode();
 | |
|             }
 | |
| 
 | |
|             @Override // androidx.recyclerview.widget.OrientationHelper
 | |
|             public int getModeInOther() {
 | |
|                 return this.mLayoutManager.getWidthMode();
 | |
|             }
 | |
|         };
 | |
|     }
 | |
| }
 |