CrackMe.apk
Download file
package com.google.android.material.appbar;
import android.content.Context;
import android.util.AttributeSet;
import android.view.VelocityTracker;
import android.view.View;
import android.widget.OverScroller;
import androidx.coordinatorlayout.widget.CoordinatorLayout;
import androidx.core.math.MathUtils;
import androidx.core.view.ViewCompat;
abstract class HeaderBehavior<V extends View> extends ViewOffsetBehavior<V> {
private static final int INVALID_POINTER = -1;
private int activePointerId = -1;
private Runnable flingRunnable;
private boolean isBeingDragged;
private int lastMotionY;
OverScroller scroller;
private int touchSlop = -1;
private VelocityTracker velocityTracker;
/* access modifiers changed from: package-private */
public boolean canDragView(V v) {
return false;
}
/* access modifiers changed from: package-private */
public void onFlingFinished(CoordinatorLayout coordinatorLayout, V v) {
}
public HeaderBehavior() {
}
public HeaderBehavior(Context context, AttributeSet attributeSet) {
super(context, attributeSet);
}
/* JADX WARNING: Code restructure failed: missing block: B:14:0x002c, code lost:
if (r0 != 3) goto L_0x0083;
*/
/* Code decompiled incorrectly, please refer to instructions dump. */
public boolean onInterceptTouchEvent(androidx.coordinatorlayout.widget.CoordinatorLayout r5, V r6, android.view.MotionEvent r7) {
/*
r4 = this;
int r0 = r4.touchSlop
if (r0 >= 0) goto L_0x0012
android.content.Context r0 = r5.getContext()
android.view.ViewConfiguration r0 = android.view.ViewConfiguration.get(r0)
int r0 = r0.getScaledTouchSlop()
r4.touchSlop = r0
L_0x0012:
int r0 = r7.getAction()
r1 = 2
r2 = 1
if (r0 != r1) goto L_0x001f
boolean r0 = r4.isBeingDragged
if (r0 == 0) goto L_0x001f
return r2
L_0x001f:
int r0 = r7.getActionMasked()
r3 = 0
if (r0 == 0) goto L_0x0060
r5 = -1
if (r0 == r2) goto L_0x0051
if (r0 == r1) goto L_0x002f
r6 = 3
if (r0 == r6) goto L_0x0051
goto L_0x0083
L_0x002f:
int r6 = r4.activePointerId
if (r6 != r5) goto L_0x0034
goto L_0x0083
L_0x0034:
int r6 = r7.findPointerIndex(r6)
if (r6 != r5) goto L_0x003b
goto L_0x0083
L_0x003b:
float r5 = r7.getY(r6)
int r5 = (int) r5
int r6 = r4.lastMotionY
int r6 = r5 - r6
int r6 = java.lang.Math.abs(r6)
int r0 = r4.touchSlop
if (r6 <= r0) goto L_0x0083
r4.isBeingDragged = r2
r4.lastMotionY = r5
goto L_0x0083
L_0x0051:
r4.isBeingDragged = r3
r4.activePointerId = r5
android.view.VelocityTracker r5 = r4.velocityTracker
if (r5 == 0) goto L_0x0083
r5.recycle()
r5 = 0
r4.velocityTracker = r5
goto L_0x0083
L_0x0060:
r4.isBeingDragged = r3
float r0 = r7.getX()
int r0 = (int) r0
float r1 = r7.getY()
int r1 = (int) r1
boolean r2 = r4.canDragView(r6)
if (r2 == 0) goto L_0x0083
boolean r5 = r5.isPointInChildBounds(r6, r0, r1)
if (r5 == 0) goto L_0x0083
r4.lastMotionY = r1
int r5 = r7.getPointerId(r3)
r4.activePointerId = r5
r4.ensureVelocityTracker()
L_0x0083:
android.view.VelocityTracker r5 = r4.velocityTracker
if (r5 == 0) goto L_0x008a
r5.addMovement(r7)
L_0x008a:
boolean r5 = r4.isBeingDragged
return r5
*/
throw new UnsupportedOperationException("Method not decompiled: com.google.android.material.appbar.HeaderBehavior.onInterceptTouchEvent(androidx.coordinatorlayout.widget.CoordinatorLayout, android.view.View, android.view.MotionEvent):boolean");
}
/* JADX WARNING: Code restructure failed: missing block: B:10:0x0021, code lost:
if (r0 != 3) goto L_0x00ae;
*/
/* Code decompiled incorrectly, please refer to instructions dump. */
public boolean onTouchEvent(androidx.coordinatorlayout.widget.CoordinatorLayout r12, V r13, android.view.MotionEvent r14) {
/*
r11 = this;
int r0 = r11.touchSlop
if (r0 >= 0) goto L_0x0012
android.content.Context r0 = r12.getContext()
android.view.ViewConfiguration r0 = android.view.ViewConfiguration.get(r0)
int r0 = r0.getScaledTouchSlop()
r11.touchSlop = r0
L_0x0012:
int r0 = r14.getActionMasked()
r1 = 1
r2 = 0
if (r0 == 0) goto L_0x008d
r3 = -1
if (r0 == r1) goto L_0x005c
r4 = 2
if (r0 == r4) goto L_0x0025
r12 = 3
if (r0 == r12) goto L_0x007e
goto L_0x00ae
L_0x0025:
int r0 = r11.activePointerId
int r0 = r14.findPointerIndex(r0)
if (r0 != r3) goto L_0x002e
return r2
L_0x002e:
float r0 = r14.getY(r0)
int r0 = (int) r0
int r2 = r11.lastMotionY
int r2 = r2 - r0
boolean r3 = r11.isBeingDragged
if (r3 != 0) goto L_0x0049
int r3 = java.lang.Math.abs(r2)
int r4 = r11.touchSlop
if (r3 <= r4) goto L_0x0049
r11.isBeingDragged = r1
if (r2 <= 0) goto L_0x0048
int r2 = r2 - r4
goto L_0x0049
L_0x0048:
int r2 = r2 + r4
L_0x0049:
r6 = r2
boolean r2 = r11.isBeingDragged
if (r2 == 0) goto L_0x00ae
r11.lastMotionY = r0
int r7 = r11.getMaxDragOffset(r13)
r8 = 0
r3 = r11
r4 = r12
r5 = r13
r3.scroll(r4, r5, r6, r7, r8)
goto L_0x00ae
L_0x005c:
android.view.VelocityTracker r0 = r11.velocityTracker
if (r0 == 0) goto L_0x007e
r0.addMovement(r14)
android.view.VelocityTracker r0 = r11.velocityTracker
r4 = 1000(0x3e8, float:1.401E-42)
r0.computeCurrentVelocity(r4)
android.view.VelocityTracker r0 = r11.velocityTracker
int r4 = r11.activePointerId
float r10 = r0.getYVelocity(r4)
int r0 = r11.getScrollRangeForDragFling(r13)
int r8 = -r0
r9 = 0
r5 = r11
r6 = r12
r7 = r13
r5.fling(r6, r7, r8, r9, r10)
L_0x007e:
r11.isBeingDragged = r2
r11.activePointerId = r3
android.view.VelocityTracker r12 = r11.velocityTracker
if (r12 == 0) goto L_0x00ae
r12.recycle()
r12 = 0
r11.velocityTracker = r12
goto L_0x00ae
L_0x008d:
float r0 = r14.getX()
int r0 = (int) r0
float r3 = r14.getY()
int r3 = (int) r3
boolean r12 = r12.isPointInChildBounds(r13, r0, r3)
if (r12 == 0) goto L_0x00b6
boolean r12 = r11.canDragView(r13)
if (r12 == 0) goto L_0x00b6
r11.lastMotionY = r3
int r12 = r14.getPointerId(r2)
r11.activePointerId = r12
r11.ensureVelocityTracker()
L_0x00ae:
android.view.VelocityTracker r12 = r11.velocityTracker
if (r12 == 0) goto L_0x00b5
r12.addMovement(r14)
L_0x00b5:
return r1
L_0x00b6:
return r2
*/
throw new UnsupportedOperationException("Method not decompiled: com.google.android.material.appbar.HeaderBehavior.onTouchEvent(androidx.coordinatorlayout.widget.CoordinatorLayout, android.view.View, android.view.MotionEvent):boolean");
}
/* access modifiers changed from: package-private */
public int setHeaderTopBottomOffset(CoordinatorLayout coordinatorLayout, V v, int i) {
return setHeaderTopBottomOffset(coordinatorLayout, v, i, Integer.MIN_VALUE, Integer.MAX_VALUE);
}
/* access modifiers changed from: package-private */
public int setHeaderTopBottomOffset(CoordinatorLayout coordinatorLayout, V v, int i, int i2, int i3) {
int clamp;
int topAndBottomOffset = getTopAndBottomOffset();
if (i2 == 0 || topAndBottomOffset < i2 || topAndBottomOffset > i3 || topAndBottomOffset == (clamp = MathUtils.clamp(i, i2, i3))) {
return 0;
}
setTopAndBottomOffset(clamp);
return topAndBottomOffset - clamp;
}
/* access modifiers changed from: package-private */
public int getTopBottomOffsetForScrollingSibling() {
return getTopAndBottomOffset();
}
/* access modifiers changed from: package-private */
public final int scroll(CoordinatorLayout coordinatorLayout, V v, int i, int i2, int i3) {
return setHeaderTopBottomOffset(coordinatorLayout, v, getTopBottomOffsetForScrollingSibling() - i, i2, i3);
}
/* access modifiers changed from: package-private */
public final boolean fling(CoordinatorLayout coordinatorLayout, V v, int i, int i2, float f) {
V v2 = v;
Runnable runnable = this.flingRunnable;
if (runnable != null) {
v.removeCallbacks(runnable);
this.flingRunnable = null;
}
if (this.scroller == null) {
this.scroller = new OverScroller(v.getContext());
}
this.scroller.fling(0, getTopAndBottomOffset(), 0, Math.round(f), 0, 0, i, i2);
if (this.scroller.computeScrollOffset()) {
CoordinatorLayout coordinatorLayout2 = coordinatorLayout;
FlingRunnable flingRunnable2 = new FlingRunnable(coordinatorLayout, v);
this.flingRunnable = flingRunnable2;
ViewCompat.postOnAnimation(v, flingRunnable2);
return true;
}
CoordinatorLayout coordinatorLayout3 = coordinatorLayout;
onFlingFinished(coordinatorLayout, v);
return false;
}
/* access modifiers changed from: package-private */
public int getMaxDragOffset(V v) {
return -v.getHeight();
}
/* access modifiers changed from: package-private */
public int getScrollRangeForDragFling(V v) {
return v.getHeight();
}
private void ensureVelocityTracker() {
if (this.velocityTracker == null) {
this.velocityTracker = VelocityTracker.obtain();
}
}
private class FlingRunnable implements Runnable {
private final V layout;
private final CoordinatorLayout parent;
FlingRunnable(CoordinatorLayout coordinatorLayout, V v) {
this.parent = coordinatorLayout;
this.layout = v;
}
public void run() {
if (this.layout != null && HeaderBehavior.this.scroller != null) {
if (HeaderBehavior.this.scroller.computeScrollOffset()) {
HeaderBehavior headerBehavior = HeaderBehavior.this;
headerBehavior.setHeaderTopBottomOffset(this.parent, this.layout, headerBehavior.scroller.getCurrY());
ViewCompat.postOnAnimation(this.layout, this);
return;
}
HeaderBehavior.this.onFlingFinished(this.parent, this.layout);
}
}
}
}
Download file