discord-jadx/app/src/main/java/androidx/transition/ImageViewUtils.java

58 lines
2.0 KiB
Java

package androidx.transition;
import android.annotation.SuppressLint;
import android.graphics.Matrix;
import android.graphics.drawable.Drawable;
import android.os.Build;
import android.widget.ImageView;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.annotation.RequiresApi;
import java.lang.reflect.Field;
public class ImageViewUtils {
private static Field sDrawMatrixField = null;
private static boolean sDrawMatrixFieldFetched = false;
private static boolean sTryHiddenAnimateTransform = true;
private ImageViewUtils() {
}
public static void animateTransform(@NonNull ImageView imageView, @Nullable Matrix matrix) {
if (Build.VERSION.SDK_INT >= 29) {
imageView.animateTransform(matrix);
} else if (matrix == null) {
Drawable drawable = imageView.getDrawable();
if (drawable != null) {
drawable.setBounds(0, 0, (imageView.getWidth() - imageView.getPaddingLeft()) - imageView.getPaddingRight(), (imageView.getHeight() - imageView.getPaddingTop()) - imageView.getPaddingBottom());
imageView.invalidate();
}
} else {
hiddenAnimateTransform(imageView, matrix);
}
}
private static void fetchDrawMatrixField() {
if (!sDrawMatrixFieldFetched) {
try {
Field declaredField = ImageView.class.getDeclaredField("mDrawMatrix");
sDrawMatrixField = declaredField;
declaredField.setAccessible(true);
} catch (NoSuchFieldException unused) {
}
sDrawMatrixFieldFetched = true;
}
}
@RequiresApi(21)
@SuppressLint({"NewApi"})
private static void hiddenAnimateTransform(@NonNull ImageView imageView, @Nullable Matrix matrix) {
if (sTryHiddenAnimateTransform) {
try {
imageView.animateTransform(matrix);
} catch (NoSuchMethodError unused) {
sTryHiddenAnimateTransform = false;
}
}
}
}