CrackMe.apk
Download file
package com.google.android.material.snackbar;
import android.accessibilityservice.AccessibilityServiceInfo;
import android.animation.Animator;
import android.animation.AnimatorListenerAdapter;
import android.animation.AnimatorSet;
import android.animation.ValueAnimator;
import android.content.Context;
import android.content.res.TypedArray;
import android.graphics.Rect;
import android.graphics.drawable.Drawable;
import android.graphics.drawable.GradientDrawable;
import android.os.Build;
import android.os.Bundle;
import android.os.Handler;
import android.os.Looper;
import android.os.Message;
import android.util.AttributeSet;
import android.util.DisplayMetrics;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.MotionEvent;
import android.view.View;
import android.view.ViewGroup;
import android.view.ViewParent;
import android.view.WindowInsets;
import android.view.WindowManager;
import android.view.accessibility.AccessibilityManager;
import android.widget.FrameLayout;
import androidx.coordinatorlayout.widget.CoordinatorLayout;
import androidx.core.view.AccessibilityDelegateCompat;
import androidx.core.view.OnApplyWindowInsetsListener;
import androidx.core.view.ViewCompat;
import androidx.core.view.WindowInsetsCompat;
import androidx.core.view.accessibility.AccessibilityNodeInfoCompat;
import com.google.android.material.R;
import com.google.android.material.animation.AnimationUtils;
import com.google.android.material.behavior.SwipeDismissBehavior;
import com.google.android.material.color.MaterialColors;
import com.google.android.material.internal.ThemeEnforcement;
import com.google.android.material.snackbar.BaseTransientBottomBar;
import com.google.android.material.snackbar.SnackbarManager;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.util.ArrayList;
import java.util.List;
public abstract class BaseTransientBottomBar<B extends BaseTransientBottomBar<B>> {
static final int ANIMATION_DURATION = 250;
static final int ANIMATION_FADE_DURATION = 180;
private static final int ANIMATION_FADE_IN_DURATION = 150;
private static final int ANIMATION_FADE_OUT_DURATION = 75;
public static final int ANIMATION_MODE_FADE = 1;
public static final int ANIMATION_MODE_SLIDE = 0;
private static final float ANIMATION_SCALE_FROM_VALUE = 0.8f;
public static final int LENGTH_INDEFINITE = -2;
public static final int LENGTH_LONG = 0;
public static final int LENGTH_SHORT = -1;
static final int MSG_DISMISS = 1;
static final int MSG_SHOW = 0;
private static final int[] SNACKBAR_STYLE_ATTR = {R.attr.snackbarStyle};
/* access modifiers changed from: private */
public static final String TAG = "BaseTransientBottomBar";
/* access modifiers changed from: private */
public static final boolean USE_OFFSET_API = (Build.VERSION.SDK_INT >= 16 && Build.VERSION.SDK_INT <= 19);
static final Handler handler = new Handler(Looper.getMainLooper(), new Handler.Callback() {
public boolean handleMessage(Message message) {
int i = message.what;
if (i == 0) {
((BaseTransientBottomBar) message.obj).showView();
return true;
} else if (i != 1) {
return false;
} else {
((BaseTransientBottomBar) message.obj).hideView(message.arg1);
return true;
}
}
});
private final AccessibilityManager accessibilityManager;
private View anchorView;
private Behavior behavior;
private final Runnable bottomMarginGestureInsetRunnable = new Runnable() {
public void run() {
int access$100;
if (BaseTransientBottomBar.this.view != null && BaseTransientBottomBar.this.context != null && (access$100 = (BaseTransientBottomBar.this.getScreenHeight() - BaseTransientBottomBar.this.getViewAbsoluteBottom()) + ((int) BaseTransientBottomBar.this.view.getTranslationY())) < BaseTransientBottomBar.this.extraBottomMarginGestureInset) {
ViewGroup.LayoutParams layoutParams = BaseTransientBottomBar.this.view.getLayoutParams();
if (!(layoutParams instanceof ViewGroup.MarginLayoutParams)) {
Log.w(BaseTransientBottomBar.TAG, "Unable to apply gesture inset because layout params are not MarginLayoutParams");
return;
}
((ViewGroup.MarginLayoutParams) layoutParams).bottomMargin += BaseTransientBottomBar.this.extraBottomMarginGestureInset - access$100;
BaseTransientBottomBar.this.view.requestLayout();
}
}
};
private List<BaseCallback<B>> callbacks;
/* access modifiers changed from: private */
public final ContentViewCallback contentViewCallback;
/* access modifiers changed from: private */
public final Context context;
private int duration;
private int extraBottomMarginAnchorView;
/* access modifiers changed from: private */
public int extraBottomMarginGestureInset;
/* access modifiers changed from: private */
public int extraBottomMarginWindowInset;
/* access modifiers changed from: private */
public int extraLeftMarginWindowInset;
/* access modifiers changed from: private */
public int extraRightMarginWindowInset;
private boolean gestureInsetBottomIgnored;
SnackbarManager.Callback managerCallback = new SnackbarManager.Callback() {
public void show() {
BaseTransientBottomBar.handler.sendMessage(BaseTransientBottomBar.handler.obtainMessage(0, BaseTransientBottomBar.this));
}
public void dismiss(int i) {
BaseTransientBottomBar.handler.sendMessage(BaseTransientBottomBar.handler.obtainMessage(1, i, 0, BaseTransientBottomBar.this));
}
};
private Rect originalMargins;
private final ViewGroup targetParent;
protected final SnackbarBaseLayout view;
@Retention(RetentionPolicy.SOURCE)
public @interface AnimationMode {
}
public static abstract class BaseCallback<B> {
public static final int DISMISS_EVENT_ACTION = 1;
public static final int DISMISS_EVENT_CONSECUTIVE = 4;
public static final int DISMISS_EVENT_MANUAL = 3;
public static final int DISMISS_EVENT_SWIPE = 0;
public static final int DISMISS_EVENT_TIMEOUT = 2;
@Retention(RetentionPolicy.SOURCE)
public @interface DismissEvent {
}
public void onDismissed(B b, int i) {
}
public void onShown(B b) {
}
}
@Deprecated
public interface ContentViewCallback extends ContentViewCallback {
}
@Retention(RetentionPolicy.SOURCE)
public @interface Duration {
}
protected interface OnAttachStateChangeListener {
void onViewAttachedToWindow(View view);
void onViewDetachedFromWindow(View view);
}
protected interface OnLayoutChangeListener {
void onLayoutChange(View view, int i, int i2, int i3, int i4);
}
protected BaseTransientBottomBar(ViewGroup viewGroup, View view2, ContentViewCallback contentViewCallback2) {
if (viewGroup == null) {
throw new IllegalArgumentException("Transient bottom bar must have non-null parent");
} else if (view2 == null) {
throw new IllegalArgumentException("Transient bottom bar must have non-null content");
} else if (contentViewCallback2 != null) {
this.targetParent = viewGroup;
this.contentViewCallback = contentViewCallback2;
Context context2 = viewGroup.getContext();
this.context = context2;
ThemeEnforcement.checkAppCompatTheme(context2);
SnackbarBaseLayout snackbarBaseLayout = (SnackbarBaseLayout) LayoutInflater.from(context2).inflate(getSnackbarBaseLayoutResId(), viewGroup, false);
this.view = snackbarBaseLayout;
if (snackbarBaseLayout.getBackground() == null) {
ViewCompat.setBackground(snackbarBaseLayout, createThemedBackground());
}
if (view2 instanceof SnackbarContentLayout) {
((SnackbarContentLayout) view2).updateActionTextColorAlphaIfNeeded(snackbarBaseLayout.getActionTextColorAlpha());
}
snackbarBaseLayout.addView(view2);
ViewGroup.LayoutParams layoutParams = snackbarBaseLayout.getLayoutParams();
if (layoutParams instanceof ViewGroup.MarginLayoutParams) {
ViewGroup.MarginLayoutParams marginLayoutParams = (ViewGroup.MarginLayoutParams) layoutParams;
this.originalMargins = new Rect(marginLayoutParams.leftMargin, marginLayoutParams.topMargin, marginLayoutParams.rightMargin, marginLayoutParams.bottomMargin);
}
ViewCompat.setAccessibilityLiveRegion(snackbarBaseLayout, 1);
ViewCompat.setImportantForAccessibility(snackbarBaseLayout, 1);
ViewCompat.setFitsSystemWindows(snackbarBaseLayout, true);
ViewCompat.setOnApplyWindowInsetsListener(snackbarBaseLayout, new OnApplyWindowInsetsListener() {
public WindowInsetsCompat onApplyWindowInsets(View view, WindowInsetsCompat windowInsetsCompat) {
int unused = BaseTransientBottomBar.this.extraBottomMarginWindowInset = windowInsetsCompat.getSystemWindowInsetBottom();
int unused2 = BaseTransientBottomBar.this.extraLeftMarginWindowInset = windowInsetsCompat.getSystemWindowInsetLeft();
int unused3 = BaseTransientBottomBar.this.extraRightMarginWindowInset = windowInsetsCompat.getSystemWindowInsetRight();
BaseTransientBottomBar.this.updateMargins();
return windowInsetsCompat;
}
});
ViewCompat.setAccessibilityDelegate(snackbarBaseLayout, new AccessibilityDelegateCompat() {
public void onInitializeAccessibilityNodeInfo(View view, AccessibilityNodeInfoCompat accessibilityNodeInfoCompat) {
super.onInitializeAccessibilityNodeInfo(view, accessibilityNodeInfoCompat);
accessibilityNodeInfoCompat.addAction(1048576);
accessibilityNodeInfoCompat.setDismissable(true);
}
public boolean performAccessibilityAction(View view, int i, Bundle bundle) {
if (i != 1048576) {
return super.performAccessibilityAction(view, i, bundle);
}
BaseTransientBottomBar.this.dismiss();
return true;
}
});
this.accessibilityManager = (AccessibilityManager) context2.getSystemService("accessibility");
} else {
throw new IllegalArgumentException("Transient bottom bar must have non-null callback");
}
}
private Drawable createThemedBackground() {
int layer = MaterialColors.layer(this.view, R.attr.colorSurface, R.attr.colorOnSurface, this.view.getBackgroundOverlayColorAlpha());
float dimension = this.view.getResources().getDimension(R.dimen.mtrl_snackbar_background_corner_radius);
GradientDrawable gradientDrawable = new GradientDrawable();
gradientDrawable.setShape(0);
gradientDrawable.setColor(layer);
gradientDrawable.setCornerRadius(dimension);
return gradientDrawable;
}
/* access modifiers changed from: private */
public void updateMargins() {
Rect rect;
ViewGroup.LayoutParams layoutParams = this.view.getLayoutParams();
if (!(layoutParams instanceof ViewGroup.MarginLayoutParams) || (rect = this.originalMargins) == null) {
Log.w(TAG, "Unable to update margins because layout params are not MarginLayoutParams");
return;
}
ViewGroup.MarginLayoutParams marginLayoutParams = (ViewGroup.MarginLayoutParams) layoutParams;
marginLayoutParams.bottomMargin = rect.bottom + (this.anchorView != null ? this.extraBottomMarginAnchorView : this.extraBottomMarginWindowInset);
marginLayoutParams.leftMargin = this.originalMargins.left + this.extraLeftMarginWindowInset;
marginLayoutParams.rightMargin = this.originalMargins.right + this.extraRightMarginWindowInset;
this.view.requestLayout();
if (Build.VERSION.SDK_INT >= 29 && shouldUpdateGestureInset()) {
this.view.removeCallbacks(this.bottomMarginGestureInsetRunnable);
this.view.post(this.bottomMarginGestureInsetRunnable);
}
}
private boolean shouldUpdateGestureInset() {
return this.extraBottomMarginGestureInset > 0 && !this.gestureInsetBottomIgnored && isSwipeDismissable();
}
private boolean isSwipeDismissable() {
ViewGroup.LayoutParams layoutParams = this.view.getLayoutParams();
return (layoutParams instanceof CoordinatorLayout.LayoutParams) && (((CoordinatorLayout.LayoutParams) layoutParams).getBehavior() instanceof SwipeDismissBehavior);
}
/* access modifiers changed from: protected */
public int getSnackbarBaseLayoutResId() {
return hasSnackbarStyleAttr() ? R.layout.mtrl_layout_snackbar : R.layout.design_layout_snackbar;
}
/* access modifiers changed from: protected */
public boolean hasSnackbarStyleAttr() {
TypedArray obtainStyledAttributes = this.context.obtainStyledAttributes(SNACKBAR_STYLE_ATTR);
int resourceId = obtainStyledAttributes.getResourceId(0, -1);
obtainStyledAttributes.recycle();
if (resourceId != -1) {
return true;
}
return false;
}
public B setDuration(int i) {
this.duration = i;
return this;
}
public int getDuration() {
return this.duration;
}
public B setGestureInsetBottomIgnored(boolean z) {
this.gestureInsetBottomIgnored = z;
return this;
}
public boolean isGestureInsetBottomIgnored() {
return this.gestureInsetBottomIgnored;
}
public int getAnimationMode() {
return this.view.getAnimationMode();
}
public B setAnimationMode(int i) {
this.view.setAnimationMode(i);
return this;
}
public View getAnchorView() {
return this.anchorView;
}
public B setAnchorView(View view2) {
this.anchorView = view2;
return this;
}
public B setAnchorView(int i) {
View findViewById = this.targetParent.findViewById(i);
this.anchorView = findViewById;
if (findViewById != null) {
return this;
}
throw new IllegalArgumentException("Unable to find anchor view with id: " + i);
}
public B setBehavior(Behavior behavior2) {
this.behavior = behavior2;
return this;
}
public Behavior getBehavior() {
return this.behavior;
}
public Context getContext() {
return this.context;
}
public View getView() {
return this.view;
}
public void show() {
SnackbarManager.getInstance().show(getDuration(), this.managerCallback);
}
public void dismiss() {
dispatchDismiss(3);
}
/* access modifiers changed from: protected */
public void dispatchDismiss(int i) {
SnackbarManager.getInstance().dismiss(this.managerCallback, i);
}
public B addCallback(BaseCallback<B> baseCallback) {
if (baseCallback == null) {
return this;
}
if (this.callbacks == null) {
this.callbacks = new ArrayList();
}
this.callbacks.add(baseCallback);
return this;
}
public B removeCallback(BaseCallback<B> baseCallback) {
List<BaseCallback<B>> list;
if (baseCallback == null || (list = this.callbacks) == null) {
return this;
}
list.remove(baseCallback);
return this;
}
public boolean isShown() {
return SnackbarManager.getInstance().isCurrent(this.managerCallback);
}
public boolean isShownOrQueued() {
return SnackbarManager.getInstance().isCurrentOrNext(this.managerCallback);
}
/* access modifiers changed from: protected */
public SwipeDismissBehavior<? extends View> getNewBehavior() {
return new Behavior();
}
/* access modifiers changed from: package-private */
public final void showView() {
this.view.setOnAttachStateChangeListener(new OnAttachStateChangeListener() {
public void onViewAttachedToWindow(View view) {
WindowInsets rootWindowInsets;
if (Build.VERSION.SDK_INT >= 29 && (rootWindowInsets = BaseTransientBottomBar.this.view.getRootWindowInsets()) != null) {
int unused = BaseTransientBottomBar.this.extraBottomMarginGestureInset = rootWindowInsets.getMandatorySystemGestureInsets().bottom;
BaseTransientBottomBar.this.updateMargins();
}
}
public void onViewDetachedFromWindow(View view) {
if (BaseTransientBottomBar.this.isShownOrQueued()) {
BaseTransientBottomBar.handler.post(new Runnable() {
public void run() {
BaseTransientBottomBar.this.onViewHidden(3);
}
});
}
}
});
if (this.view.getParent() == null) {
ViewGroup.LayoutParams layoutParams = this.view.getLayoutParams();
if (layoutParams instanceof CoordinatorLayout.LayoutParams) {
setUpBehavior((CoordinatorLayout.LayoutParams) layoutParams);
}
this.extraBottomMarginAnchorView = calculateBottomMarginForAnchorView();
updateMargins();
this.view.setVisibility(4);
this.targetParent.addView(this.view);
}
if (ViewCompat.isLaidOut(this.view)) {
showViewImpl();
} else {
this.view.setOnLayoutChangeListener(new OnLayoutChangeListener() {
public void onLayoutChange(View view, int i, int i2, int i3, int i4) {
BaseTransientBottomBar.this.view.setOnLayoutChangeListener((OnLayoutChangeListener) null);
BaseTransientBottomBar.this.showViewImpl();
}
});
}
}
/* access modifiers changed from: private */
public void showViewImpl() {
if (shouldAnimate()) {
animateViewIn();
return;
}
this.view.setVisibility(0);
onViewShown();
}
/* access modifiers changed from: private */
public int getViewAbsoluteBottom() {
int[] iArr = new int[2];
this.view.getLocationOnScreen(iArr);
return iArr[1] + this.view.getHeight();
}
/* access modifiers changed from: private */
public int getScreenHeight() {
DisplayMetrics displayMetrics = new DisplayMetrics();
((WindowManager) this.context.getSystemService("window")).getDefaultDisplay().getRealMetrics(displayMetrics);
return displayMetrics.heightPixels;
}
private void setUpBehavior(CoordinatorLayout.LayoutParams layoutParams) {
SwipeDismissBehavior swipeDismissBehavior = this.behavior;
if (swipeDismissBehavior == null) {
swipeDismissBehavior = getNewBehavior();
}
if (swipeDismissBehavior instanceof Behavior) {
((Behavior) swipeDismissBehavior).setBaseTransientBottomBar(this);
}
swipeDismissBehavior.setListener(new SwipeDismissBehavior.OnDismissListener() {
public void onDismiss(View view) {
view.setVisibility(8);
BaseTransientBottomBar.this.dispatchDismiss(0);
}
public void onDragStateChanged(int i) {
if (i == 0) {
SnackbarManager.getInstance().restoreTimeoutIfPaused(BaseTransientBottomBar.this.managerCallback);
} else if (i == 1 || i == 2) {
SnackbarManager.getInstance().pauseTimeout(BaseTransientBottomBar.this.managerCallback);
}
}
});
layoutParams.setBehavior(swipeDismissBehavior);
if (this.anchorView == null) {
layoutParams.insetEdge = 80;
}
}
private int calculateBottomMarginForAnchorView() {
View view2 = this.anchorView;
if (view2 == null) {
return 0;
}
int[] iArr = new int[2];
view2.getLocationOnScreen(iArr);
int i = iArr[1];
int[] iArr2 = new int[2];
this.targetParent.getLocationOnScreen(iArr2);
return (iArr2[1] + this.targetParent.getHeight()) - i;
}
/* access modifiers changed from: package-private */
public void animateViewIn() {
this.view.post(new Runnable() {
public void run() {
if (BaseTransientBottomBar.this.view != null) {
BaseTransientBottomBar.this.view.setVisibility(0);
if (BaseTransientBottomBar.this.view.getAnimationMode() == 1) {
BaseTransientBottomBar.this.startFadeInAnimation();
} else {
BaseTransientBottomBar.this.startSlideInAnimation();
}
}
}
});
}
private void animateViewOut(int i) {
if (this.view.getAnimationMode() == 1) {
startFadeOutAnimation(i);
} else {
startSlideOutAnimation(i);
}
}
/* access modifiers changed from: private */
public void startFadeInAnimation() {
ValueAnimator alphaAnimator = getAlphaAnimator(0.0f, 1.0f);
ValueAnimator scaleAnimator = getScaleAnimator(ANIMATION_SCALE_FROM_VALUE, 1.0f);
AnimatorSet animatorSet = new AnimatorSet();
animatorSet.playTogether(new Animator[]{alphaAnimator, scaleAnimator});
animatorSet.setDuration(150);
animatorSet.addListener(new AnimatorListenerAdapter() {
public void onAnimationEnd(Animator animator) {
BaseTransientBottomBar.this.onViewShown();
}
});
animatorSet.start();
}
private void startFadeOutAnimation(final int i) {
ValueAnimator alphaAnimator = getAlphaAnimator(1.0f, 0.0f);
alphaAnimator.setDuration(75);
alphaAnimator.addListener(new AnimatorListenerAdapter() {
public void onAnimationEnd(Animator animator) {
BaseTransientBottomBar.this.onViewHidden(i);
}
});
alphaAnimator.start();
}
private ValueAnimator getAlphaAnimator(float... fArr) {
ValueAnimator ofFloat = ValueAnimator.ofFloat(fArr);
ofFloat.setInterpolator(AnimationUtils.LINEAR_INTERPOLATOR);
ofFloat.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
public void onAnimationUpdate(ValueAnimator valueAnimator) {
BaseTransientBottomBar.this.view.setAlpha(((Float) valueAnimator.getAnimatedValue()).floatValue());
}
});
return ofFloat;
}
private ValueAnimator getScaleAnimator(float... fArr) {
ValueAnimator ofFloat = ValueAnimator.ofFloat(fArr);
ofFloat.setInterpolator(AnimationUtils.LINEAR_OUT_SLOW_IN_INTERPOLATOR);
ofFloat.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
public void onAnimationUpdate(ValueAnimator valueAnimator) {
float floatValue = ((Float) valueAnimator.getAnimatedValue()).floatValue();
BaseTransientBottomBar.this.view.setScaleX(floatValue);
BaseTransientBottomBar.this.view.setScaleY(floatValue);
}
});
return ofFloat;
}
/* access modifiers changed from: private */
public void startSlideInAnimation() {
int translationYBottom = getTranslationYBottom();
if (USE_OFFSET_API) {
ViewCompat.offsetTopAndBottom(this.view, translationYBottom);
} else {
this.view.setTranslationY((float) translationYBottom);
}
ValueAnimator valueAnimator = new ValueAnimator();
valueAnimator.setIntValues(new int[]{translationYBottom, 0});
valueAnimator.setInterpolator(AnimationUtils.FAST_OUT_SLOW_IN_INTERPOLATOR);
valueAnimator.setDuration(250);
valueAnimator.addListener(new AnimatorListenerAdapter() {
public void onAnimationStart(Animator animator) {
BaseTransientBottomBar.this.contentViewCallback.animateContentIn(70, 180);
}
public void onAnimationEnd(Animator animator) {
BaseTransientBottomBar.this.onViewShown();
}
});
valueAnimator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener(translationYBottom) {
private int previousAnimatedIntValue;
final /* synthetic */ int val$translationYBottom;
{
this.val$translationYBottom = r2;
this.previousAnimatedIntValue = r2;
}
public void onAnimationUpdate(ValueAnimator valueAnimator) {
int intValue = ((Integer) valueAnimator.getAnimatedValue()).intValue();
if (BaseTransientBottomBar.USE_OFFSET_API) {
ViewCompat.offsetTopAndBottom(BaseTransientBottomBar.this.view, intValue - this.previousAnimatedIntValue);
} else {
BaseTransientBottomBar.this.view.setTranslationY((float) intValue);
}
this.previousAnimatedIntValue = intValue;
}
});
valueAnimator.start();
}
private void startSlideOutAnimation(final int i) {
ValueAnimator valueAnimator = new ValueAnimator();
valueAnimator.setIntValues(new int[]{0, getTranslationYBottom()});
valueAnimator.setInterpolator(AnimationUtils.FAST_OUT_SLOW_IN_INTERPOLATOR);
valueAnimator.setDuration(250);
valueAnimator.addListener(new AnimatorListenerAdapter() {
public void onAnimationStart(Animator animator) {
BaseTransientBottomBar.this.contentViewCallback.animateContentOut(0, 180);
}
public void onAnimationEnd(Animator animator) {
BaseTransientBottomBar.this.onViewHidden(i);
}
});
valueAnimator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
private int previousAnimatedIntValue = 0;
public void onAnimationUpdate(ValueAnimator valueAnimator) {
int intValue = ((Integer) valueAnimator.getAnimatedValue()).intValue();
if (BaseTransientBottomBar.USE_OFFSET_API) {
ViewCompat.offsetTopAndBottom(BaseTransientBottomBar.this.view, intValue - this.previousAnimatedIntValue);
} else {
BaseTransientBottomBar.this.view.setTranslationY((float) intValue);
}
this.previousAnimatedIntValue = intValue;
}
});
valueAnimator.start();
}
private int getTranslationYBottom() {
int height = this.view.getHeight();
ViewGroup.LayoutParams layoutParams = this.view.getLayoutParams();
return layoutParams instanceof ViewGroup.MarginLayoutParams ? height + ((ViewGroup.MarginLayoutParams) layoutParams).bottomMargin : height;
}
/* access modifiers changed from: package-private */
public final void hideView(int i) {
if (!shouldAnimate() || this.view.getVisibility() != 0) {
onViewHidden(i);
} else {
animateViewOut(i);
}
}
/* access modifiers changed from: package-private */
public void onViewShown() {
SnackbarManager.getInstance().onShown(this.managerCallback);
List<BaseCallback<B>> list = this.callbacks;
if (list != null) {
for (int size = list.size() - 1; size >= 0; size--) {
this.callbacks.get(size).onShown(this);
}
}
}
/* access modifiers changed from: package-private */
public void onViewHidden(int i) {
SnackbarManager.getInstance().onDismissed(this.managerCallback);
List<BaseCallback<B>> list = this.callbacks;
if (list != null) {
for (int size = list.size() - 1; size >= 0; size--) {
this.callbacks.get(size).onDismissed(this, i);
}
}
ViewParent parent = this.view.getParent();
if (parent instanceof ViewGroup) {
((ViewGroup) parent).removeView(this.view);
}
}
/* access modifiers changed from: package-private */
public boolean shouldAnimate() {
List<AccessibilityServiceInfo> enabledAccessibilityServiceList = this.accessibilityManager.getEnabledAccessibilityServiceList(1);
if (enabledAccessibilityServiceList == null || !enabledAccessibilityServiceList.isEmpty()) {
return false;
}
return true;
}
protected static class SnackbarBaseLayout extends FrameLayout {
private static final View.OnTouchListener consumeAllTouchListener = new View.OnTouchListener() {
public boolean onTouch(View view, MotionEvent motionEvent) {
return true;
}
};
private final float actionTextColorAlpha;
private int animationMode;
private final float backgroundOverlayColorAlpha;
private OnAttachStateChangeListener onAttachStateChangeListener;
private OnLayoutChangeListener onLayoutChangeListener;
protected SnackbarBaseLayout(Context context) {
this(context, (AttributeSet) null);
}
protected SnackbarBaseLayout(Context context, AttributeSet attributeSet) {
super(ThemeEnforcement.createThemedContext(context, attributeSet, 0, 0), attributeSet);
TypedArray obtainStyledAttributes = getContext().obtainStyledAttributes(attributeSet, R.styleable.SnackbarLayout);
if (obtainStyledAttributes.hasValue(R.styleable.SnackbarLayout_elevation)) {
ViewCompat.setElevation(this, (float) obtainStyledAttributes.getDimensionPixelSize(R.styleable.SnackbarLayout_elevation, 0));
}
this.animationMode = obtainStyledAttributes.getInt(R.styleable.SnackbarLayout_animationMode, 0);
this.backgroundOverlayColorAlpha = obtainStyledAttributes.getFloat(R.styleable.SnackbarLayout_backgroundOverlayColorAlpha, 1.0f);
this.actionTextColorAlpha = obtainStyledAttributes.getFloat(R.styleable.SnackbarLayout_actionTextColorAlpha, 1.0f);
obtainStyledAttributes.recycle();
setOnTouchListener(consumeAllTouchListener);
setFocusable(true);
}
public void setOnClickListener(View.OnClickListener onClickListener) {
setOnTouchListener(onClickListener != null ? null : consumeAllTouchListener);
super.setOnClickListener(onClickListener);
}
/* access modifiers changed from: protected */
public void onLayout(boolean z, int i, int i2, int i3, int i4) {
super.onLayout(z, i, i2, i3, i4);
OnLayoutChangeListener onLayoutChangeListener2 = this.onLayoutChangeListener;
if (onLayoutChangeListener2 != null) {
onLayoutChangeListener2.onLayoutChange(this, i, i2, i3, i4);
}
}
/* access modifiers changed from: protected */
public void onAttachedToWindow() {
super.onAttachedToWindow();
OnAttachStateChangeListener onAttachStateChangeListener2 = this.onAttachStateChangeListener;
if (onAttachStateChangeListener2 != null) {
onAttachStateChangeListener2.onViewAttachedToWindow(this);
}
ViewCompat.requestApplyInsets(this);
}
/* access modifiers changed from: protected */
public void onDetachedFromWindow() {
super.onDetachedFromWindow();
OnAttachStateChangeListener onAttachStateChangeListener2 = this.onAttachStateChangeListener;
if (onAttachStateChangeListener2 != null) {
onAttachStateChangeListener2.onViewDetachedFromWindow(this);
}
}
/* access modifiers changed from: package-private */
public void setOnLayoutChangeListener(OnLayoutChangeListener onLayoutChangeListener2) {
this.onLayoutChangeListener = onLayoutChangeListener2;
}
/* access modifiers changed from: package-private */
public void setOnAttachStateChangeListener(OnAttachStateChangeListener onAttachStateChangeListener2) {
this.onAttachStateChangeListener = onAttachStateChangeListener2;
}
/* access modifiers changed from: package-private */
public int getAnimationMode() {
return this.animationMode;
}
/* access modifiers changed from: package-private */
public void setAnimationMode(int i) {
this.animationMode = i;
}
/* access modifiers changed from: package-private */
public float getBackgroundOverlayColorAlpha() {
return this.backgroundOverlayColorAlpha;
}
/* access modifiers changed from: package-private */
public float getActionTextColorAlpha() {
return this.actionTextColorAlpha;
}
}
public static class Behavior extends SwipeDismissBehavior<View> {
private final BehaviorDelegate delegate = new BehaviorDelegate(this);
/* access modifiers changed from: private */
public void setBaseTransientBottomBar(BaseTransientBottomBar<?> baseTransientBottomBar) {
this.delegate.setBaseTransientBottomBar(baseTransientBottomBar);
}
public boolean canSwipeDismissView(View view) {
return this.delegate.canSwipeDismissView(view);
}
public boolean onInterceptTouchEvent(CoordinatorLayout coordinatorLayout, View view, MotionEvent motionEvent) {
this.delegate.onInterceptTouchEvent(coordinatorLayout, view, motionEvent);
return super.onInterceptTouchEvent(coordinatorLayout, view, motionEvent);
}
}
public static class BehaviorDelegate {
private SnackbarManager.Callback managerCallback;
public BehaviorDelegate(SwipeDismissBehavior<?> swipeDismissBehavior) {
swipeDismissBehavior.setStartAlphaSwipeDistance(0.1f);
swipeDismissBehavior.setEndAlphaSwipeDistance(0.6f);
swipeDismissBehavior.setSwipeDirection(0);
}
public void setBaseTransientBottomBar(BaseTransientBottomBar<?> baseTransientBottomBar) {
this.managerCallback = baseTransientBottomBar.managerCallback;
}
public boolean canSwipeDismissView(View view) {
return view instanceof SnackbarBaseLayout;
}
public void onInterceptTouchEvent(CoordinatorLayout coordinatorLayout, View view, MotionEvent motionEvent) {
int actionMasked = motionEvent.getActionMasked();
if (actionMasked != 0) {
if (actionMasked == 1 || actionMasked == 3) {
SnackbarManager.getInstance().restoreTimeoutIfPaused(this.managerCallback);
}
} else if (coordinatorLayout.isPointInChildBounds(view, (int) motionEvent.getX(), (int) motionEvent.getY())) {
SnackbarManager.getInstance().pauseTimeout(this.managerCallback);
}
}
}
}
Download file