CrackMe.apk
Download file
package com.google.android.material.bottomsheet;
import android.animation.ValueAnimator;
import android.content.Context;
import android.content.res.ColorStateList;
import android.content.res.TypedArray;
import android.os.Build;
import android.os.Parcel;
import android.os.Parcelable;
import android.util.AttributeSet;
import android.util.Log;
import android.util.TypedValue;
import android.view.MotionEvent;
import android.view.VelocityTracker;
import android.view.View;
import android.view.ViewConfiguration;
import android.view.ViewGroup;
import android.view.ViewParent;
import androidx.coordinatorlayout.widget.CoordinatorLayout;
import androidx.core.math.MathUtils;
import androidx.core.view.ViewCompat;
import androidx.core.view.accessibility.AccessibilityNodeInfoCompat;
import androidx.core.view.accessibility.AccessibilityViewCommand;
import androidx.customview.view.AbsSavedState;
import androidx.customview.widget.ViewDragHelper;
import com.google.android.material.R;
import com.google.android.material.resources.MaterialResources;
import com.google.android.material.shape.MaterialShapeDrawable;
import com.google.android.material.shape.ShapeAppearanceModel;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.ref.WeakReference;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;
public class BottomSheetBehavior<V extends View> extends CoordinatorLayout.Behavior<V> {
private static final int CORNER_ANIMATION_DURATION = 500;
private static final int DEF_STYLE_RES = R.style.Widget_Design_BottomSheet_Modal;
private static final float HIDE_FRICTION = 0.1f;
private static final float HIDE_THRESHOLD = 0.5f;
public static final int PEEK_HEIGHT_AUTO = -1;
public static final int SAVE_ALL = -1;
public static final int SAVE_FIT_TO_CONTENTS = 2;
public static final int SAVE_HIDEABLE = 4;
public static final int SAVE_NONE = 0;
public static final int SAVE_PEEK_HEIGHT = 1;
public static final int SAVE_SKIP_COLLAPSED = 8;
public static final int STATE_COLLAPSED = 4;
public static final int STATE_DRAGGING = 1;
public static final int STATE_EXPANDED = 3;
public static final int STATE_HALF_EXPANDED = 6;
public static final int STATE_HIDDEN = 5;
public static final int STATE_SETTLING = 2;
private static final String TAG = "BottomSheetBehavior";
int activePointerId;
private final ArrayList<BottomSheetCallback> callbacks = new ArrayList<>();
int collapsedOffset;
private final ViewDragHelper.Callback dragCallback = new ViewDragHelper.Callback() {
public boolean tryCaptureView(View view, int i) {
if (BottomSheetBehavior.this.state == 1 || BottomSheetBehavior.this.touchingScrollingChild) {
return false;
}
if (BottomSheetBehavior.this.state == 3 && BottomSheetBehavior.this.activePointerId == i) {
View view2 = BottomSheetBehavior.this.nestedScrollingChildRef != null ? (View) BottomSheetBehavior.this.nestedScrollingChildRef.get() : null;
if (view2 != null && view2.canScrollVertically(-1)) {
return false;
}
}
if (BottomSheetBehavior.this.viewRef == null || BottomSheetBehavior.this.viewRef.get() != view) {
return false;
}
return true;
}
public void onViewPositionChanged(View view, int i, int i2, int i3, int i4) {
BottomSheetBehavior.this.dispatchOnSlide(i2);
}
public void onViewDragStateChanged(int i) {
if (i == 1) {
BottomSheetBehavior.this.setStateInternal(1);
}
}
public void onViewReleased(View view, float f, float f2) {
int i;
int i2;
int i3 = 4;
if (f2 < 0.0f) {
if (BottomSheetBehavior.this.fitToContents) {
i = BottomSheetBehavior.this.fitToContentsOffset;
} else if (view.getTop() > BottomSheetBehavior.this.halfExpandedOffset) {
i2 = BottomSheetBehavior.this.halfExpandedOffset;
i3 = 6;
BottomSheetBehavior.this.startSettlingAnimation(view, i3, i, true);
} else {
i = BottomSheetBehavior.this.expandedOffset;
}
} else if (BottomSheetBehavior.this.hideable && BottomSheetBehavior.this.shouldHide(view, f2) && (view.getTop() > BottomSheetBehavior.this.collapsedOffset || Math.abs(f) < Math.abs(f2))) {
i = BottomSheetBehavior.this.parentHeight;
i3 = 5;
BottomSheetBehavior.this.startSettlingAnimation(view, i3, i, true);
} else if (f2 == 0.0f || Math.abs(f) > Math.abs(f2)) {
int top = view.getTop();
if (!BottomSheetBehavior.this.fitToContents) {
if (top < BottomSheetBehavior.this.halfExpandedOffset) {
if (top < Math.abs(top - BottomSheetBehavior.this.collapsedOffset)) {
i = BottomSheetBehavior.this.expandedOffset;
} else {
i2 = BottomSheetBehavior.this.halfExpandedOffset;
}
} else if (Math.abs(top - BottomSheetBehavior.this.halfExpandedOffset) < Math.abs(top - BottomSheetBehavior.this.collapsedOffset)) {
i2 = BottomSheetBehavior.this.halfExpandedOffset;
} else {
i = BottomSheetBehavior.this.collapsedOffset;
BottomSheetBehavior.this.startSettlingAnimation(view, i3, i, true);
}
i3 = 6;
BottomSheetBehavior.this.startSettlingAnimation(view, i3, i, true);
} else if (Math.abs(top - BottomSheetBehavior.this.fitToContentsOffset) < Math.abs(top - BottomSheetBehavior.this.collapsedOffset)) {
i = BottomSheetBehavior.this.fitToContentsOffset;
} else {
i = BottomSheetBehavior.this.collapsedOffset;
BottomSheetBehavior.this.startSettlingAnimation(view, i3, i, true);
}
} else {
if (BottomSheetBehavior.this.fitToContents) {
i = BottomSheetBehavior.this.collapsedOffset;
} else {
int top2 = view.getTop();
if (Math.abs(top2 - BottomSheetBehavior.this.halfExpandedOffset) < Math.abs(top2 - BottomSheetBehavior.this.collapsedOffset)) {
i2 = BottomSheetBehavior.this.halfExpandedOffset;
i3 = 6;
} else {
i = BottomSheetBehavior.this.collapsedOffset;
}
}
BottomSheetBehavior.this.startSettlingAnimation(view, i3, i, true);
}
i3 = 3;
BottomSheetBehavior.this.startSettlingAnimation(view, i3, i, true);
}
public int clampViewPositionVertical(View view, int i, int i2) {
return MathUtils.clamp(i, BottomSheetBehavior.this.getExpandedOffset(), BottomSheetBehavior.this.hideable ? BottomSheetBehavior.this.parentHeight : BottomSheetBehavior.this.collapsedOffset);
}
public int clampViewPositionHorizontal(View view, int i, int i2) {
return view.getLeft();
}
public int getViewVerticalDragRange(View view) {
if (BottomSheetBehavior.this.hideable) {
return BottomSheetBehavior.this.parentHeight;
}
return BottomSheetBehavior.this.collapsedOffset;
}
};
float elevation = -1.0f;
int expandedOffset;
/* access modifiers changed from: private */
public boolean fitToContents = true;
int fitToContentsOffset;
int halfExpandedOffset;
float halfExpandedRatio = HIDE_THRESHOLD;
boolean hideable;
private boolean ignoreEvents;
private Map<View, Integer> importantForAccessibilityMap;
private int initialY;
private ValueAnimator interpolatorAnimator;
private boolean isShapeExpanded;
private int lastNestedScrollDy;
/* access modifiers changed from: private */
public MaterialShapeDrawable materialShapeDrawable;
private float maximumVelocity;
private boolean nestedScrolled;
WeakReference<View> nestedScrollingChildRef;
int parentHeight;
int parentWidth;
/* access modifiers changed from: private */
public int peekHeight;
private boolean peekHeightAuto;
private int peekHeightMin;
private int saveFlags = 0;
private BottomSheetBehavior<V>.SettleRunnable settleRunnable = null;
private ShapeAppearanceModel shapeAppearanceModelDefault;
private boolean shapeThemingEnabled;
/* access modifiers changed from: private */
public boolean skipCollapsed;
int state = 4;
boolean touchingScrollingChild;
private VelocityTracker velocityTracker;
ViewDragHelper viewDragHelper;
WeakReference<V> viewRef;
public static abstract class BottomSheetCallback {
public abstract void onSlide(View view, float f);
public abstract void onStateChanged(View view, int i);
}
@Retention(RetentionPolicy.SOURCE)
public @interface SaveFlags {
}
@Retention(RetentionPolicy.SOURCE)
public @interface State {
}
public void onNestedScroll(CoordinatorLayout coordinatorLayout, V v, View view, int i, int i2, int i3, int i4, int i5, int[] iArr) {
}
public BottomSheetBehavior() {
}
public BottomSheetBehavior(Context context, AttributeSet attributeSet) {
super(context, attributeSet);
TypedArray obtainStyledAttributes = context.obtainStyledAttributes(attributeSet, R.styleable.BottomSheetBehavior_Layout);
this.shapeThemingEnabled = obtainStyledAttributes.hasValue(R.styleable.BottomSheetBehavior_Layout_shapeAppearance);
boolean hasValue = obtainStyledAttributes.hasValue(R.styleable.BottomSheetBehavior_Layout_backgroundTint);
if (hasValue) {
createMaterialShapeDrawable(context, attributeSet, hasValue, MaterialResources.getColorStateList(context, obtainStyledAttributes, R.styleable.BottomSheetBehavior_Layout_backgroundTint));
} else {
createMaterialShapeDrawable(context, attributeSet, hasValue);
}
createShapeValueAnimator();
if (Build.VERSION.SDK_INT >= 21) {
this.elevation = obtainStyledAttributes.getDimension(R.styleable.BottomSheetBehavior_Layout_android_elevation, -1.0f);
}
TypedValue peekValue = obtainStyledAttributes.peekValue(R.styleable.BottomSheetBehavior_Layout_behavior_peekHeight);
if (peekValue == null || peekValue.data != -1) {
setPeekHeight(obtainStyledAttributes.getDimensionPixelSize(R.styleable.BottomSheetBehavior_Layout_behavior_peekHeight, -1));
} else {
setPeekHeight(peekValue.data);
}
setHideable(obtainStyledAttributes.getBoolean(R.styleable.BottomSheetBehavior_Layout_behavior_hideable, false));
setFitToContents(obtainStyledAttributes.getBoolean(R.styleable.BottomSheetBehavior_Layout_behavior_fitToContents, true));
setSkipCollapsed(obtainStyledAttributes.getBoolean(R.styleable.BottomSheetBehavior_Layout_behavior_skipCollapsed, false));
setSaveFlags(obtainStyledAttributes.getInt(R.styleable.BottomSheetBehavior_Layout_behavior_saveFlags, 0));
setHalfExpandedRatio(obtainStyledAttributes.getFloat(R.styleable.BottomSheetBehavior_Layout_behavior_halfExpandedRatio, HIDE_THRESHOLD));
setExpandedOffset(obtainStyledAttributes.getInt(R.styleable.BottomSheetBehavior_Layout_behavior_expandedOffset, 0));
obtainStyledAttributes.recycle();
this.maximumVelocity = (float) ViewConfiguration.get(context).getScaledMaximumFlingVelocity();
}
public Parcelable onSaveInstanceState(CoordinatorLayout coordinatorLayout, V v) {
return new SavedState(super.onSaveInstanceState(coordinatorLayout, v), (BottomSheetBehavior<?>) this);
}
public void onRestoreInstanceState(CoordinatorLayout coordinatorLayout, V v, Parcelable parcelable) {
SavedState savedState = (SavedState) parcelable;
super.onRestoreInstanceState(coordinatorLayout, v, savedState.getSuperState());
restoreOptionalState(savedState);
if (savedState.state == 1 || savedState.state == 2) {
this.state = 4;
} else {
this.state = savedState.state;
}
}
public void onAttachedToLayoutParams(CoordinatorLayout.LayoutParams layoutParams) {
super.onAttachedToLayoutParams(layoutParams);
this.viewRef = null;
this.viewDragHelper = null;
}
public void onDetachedFromLayoutParams() {
super.onDetachedFromLayoutParams();
this.viewRef = null;
this.viewDragHelper = null;
}
public boolean onLayoutChild(CoordinatorLayout coordinatorLayout, V v, int i) {
MaterialShapeDrawable materialShapeDrawable2;
if (ViewCompat.getFitsSystemWindows(coordinatorLayout) && !ViewCompat.getFitsSystemWindows(v)) {
v.setFitsSystemWindows(true);
}
if (this.viewRef == null) {
this.peekHeightMin = coordinatorLayout.getResources().getDimensionPixelSize(R.dimen.design_bottom_sheet_peek_height_min);
this.viewRef = new WeakReference<>(v);
if (this.shapeThemingEnabled && (materialShapeDrawable2 = this.materialShapeDrawable) != null) {
ViewCompat.setBackground(v, materialShapeDrawable2);
}
MaterialShapeDrawable materialShapeDrawable3 = this.materialShapeDrawable;
if (materialShapeDrawable3 != null) {
float f = this.elevation;
if (f == -1.0f) {
f = ViewCompat.getElevation(v);
}
materialShapeDrawable3.setElevation(f);
boolean z = this.state == 3;
this.isShapeExpanded = z;
this.materialShapeDrawable.setInterpolation(z ? 0.0f : 1.0f);
}
updateAccessibilityActions();
if (ViewCompat.getImportantForAccessibility(v) == 0) {
ViewCompat.setImportantForAccessibility(v, 1);
}
}
if (this.viewDragHelper == null) {
this.viewDragHelper = ViewDragHelper.create(coordinatorLayout, this.dragCallback);
}
int top = v.getTop();
coordinatorLayout.onLayoutChild(v, i);
this.parentWidth = coordinatorLayout.getWidth();
int height = coordinatorLayout.getHeight();
this.parentHeight = height;
this.fitToContentsOffset = Math.max(0, height - v.getHeight());
calculateHalfExpandedOffset();
calculateCollapsedOffset();
int i2 = this.state;
if (i2 == 3) {
ViewCompat.offsetTopAndBottom(v, getExpandedOffset());
} else if (i2 == 6) {
ViewCompat.offsetTopAndBottom(v, this.halfExpandedOffset);
} else if (this.hideable && i2 == 5) {
ViewCompat.offsetTopAndBottom(v, this.parentHeight);
} else if (i2 == 4) {
ViewCompat.offsetTopAndBottom(v, this.collapsedOffset);
} else if (i2 == 1 || i2 == 2) {
ViewCompat.offsetTopAndBottom(v, top - v.getTop());
}
this.nestedScrollingChildRef = new WeakReference<>(findScrollingChild(v));
return true;
}
/* JADX DEBUG: Multi-variable search result rejected for TypeSearchVarInfo{r11v11, resolved type: java.lang.Object} */
/* JADX DEBUG: Multi-variable search result rejected for TypeSearchVarInfo{r3v4, resolved type: android.view.View} */
/* JADX WARNING: Multi-variable type inference failed */
/* Code decompiled incorrectly, please refer to instructions dump. */
public boolean onInterceptTouchEvent(androidx.coordinatorlayout.widget.CoordinatorLayout r10, V r11, android.view.MotionEvent r12) {
/*
r9 = this;
boolean r0 = r11.isShown()
r1 = 0
r2 = 1
if (r0 != 0) goto L_0x000b
r9.ignoreEvents = r2
return r1
L_0x000b:
int r0 = r12.getActionMasked()
if (r0 != 0) goto L_0x0014
r9.reset()
L_0x0014:
android.view.VelocityTracker r3 = r9.velocityTracker
if (r3 != 0) goto L_0x001e
android.view.VelocityTracker r3 = android.view.VelocityTracker.obtain()
r9.velocityTracker = r3
L_0x001e:
android.view.VelocityTracker r3 = r9.velocityTracker
r3.addMovement(r12)
r3 = 0
r4 = -1
r5 = 2
if (r0 == 0) goto L_0x0039
if (r0 == r2) goto L_0x002e
r11 = 3
if (r0 == r11) goto L_0x002e
goto L_0x007c
L_0x002e:
r9.touchingScrollingChild = r1
r9.activePointerId = r4
boolean r11 = r9.ignoreEvents
if (r11 == 0) goto L_0x007c
r9.ignoreEvents = r1
return r1
L_0x0039:
float r6 = r12.getX()
int r6 = (int) r6
float r7 = r12.getY()
int r7 = (int) r7
r9.initialY = r7
int r7 = r9.state
if (r7 == r5) goto L_0x006b
java.lang.ref.WeakReference<android.view.View> r7 = r9.nestedScrollingChildRef
if (r7 == 0) goto L_0x0054
java.lang.Object r7 = r7.get()
android.view.View r7 = (android.view.View) r7
goto L_0x0055
L_0x0054:
r7 = r3
L_0x0055:
if (r7 == 0) goto L_0x006b
int r8 = r9.initialY
boolean r7 = r10.isPointInChildBounds(r7, r6, r8)
if (r7 == 0) goto L_0x006b
int r7 = r12.getActionIndex()
int r7 = r12.getPointerId(r7)
r9.activePointerId = r7
r9.touchingScrollingChild = r2
L_0x006b:
int r7 = r9.activePointerId
if (r7 != r4) goto L_0x0079
int r4 = r9.initialY
boolean r11 = r10.isPointInChildBounds(r11, r6, r4)
if (r11 != 0) goto L_0x0079
r11 = 1
goto L_0x007a
L_0x0079:
r11 = 0
L_0x007a:
r9.ignoreEvents = r11
L_0x007c:
boolean r11 = r9.ignoreEvents
if (r11 != 0) goto L_0x008b
androidx.customview.widget.ViewDragHelper r11 = r9.viewDragHelper
if (r11 == 0) goto L_0x008b
boolean r11 = r11.shouldInterceptTouchEvent(r12)
if (r11 == 0) goto L_0x008b
return r2
L_0x008b:
java.lang.ref.WeakReference<android.view.View> r11 = r9.nestedScrollingChildRef
if (r11 == 0) goto L_0x0096
java.lang.Object r11 = r11.get()
r3 = r11
android.view.View r3 = (android.view.View) r3
L_0x0096:
if (r0 != r5) goto L_0x00ce
if (r3 == 0) goto L_0x00ce
boolean r11 = r9.ignoreEvents
if (r11 != 0) goto L_0x00ce
int r11 = r9.state
if (r11 == r2) goto L_0x00ce
float r11 = r12.getX()
int r11 = (int) r11
float r0 = r12.getY()
int r0 = (int) r0
boolean r10 = r10.isPointInChildBounds(r3, r11, r0)
if (r10 != 0) goto L_0x00ce
androidx.customview.widget.ViewDragHelper r10 = r9.viewDragHelper
if (r10 == 0) goto L_0x00ce
int r10 = r9.initialY
float r10 = (float) r10
float r11 = r12.getY()
float r10 = r10 - r11
float r10 = java.lang.Math.abs(r10)
androidx.customview.widget.ViewDragHelper r11 = r9.viewDragHelper
int r11 = r11.getTouchSlop()
float r11 = (float) r11
int r10 = (r10 > r11 ? 1 : (r10 == r11 ? 0 : -1))
if (r10 <= 0) goto L_0x00ce
r1 = 1
L_0x00ce:
return r1
*/
throw new UnsupportedOperationException("Method not decompiled: com.google.android.material.bottomsheet.BottomSheetBehavior.onInterceptTouchEvent(androidx.coordinatorlayout.widget.CoordinatorLayout, android.view.View, android.view.MotionEvent):boolean");
}
public boolean onTouchEvent(CoordinatorLayout coordinatorLayout, V v, MotionEvent motionEvent) {
if (!v.isShown()) {
return false;
}
int actionMasked = motionEvent.getActionMasked();
if (this.state == 1 && actionMasked == 0) {
return true;
}
ViewDragHelper viewDragHelper2 = this.viewDragHelper;
if (viewDragHelper2 != null) {
viewDragHelper2.processTouchEvent(motionEvent);
}
if (actionMasked == 0) {
reset();
}
if (this.velocityTracker == null) {
this.velocityTracker = VelocityTracker.obtain();
}
this.velocityTracker.addMovement(motionEvent);
if (actionMasked == 2 && !this.ignoreEvents && Math.abs(((float) this.initialY) - motionEvent.getY()) > ((float) this.viewDragHelper.getTouchSlop())) {
this.viewDragHelper.captureChildView(v, motionEvent.getPointerId(motionEvent.getActionIndex()));
}
return !this.ignoreEvents;
}
public boolean onStartNestedScroll(CoordinatorLayout coordinatorLayout, V v, View view, View view2, int i, int i2) {
this.lastNestedScrollDy = 0;
this.nestedScrolled = false;
if ((i & 2) != 0) {
return true;
}
return false;
}
public void onNestedPreScroll(CoordinatorLayout coordinatorLayout, V v, View view, int i, int i2, int[] iArr, int i3) {
if (i3 != 1) {
WeakReference<View> weakReference = this.nestedScrollingChildRef;
if (view == (weakReference != null ? (View) weakReference.get() : null)) {
int top = v.getTop();
int i4 = top - i2;
if (i2 > 0) {
if (i4 < getExpandedOffset()) {
iArr[1] = top - getExpandedOffset();
ViewCompat.offsetTopAndBottom(v, -iArr[1]);
setStateInternal(3);
} else {
iArr[1] = i2;
ViewCompat.offsetTopAndBottom(v, -i2);
setStateInternal(1);
}
} else if (i2 < 0 && !view.canScrollVertically(-1)) {
int i5 = this.collapsedOffset;
if (i4 <= i5 || this.hideable) {
iArr[1] = i2;
ViewCompat.offsetTopAndBottom(v, -i2);
setStateInternal(1);
} else {
iArr[1] = top - i5;
ViewCompat.offsetTopAndBottom(v, -iArr[1]);
setStateInternal(4);
}
}
dispatchOnSlide(v.getTop());
this.lastNestedScrollDy = i2;
this.nestedScrolled = true;
}
}
}
public void onStopNestedScroll(CoordinatorLayout coordinatorLayout, V v, View view, int i) {
int i2;
int i3;
int i4 = 3;
if (v.getTop() == getExpandedOffset()) {
setStateInternal(3);
return;
}
WeakReference<View> weakReference = this.nestedScrollingChildRef;
if (weakReference != null && view == weakReference.get() && this.nestedScrolled) {
if (this.lastNestedScrollDy > 0) {
i2 = getExpandedOffset();
} else if (!this.hideable || !shouldHide(v, getYVelocity())) {
if (this.lastNestedScrollDy == 0) {
int top = v.getTop();
if (!this.fitToContents) {
int i5 = this.halfExpandedOffset;
if (top < i5) {
if (top < Math.abs(top - this.collapsedOffset)) {
i2 = this.expandedOffset;
} else {
i2 = this.halfExpandedOffset;
}
} else if (Math.abs(top - i5) < Math.abs(top - this.collapsedOffset)) {
i2 = this.halfExpandedOffset;
} else {
i3 = this.collapsedOffset;
}
i4 = 6;
} else if (Math.abs(top - this.fitToContentsOffset) < Math.abs(top - this.collapsedOffset)) {
i2 = this.fitToContentsOffset;
} else {
i3 = this.collapsedOffset;
}
} else if (this.fitToContents) {
i3 = this.collapsedOffset;
} else {
int top2 = v.getTop();
if (Math.abs(top2 - this.halfExpandedOffset) < Math.abs(top2 - this.collapsedOffset)) {
i2 = this.halfExpandedOffset;
i4 = 6;
} else {
i3 = this.collapsedOffset;
}
}
i4 = 4;
} else {
i2 = this.parentHeight;
i4 = 5;
}
startSettlingAnimation(v, i4, i2, false);
this.nestedScrolled = false;
}
}
public boolean onNestedPreFling(CoordinatorLayout coordinatorLayout, V v, View view, float f, float f2) {
WeakReference<View> weakReference = this.nestedScrollingChildRef;
if (weakReference == null || view != weakReference.get()) {
return false;
}
if (this.state != 3 || super.onNestedPreFling(coordinatorLayout, v, view, f, f2)) {
return true;
}
return false;
}
public boolean isFitToContents() {
return this.fitToContents;
}
public void setFitToContents(boolean z) {
if (this.fitToContents != z) {
this.fitToContents = z;
if (this.viewRef != null) {
calculateCollapsedOffset();
}
setStateInternal((!this.fitToContents || this.state != 6) ? this.state : 3);
updateAccessibilityActions();
}
}
public void setPeekHeight(int i) {
setPeekHeight(i, false);
}
/* JADX WARNING: Removed duplicated region for block: B:14:0x0025 */
/* JADX WARNING: Removed duplicated region for block: B:23:? A[RETURN, SYNTHETIC] */
/* Code decompiled incorrectly, please refer to instructions dump. */
public final void setPeekHeight(int r4, boolean r5) {
/*
r3 = this;
r0 = 1
r1 = 0
r2 = -1
if (r4 != r2) goto L_0x000c
boolean r4 = r3.peekHeightAuto
if (r4 != 0) goto L_0x0015
r3.peekHeightAuto = r0
goto L_0x001f
L_0x000c:
boolean r2 = r3.peekHeightAuto
if (r2 != 0) goto L_0x0017
int r2 = r3.peekHeight
if (r2 == r4) goto L_0x0015
goto L_0x0017
L_0x0015:
r0 = 0
goto L_0x001f
L_0x0017:
r3.peekHeightAuto = r1
int r4 = java.lang.Math.max(r1, r4)
r3.peekHeight = r4
L_0x001f:
if (r0 == 0) goto L_0x0042
java.lang.ref.WeakReference<V> r4 = r3.viewRef
if (r4 == 0) goto L_0x0042
r3.calculateCollapsedOffset()
int r4 = r3.state
r0 = 4
if (r4 != r0) goto L_0x0042
java.lang.ref.WeakReference<V> r4 = r3.viewRef
java.lang.Object r4 = r4.get()
android.view.View r4 = (android.view.View) r4
if (r4 == 0) goto L_0x0042
if (r5 == 0) goto L_0x003f
int r4 = r3.state
r3.settleToStatePendingLayout(r4)
goto L_0x0042
L_0x003f:
r4.requestLayout()
L_0x0042:
return
*/
throw new UnsupportedOperationException("Method not decompiled: com.google.android.material.bottomsheet.BottomSheetBehavior.setPeekHeight(int, boolean):void");
}
public int getPeekHeight() {
if (this.peekHeightAuto) {
return -1;
}
return this.peekHeight;
}
public void setHalfExpandedRatio(float f) {
if (f <= 0.0f || f >= 1.0f) {
throw new IllegalArgumentException("ratio must be a float value between 0 and 1");
}
this.halfExpandedRatio = f;
}
public void setExpandedOffset(int i) {
if (i >= 0) {
this.expandedOffset = i;
return;
}
throw new IllegalArgumentException("offset must be greater than or equal to 0");
}
public float getHalfExpandedRatio() {
return this.halfExpandedRatio;
}
public void setHideable(boolean z) {
if (this.hideable != z) {
this.hideable = z;
if (!z && this.state == 5) {
setState(4);
}
updateAccessibilityActions();
}
}
public boolean isHideable() {
return this.hideable;
}
public void setSkipCollapsed(boolean z) {
this.skipCollapsed = z;
}
public boolean getSkipCollapsed() {
return this.skipCollapsed;
}
public void setSaveFlags(int i) {
this.saveFlags = i;
}
public int getSaveFlags() {
return this.saveFlags;
}
@Deprecated
public void setBottomSheetCallback(BottomSheetCallback bottomSheetCallback) {
Log.w(TAG, "BottomSheetBehavior now supports multiple callbacks. `setBottomSheetCallback()` removes all existing callbacks, including ones set internally by library authors, which may result in unintended behavior. This may change in the future. Please use `addBottomSheetCallback()` and `removeBottomSheetCallback()` instead to set your own callbacks.");
this.callbacks.clear();
if (bottomSheetCallback != null) {
this.callbacks.add(bottomSheetCallback);
}
}
public void addBottomSheetCallback(BottomSheetCallback bottomSheetCallback) {
if (!this.callbacks.contains(bottomSheetCallback)) {
this.callbacks.add(bottomSheetCallback);
}
}
public void removeBottomSheetCallback(BottomSheetCallback bottomSheetCallback) {
this.callbacks.remove(bottomSheetCallback);
}
public void setState(int i) {
if (i != this.state) {
if (this.viewRef != null) {
settleToStatePendingLayout(i);
} else if (i == 4 || i == 3 || i == 6 || (this.hideable && i == 5)) {
this.state = i;
}
}
}
private void settleToStatePendingLayout(final int i) {
final View view = (View) this.viewRef.get();
if (view != null) {
ViewParent parent = view.getParent();
if (parent == null || !parent.isLayoutRequested() || !ViewCompat.isAttachedToWindow(view)) {
settleToState(view, i);
} else {
view.post(new Runnable() {
public void run() {
BottomSheetBehavior.this.settleToState(view, i);
}
});
}
}
}
public int getState() {
return this.state;
}
/* access modifiers changed from: package-private */
public void setStateInternal(int i) {
View view;
if (this.state != i) {
this.state = i;
WeakReference<V> weakReference = this.viewRef;
if (weakReference != null && (view = (View) weakReference.get()) != null) {
if (i == 6 || i == 3) {
updateImportantForAccessibility(true);
} else if (i == 5 || i == 4) {
updateImportantForAccessibility(false);
}
updateDrawableForTargetState(i);
for (int i2 = 0; i2 < this.callbacks.size(); i2++) {
this.callbacks.get(i2).onStateChanged(view, i);
}
updateAccessibilityActions();
}
}
}
private void updateDrawableForTargetState(int i) {
ValueAnimator valueAnimator;
if (i != 2) {
boolean z = i == 3;
if (this.isShapeExpanded != z) {
this.isShapeExpanded = z;
if (this.materialShapeDrawable != null && (valueAnimator = this.interpolatorAnimator) != null) {
if (valueAnimator.isRunning()) {
this.interpolatorAnimator.reverse();
return;
}
float f = z ? 0.0f : 1.0f;
this.interpolatorAnimator.setFloatValues(new float[]{1.0f - f, f});
this.interpolatorAnimator.start();
}
}
}
}
private void calculateCollapsedOffset() {
int i;
if (this.peekHeightAuto) {
i = Math.max(this.peekHeightMin, this.parentHeight - ((this.parentWidth * 9) / 16));
} else {
i = this.peekHeight;
}
if (this.fitToContents) {
this.collapsedOffset = Math.max(this.parentHeight - i, this.fitToContentsOffset);
} else {
this.collapsedOffset = this.parentHeight - i;
}
}
private void calculateHalfExpandedOffset() {
this.halfExpandedOffset = (int) (((float) this.parentHeight) * (1.0f - this.halfExpandedRatio));
}
private void reset() {
this.activePointerId = -1;
VelocityTracker velocityTracker2 = this.velocityTracker;
if (velocityTracker2 != null) {
velocityTracker2.recycle();
this.velocityTracker = null;
}
}
private void restoreOptionalState(SavedState savedState) {
int i = this.saveFlags;
if (i != 0) {
if (i == -1 || (i & 1) == 1) {
this.peekHeight = savedState.peekHeight;
}
int i2 = this.saveFlags;
if (i2 == -1 || (i2 & 2) == 2) {
this.fitToContents = savedState.fitToContents;
}
int i3 = this.saveFlags;
if (i3 == -1 || (i3 & 4) == 4) {
this.hideable = savedState.hideable;
}
int i4 = this.saveFlags;
if (i4 == -1 || (i4 & 8) == 8) {
this.skipCollapsed = savedState.skipCollapsed;
}
}
}
/* access modifiers changed from: package-private */
public boolean shouldHide(View view, float f) {
if (this.skipCollapsed) {
return true;
}
if (view.getTop() >= this.collapsedOffset && Math.abs((((float) view.getTop()) + (f * 0.1f)) - ((float) this.collapsedOffset)) / ((float) this.peekHeight) > HIDE_THRESHOLD) {
return true;
}
return false;
}
/* access modifiers changed from: package-private */
public View findScrollingChild(View view) {
if (ViewCompat.isNestedScrollingEnabled(view)) {
return view;
}
if (!(view instanceof ViewGroup)) {
return null;
}
ViewGroup viewGroup = (ViewGroup) view;
int childCount = viewGroup.getChildCount();
for (int i = 0; i < childCount; i++) {
View findScrollingChild = findScrollingChild(viewGroup.getChildAt(i));
if (findScrollingChild != null) {
return findScrollingChild;
}
}
return null;
}
private void createMaterialShapeDrawable(Context context, AttributeSet attributeSet, boolean z) {
createMaterialShapeDrawable(context, attributeSet, z, (ColorStateList) null);
}
private void createMaterialShapeDrawable(Context context, AttributeSet attributeSet, boolean z, ColorStateList colorStateList) {
if (this.shapeThemingEnabled) {
this.shapeAppearanceModelDefault = ShapeAppearanceModel.builder(context, attributeSet, R.attr.bottomSheetStyle, DEF_STYLE_RES).build();
MaterialShapeDrawable materialShapeDrawable2 = new MaterialShapeDrawable(this.shapeAppearanceModelDefault);
this.materialShapeDrawable = materialShapeDrawable2;
materialShapeDrawable2.initializeElevationOverlay(context);
if (!z || colorStateList == null) {
TypedValue typedValue = new TypedValue();
context.getTheme().resolveAttribute(16842801, typedValue, true);
this.materialShapeDrawable.setTint(typedValue.data);
return;
}
this.materialShapeDrawable.setFillColor(colorStateList);
}
}
private void createShapeValueAnimator() {
ValueAnimator ofFloat = ValueAnimator.ofFloat(new float[]{0.0f, 1.0f});
this.interpolatorAnimator = ofFloat;
ofFloat.setDuration(500);
this.interpolatorAnimator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
public void onAnimationUpdate(ValueAnimator valueAnimator) {
float floatValue = ((Float) valueAnimator.getAnimatedValue()).floatValue();
if (BottomSheetBehavior.this.materialShapeDrawable != null) {
BottomSheetBehavior.this.materialShapeDrawable.setInterpolation(floatValue);
}
}
});
}
private float getYVelocity() {
VelocityTracker velocityTracker2 = this.velocityTracker;
if (velocityTracker2 == null) {
return 0.0f;
}
velocityTracker2.computeCurrentVelocity(1000, this.maximumVelocity);
return this.velocityTracker.getYVelocity(this.activePointerId);
}
/* access modifiers changed from: private */
public int getExpandedOffset() {
return this.fitToContents ? this.fitToContentsOffset : this.expandedOffset;
}
/* access modifiers changed from: package-private */
public void settleToState(View view, int i) {
int i2;
int i3;
if (i == 4) {
i2 = this.collapsedOffset;
} else if (i == 6) {
int i4 = this.halfExpandedOffset;
if (!this.fitToContents || i4 > (i3 = this.fitToContentsOffset)) {
i2 = i4;
} else {
i2 = i3;
i = 3;
}
} else if (i == 3) {
i2 = getExpandedOffset();
} else if (!this.hideable || i != 5) {
throw new IllegalArgumentException("Illegal state argument: " + i);
} else {
i2 = this.parentHeight;
}
startSettlingAnimation(view, i, i2, false);
}
/* access modifiers changed from: package-private */
public void startSettlingAnimation(View view, int i, int i2, boolean z) {
boolean z2;
if (z) {
z2 = this.viewDragHelper.settleCapturedViewAt(view.getLeft(), i2);
} else {
z2 = this.viewDragHelper.smoothSlideViewTo(view, view.getLeft(), i2);
}
if (z2) {
setStateInternal(2);
updateDrawableForTargetState(i);
if (this.settleRunnable == null) {
this.settleRunnable = new SettleRunnable(view, i);
}
if (!this.settleRunnable.isPosted) {
this.settleRunnable.targetState = i;
ViewCompat.postOnAnimation(view, this.settleRunnable);
boolean unused = this.settleRunnable.isPosted = true;
return;
}
this.settleRunnable.targetState = i;
return;
}
setStateInternal(i);
}
/* access modifiers changed from: package-private */
public void dispatchOnSlide(int i) {
float f;
float f2;
View view = (View) this.viewRef.get();
if (view != null && !this.callbacks.isEmpty()) {
int i2 = this.collapsedOffset;
if (i > i2) {
f = (float) (i2 - i);
f2 = (float) (this.parentHeight - i2);
} else {
f = (float) (i2 - i);
f2 = (float) (i2 - getExpandedOffset());
}
float f3 = f / f2;
for (int i3 = 0; i3 < this.callbacks.size(); i3++) {
this.callbacks.get(i3).onSlide(view, f3);
}
}
}
/* access modifiers changed from: package-private */
public int getPeekHeightMin() {
return this.peekHeightMin;
}
public void disableShapeAnimations() {
this.interpolatorAnimator = null;
}
private class SettleRunnable implements Runnable {
/* access modifiers changed from: private */
public boolean isPosted;
int targetState;
private final View view;
SettleRunnable(View view2, int i) {
this.view = view2;
this.targetState = i;
}
public void run() {
if (BottomSheetBehavior.this.viewDragHelper == null || !BottomSheetBehavior.this.viewDragHelper.continueSettling(true)) {
BottomSheetBehavior.this.setStateInternal(this.targetState);
} else {
ViewCompat.postOnAnimation(this.view, this);
}
this.isPosted = false;
}
}
protected static class SavedState extends AbsSavedState {
public static final Parcelable.Creator<SavedState> CREATOR = new Parcelable.ClassLoaderCreator<SavedState>() {
public SavedState createFromParcel(Parcel parcel, ClassLoader classLoader) {
return new SavedState(parcel, classLoader);
}
public SavedState createFromParcel(Parcel parcel) {
return new SavedState(parcel, (ClassLoader) null);
}
public SavedState[] newArray(int i) {
return new SavedState[i];
}
};
boolean fitToContents;
boolean hideable;
int peekHeight;
boolean skipCollapsed;
final int state;
public SavedState(Parcel parcel) {
this(parcel, (ClassLoader) null);
}
public SavedState(Parcel parcel, ClassLoader classLoader) {
super(parcel, classLoader);
this.state = parcel.readInt();
this.peekHeight = parcel.readInt();
boolean z = false;
this.fitToContents = parcel.readInt() == 1;
this.hideable = parcel.readInt() == 1;
this.skipCollapsed = parcel.readInt() == 1 ? true : z;
}
public SavedState(Parcelable parcelable, BottomSheetBehavior<?> bottomSheetBehavior) {
super(parcelable);
this.state = bottomSheetBehavior.state;
this.peekHeight = bottomSheetBehavior.peekHeight;
this.fitToContents = bottomSheetBehavior.fitToContents;
this.hideable = bottomSheetBehavior.hideable;
this.skipCollapsed = bottomSheetBehavior.skipCollapsed;
}
@Deprecated
public SavedState(Parcelable parcelable, int i) {
super(parcelable);
this.state = i;
}
public void writeToParcel(Parcel parcel, int i) {
super.writeToParcel(parcel, i);
parcel.writeInt(this.state);
parcel.writeInt(this.peekHeight);
parcel.writeInt(this.fitToContents ? 1 : 0);
parcel.writeInt(this.hideable ? 1 : 0);
parcel.writeInt(this.skipCollapsed ? 1 : 0);
}
}
public static <V extends View> BottomSheetBehavior<V> from(V v) {
ViewGroup.LayoutParams layoutParams = v.getLayoutParams();
if (layoutParams instanceof CoordinatorLayout.LayoutParams) {
CoordinatorLayout.Behavior behavior = ((CoordinatorLayout.LayoutParams) layoutParams).getBehavior();
if (behavior instanceof BottomSheetBehavior) {
return (BottomSheetBehavior) behavior;
}
throw new IllegalArgumentException("The view is not associated with BottomSheetBehavior");
}
throw new IllegalArgumentException("The view is not a child of CoordinatorLayout");
}
private void updateImportantForAccessibility(boolean z) {
WeakReference<V> weakReference = this.viewRef;
if (weakReference != null) {
ViewParent parent = ((View) weakReference.get()).getParent();
if (parent instanceof CoordinatorLayout) {
CoordinatorLayout coordinatorLayout = (CoordinatorLayout) parent;
int childCount = coordinatorLayout.getChildCount();
if (Build.VERSION.SDK_INT >= 16 && z) {
if (this.importantForAccessibilityMap == null) {
this.importantForAccessibilityMap = new HashMap(childCount);
} else {
return;
}
}
for (int i = 0; i < childCount; i++) {
View childAt = coordinatorLayout.getChildAt(i);
if (childAt != this.viewRef.get()) {
if (!z) {
Map<View, Integer> map = this.importantForAccessibilityMap;
if (map != null && map.containsKey(childAt)) {
ViewCompat.setImportantForAccessibility(childAt, this.importantForAccessibilityMap.get(childAt).intValue());
}
} else {
if (Build.VERSION.SDK_INT >= 16) {
this.importantForAccessibilityMap.put(childAt, Integer.valueOf(childAt.getImportantForAccessibility()));
}
ViewCompat.setImportantForAccessibility(childAt, 4);
}
}
}
if (!z) {
this.importantForAccessibilityMap = null;
}
}
}
}
private void updateAccessibilityActions() {
View view;
WeakReference<V> weakReference = this.viewRef;
if (weakReference != null && (view = (View) weakReference.get()) != null) {
ViewCompat.removeAccessibilityAction(view, 524288);
ViewCompat.removeAccessibilityAction(view, 262144);
ViewCompat.removeAccessibilityAction(view, 1048576);
if (this.hideable && this.state != 5) {
addAccessibilityActionForState(view, AccessibilityNodeInfoCompat.AccessibilityActionCompat.ACTION_DISMISS, 5);
}
int i = this.state;
int i2 = 6;
if (i == 3) {
if (this.fitToContents) {
i2 = 4;
}
addAccessibilityActionForState(view, AccessibilityNodeInfoCompat.AccessibilityActionCompat.ACTION_COLLAPSE, i2);
} else if (i == 4) {
if (this.fitToContents) {
i2 = 3;
}
addAccessibilityActionForState(view, AccessibilityNodeInfoCompat.AccessibilityActionCompat.ACTION_EXPAND, i2);
} else if (i == 6) {
addAccessibilityActionForState(view, AccessibilityNodeInfoCompat.AccessibilityActionCompat.ACTION_COLLAPSE, 4);
addAccessibilityActionForState(view, AccessibilityNodeInfoCompat.AccessibilityActionCompat.ACTION_EXPAND, 3);
}
}
}
private void addAccessibilityActionForState(V v, AccessibilityNodeInfoCompat.AccessibilityActionCompat accessibilityActionCompat, final int i) {
ViewCompat.replaceAccessibilityAction(v, accessibilityActionCompat, (CharSequence) null, new AccessibilityViewCommand() {
public boolean perform(View view, AccessibilityViewCommand.CommandArguments commandArguments) {
BottomSheetBehavior.this.setState(i);
return true;
}
});
}
}
Download file