Rabbit-R1/switch port/java/sources/androidx/recyclerview/widget/OrientationHelper.java
2024-05-21 17:08:36 -04:00

242 lines
9.9 KiB
Java

package androidx.recyclerview.widget;
import android.graphics.Rect;
import android.view.View;
import androidx.recyclerview.widget.RecyclerView;
/* loaded from: classes2.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();
}
};
}
}