package androidx.transition; import android.view.View; import android.view.ViewGroup; import android.widget.FrameLayout; import java.util.ArrayList; /* loaded from: classes2.dex */ class GhostViewHolder extends FrameLayout { private boolean mAttached; private ViewGroup mParent; /* JADX INFO: Access modifiers changed from: package-private */ public GhostViewHolder(ViewGroup viewGroup) { super(viewGroup.getContext()); setClipChildren(false); this.mParent = viewGroup; viewGroup.setTag(R.id.ghost_view_holder, this); ViewGroupUtils.getOverlay(this.mParent).add(this); this.mAttached = true; } @Override // android.view.ViewGroup public void onViewAdded(View view) { if (!this.mAttached) { throw new IllegalStateException("This GhostViewHolder is detached!"); } super.onViewAdded(view); } @Override // android.view.ViewGroup public void onViewRemoved(View view) { super.onViewRemoved(view); if ((getChildCount() == 1 && getChildAt(0) == view) || getChildCount() == 0) { this.mParent.setTag(R.id.ghost_view_holder, null); ViewGroupUtils.getOverlay(this.mParent).remove(this); this.mAttached = false; } } /* JADX INFO: Access modifiers changed from: package-private */ public static GhostViewHolder getHolder(ViewGroup viewGroup) { return (GhostViewHolder) viewGroup.getTag(R.id.ghost_view_holder); } /* JADX INFO: Access modifiers changed from: package-private */ public void popToOverlayTop() { if (!this.mAttached) { throw new IllegalStateException("This GhostViewHolder is detached!"); } ViewGroupUtils.getOverlay(this.mParent).remove(this); ViewGroupUtils.getOverlay(this.mParent).add(this); } /* JADX INFO: Access modifiers changed from: package-private */ public void addGhostView(GhostViewPort ghostViewPort) { ArrayList arrayList = new ArrayList<>(); getParents(ghostViewPort.mView, arrayList); int insertIndex = getInsertIndex(arrayList); if (insertIndex < 0 || insertIndex >= getChildCount()) { addView(ghostViewPort); } else { addView(ghostViewPort, insertIndex); } } private int getInsertIndex(ArrayList arrayList) { ArrayList arrayList2 = new ArrayList(); int childCount = getChildCount() - 1; int i = 0; while (i <= childCount) { int i2 = (i + childCount) / 2; getParents(((GhostViewPort) getChildAt(i2)).mView, arrayList2); if (isOnTop(arrayList, (ArrayList) arrayList2)) { i = i2 + 1; } else { childCount = i2 - 1; } arrayList2.clear(); } return i; } private static boolean isOnTop(ArrayList arrayList, ArrayList arrayList2) { if (arrayList.isEmpty() || arrayList2.isEmpty() || arrayList.get(0) != arrayList2.get(0)) { return true; } int min = Math.min(arrayList.size(), arrayList2.size()); for (int i = 1; i < min; i++) { View view = arrayList.get(i); View view2 = arrayList2.get(i); if (view != view2) { return isOnTop(view, view2); } } return arrayList2.size() == min; } private static void getParents(View view, ArrayList arrayList) { Object parent = view.getParent(); if (parent instanceof ViewGroup) { getParents((View) parent, arrayList); } arrayList.add(view); } private static boolean isOnTop(View view, View view2) { ViewGroup viewGroup = (ViewGroup) view.getParent(); int childCount = viewGroup.getChildCount(); if (view.getZ() != view2.getZ()) { return view.getZ() > view2.getZ(); } for (int i = 0; i < childCount; i++) { View childAt = viewGroup.getChildAt(ViewGroupUtils.getChildDrawingOrder(viewGroup, i)); if (childAt == view) { return false; } if (childAt == view2) { break; } } return true; } }