mirror of
https://github.com/Pinball3D/Rabbit-R1.git
synced 2024-12-25 16:42:30 -06:00
102 lines
3.3 KiB
Java
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;
|
|
}
|
|
}
|