mirror of
https://github.com/Pinball3D/Rabbit-R1.git
synced 2025-01-09 13:43:22 +00:00
746 lines
30 KiB
Java
746 lines
30 KiB
Java
package androidx.appcompat.widget;
|
|
|
|
import android.animation.Animator;
|
|
import android.animation.AnimatorListenerAdapter;
|
|
import android.content.Context;
|
|
import android.content.res.Configuration;
|
|
import android.content.res.TypedArray;
|
|
import android.graphics.Canvas;
|
|
import android.graphics.Rect;
|
|
import android.graphics.drawable.Drawable;
|
|
import android.os.Parcelable;
|
|
import android.util.AttributeSet;
|
|
import android.util.SparseArray;
|
|
import android.view.Menu;
|
|
import android.view.View;
|
|
import android.view.ViewGroup;
|
|
import android.view.ViewPropertyAnimator;
|
|
import android.view.Window;
|
|
import android.widget.OverScroller;
|
|
import androidx.appcompat.R;
|
|
import androidx.appcompat.view.menu.MenuPresenter;
|
|
import androidx.core.graphics.Insets;
|
|
import androidx.core.view.NestedScrollingParent;
|
|
import androidx.core.view.NestedScrollingParent2;
|
|
import androidx.core.view.NestedScrollingParent3;
|
|
import androidx.core.view.NestedScrollingParentHelper;
|
|
import androidx.core.view.ViewCompat;
|
|
import androidx.core.view.WindowInsetsCompat;
|
|
|
|
/* loaded from: classes.dex */
|
|
public class ActionBarOverlayLayout extends ViewGroup implements DecorContentParent, NestedScrollingParent, NestedScrollingParent2, NestedScrollingParent3 {
|
|
private static final int ACTION_BAR_ANIMATE_DELAY = 600;
|
|
static final int[] ATTRS = {R.attr.actionBarSize, android.R.attr.windowContentOverlay};
|
|
private static final String TAG = "ActionBarOverlayLayout";
|
|
private int mActionBarHeight;
|
|
ActionBarContainer mActionBarTop;
|
|
private ActionBarVisibilityCallback mActionBarVisibilityCallback;
|
|
private final Runnable mAddActionBarHideOffset;
|
|
boolean mAnimatingForFling;
|
|
private final Rect mBaseContentInsets;
|
|
private WindowInsetsCompat mBaseInnerInsets;
|
|
private final Rect mBaseInnerInsetsRect;
|
|
private ContentFrameLayout mContent;
|
|
private final Rect mContentInsets;
|
|
ViewPropertyAnimator mCurrentActionBarTopAnimator;
|
|
private DecorToolbar mDecorToolbar;
|
|
private OverScroller mFlingEstimator;
|
|
private boolean mHasNonEmbeddedTabs;
|
|
private boolean mHideOnContentScroll;
|
|
private int mHideOnContentScrollReference;
|
|
private boolean mIgnoreWindowContentOverlay;
|
|
private WindowInsetsCompat mInnerInsets;
|
|
private final Rect mInnerInsetsRect;
|
|
private final Rect mLastBaseContentInsets;
|
|
private WindowInsetsCompat mLastBaseInnerInsets;
|
|
private final Rect mLastBaseInnerInsetsRect;
|
|
private WindowInsetsCompat mLastInnerInsets;
|
|
private final Rect mLastInnerInsetsRect;
|
|
private int mLastSystemUiVisibility;
|
|
private boolean mOverlayMode;
|
|
private final NestedScrollingParentHelper mParentHelper;
|
|
private final Runnable mRemoveActionBarHideOffset;
|
|
final AnimatorListenerAdapter mTopAnimatorListener;
|
|
private Drawable mWindowContentOverlay;
|
|
private int mWindowVisibility;
|
|
|
|
/* loaded from: classes.dex */
|
|
public interface ActionBarVisibilityCallback {
|
|
void enableContentAnimations(boolean z);
|
|
|
|
void hideForSystem();
|
|
|
|
void onContentScrollStarted();
|
|
|
|
void onContentScrollStopped();
|
|
|
|
void onWindowVisibilityChanged(int i);
|
|
|
|
void showForSystem();
|
|
}
|
|
|
|
public boolean isHideOnContentScrollEnabled() {
|
|
return this.mHideOnContentScroll;
|
|
}
|
|
|
|
public boolean isInOverlayMode() {
|
|
return this.mOverlayMode;
|
|
}
|
|
|
|
@Override // android.view.ViewGroup, android.view.ViewParent, androidx.core.view.NestedScrollingParent
|
|
public boolean onNestedPreFling(View view, float f, float f2) {
|
|
return false;
|
|
}
|
|
|
|
@Override // android.view.ViewGroup, android.view.ViewParent, androidx.core.view.NestedScrollingParent
|
|
public void onNestedPreScroll(View view, int i, int i2, int[] iArr) {
|
|
}
|
|
|
|
public void setHasNonEmbeddedTabs(boolean z) {
|
|
this.mHasNonEmbeddedTabs = z;
|
|
}
|
|
|
|
public void setShowingForActionMode(boolean z) {
|
|
}
|
|
|
|
@Override // androidx.appcompat.widget.DecorContentParent
|
|
public void setUiOptions(int i) {
|
|
}
|
|
|
|
@Override // android.view.ViewGroup
|
|
public boolean shouldDelayChildPressedState() {
|
|
return false;
|
|
}
|
|
|
|
public ActionBarOverlayLayout(Context context) {
|
|
this(context, null);
|
|
}
|
|
|
|
public ActionBarOverlayLayout(Context context, AttributeSet attributeSet) {
|
|
super(context, attributeSet);
|
|
this.mWindowVisibility = 0;
|
|
this.mBaseContentInsets = new Rect();
|
|
this.mLastBaseContentInsets = new Rect();
|
|
this.mContentInsets = new Rect();
|
|
this.mBaseInnerInsetsRect = new Rect();
|
|
this.mLastBaseInnerInsetsRect = new Rect();
|
|
this.mInnerInsetsRect = new Rect();
|
|
this.mLastInnerInsetsRect = new Rect();
|
|
this.mBaseInnerInsets = WindowInsetsCompat.CONSUMED;
|
|
this.mLastBaseInnerInsets = WindowInsetsCompat.CONSUMED;
|
|
this.mInnerInsets = WindowInsetsCompat.CONSUMED;
|
|
this.mLastInnerInsets = WindowInsetsCompat.CONSUMED;
|
|
this.mTopAnimatorListener = new AnimatorListenerAdapter() { // from class: androidx.appcompat.widget.ActionBarOverlayLayout.1
|
|
@Override // android.animation.AnimatorListenerAdapter, android.animation.Animator.AnimatorListener
|
|
public void onAnimationEnd(Animator animator) {
|
|
ActionBarOverlayLayout.this.mCurrentActionBarTopAnimator = null;
|
|
ActionBarOverlayLayout.this.mAnimatingForFling = false;
|
|
}
|
|
|
|
@Override // android.animation.AnimatorListenerAdapter, android.animation.Animator.AnimatorListener
|
|
public void onAnimationCancel(Animator animator) {
|
|
ActionBarOverlayLayout.this.mCurrentActionBarTopAnimator = null;
|
|
ActionBarOverlayLayout.this.mAnimatingForFling = false;
|
|
}
|
|
};
|
|
this.mRemoveActionBarHideOffset = new Runnable() { // from class: androidx.appcompat.widget.ActionBarOverlayLayout.2
|
|
@Override // java.lang.Runnable
|
|
public void run() {
|
|
ActionBarOverlayLayout.this.haltActionBarHideOffsetAnimations();
|
|
ActionBarOverlayLayout actionBarOverlayLayout = ActionBarOverlayLayout.this;
|
|
actionBarOverlayLayout.mCurrentActionBarTopAnimator = actionBarOverlayLayout.mActionBarTop.animate().translationY(0.0f).setListener(ActionBarOverlayLayout.this.mTopAnimatorListener);
|
|
}
|
|
};
|
|
this.mAddActionBarHideOffset = new Runnable() { // from class: androidx.appcompat.widget.ActionBarOverlayLayout.3
|
|
@Override // java.lang.Runnable
|
|
public void run() {
|
|
ActionBarOverlayLayout.this.haltActionBarHideOffsetAnimations();
|
|
ActionBarOverlayLayout actionBarOverlayLayout = ActionBarOverlayLayout.this;
|
|
actionBarOverlayLayout.mCurrentActionBarTopAnimator = actionBarOverlayLayout.mActionBarTop.animate().translationY(-ActionBarOverlayLayout.this.mActionBarTop.getHeight()).setListener(ActionBarOverlayLayout.this.mTopAnimatorListener);
|
|
}
|
|
};
|
|
init(context);
|
|
this.mParentHelper = new NestedScrollingParentHelper(this);
|
|
}
|
|
|
|
private void init(Context context) {
|
|
TypedArray obtainStyledAttributes = getContext().getTheme().obtainStyledAttributes(ATTRS);
|
|
this.mActionBarHeight = obtainStyledAttributes.getDimensionPixelSize(0, 0);
|
|
Drawable drawable = obtainStyledAttributes.getDrawable(1);
|
|
this.mWindowContentOverlay = drawable;
|
|
setWillNotDraw(drawable == null);
|
|
obtainStyledAttributes.recycle();
|
|
this.mIgnoreWindowContentOverlay = context.getApplicationInfo().targetSdkVersion < 19;
|
|
this.mFlingEstimator = new OverScroller(context);
|
|
}
|
|
|
|
@Override // android.view.ViewGroup, android.view.View
|
|
protected void onDetachedFromWindow() {
|
|
super.onDetachedFromWindow();
|
|
haltActionBarHideOffsetAnimations();
|
|
}
|
|
|
|
public void setActionBarVisibilityCallback(ActionBarVisibilityCallback actionBarVisibilityCallback) {
|
|
this.mActionBarVisibilityCallback = actionBarVisibilityCallback;
|
|
if (getWindowToken() != null) {
|
|
this.mActionBarVisibilityCallback.onWindowVisibilityChanged(this.mWindowVisibility);
|
|
int i = this.mLastSystemUiVisibility;
|
|
if (i != 0) {
|
|
onWindowSystemUiVisibilityChanged(i);
|
|
ViewCompat.requestApplyInsets(this);
|
|
}
|
|
}
|
|
}
|
|
|
|
public void setOverlayMode(boolean z) {
|
|
this.mOverlayMode = z;
|
|
this.mIgnoreWindowContentOverlay = z && getContext().getApplicationInfo().targetSdkVersion < 19;
|
|
}
|
|
|
|
@Override // android.view.View
|
|
protected void onConfigurationChanged(Configuration configuration) {
|
|
super.onConfigurationChanged(configuration);
|
|
init(getContext());
|
|
ViewCompat.requestApplyInsets(this);
|
|
}
|
|
|
|
@Override // android.view.View
|
|
@Deprecated
|
|
public void onWindowSystemUiVisibilityChanged(int i) {
|
|
super.onWindowSystemUiVisibilityChanged(i);
|
|
pullChildren();
|
|
int i2 = this.mLastSystemUiVisibility ^ i;
|
|
this.mLastSystemUiVisibility = i;
|
|
boolean z = (i & 4) == 0;
|
|
boolean z2 = (i & 256) != 0;
|
|
ActionBarVisibilityCallback actionBarVisibilityCallback = this.mActionBarVisibilityCallback;
|
|
if (actionBarVisibilityCallback != null) {
|
|
actionBarVisibilityCallback.enableContentAnimations(!z2);
|
|
if (z || !z2) {
|
|
this.mActionBarVisibilityCallback.showForSystem();
|
|
} else {
|
|
this.mActionBarVisibilityCallback.hideForSystem();
|
|
}
|
|
}
|
|
if ((i2 & 256) == 0 || this.mActionBarVisibilityCallback == null) {
|
|
return;
|
|
}
|
|
ViewCompat.requestApplyInsets(this);
|
|
}
|
|
|
|
@Override // android.view.View
|
|
protected void onWindowVisibilityChanged(int i) {
|
|
super.onWindowVisibilityChanged(i);
|
|
this.mWindowVisibility = i;
|
|
ActionBarVisibilityCallback actionBarVisibilityCallback = this.mActionBarVisibilityCallback;
|
|
if (actionBarVisibilityCallback != null) {
|
|
actionBarVisibilityCallback.onWindowVisibilityChanged(i);
|
|
}
|
|
}
|
|
|
|
private boolean applyInsets(View view, Rect rect, boolean z, boolean z2, boolean z3, boolean z4) {
|
|
boolean z5;
|
|
LayoutParams layoutParams = (LayoutParams) view.getLayoutParams();
|
|
if (!z || layoutParams.leftMargin == rect.left) {
|
|
z5 = false;
|
|
} else {
|
|
layoutParams.leftMargin = rect.left;
|
|
z5 = true;
|
|
}
|
|
if (z2 && layoutParams.topMargin != rect.top) {
|
|
layoutParams.topMargin = rect.top;
|
|
z5 = true;
|
|
}
|
|
if (z4 && layoutParams.rightMargin != rect.right) {
|
|
layoutParams.rightMargin = rect.right;
|
|
z5 = true;
|
|
}
|
|
if (!z3 || layoutParams.bottomMargin == rect.bottom) {
|
|
return z5;
|
|
}
|
|
layoutParams.bottomMargin = rect.bottom;
|
|
return true;
|
|
}
|
|
|
|
@Override // android.view.View
|
|
protected boolean fitSystemWindows(Rect rect) {
|
|
return super.fitSystemWindows(rect);
|
|
}
|
|
|
|
/* JADX WARN: Code restructure failed: missing block: B:11:0x0061, code lost:
|
|
|
|
if (r0 != false) goto L9;
|
|
*/
|
|
@Override // android.view.View
|
|
/*
|
|
Code decompiled incorrectly, please refer to instructions dump.
|
|
To view partially-correct add '--show-bad-code' argument
|
|
*/
|
|
public android.view.WindowInsets onApplyWindowInsets(android.view.WindowInsets r8) {
|
|
/*
|
|
r7 = this;
|
|
r7.pullChildren()
|
|
androidx.core.view.WindowInsetsCompat r8 = androidx.core.view.WindowInsetsCompat.toWindowInsetsCompat(r8, r7)
|
|
android.graphics.Rect r2 = new android.graphics.Rect
|
|
int r0 = r8.getSystemWindowInsetLeft()
|
|
int r1 = r8.getSystemWindowInsetTop()
|
|
int r3 = r8.getSystemWindowInsetRight()
|
|
int r4 = r8.getSystemWindowInsetBottom()
|
|
r2.<init>(r0, r1, r3, r4)
|
|
androidx.appcompat.widget.ActionBarContainer r1 = r7.mActionBarTop
|
|
r3 = 1
|
|
r4 = 1
|
|
r5 = 0
|
|
r6 = 1
|
|
r0 = r7
|
|
boolean r0 = r0.applyInsets(r1, r2, r3, r4, r5, r6)
|
|
android.graphics.Rect r1 = r7.mBaseContentInsets
|
|
androidx.core.view.ViewCompat.computeSystemWindowInsets(r7, r8, r1)
|
|
android.graphics.Rect r1 = r7.mBaseContentInsets
|
|
int r1 = r1.left
|
|
android.graphics.Rect r2 = r7.mBaseContentInsets
|
|
int r2 = r2.top
|
|
android.graphics.Rect r3 = r7.mBaseContentInsets
|
|
int r3 = r3.right
|
|
android.graphics.Rect r4 = r7.mBaseContentInsets
|
|
int r4 = r4.bottom
|
|
androidx.core.view.WindowInsetsCompat r1 = r8.inset(r1, r2, r3, r4)
|
|
r7.mBaseInnerInsets = r1
|
|
androidx.core.view.WindowInsetsCompat r2 = r7.mLastBaseInnerInsets
|
|
boolean r1 = r2.equals(r1)
|
|
if (r1 != 0) goto L4f
|
|
androidx.core.view.WindowInsetsCompat r0 = r7.mBaseInnerInsets
|
|
r7.mLastBaseInnerInsets = r0
|
|
r0 = 1
|
|
L4f:
|
|
android.graphics.Rect r1 = r7.mLastBaseContentInsets
|
|
android.graphics.Rect r2 = r7.mBaseContentInsets
|
|
boolean r1 = r1.equals(r2)
|
|
if (r1 != 0) goto L61
|
|
android.graphics.Rect r0 = r7.mLastBaseContentInsets
|
|
android.graphics.Rect r1 = r7.mBaseContentInsets
|
|
r0.set(r1)
|
|
goto L63
|
|
L61:
|
|
if (r0 == 0) goto L66
|
|
L63:
|
|
r7.requestLayout()
|
|
L66:
|
|
androidx.core.view.WindowInsetsCompat r7 = r8.consumeDisplayCutout()
|
|
androidx.core.view.WindowInsetsCompat r7 = r7.consumeSystemWindowInsets()
|
|
androidx.core.view.WindowInsetsCompat r7 = r7.consumeStableInsets()
|
|
android.view.WindowInsets r7 = r7.toWindowInsets()
|
|
return r7
|
|
*/
|
|
throw new UnsupportedOperationException("Method not decompiled: androidx.appcompat.widget.ActionBarOverlayLayout.onApplyWindowInsets(android.view.WindowInsets):android.view.WindowInsets");
|
|
}
|
|
|
|
/* JADX INFO: Access modifiers changed from: protected */
|
|
@Override // android.view.ViewGroup
|
|
public LayoutParams generateDefaultLayoutParams() {
|
|
return new LayoutParams(-1, -1);
|
|
}
|
|
|
|
@Override // android.view.ViewGroup
|
|
public LayoutParams generateLayoutParams(AttributeSet attributeSet) {
|
|
return new LayoutParams(getContext(), attributeSet);
|
|
}
|
|
|
|
@Override // android.view.ViewGroup
|
|
protected ViewGroup.LayoutParams generateLayoutParams(ViewGroup.LayoutParams layoutParams) {
|
|
return new LayoutParams(layoutParams);
|
|
}
|
|
|
|
@Override // android.view.ViewGroup
|
|
protected boolean checkLayoutParams(ViewGroup.LayoutParams layoutParams) {
|
|
return layoutParams instanceof LayoutParams;
|
|
}
|
|
|
|
@Override // android.view.View
|
|
protected void onMeasure(int i, int i2) {
|
|
int measuredHeight;
|
|
pullChildren();
|
|
measureChildWithMargins(this.mActionBarTop, i, 0, i2, 0);
|
|
LayoutParams layoutParams = (LayoutParams) this.mActionBarTop.getLayoutParams();
|
|
int max = Math.max(0, this.mActionBarTop.getMeasuredWidth() + layoutParams.leftMargin + layoutParams.rightMargin);
|
|
int max2 = Math.max(0, this.mActionBarTop.getMeasuredHeight() + layoutParams.topMargin + layoutParams.bottomMargin);
|
|
int combineMeasuredStates = View.combineMeasuredStates(0, this.mActionBarTop.getMeasuredState());
|
|
boolean z = (ViewCompat.getWindowSystemUiVisibility(this) & 256) != 0;
|
|
if (z) {
|
|
measuredHeight = this.mActionBarHeight;
|
|
if (this.mHasNonEmbeddedTabs && this.mActionBarTop.getTabContainer() != null) {
|
|
measuredHeight += this.mActionBarHeight;
|
|
}
|
|
} else {
|
|
measuredHeight = this.mActionBarTop.getVisibility() != 8 ? this.mActionBarTop.getMeasuredHeight() : 0;
|
|
}
|
|
this.mContentInsets.set(this.mBaseContentInsets);
|
|
this.mInnerInsets = this.mBaseInnerInsets;
|
|
if (!this.mOverlayMode && !z) {
|
|
this.mContentInsets.top += measuredHeight;
|
|
Rect rect = this.mContentInsets;
|
|
rect.bottom = rect.bottom;
|
|
this.mInnerInsets = this.mInnerInsets.inset(0, measuredHeight, 0, 0);
|
|
} else {
|
|
this.mInnerInsets = new WindowInsetsCompat.Builder(this.mInnerInsets).setSystemWindowInsets(Insets.of(this.mInnerInsets.getSystemWindowInsetLeft(), this.mInnerInsets.getSystemWindowInsetTop() + measuredHeight, this.mInnerInsets.getSystemWindowInsetRight(), this.mInnerInsets.getSystemWindowInsetBottom())).build();
|
|
}
|
|
applyInsets(this.mContent, this.mContentInsets, true, true, true, true);
|
|
if (!this.mLastInnerInsets.equals(this.mInnerInsets)) {
|
|
WindowInsetsCompat windowInsetsCompat = this.mInnerInsets;
|
|
this.mLastInnerInsets = windowInsetsCompat;
|
|
ViewCompat.dispatchApplyWindowInsets(this.mContent, windowInsetsCompat);
|
|
}
|
|
measureChildWithMargins(this.mContent, i, 0, i2, 0);
|
|
LayoutParams layoutParams2 = (LayoutParams) this.mContent.getLayoutParams();
|
|
int max3 = Math.max(max, this.mContent.getMeasuredWidth() + layoutParams2.leftMargin + layoutParams2.rightMargin);
|
|
int max4 = Math.max(max2, this.mContent.getMeasuredHeight() + layoutParams2.topMargin + layoutParams2.bottomMargin);
|
|
int combineMeasuredStates2 = View.combineMeasuredStates(combineMeasuredStates, this.mContent.getMeasuredState());
|
|
setMeasuredDimension(View.resolveSizeAndState(Math.max(max3 + getPaddingLeft() + getPaddingRight(), getSuggestedMinimumWidth()), i, combineMeasuredStates2), View.resolveSizeAndState(Math.max(max4 + getPaddingTop() + getPaddingBottom(), getSuggestedMinimumHeight()), i2, combineMeasuredStates2 << 16));
|
|
}
|
|
|
|
@Override // android.view.ViewGroup, android.view.View
|
|
protected void onLayout(boolean z, int i, int i2, int i3, int i4) {
|
|
int childCount = getChildCount();
|
|
int paddingLeft = getPaddingLeft();
|
|
int paddingTop = getPaddingTop();
|
|
for (int i5 = 0; i5 < childCount; i5++) {
|
|
View childAt = getChildAt(i5);
|
|
if (childAt.getVisibility() != 8) {
|
|
LayoutParams layoutParams = (LayoutParams) childAt.getLayoutParams();
|
|
int measuredWidth = childAt.getMeasuredWidth();
|
|
int measuredHeight = childAt.getMeasuredHeight();
|
|
int i6 = layoutParams.leftMargin + paddingLeft;
|
|
int i7 = layoutParams.topMargin + paddingTop;
|
|
childAt.layout(i6, i7, measuredWidth + i6, measuredHeight + i7);
|
|
}
|
|
}
|
|
}
|
|
|
|
@Override // android.view.View
|
|
public void draw(Canvas canvas) {
|
|
super.draw(canvas);
|
|
if (this.mWindowContentOverlay == null || this.mIgnoreWindowContentOverlay) {
|
|
return;
|
|
}
|
|
int bottom = this.mActionBarTop.getVisibility() == 0 ? (int) (this.mActionBarTop.getBottom() + this.mActionBarTop.getTranslationY() + 0.5f) : 0;
|
|
this.mWindowContentOverlay.setBounds(0, bottom, getWidth(), this.mWindowContentOverlay.getIntrinsicHeight() + bottom);
|
|
this.mWindowContentOverlay.draw(canvas);
|
|
}
|
|
|
|
@Override // androidx.core.view.NestedScrollingParent3
|
|
public void onNestedScroll(View view, int i, int i2, int i3, int i4, int i5, int[] iArr) {
|
|
onNestedScroll(view, i, i2, i3, i4, i5);
|
|
}
|
|
|
|
@Override // androidx.core.view.NestedScrollingParent2
|
|
public boolean onStartNestedScroll(View view, View view2, int i, int i2) {
|
|
return i2 == 0 && onStartNestedScroll(view, view2, i);
|
|
}
|
|
|
|
@Override // androidx.core.view.NestedScrollingParent2
|
|
public void onNestedScrollAccepted(View view, View view2, int i, int i2) {
|
|
if (i2 == 0) {
|
|
onNestedScrollAccepted(view, view2, i);
|
|
}
|
|
}
|
|
|
|
@Override // androidx.core.view.NestedScrollingParent2
|
|
public void onStopNestedScroll(View view, int i) {
|
|
if (i == 0) {
|
|
onStopNestedScroll(view);
|
|
}
|
|
}
|
|
|
|
@Override // androidx.core.view.NestedScrollingParent2
|
|
public void onNestedScroll(View view, int i, int i2, int i3, int i4, int i5) {
|
|
if (i5 == 0) {
|
|
onNestedScroll(view, i, i2, i3, i4);
|
|
}
|
|
}
|
|
|
|
@Override // androidx.core.view.NestedScrollingParent2
|
|
public void onNestedPreScroll(View view, int i, int i2, int[] iArr, int i3) {
|
|
if (i3 == 0) {
|
|
onNestedPreScroll(view, i, i2, iArr);
|
|
}
|
|
}
|
|
|
|
@Override // android.view.ViewGroup, android.view.ViewParent, androidx.core.view.NestedScrollingParent
|
|
public boolean onStartNestedScroll(View view, View view2, int i) {
|
|
if ((i & 2) == 0 || this.mActionBarTop.getVisibility() != 0) {
|
|
return false;
|
|
}
|
|
return this.mHideOnContentScroll;
|
|
}
|
|
|
|
@Override // android.view.ViewGroup, android.view.ViewParent, androidx.core.view.NestedScrollingParent
|
|
public void onNestedScrollAccepted(View view, View view2, int i) {
|
|
this.mParentHelper.onNestedScrollAccepted(view, view2, i);
|
|
this.mHideOnContentScrollReference = getActionBarHideOffset();
|
|
haltActionBarHideOffsetAnimations();
|
|
ActionBarVisibilityCallback actionBarVisibilityCallback = this.mActionBarVisibilityCallback;
|
|
if (actionBarVisibilityCallback != null) {
|
|
actionBarVisibilityCallback.onContentScrollStarted();
|
|
}
|
|
}
|
|
|
|
@Override // android.view.ViewGroup, android.view.ViewParent, androidx.core.view.NestedScrollingParent
|
|
public void onNestedScroll(View view, int i, int i2, int i3, int i4) {
|
|
int i5 = this.mHideOnContentScrollReference + i2;
|
|
this.mHideOnContentScrollReference = i5;
|
|
setActionBarHideOffset(i5);
|
|
}
|
|
|
|
@Override // android.view.ViewGroup, android.view.ViewParent, androidx.core.view.NestedScrollingParent
|
|
public void onStopNestedScroll(View view) {
|
|
if (this.mHideOnContentScroll && !this.mAnimatingForFling) {
|
|
if (this.mHideOnContentScrollReference <= this.mActionBarTop.getHeight()) {
|
|
postRemoveActionBarHideOffset();
|
|
} else {
|
|
postAddActionBarHideOffset();
|
|
}
|
|
}
|
|
ActionBarVisibilityCallback actionBarVisibilityCallback = this.mActionBarVisibilityCallback;
|
|
if (actionBarVisibilityCallback != null) {
|
|
actionBarVisibilityCallback.onContentScrollStopped();
|
|
}
|
|
}
|
|
|
|
@Override // android.view.ViewGroup, android.view.ViewParent, androidx.core.view.NestedScrollingParent
|
|
public boolean onNestedFling(View view, float f, float f2, boolean z) {
|
|
if (!this.mHideOnContentScroll || !z) {
|
|
return false;
|
|
}
|
|
if (shouldHideActionBarOnFling(f2)) {
|
|
addActionBarHideOffset();
|
|
} else {
|
|
removeActionBarHideOffset();
|
|
}
|
|
this.mAnimatingForFling = true;
|
|
return true;
|
|
}
|
|
|
|
@Override // android.view.ViewGroup, androidx.core.view.NestedScrollingParent
|
|
public int getNestedScrollAxes() {
|
|
return this.mParentHelper.getNestedScrollAxes();
|
|
}
|
|
|
|
void pullChildren() {
|
|
if (this.mContent == null) {
|
|
this.mContent = (ContentFrameLayout) findViewById(R.id.action_bar_activity_content);
|
|
this.mActionBarTop = (ActionBarContainer) findViewById(R.id.action_bar_container);
|
|
this.mDecorToolbar = getDecorToolbar(findViewById(R.id.action_bar));
|
|
}
|
|
}
|
|
|
|
/* JADX WARN: Multi-variable type inference failed */
|
|
private DecorToolbar getDecorToolbar(View view) {
|
|
if (view instanceof DecorToolbar) {
|
|
return (DecorToolbar) view;
|
|
}
|
|
if (view instanceof Toolbar) {
|
|
return ((Toolbar) view).getWrapper();
|
|
}
|
|
throw new IllegalStateException("Can't make a decor toolbar out of " + view.getClass().getSimpleName());
|
|
}
|
|
|
|
public void setHideOnContentScrollEnabled(boolean z) {
|
|
if (z != this.mHideOnContentScroll) {
|
|
this.mHideOnContentScroll = z;
|
|
if (z) {
|
|
return;
|
|
}
|
|
haltActionBarHideOffsetAnimations();
|
|
setActionBarHideOffset(0);
|
|
}
|
|
}
|
|
|
|
public int getActionBarHideOffset() {
|
|
ActionBarContainer actionBarContainer = this.mActionBarTop;
|
|
if (actionBarContainer != null) {
|
|
return -((int) actionBarContainer.getTranslationY());
|
|
}
|
|
return 0;
|
|
}
|
|
|
|
public void setActionBarHideOffset(int i) {
|
|
haltActionBarHideOffsetAnimations();
|
|
this.mActionBarTop.setTranslationY(-Math.max(0, Math.min(i, this.mActionBarTop.getHeight())));
|
|
}
|
|
|
|
void haltActionBarHideOffsetAnimations() {
|
|
removeCallbacks(this.mRemoveActionBarHideOffset);
|
|
removeCallbacks(this.mAddActionBarHideOffset);
|
|
ViewPropertyAnimator viewPropertyAnimator = this.mCurrentActionBarTopAnimator;
|
|
if (viewPropertyAnimator != null) {
|
|
viewPropertyAnimator.cancel();
|
|
}
|
|
}
|
|
|
|
private void postRemoveActionBarHideOffset() {
|
|
haltActionBarHideOffsetAnimations();
|
|
postDelayed(this.mRemoveActionBarHideOffset, 600L);
|
|
}
|
|
|
|
private void postAddActionBarHideOffset() {
|
|
haltActionBarHideOffsetAnimations();
|
|
postDelayed(this.mAddActionBarHideOffset, 600L);
|
|
}
|
|
|
|
private void removeActionBarHideOffset() {
|
|
haltActionBarHideOffsetAnimations();
|
|
this.mRemoveActionBarHideOffset.run();
|
|
}
|
|
|
|
private void addActionBarHideOffset() {
|
|
haltActionBarHideOffsetAnimations();
|
|
this.mAddActionBarHideOffset.run();
|
|
}
|
|
|
|
private boolean shouldHideActionBarOnFling(float f) {
|
|
this.mFlingEstimator.fling(0, 0, 0, (int) f, 0, 0, Integer.MIN_VALUE, Integer.MAX_VALUE);
|
|
return this.mFlingEstimator.getFinalY() > this.mActionBarTop.getHeight();
|
|
}
|
|
|
|
@Override // androidx.appcompat.widget.DecorContentParent
|
|
public void setWindowCallback(Window.Callback callback) {
|
|
pullChildren();
|
|
this.mDecorToolbar.setWindowCallback(callback);
|
|
}
|
|
|
|
@Override // androidx.appcompat.widget.DecorContentParent
|
|
public void setWindowTitle(CharSequence charSequence) {
|
|
pullChildren();
|
|
this.mDecorToolbar.setWindowTitle(charSequence);
|
|
}
|
|
|
|
@Override // androidx.appcompat.widget.DecorContentParent
|
|
public CharSequence getTitle() {
|
|
pullChildren();
|
|
return this.mDecorToolbar.getTitle();
|
|
}
|
|
|
|
@Override // androidx.appcompat.widget.DecorContentParent
|
|
public void initFeature(int i) {
|
|
pullChildren();
|
|
if (i == 2) {
|
|
this.mDecorToolbar.initProgress();
|
|
} else if (i == 5) {
|
|
this.mDecorToolbar.initIndeterminateProgress();
|
|
} else {
|
|
if (i != 109) {
|
|
return;
|
|
}
|
|
setOverlayMode(true);
|
|
}
|
|
}
|
|
|
|
@Override // androidx.appcompat.widget.DecorContentParent
|
|
public boolean hasIcon() {
|
|
pullChildren();
|
|
return this.mDecorToolbar.hasIcon();
|
|
}
|
|
|
|
@Override // androidx.appcompat.widget.DecorContentParent
|
|
public boolean hasLogo() {
|
|
pullChildren();
|
|
return this.mDecorToolbar.hasLogo();
|
|
}
|
|
|
|
@Override // androidx.appcompat.widget.DecorContentParent
|
|
public void setIcon(int i) {
|
|
pullChildren();
|
|
this.mDecorToolbar.setIcon(i);
|
|
}
|
|
|
|
@Override // androidx.appcompat.widget.DecorContentParent
|
|
public void setIcon(Drawable drawable) {
|
|
pullChildren();
|
|
this.mDecorToolbar.setIcon(drawable);
|
|
}
|
|
|
|
@Override // androidx.appcompat.widget.DecorContentParent
|
|
public void setLogo(int i) {
|
|
pullChildren();
|
|
this.mDecorToolbar.setLogo(i);
|
|
}
|
|
|
|
@Override // androidx.appcompat.widget.DecorContentParent
|
|
public boolean canShowOverflowMenu() {
|
|
pullChildren();
|
|
return this.mDecorToolbar.canShowOverflowMenu();
|
|
}
|
|
|
|
@Override // androidx.appcompat.widget.DecorContentParent
|
|
public boolean isOverflowMenuShowing() {
|
|
pullChildren();
|
|
return this.mDecorToolbar.isOverflowMenuShowing();
|
|
}
|
|
|
|
@Override // androidx.appcompat.widget.DecorContentParent
|
|
public boolean isOverflowMenuShowPending() {
|
|
pullChildren();
|
|
return this.mDecorToolbar.isOverflowMenuShowPending();
|
|
}
|
|
|
|
@Override // androidx.appcompat.widget.DecorContentParent
|
|
public boolean showOverflowMenu() {
|
|
pullChildren();
|
|
return this.mDecorToolbar.showOverflowMenu();
|
|
}
|
|
|
|
@Override // androidx.appcompat.widget.DecorContentParent
|
|
public boolean hideOverflowMenu() {
|
|
pullChildren();
|
|
return this.mDecorToolbar.hideOverflowMenu();
|
|
}
|
|
|
|
@Override // androidx.appcompat.widget.DecorContentParent
|
|
public void setMenuPrepared() {
|
|
pullChildren();
|
|
this.mDecorToolbar.setMenuPrepared();
|
|
}
|
|
|
|
@Override // androidx.appcompat.widget.DecorContentParent
|
|
public void setMenu(Menu menu, MenuPresenter.Callback callback) {
|
|
pullChildren();
|
|
this.mDecorToolbar.setMenu(menu, callback);
|
|
}
|
|
|
|
@Override // androidx.appcompat.widget.DecorContentParent
|
|
public void saveToolbarHierarchyState(SparseArray<Parcelable> sparseArray) {
|
|
pullChildren();
|
|
this.mDecorToolbar.saveHierarchyState(sparseArray);
|
|
}
|
|
|
|
@Override // androidx.appcompat.widget.DecorContentParent
|
|
public void restoreToolbarHierarchyState(SparseArray<Parcelable> sparseArray) {
|
|
pullChildren();
|
|
this.mDecorToolbar.restoreHierarchyState(sparseArray);
|
|
}
|
|
|
|
@Override // androidx.appcompat.widget.DecorContentParent
|
|
public void dismissPopups() {
|
|
pullChildren();
|
|
this.mDecorToolbar.dismissPopupMenus();
|
|
}
|
|
|
|
/* loaded from: classes.dex */
|
|
public static class LayoutParams extends ViewGroup.MarginLayoutParams {
|
|
public LayoutParams(Context context, AttributeSet attributeSet) {
|
|
super(context, attributeSet);
|
|
}
|
|
|
|
public LayoutParams(int i, int i2) {
|
|
super(i, i2);
|
|
}
|
|
|
|
public LayoutParams(ViewGroup.LayoutParams layoutParams) {
|
|
super(layoutParams);
|
|
}
|
|
|
|
public LayoutParams(ViewGroup.MarginLayoutParams marginLayoutParams) {
|
|
super(marginLayoutParams);
|
|
}
|
|
}
|
|
}
|