125 lines
		
	
	
		
			6.1 KiB
		
	
	
	
		
			Java
		
	
	
	
	
	
			
		
		
	
	
			125 lines
		
	
	
		
			6.1 KiB
		
	
	
	
		
			Java
		
	
	
	
	
	
| package androidx.activity;
 | |
| 
 | |
| import java.util.ArrayList;
 | |
| import java.util.Iterator;
 | |
| import java.util.List;
 | |
| import java.util.concurrent.Executor;
 | |
| import kotlin.Metadata;
 | |
| import kotlin.Unit;
 | |
| import kotlin.jvm.functions.Function0;
 | |
| import kotlin.jvm.internal.Intrinsics;
 | |
| 
 | |
| /* compiled from: FullyDrawnReporter.kt */
 | |
| @Metadata(d1 = {"\u0000<\n\u0002\u0018\u0002\n\u0002\u0010\u0000\n\u0000\n\u0002\u0018\u0002\n\u0000\n\u0002\u0018\u0002\n\u0002\u0010\u0002\n\u0002\b\u0002\n\u0002\u0010\u000b\n\u0002\b\u0003\n\u0002\u0010!\n\u0002\b\u0002\n\u0002\u0018\u0002\n\u0002\b\u0002\n\u0002\u0010\b\n\u0002\b\b\u0018\u00002\u00020\u0001B\u001b\u0012\u0006\u0010\u0002\u001a\u00020\u0003\u0012\f\u0010\u0004\u001a\b\u0012\u0004\u0012\u00020\u00060\u0005¢\u0006\u0002\u0010\u0007J\u0014\u0010\u0014\u001a\u00020\u00062\f\u0010\u0015\u001a\b\u0012\u0004\u0012\u00020\u00060\u0005J\u0006\u0010\u0016\u001a\u00020\u0006J\b\u0010\u0017\u001a\u00020\u0006H\u0007J\b\u0010\u0018\u001a\u00020\u0006H\u0002J\u0014\u0010\u0019\u001a\u00020\u00062\f\u0010\u0015\u001a\b\u0012\u0004\u0012\u00020\u00060\u0005J\u0006\u0010\u001a\u001a\u00020\u0006R\u000e\u0010\u0002\u001a\u00020\u0003X\u0082\u0004¢\u0006\u0002\n\u0000R\u0011\u0010\b\u001a\u00020\t8F¢\u0006\u0006\u001a\u0004\b\b\u0010\nR\u000e\u0010\u000b\u001a\u00020\u0001X\u0082\u0004¢\u0006\u0002\n\u0000R\u001c\u0010\f\u001a\u000e\u0012\n\u0012\b\u0012\u0004\u0012\u00020\u00060\u00050\r8\u0002X\u0083\u0004¢\u0006\u0002\n\u0000R\u0014\u0010\u0004\u001a\b\u0012\u0004\u0012\u00020\u00060\u0005X\u0082\u0004¢\u0006\u0002\n\u0000R\u0012\u0010\u000e\u001a\u00020\t8\u0002@\u0002X\u0083\u000e¢\u0006\u0002\n\u0000R\u000e\u0010\u000f\u001a\u00020\u0010X\u0082\u0004¢\u0006\u0002\n\u0000R\u0012\u0010\u0011\u001a\u00020\t8\u0002@\u0002X\u0083\u000e¢\u0006\u0002\n\u0000R\u0012\u0010\u0012\u001a\u00020\u00138\u0002@\u0002X\u0083\u000e¢\u0006\u0002\n\u0000¨\u0006\u001b"}, d2 = {"Landroidx/activity/FullyDrawnReporter;", "", "executor", "Ljava/util/concurrent/Executor;", "reportFullyDrawn", "Lkotlin/Function0;", "", "(Ljava/util/concurrent/Executor;Lkotlin/jvm/functions/Function0;)V", "isFullyDrawnReported", "", "()Z", "lock", "onReportCallbacks", "", "reportPosted", "reportRunnable", "Ljava/lang/Runnable;", "reportedFullyDrawn", "reporterCount", "", "addOnReportDrawnListener", "callback", "addReporter", "fullyDrawnReported", "postWhenReportersAreDone", "removeOnReportDrawnListener", "removeReporter", "activity_release"}, k = 1, mv = {1, 8, 0}, xi = 48)
 | |
| /* loaded from: classes.dex */
 | |
