Rabbit-R1/android (non root)/java/sources/androidx/transition/GhostViewPlatform.java
2024-05-21 17:08:36 -04:00

102 lines
3.3 KiB
Java

package androidx.transition;
import android.graphics.Matrix;
import android.util.Log;
import android.view.View;
import android.view.ViewGroup;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
/* loaded from: classes2.dex */
class GhostViewPlatform implements GhostView {
private static final String TAG = "GhostViewApi21";
private static Method sAddGhostMethod;
private static boolean sAddGhostMethodFetched;
private static Class<?> sGhostViewClass;
private static boolean sGhostViewClassFetched;
private static Method sRemoveGhostMethod;
private static boolean sRemoveGhostMethodFetched;
private final View mGhostView;
@Override // androidx.transition.GhostView
public void reserveEndViewTransition(ViewGroup viewGroup, View view) {
}
static GhostView addGhost(View view, ViewGroup viewGroup, Matrix matrix) {
fetchAddGhostMethod();
Method method = sAddGhostMethod;
if (method != null) {
try {
return new GhostViewPlatform((View) method.invoke(null, view, viewGroup, matrix));
} catch (IllegalAccessException unused) {
} catch (InvocationTargetException e) {
throw new RuntimeException(e.getCause());
}
}
return null;
}
static void removeGhost(View view) {
fetchRemoveGhostMethod();
Method method = sRemoveGhostMethod;
if (method != null) {
try {
method.invoke(null, view);
} catch (IllegalAccessException unused) {
} catch (InvocationTargetException e) {
throw new RuntimeException(e.getCause());
}
}
}
private GhostViewPlatform(View view) {
this.mGhostView = view;
}
@Override // androidx.transition.GhostView
public void setVisibility(int i) {
this.mGhostView.setVisibility(i);
}
private static void fetchGhostViewClass() {
if (sGhostViewClassFetched) {
return;
}
try {
sGhostViewClass = Class.forName("android.view.GhostView");
} catch (ClassNotFoundException e) {
Log.i(TAG, "Failed to retrieve GhostView class", e);
}
sGhostViewClassFetched = true;
}
private static void fetchAddGhostMethod() {
if (sAddGhostMethodFetched) {
return;
}
try {
fetchGhostViewClass();
Method declaredMethod = sGhostViewClass.getDeclaredMethod("addGhost", View.class, ViewGroup.class, Matrix.class);
sAddGhostMethod = declaredMethod;
declaredMethod.setAccessible(true);
} catch (NoSuchMethodException e) {
Log.i(TAG, "Failed to retrieve addGhost method", e);
}
sAddGhostMethodFetched = true;
}
private static void fetchRemoveGhostMethod() {
if (sRemoveGhostMethodFetched) {
return;
}
try {
fetchGhostViewClass();
Method declaredMethod = sGhostViewClass.getDeclaredMethod("removeGhost", View.class);
sRemoveGhostMethod = declaredMethod;
declaredMethod.setAccessible(true);
} catch (NoSuchMethodException e) {
Log.i(TAG, "Failed to retrieve removeGhost method", e);
}
sRemoveGhostMethodFetched = true;
}
}