61 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			Java
		
	
	
	
	
	
			
		
		
	
	
			61 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			Java
		
	
	
	
	
	
| package androidx.transition;
 | |
| 
 | |
| import android.graphics.Canvas;
 | |
| import android.os.Build;
 | |
| import java.lang.reflect.InvocationTargetException;
 | |
| import java.lang.reflect.Method;
 | |
| 
 | |
| /* loaded from: classes.dex */
 | |
| class CanvasUtils {
 | |
|     private static Method sInorderBarrierMethod;
 | |
|     private static boolean sOrderMethodsFetched;
 | |
|     private static Method sReorderBarrierMethod;
 | |
| 
 | |
|     static void enableZ(Canvas canvas, boolean z) {
 | |
|         Method method;
 | |
|         if (Build.VERSION.SDK_INT >= 29) {
 | |
|             if (z) {
 | |
|                 canvas.enableZ();
 | |
|                 return;
 | |
|             } else {
 | |
|                 canvas.disableZ();
 | |
|                 return;
 | |
|             }
 | |
|         }
 | |
|         if (Build.VERSION.SDK_INT == 28) {
 | |
|             throw new IllegalStateException("This method doesn't work on Pie!");
 | |
|         }
 | |
|         if (!sOrderMethodsFetched) {
 | |
|             try {
 | |
|                 Method declaredMethod = Canvas.class.getDeclaredMethod("insertReorderBarrier", new Class[0]);
 | |
|                 sReorderBarrierMethod = declaredMethod;
 | |
|                 declaredMethod.setAccessible(true);
 | |
|                 Method declaredMethod2 = Canvas.class.getDeclaredMethod("insertInorderBarrier", new Class[0]);
 | |
|                 sInorderBarrierMethod = declaredMethod2;
 | |
|                 declaredMethod2.setAccessible(true);
 | |
|             } catch (NoSuchMethodException unused) {
 | |
|             }
 | |
|             sOrderMethodsFetched = true;
 | |
|         }
 | |
|         if (z) {
 | |
|             try {
 | |
|                 Method method2 = sReorderBarrierMethod;
 | |
|                 if (method2 != null) {
 | |
|                     method2.invoke(canvas, new Object[0]);
 | |
|                 }
 | |
|             } catch (IllegalAccessException unused2) {
 | |
|                 return;
 | |
|             } catch (InvocationTargetException e) {
 | |
|                 throw new RuntimeException(e.getCause());
 | |
|             }
 | |
|         }
 | |
|         if (z || (method = sInorderBarrierMethod) == null) {
 | |
|             return;
 | |
|         }
 | |
|         method.invoke(canvas, new Object[0]);
 | |
|     }
 | |
| 
 | |
|     private CanvasUtils() {
 | |
|     }
 | |
| }
 |