| public final class FullyDrawnReporter {
 | |
|     private final Executor executor;
 | |
|     private final Object lock;
 | |
|     private final List<Function0<Unit>> onReportCallbacks;
 | |
|     private final Function0<Unit> reportFullyDrawn;
 | |
|     private boolean reportPosted;
 | |
|     private final Runnable reportRunnable;
 | |
|     private boolean reportedFullyDrawn;
 | |
|     private int reporterCount;
 | |
| 
 | |
|     public FullyDrawnReporter(Executor executor, Function0<Unit> reportFullyDrawn) {
 | |
|         Intrinsics.checkNotNullParameter(executor, "executor");
 | |
|         Intrinsics.checkNotNullParameter(reportFullyDrawn, "reportFullyDrawn");
 | |
|         this.executor = executor;
 | |
|         this.reportFullyDrawn = reportFullyDrawn;
 | |
|         this.lock = new Object();
 | |
|         this.onReportCallbacks = new ArrayList();
 | |
|         this.reportRunnable = new Runnable() { // from class: androidx.activity.FullyDrawnReporter$$ExternalSyntheticLambda0
 | |
|             @Override // java.lang.Runnable
 | |
|             public final void run() {
 | |
|                 FullyDrawnReporter.reportRunnable$lambda$2(FullyDrawnReporter.this);
 | |
|             }
 | |
|         };
 | |
|     }
 | |
| 
 | |
|     public final boolean isFullyDrawnReported() {
 | |
|         boolean z;
 | |
|         synchronized (this.lock) {
 | |
|             z = this.reportedFullyDrawn;
 | |
|         }
 | |
|         return z;
 | |
|     }
 | |
| 
 | |
|     /* JADX INFO: Access modifiers changed from: private */
 | |
|     public static final void reportRunnable$lambda$2(FullyDrawnReporter this$0) {
 | |
|         Intrinsics.checkNotNullParameter(this$0, "this$0");
 | |
|         synchronized (this$0.lock) {
 | |
|             this$0.reportPosted = false;
 | |
|             if (this$0.reporterCount == 0 && !this$0.reportedFullyDrawn) {
 | |
|                 this$0.reportFullyDrawn.invoke();
 | |
|                 this$0.fullyDrawnReported();
 | |
|             }
 | |
|             Unit unit = Unit.INSTANCE;
 | |
|         }
 | |
|     }
 | |
| 
 | |
|     public final void addReporter() {
 | |
|         synchronized (this.lock) {
 | |
|             if (!this.reportedFullyDrawn) {
 | |
|                 this.reporterCount++;
 | |
|             }
 | |
|             Unit unit = Unit.INSTANCE;
 | |
|         }
 | |
|     }
 | |
| 
 | |
|     public final void removeReporter() {
 | |
|         int i;
 | |
|         synchronized (this.lock) {
 | |
|             if (!this.reportedFullyDrawn && (i = this.reporterCount) > 0) {
 | |
|                 this.reporterCount = i - 1;
 | |
|                 postWhenReportersAreDone();
 | |
|             }
 | |
|             Unit unit = Unit.INSTANCE;
 | |
|         }
 | |
|     }
 | |
| 
 | |
|     public final void addOnReportDrawnListener(Function0<Unit> callback) {
 | |
|         boolean z;
 | |
|         Intrinsics.checkNotNullParameter(callback, "callback");
 | |
|         synchronized (this.lock) {
 | |
|             if (this.reportedFullyDrawn) {
 | |
|                 z = true;
 | |
|             } else {
 | |
|                 this.onReportCallbacks.add(callback);
 | |
|                 z = false;
 | |
|             }
 | |
|         }
 | |
|         if (z) {
 | |
|             callback.invoke();
 | |
|         }
 | |
|     }
 | |
| 
 | |
|     public final void removeOnReportDrawnListener(Function0<Unit> callback) {
 | |
|         Intrinsics.checkNotNullParameter(callback, "callback");
 | |
|         synchronized (this.lock) {
 | |
|             this.onReportCallbacks.remove(callback);
 | |
|             Unit unit = Unit.INSTANCE;
 | |
|         }
 | |
|     }
 | |
| 
 | |
|     public final void fullyDrawnReported() {
 | |
|         synchronized (this.lock) {
 | |
|             this.reportedFullyDrawn = true;
 | |
|             Iterator<T> it = this.onReportCallbacks.iterator();
 | |
|             while (it.hasNext()) {
 | |
|                 ((Function0) it.next()).invoke();
 | |
|             }
 | |
|             this.onReportCallbacks.clear();
 | |
|             Unit unit = Unit.INSTANCE;
 | |
|         }
 | |
|     }
 | |
| 
 | |
|     private final void postWhenReportersAreDone() {
 | |
|         if (this.reportPosted || this.reporterCount != 0) {
 | |
|             return;
 | |
|         }
 | |
|         this.reportPosted = true;
 | |
|         this.executor.execute(this.reportRunnable);
 | |
|     }
 | |
| }
 |