package androidx.fragment.app; import android.animation.LayoutTransition; import android.content.Context; import android.content.res.TypedArray; import android.graphics.Canvas; import android.os.Bundle; import android.util.AttributeSet; import android.view.View; import android.view.ViewGroup; import android.view.WindowInsets; import android.widget.FrameLayout; import androidx.core.view.ViewCompat; import androidx.core.view.WindowInsetsCompat; import androidx.fragment.R; import java.util.ArrayList; /* loaded from: classes.dex */ public final class FragmentContainerView extends FrameLayout { private View.OnApplyWindowInsetsListener mApplyWindowInsetsListener; private ArrayList mDisappearingFragmentChildren; private boolean mDrawDisappearingViewsFirst; private ArrayList mTransitioningFragmentViews; @Override // android.view.View public WindowInsets onApplyWindowInsets(WindowInsets windowInsets) { return windowInsets; } void setDrawDisappearingViewsLast(boolean z) { this.mDrawDisappearingViewsFirst = z; } @Override // android.view.View public void setOnApplyWindowInsetsListener(View.OnApplyWindowInsetsListener onApplyWindowInsetsListener) { this.mApplyWindowInsetsListener = onApplyWindowInsetsListener; } public FragmentContainerView(Context context) { super(context); this.mDrawDisappearingViewsFirst = true; } public FragmentContainerView(Context context, AttributeSet attributeSet) { this(context, attributeSet, 0); } public FragmentContainerView(Context context, AttributeSet attributeSet, int i) { super(context, attributeSet, i); String str; this.mDrawDisappearingViewsFirst = true; if (attributeSet != null) { String classAttribute = attributeSet.getClassAttribute(); TypedArray obtainStyledAttributes = context.obtainStyledAttributes(attributeSet, R.styleable.FragmentContainerView); if (classAttribute == null) { classAttribute = obtainStyledAttributes.getString(R.styleable.FragmentContainerView_android_name); str = "android:name"; } else { str = "class"; } obtainStyledAttributes.recycle(); if (classAttribute == null || isInEditMode()) { return; } throw new UnsupportedOperationException("FragmentContainerView must be within a FragmentActivity to use " + str + "=\"" + classAttribute + "\""); } } FragmentContainerView(Context context, AttributeSet attributeSet, FragmentManager fragmentManager) { super(context, attributeSet); String str; this.mDrawDisappearingViewsFirst = true; String classAttribute = attributeSet.getClassAttribute(); TypedArray obtainStyledAttributes = context.obtainStyledAttributes(attributeSet, R.styleable.FragmentContainerView); classAttribute = classAttribute == null ? obtainStyledAttributes.getString(R.styleable.FragmentContainerView_android_name) : classAttribute; String string = obtainStyledAttributes.getString(R.styleable.FragmentContainerView_android_tag); obtainStyledAttributes.recycle(); int id = getId(); Fragment findFragmentById = fragmentManager.findFragmentById(id); if (classAttribute != null && findFragmentById == null) { if (id <= 0) { if (string != null) { str = " with tag " + string; } else { str = ""; } throw new IllegalStateException("FragmentContainerView must have an android:id to add Fragment " + classAttribute + str); } Fragment instantiate = fragmentManager.getFragmentFactory().instantiate(context.getClassLoader(), classAttribute); instantiate.onInflate(context, attributeSet, (Bundle) null); fragmentManager.beginTransaction().setReorderingAllowed(true).add(this, instantiate, string).commitNowAllowingStateLoss(); } fragmentManager.onContainerAvailable(this); } @Override // android.view.ViewGroup public void setLayoutTransition(LayoutTransition layoutTransition) { throw new UnsupportedOperationException("FragmentContainerView does not support Layout Transitions or animateLayoutChanges=\"true\"."); } @Override // android.view.ViewGroup, android.view.View public WindowInsets dispatchApplyWindowInsets(WindowInsets windowInsets) { WindowInsetsCompat onApplyWindowInsets; WindowInsetsCompat windowInsetsCompat = WindowInsetsCompat.toWindowInsetsCompat(windowInsets); View.OnApplyWindowInsetsListener onApplyWindowInsetsListener = this.mApplyWindowInsetsListener; if (onApplyWindowInsetsListener != null) { onApplyWindowInsets = WindowInsetsCompat.toWindowInsetsCompat(onApplyWindowInsetsListener.onApplyWindowInsets(this, windowInsets)); } else { onApplyWindowInsets = ViewCompat.onApplyWindowInsets(this, windowInsetsCompat); } if (!onApplyWindowInsets.isConsumed()) { int childCount = getChildCount(); for (int i = 0; i < childCount; i++) { ViewCompat.dispatchApplyWindowInsets(getChildAt(i), onApplyWindowInsets); } } return windowInsets; } @Override // android.view.ViewGroup, android.view.View protected void dispatchDraw(Canvas canvas) { if (this.mDrawDisappearingViewsFirst && this.mDisappearingFragmentChildren != null) { for (int i = 0; i < this.mDisappearingFragmentChildren.size(); i++) { super.drawChild(canvas, this.mDisappearingFragmentChildren.get(i), getDrawingTime()); } } super.dispatchDraw(canvas); } @Override // android.view.ViewGroup protected boolean drawChild(Canvas canvas, View view, long j) { ArrayList arrayList; if (!this.mDrawDisappearingViewsFirst || (arrayList = this.mDisappearingFragmentChildren) == null || arrayList.size() <= 0 || !this.mDisappearingFragmentChildren.contains(view)) { return super.drawChild(canvas, view, j); } return false; } @Override // android.view.ViewGroup public void startViewTransition(View view) { if (view.getParent() == this) { if (this.mTransitioningFragmentViews == null) { this.mTransitioningFragmentViews = new ArrayList<>(); } this.mTransitioningFragmentViews.add(view); } super.startViewTransition(view); } @Override // android.view.ViewGroup public void endViewTransition(View view) { ArrayList arrayList = this.mTransitioningFragmentViews; if (arrayList != null) { arrayList.remove(view); ArrayList arrayList2 = this.mDisappearingFragmentChildren; if (arrayList2 != null && arrayList2.remove(view)) { this.mDrawDisappearingViewsFirst = true; } } super.endViewTransition(view); } @Override // android.view.ViewGroup public void addView(View view, int i, ViewGroup.LayoutParams layoutParams) { if (FragmentManager.getViewFragment(view) == null) { throw new IllegalStateException("Views added to a FragmentContainerView must be associated with a Fragment. View " + view + " is not associated with a Fragment."); } super.addView(view, i, layoutParams); } @Override // android.view.ViewGroup protected boolean addViewInLayout(View view, int i, ViewGroup.LayoutParams layoutParams, boolean z) { if (FragmentManager.getViewFragment(view) == null) { throw new IllegalStateException("Views added to a FragmentContainerView must be associated with a Fragment. View " + view + " is not associated with a Fragment."); } return super.addViewInLayout(view, i, layoutParams, z); } @Override // android.view.ViewGroup public void removeViewAt(int i) { addDisappearingFragmentView(getChildAt(i)); super.removeViewAt(i); } @Override // android.view.ViewGroup public void removeViewInLayout(View view) { addDisappearingFragmentView(view); super.removeViewInLayout(view); } @Override // android.view.ViewGroup, android.view.ViewManager public void removeView(View view) { addDisappearingFragmentView(view); super.removeView(view); } @Override // android.view.ViewGroup public void removeViews(int i, int i2) { for (int i3 = i; i3 < i + i2; i3++) { addDisappearingFragmentView(getChildAt(i3)); } super.removeViews(i, i2); } @Override // android.view.ViewGroup public void removeViewsInLayout(int i, int i2) { for (int i3 = i; i3 < i + i2; i3++) { addDisappearingFragmentView(getChildAt(i3)); } super.removeViewsInLayout(i, i2); } @Override // android.view.ViewGroup public void removeAllViewsInLayout() { for (int childCount = getChildCount() - 1; childCount >= 0; childCount--) { addDisappearingFragmentView(getChildAt(childCount)); } super.removeAllViewsInLayout(); } @Override // android.view.ViewGroup protected void removeDetachedView(View view, boolean z) { if (z) { addDisappearingFragmentView(view); } super.removeDetachedView(view, z); } private void addDisappearingFragmentView(View view) { ArrayList arrayList = this.mTransitioningFragmentViews; if (arrayList == null || !arrayList.contains(view)) { return; } if (this.mDisappearingFragmentChildren == null) { this.mDisappearingFragmentChildren = new ArrayList<>(); } this.mDisappearingFragmentChildren.add(view); } }