Rabbit-R1/android (non root)/java/sources/androidx/transition/GhostViewPort.java

168 lines
6.2 KiB
Java
Raw Normal View History

2024-05-21 16:08:36 -05:00
package androidx.transition;
import android.graphics.Canvas;
import android.graphics.Matrix;
import android.view.View;
import android.view.ViewGroup;
import android.view.ViewTreeObserver;
import androidx.core.view.ViewCompat;
/* JADX INFO: Access modifiers changed from: package-private */
/* loaded from: classes2.dex */
public class GhostViewPort extends ViewGroup implements GhostView {
private Matrix mMatrix;
private final ViewTreeObserver.OnPreDrawListener mOnPreDrawListener;
int mReferences;
ViewGroup mStartParent;
View mStartView;
final View mView;
@Override // android.view.ViewGroup, android.view.View
protected void onLayout(boolean z, int i, int i2, int i3, int i4) {
}
@Override // androidx.transition.GhostView
public void reserveEndViewTransition(ViewGroup viewGroup, View view) {
this.mStartParent = viewGroup;
this.mStartView = view;
}
void setMatrix(Matrix matrix) {
this.mMatrix = matrix;
}
GhostViewPort(View view) {
super(view.getContext());
this.mOnPreDrawListener = new ViewTreeObserver.OnPreDrawListener() { // from class: androidx.transition.GhostViewPort.1
@Override // android.view.ViewTreeObserver.OnPreDrawListener
public boolean onPreDraw() {
ViewCompat.postInvalidateOnAnimation(GhostViewPort.this);
if (GhostViewPort.this.mStartParent == null || GhostViewPort.this.mStartView == null) {
return true;
}
GhostViewPort.this.mStartParent.endViewTransition(GhostViewPort.this.mStartView);
ViewCompat.postInvalidateOnAnimation(GhostViewPort.this.mStartParent);
GhostViewPort.this.mStartParent = null;
GhostViewPort.this.mStartView = null;
return true;
}
};
this.mView = view;
setWillNotDraw(false);
setClipChildren(false);
setLayerType(2, null);
}
@Override // android.view.View, androidx.transition.GhostView
public void setVisibility(int i) {
super.setVisibility(i);
if (getGhostView(this.mView) == this) {
ViewUtils.setTransitionVisibility(this.mView, i == 0 ? 4 : 0);
}
}
@Override // android.view.ViewGroup, android.view.View
protected void onAttachedToWindow() {
super.onAttachedToWindow();
setGhostView(this.mView, this);
this.mView.getViewTreeObserver().addOnPreDrawListener(this.mOnPreDrawListener);
ViewUtils.setTransitionVisibility(this.mView, 4);
if (this.mView.getParent() != null) {
((View) this.mView.getParent()).invalidate();
}
}
@Override // android.view.ViewGroup, android.view.View
protected void onDetachedFromWindow() {
this.mView.getViewTreeObserver().removeOnPreDrawListener(this.mOnPreDrawListener);
ViewUtils.setTransitionVisibility(this.mView, 0);
setGhostView(this.mView, null);
if (this.mView.getParent() != null) {
((View) this.mView.getParent()).invalidate();
}
super.onDetachedFromWindow();
}
@Override // android.view.View
protected void onDraw(Canvas canvas) {
CanvasUtils.enableZ(canvas, true);
canvas.setMatrix(this.mMatrix);
ViewUtils.setTransitionVisibility(this.mView, 0);
this.mView.invalidate();
ViewUtils.setTransitionVisibility(this.mView, 4);
drawChild(canvas, this.mView, getDrawingTime());
CanvasUtils.enableZ(canvas, false);
}
static void copySize(View view, View view2) {
ViewUtils.setLeftTopRightBottom(view2, view2.getLeft(), view2.getTop(), view2.getLeft() + view.getWidth(), view2.getTop() + view.getHeight());
}
static GhostViewPort getGhostView(View view) {
return (GhostViewPort) view.getTag(R.id.ghost_view);
}
static void setGhostView(View view, GhostViewPort ghostViewPort) {
view.setTag(R.id.ghost_view, ghostViewPort);
}
static void calculateMatrix(View view, ViewGroup viewGroup, Matrix matrix) {
ViewGroup viewGroup2 = (ViewGroup) view.getParent();
matrix.reset();
ViewUtils.transformMatrixToGlobal(viewGroup2, matrix);
matrix.preTranslate(-viewGroup2.getScrollX(), -viewGroup2.getScrollY());
ViewUtils.transformMatrixToLocal(viewGroup, matrix);
}
/* JADX INFO: Access modifiers changed from: package-private */
public static GhostViewPort addGhost(View view, ViewGroup viewGroup, Matrix matrix) {
int i;
GhostViewHolder ghostViewHolder;
if (!(view.getParent() instanceof ViewGroup)) {
throw new IllegalArgumentException("Ghosted views must be parented by a ViewGroup");
}
GhostViewHolder holder = GhostViewHolder.getHolder(viewGroup);
GhostViewPort ghostView = getGhostView(view);
if (ghostView == null || (ghostViewHolder = (GhostViewHolder) ghostView.getParent()) == holder) {
i = 0;
} else {
i = ghostView.mReferences;
ghostViewHolder.removeView(ghostView);
ghostView = null;
}
if (ghostView == null) {
if (matrix == null) {
matrix = new Matrix();
calculateMatrix(view, viewGroup, matrix);
}
ghostView = new GhostViewPort(view);
ghostView.setMatrix(matrix);
if (holder == null) {
holder = new GhostViewHolder(viewGroup);
} else {
holder.popToOverlayTop();
}
copySize(viewGroup, holder);
copySize(viewGroup, ghostView);
holder.addGhostView(ghostView);
ghostView.mReferences = i;
} else if (matrix != null) {
ghostView.setMatrix(matrix);
}
ghostView.mReferences++;
return ghostView;
}
/* JADX INFO: Access modifiers changed from: package-private */
public static void removeGhost(View view) {
GhostViewPort ghostView = getGhostView(view);
if (ghostView != null) {
int i = ghostView.mReferences - 1;
ghostView.mReferences = i;
if (i <= 0) {
((GhostViewHolder) ghostView.getParent()).removeView(ghostView);
}
}
}
}