package androidx.transition; import android.content.Context; import android.graphics.Canvas; import android.graphics.Rect; import android.graphics.drawable.Drawable; import android.view.MotionEvent; import android.view.View; import android.view.ViewGroup; import android.view.ViewParent; import androidx.core.view.ViewCompat; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; import java.util.ArrayList; /* JADX INFO: Access modifiers changed from: package-private */ /* loaded from: classes2.dex */ public class ViewOverlayApi14 implements ViewOverlayImpl { protected OverlayViewGroup mOverlayViewGroup; /* JADX INFO: Access modifiers changed from: package-private */ public ViewOverlayApi14(Context context, ViewGroup viewGroup, View view) { this.mOverlayViewGroup = new OverlayViewGroup(context, viewGroup, view, this); } static ViewGroup getContentView(View view) { while (view != null) { if (view.getId() == 16908290 && (view instanceof ViewGroup)) { return (ViewGroup) view; } if (view.getParent() instanceof ViewGroup) { view = (ViewGroup) view.getParent(); } } return null; } /* JADX INFO: Access modifiers changed from: package-private */ public static ViewOverlayApi14 createFrom(View view) { ViewGroup contentView = getContentView(view); if (contentView == null) { return null; } int childCount = contentView.getChildCount(); for (int i = 0; i < childCount; i++) { View childAt = contentView.getChildAt(i); if (childAt instanceof OverlayViewGroup) { return ((OverlayViewGroup) childAt).mViewOverlay; } } return new ViewGroupOverlayApi14(contentView.getContext(), contentView, view); } @Override // androidx.transition.ViewOverlayImpl public void add(Drawable drawable) { this.mOverlayViewGroup.add(drawable); } @Override // androidx.transition.ViewOverlayImpl public void remove(Drawable drawable) { this.mOverlayViewGroup.remove(drawable); } /* JADX INFO: Access modifiers changed from: package-private */ /* loaded from: classes2.dex */ public static class OverlayViewGroup extends ViewGroup { static Method sInvalidateChildInParentFastMethod; private boolean mDisposed; ArrayList mDrawables; ViewGroup mHostView; View mRequestingView; ViewOverlayApi14 mViewOverlay; @Override // android.view.ViewGroup, android.view.View public boolean dispatchTouchEvent(MotionEvent motionEvent) { return false; } @Override // android.view.ViewGroup, android.view.View protected void onLayout(boolean z, int i, int i2, int i3, int i4) { } static { try { sInvalidateChildInParentFastMethod = ViewGroup.class.getDeclaredMethod("invalidateChildInParentFast", Integer.TYPE, Integer.TYPE, Rect.class); } catch (NoSuchMethodException unused) { } } OverlayViewGroup(Context context, ViewGroup viewGroup, View view, ViewOverlayApi14 viewOverlayApi14) { super(context); this.mDrawables = null; this.mHostView = viewGroup; this.mRequestingView = view; setRight(viewGroup.getWidth()); setBottom(viewGroup.getHeight()); viewGroup.addView(this); this.mViewOverlay = viewOverlayApi14; } public void add(Drawable drawable) { assertNotDisposed(); if (this.mDrawables == null) { this.mDrawables = new ArrayList<>(); } if (this.mDrawables.contains(drawable)) { return; } this.mDrawables.add(drawable); invalidate(drawable.getBounds()); drawable.setCallback(this); } public void remove(Drawable drawable) { ArrayList arrayList = this.mDrawables; if (arrayList != null) { arrayList.remove(drawable); invalidate(drawable.getBounds()); drawable.setCallback(null); disposeIfEmpty(); } } @Override // android.view.View protected boolean verifyDrawable(Drawable drawable) { ArrayList arrayList; return super.verifyDrawable(drawable) || ((arrayList = this.mDrawables) != null && arrayList.contains(drawable)); } public void add(View view) { assertNotDisposed(); if (view.getParent() instanceof ViewGroup) { ViewGroup viewGroup = (ViewGroup) view.getParent(); if (viewGroup != this.mHostView && viewGroup.getParent() != null && ViewCompat.isAttachedToWindow(viewGroup)) { int[] iArr = new int[2]; int[] iArr2 = new int[2]; viewGroup.getLocationOnScreen(iArr); this.mHostView.getLocationOnScreen(iArr2); ViewCompat.offsetLeftAndRight(view, iArr[0] - iArr2[0]); ViewCompat.offsetTopAndBottom(view, iArr[1] - iArr2[1]); } viewGroup.removeView(view); if (view.getParent() != null) { viewGroup.removeView(view); } } super.addView(view); } public void remove(View view) { super.removeView(view); disposeIfEmpty(); } private void assertNotDisposed() { if (this.mDisposed) { throw new IllegalStateException("This overlay was disposed already. Please use a new one via ViewGroupUtils.getOverlay()"); } } private void disposeIfEmpty() { if (getChildCount() == 0) { ArrayList arrayList = this.mDrawables; if (arrayList == null || arrayList.size() == 0) { this.mDisposed = true; this.mHostView.removeView(this); } } } @Override // android.view.View, android.graphics.drawable.Drawable.Callback public void invalidateDrawable(Drawable drawable) { invalidate(drawable.getBounds()); } @Override // android.view.ViewGroup, android.view.View protected void dispatchDraw(Canvas canvas) { this.mHostView.getLocationOnScreen(new int[2]); this.mRequestingView.getLocationOnScreen(new int[2]); canvas.translate(r0[0] - r1[0], r0[1] - r1[1]); canvas.clipRect(new Rect(0, 0, this.mRequestingView.getWidth(), this.mRequestingView.getHeight())); super.dispatchDraw(canvas); ArrayList arrayList = this.mDrawables; int size = arrayList == null ? 0 : arrayList.size(); for (int i = 0; i < size; i++) { this.mDrawables.get(i).draw(canvas); } } private void getOffset(int[] iArr) { int[] iArr2 = new int[2]; int[] iArr3 = new int[2]; this.mHostView.getLocationOnScreen(iArr2); this.mRequestingView.getLocationOnScreen(iArr3); iArr[0] = iArr3[0] - iArr2[0]; iArr[1] = iArr3[1] - iArr2[1]; } protected ViewParent invalidateChildInParentFast(int i, int i2, Rect rect) { if (this.mHostView == null || sInvalidateChildInParentFastMethod == null) { return null; } try { getOffset(new int[2]); sInvalidateChildInParentFastMethod.invoke(this.mHostView, Integer.valueOf(i), Integer.valueOf(i2), rect); return null; } catch (IllegalAccessException e) { e.printStackTrace(); return null; } catch (InvocationTargetException e2) { e2.printStackTrace(); return null; } } @Override // android.view.ViewGroup, android.view.ViewParent public ViewParent invalidateChildInParent(int[] iArr, Rect rect) { if (this.mHostView == null) { return null; } rect.offset(iArr[0], iArr[1]); if (this.mHostView != null) { iArr[0] = 0; iArr[1] = 0; int[] iArr2 = new int[2]; getOffset(iArr2); rect.offset(iArr2[0], iArr2[1]); return super.invalidateChildInParent(iArr, rect); } invalidate(rect); return null; } } }