CrackMe.apk
Download file
package androidx.core.view;
import android.view.View;
import android.view.ViewParent;
public class NestedScrollingChildHelper {
private boolean mIsNestedScrollingEnabled;
private ViewParent mNestedScrollingParentNonTouch;
private ViewParent mNestedScrollingParentTouch;
private int[] mTempNestedScrollConsumed;
private final View mView;
public NestedScrollingChildHelper(View view) {
this.mView = view;
}
public void setNestedScrollingEnabled(boolean z) {
if (this.mIsNestedScrollingEnabled) {
ViewCompat.stopNestedScroll(this.mView);
}
this.mIsNestedScrollingEnabled = z;
}
public boolean isNestedScrollingEnabled() {
return this.mIsNestedScrollingEnabled;
}
public boolean hasNestedScrollingParent() {
return hasNestedScrollingParent(0);
}
public boolean hasNestedScrollingParent(int i) {
return getNestedScrollingParentForType(i) != null;
}
public boolean startNestedScroll(int i) {
return startNestedScroll(i, 0);
}
public boolean startNestedScroll(int i, int i2) {
if (hasNestedScrollingParent(i2)) {
return true;
}
if (!isNestedScrollingEnabled()) {
return false;
}
View view = this.mView;
for (ViewParent parent = this.mView.getParent(); parent != null; parent = parent.getParent()) {
if (ViewParentCompat.onStartNestedScroll(parent, view, this.mView, i, i2)) {
setNestedScrollingParentForType(i2, parent);
ViewParentCompat.onNestedScrollAccepted(parent, view, this.mView, i, i2);
return true;
}
if (parent instanceof View) {
view = (View) parent;
}
}
return false;
}
public void stopNestedScroll() {
stopNestedScroll(0);
}
public void stopNestedScroll(int i) {
ViewParent nestedScrollingParentForType = getNestedScrollingParentForType(i);
if (nestedScrollingParentForType != null) {
ViewParentCompat.onStopNestedScroll(nestedScrollingParentForType, this.mView, i);
setNestedScrollingParentForType(i, (ViewParent) null);
}
}
public boolean dispatchNestedScroll(int i, int i2, int i3, int i4, int[] iArr) {
return dispatchNestedScrollInternal(i, i2, i3, i4, iArr, 0, (int[]) null);
}
public boolean dispatchNestedScroll(int i, int i2, int i3, int i4, int[] iArr, int i5) {
return dispatchNestedScrollInternal(i, i2, i3, i4, iArr, i5, (int[]) null);
}
public void dispatchNestedScroll(int i, int i2, int i3, int i4, int[] iArr, int i5, int[] iArr2) {
dispatchNestedScrollInternal(i, i2, i3, i4, iArr, i5, iArr2);
}
private boolean dispatchNestedScrollInternal(int i, int i2, int i3, int i4, int[] iArr, int i5, int[] iArr2) {
ViewParent nestedScrollingParentForType;
int i6;
int i7;
int[] iArr3;
int[] iArr4 = iArr;
if (!isNestedScrollingEnabled() || (nestedScrollingParentForType = getNestedScrollingParentForType(i5)) == null) {
return false;
}
if (i == 0 && i2 == 0 && i3 == 0 && i4 == 0) {
if (iArr4 != null) {
iArr4[0] = 0;
iArr4[1] = 0;
}
return false;
}
if (iArr4 != null) {
this.mView.getLocationInWindow(iArr4);
i7 = iArr4[0];
i6 = iArr4[1];
} else {
i7 = 0;
i6 = 0;
}
if (iArr2 == null) {
int[] tempNestedScrollConsumed = getTempNestedScrollConsumed();
tempNestedScrollConsumed[0] = 0;
tempNestedScrollConsumed[1] = 0;
iArr3 = tempNestedScrollConsumed;
} else {
iArr3 = iArr2;
}
ViewParentCompat.onNestedScroll(nestedScrollingParentForType, this.mView, i, i2, i3, i4, i5, iArr3);
if (iArr4 != null) {
this.mView.getLocationInWindow(iArr4);
iArr4[0] = iArr4[0] - i7;
iArr4[1] = iArr4[1] - i6;
}
return true;
}
public boolean dispatchNestedPreScroll(int i, int i2, int[] iArr, int[] iArr2) {
return dispatchNestedPreScroll(i, i2, iArr, iArr2, 0);
}
public boolean dispatchNestedPreScroll(int i, int i2, int[] iArr, int[] iArr2, int i3) {
ViewParent nestedScrollingParentForType;
int i4;
int i5;
if (!isNestedScrollingEnabled() || (nestedScrollingParentForType = getNestedScrollingParentForType(i3)) == null) {
return false;
}
if (i != 0 || i2 != 0) {
if (iArr2 != null) {
this.mView.getLocationInWindow(iArr2);
i5 = iArr2[0];
i4 = iArr2[1];
} else {
i5 = 0;
i4 = 0;
}
if (iArr == null) {
iArr = getTempNestedScrollConsumed();
}
iArr[0] = 0;
iArr[1] = 0;
ViewParentCompat.onNestedPreScroll(nestedScrollingParentForType, this.mView, i, i2, iArr, i3);
if (iArr2 != null) {
this.mView.getLocationInWindow(iArr2);
iArr2[0] = iArr2[0] - i5;
iArr2[1] = iArr2[1] - i4;
}
if (iArr[0] == 0 && iArr[1] == 0) {
return false;
}
return true;
} else if (iArr2 == null) {
return false;
} else {
iArr2[0] = 0;
iArr2[1] = 0;
return false;
}
}
public boolean dispatchNestedFling(float f, float f2, boolean z) {
ViewParent nestedScrollingParentForType;
if (!isNestedScrollingEnabled() || (nestedScrollingParentForType = getNestedScrollingParentForType(0)) == null) {
return false;
}
return ViewParentCompat.onNestedFling(nestedScrollingParentForType, this.mView, f, f2, z);
}
public boolean dispatchNestedPreFling(float f, float f2) {
ViewParent nestedScrollingParentForType;
if (!isNestedScrollingEnabled() || (nestedScrollingParentForType = getNestedScrollingParentForType(0)) == null) {
return false;
}
return ViewParentCompat.onNestedPreFling(nestedScrollingParentForType, this.mView, f, f2);
}
public void onDetachedFromWindow() {
ViewCompat.stopNestedScroll(this.mView);
}
public void onStopNestedScroll(View view) {
ViewCompat.stopNestedScroll(this.mView);
}
private ViewParent getNestedScrollingParentForType(int i) {
if (i == 0) {
return this.mNestedScrollingParentTouch;
}
if (i != 1) {
return null;
}
return this.mNestedScrollingParentNonTouch;
}
private void setNestedScrollingParentForType(int i, ViewParent viewParent) {
if (i == 0) {
this.mNestedScrollingParentTouch = viewParent;
} else if (i == 1) {
this.mNestedScrollingParentNonTouch = viewParent;
}
}
private int[] getTempNestedScrollConsumed() {
if (this.mTempNestedScrollConsumed == null) {
this.mTempNestedScrollConsumed = new int[2];
}
return this.mTempNestedScrollConsumed;
}
}
Download file