638 lines
43 KiB
Java
638 lines
43 KiB
Java
package com.google.maps.android.compose.clustering;
|
||
|
||
import android.content.Context;
|
||
import android.graphics.Bitmap;
|
||
import android.graphics.Canvas;
|
||
import android.view.View;
|
||
import android.view.ViewGroup;
|
||
import android.view.ViewParent;
|
||
import androidx.compose.runtime.Composer;
|
||
import androidx.compose.runtime.RecomposeScopeImplKt;
|
||
import androidx.compose.runtime.ScopeUpdateScope;
|
||
import androidx.compose.runtime.State;
|
||
import androidx.compose.runtime.internal.ComposableLambda;
|
||
import androidx.compose.runtime.internal.ComposableLambdaKt;
|
||
import androidx.compose.ui.platform.AbstractComposeView;
|
||
import androidx.core.view.ViewCompat;
|
||
import com.google.android.gms.maps.GoogleMap;
|
||
import com.google.android.gms.maps.model.BitmapDescriptor;
|
||
import com.google.android.gms.maps.model.BitmapDescriptorFactory;
|
||
import com.google.android.gms.maps.model.Marker;
|
||
import com.google.android.gms.maps.model.MarkerOptions;
|
||
import com.google.maps.android.clustering.Cluster;
|
||
import com.google.maps.android.clustering.ClusterItem;
|
||
import com.google.maps.android.clustering.ClusterManager;
|
||
import com.google.maps.android.clustering.view.DefaultClusterRenderer;
|
||
import com.google.maps.android.compose.ComposeUiViewRenderer;
|
||
import com.google.maps.android.compose.clustering.ComposeUiClusterRenderer;
|
||
import java.util.ArrayList;
|
||
import java.util.Collection;
|
||
import java.util.Iterator;
|
||
import java.util.LinkedHashMap;
|
||
import java.util.LinkedHashSet;
|
||
import java.util.Map;
|
||
import java.util.Set;
|
||
import java.util.concurrent.CancellationException;
|
||
import kotlin.Metadata;
|
||
import kotlin.NoWhenBranchMatchedException;
|
||
import kotlin.ResultKt;
|
||
import kotlin.Unit;
|
||
import kotlin.collections.CollectionsKt;
|
||
import kotlin.collections.SetsKt;
|
||
import kotlin.coroutines.Continuation;
|
||
import kotlin.coroutines.intrinsics.IntrinsicsKt;
|
||
import kotlin.coroutines.jvm.internal.DebugMetadata;
|
||
import kotlin.coroutines.jvm.internal.SuspendLambda;
|
||
import kotlin.jvm.functions.Function0;
|
||
import kotlin.jvm.functions.Function2;
|
||
import kotlin.jvm.functions.Function3;
|
||
import kotlin.jvm.internal.DefaultConstructorMarker;
|
||
import kotlin.jvm.internal.Intrinsics;
|
||
import kotlin.jvm.internal.Ref;
|
||
import kotlinx.coroutines.BuildersKt__Builders_commonKt;
|
||
import kotlinx.coroutines.CoroutineScope;
|
||
import kotlinx.coroutines.Job;
|
||
import kotlinx.coroutines.channels.ProduceKt;
|
||
import kotlinx.coroutines.channels.ProducerScope;
|
||
import kotlinx.coroutines.channels.SendChannel;
|
||
import kotlinx.coroutines.flow.FlowKt;
|
||
|
||
/* JADX INFO: compiled from: ClusterRenderer.kt */
|
||
/* JADX INFO: loaded from: classes2.dex */
|
||
@Metadata(d1 = {"\u0000\u0084\u0001\n\u0002\u0018\u0002\n\u0000\n\u0002\u0018\u0002\n\u0002\u0018\u0002\n\u0000\n\u0002\u0018\u0002\n\u0000\n\u0002\u0018\u0002\n\u0000\n\u0002\u0018\u0002\n\u0000\n\u0002\u0018\u0002\n\u0000\n\u0002\u0018\u0002\n\u0002\u0018\u0002\n\u0000\n\u0002\u0018\u0002\n\u0002\u0018\u0002\n\u0002\u0010\u0002\n\u0002\u0018\u0002\n\u0002\b\u0004\n\u0002\u0018\u0002\n\u0000\n\u0002\u0010%\n\u0002\u0018\u0002\n\u0002\u0018\u0002\n\u0002\b\u0002\n\u0002\u0010\"\n\u0002\b\u0005\n\u0002\u0018\u0002\n\u0002\b\u0002\n\u0002\u0018\u0002\n\u0002\b\u0004\n\u0002\u0018\u0002\n\u0002\b\u0002\n\u0002\u0018\u0002\n\u0002\b\u0004\b\u0001\u0018\u0000*\b\b\u0000\u0010\u0001*\u00020\u00022\b\u0012\u0004\u0012\u0002H\u00010\u0003:\u0003123B\u0083\u0001\u0012\u0006\u0010\u0004\u001a\u00020\u0005\u0012\u0006\u0010\u0006\u001a\u00020\u0007\u0012\u0006\u0010\b\u001a\u00020\t\u0012\f\u0010\n\u001a\b\u0012\u0004\u0012\u00028\u00000\u000b\u0012\f\u0010\f\u001a\b\u0012\u0004\u0012\u00020\u000e0\r\u0012%\u0010\u000f\u001a!\u0012\u001d\u0012\u001b\u0012\n\u0012\b\u0012\u0004\u0012\u00028\u00000\u0011\u0012\u0004\u0012\u00020\u0012\u0018\u00010\u0010¢\u0006\u0002\b\u00130\r\u0012\u001f\u0010\u0014\u001a\u001b\u0012\u0017\u0012\u0015\u0012\u0004\u0012\u00028\u0000\u0012\u0004\u0012\u00020\u0012\u0018\u00010\u0010¢\u0006\u0002\b\u00130\r¢\u0006\u0004\b\u0015\u0010\u0016J\u001c\u0010\u001d\u001a\u00020\u00122\u0012\u0010\u001e\u001a\u000e\u0012\n\u0012\b\u0012\u0004\u0012\u00028\u00000\u00110\u001fH\u0016J\u001e\u0010 \u001a\u000e\u0012\n\u0012\b\u0012\u0004\u0012\u00028\u00000\u001b0\u001f*\b\u0012\u0004\u0012\u00028\u00000\u0011H\u0002J\u0016\u0010!\u001a\u00020\u001c2\f\u0010\"\u001a\b\u0012\u0004\u0012\u00028\u00000\u001bH\u0002J$\u0010#\u001a\u00020\u00122\f\u0010\"\u001a\b\u0012\u0004\u0012\u00028\u00000\u001b2\u0006\u0010$\u001a\u00020%H\u0082@¢\u0006\u0002\u0010&J\u0016\u0010'\u001a\u00020(2\f\u0010)\u001a\b\u0012\u0004\u0012\u00028\u00000\u0011H\u0014J\u001d\u0010*\u001a\u00020\u00122\u0006\u0010+\u001a\u00028\u00002\u0006\u0010,\u001a\u00020-H\u0014¢\u0006\u0002\u0010.J\u0010\u0010/\u001a\u00020(2\u0006\u0010$\u001a\u000200H\u0002R\u000e\u0010\u0004\u001a\u00020\u0005X\u0082\u0004¢\u0006\u0002\n\u0000R\u000e\u0010\u0006\u001a\u00020\u0007X\u0082\u0004¢\u0006\u0002\n\u0000R\u0014\u0010\f\u001a\b\u0012\u0004\u0012\u00020\u000e0\rX\u0082\u0004¢\u0006\u0002\n\u0000R-\u0010\u000f\u001a!\u0012\u001d\u0012\u001b\u0012\n\u0012\b\u0012\u0004\u0012\u00028\u00000\u0011\u0012\u0004\u0012\u00020\u0012\u0018\u00010\u0010¢\u0006\u0002\b\u00130\rX\u0082\u0004¢\u0006\u0002\n\u0000R'\u0010\u0014\u001a\u001b\u0012\u0017\u0012\u0015\u0012\u0004\u0012\u00028\u0000\u0012\u0004\u0012\u00020\u0012\u0018\u00010\u0010¢\u0006\u0002\b\u00130\rX\u0082\u0004¢\u0006\u0002\n\u0000R\u000e\u0010\u0017\u001a\u00020\u0018X\u0082\u0004¢\u0006\u0002\n\u0000R \u0010\u0019\u001a\u0014\u0012\n\u0012\b\u0012\u0004\u0012\u00028\u00000\u001b\u0012\u0004\u0012\u00020\u001c0\u001aX\u0082\u0004¢\u0006\u0002\n\u0000¨\u00064"}, d2 = {"Lcom/google/maps/android/compose/clustering/ComposeUiClusterRenderer;", "T", "Lcom/google/maps/android/clustering/ClusterItem;", "Lcom/google/maps/android/clustering/view/DefaultClusterRenderer;", "context", "Landroid/content/Context;", "scope", "Lkotlinx/coroutines/CoroutineScope;", "map", "Lcom/google/android/gms/maps/GoogleMap;", "clusterManager", "Lcom/google/maps/android/clustering/ClusterManager;", "viewRendererState", "Landroidx/compose/runtime/State;", "Lcom/google/maps/android/compose/ComposeUiViewRenderer;", "clusterContentState", "Lkotlin/Function1;", "Lcom/google/maps/android/clustering/Cluster;", "", "Landroidx/compose/runtime/Composable;", "clusterItemContentState", "<init>", "(Landroid/content/Context;Lkotlinx/coroutines/CoroutineScope;Lcom/google/android/gms/maps/GoogleMap;Lcom/google/maps/android/clustering/ClusterManager;Landroidx/compose/runtime/State;Landroidx/compose/runtime/State;Landroidx/compose/runtime/State;)V", "fakeCanvas", "Landroid/graphics/Canvas;", "keysToViews", "", "Lcom/google/maps/android/compose/clustering/ComposeUiClusterRenderer$ViewKey;", "Lcom/google/maps/android/compose/clustering/ComposeUiClusterRenderer$ViewInfo;", "onClustersChanged", "clusters", "", "computeViewKeys", "createAndAddView", "key", "collectInvalidationsAndRerender", "view", "Lcom/google/maps/android/compose/clustering/ComposeUiClusterRenderer$InvalidatingComposeView;", "(Lcom/google/maps/android/compose/clustering/ComposeUiClusterRenderer$ViewKey;Lcom/google/maps/android/compose/clustering/ComposeUiClusterRenderer$InvalidatingComposeView;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;", "getDescriptorForCluster", "Lcom/google/android/gms/maps/model/BitmapDescriptor;", "cluster", "onBeforeClusterItemRendered", "item", "markerOptions", "Lcom/google/android/gms/maps/model/MarkerOptions;", "(Lcom/google/maps/android/clustering/ClusterItem;Lcom/google/android/gms/maps/model/MarkerOptions;)V", "renderViewToBitmapDescriptor", "Landroidx/compose/ui/platform/AbstractComposeView;", "ViewKey", "ViewInfo", "InvalidatingComposeView", "maps-compose-utils_release"}, k = 1, mv = {2, 0, 0}, xi = 48)
|
||
public final class ComposeUiClusterRenderer<T extends ClusterItem> extends DefaultClusterRenderer<T> {
|
||
public static final int $stable = 8;
|
||
private final State<Function3<Cluster<T>, Composer, Integer, Unit>> clusterContentState;
|
||
private final State<Function3<T, Composer, Integer, Unit>> clusterItemContentState;
|
||
private final Context context;
|
||
private final Canvas fakeCanvas;
|
||
private final Map<ViewKey<T>, ViewInfo> keysToViews;
|
||
private final CoroutineScope scope;
|
||
private final State<ComposeUiViewRenderer> viewRendererState;
|
||
|
||
/* JADX WARN: 'super' call moved to the top of the method (can break code semantics) */
|
||
/* JADX WARN: Multi-variable type inference failed */
|
||
public ComposeUiClusterRenderer(Context context, CoroutineScope scope, GoogleMap map, ClusterManager<T> clusterManager, State<? extends ComposeUiViewRenderer> viewRendererState, State<? extends Function3<? super Cluster<T>, ? super Composer, ? super Integer, Unit>> clusterContentState, State<? extends Function3<? super T, ? super Composer, ? super Integer, Unit>> clusterItemContentState) {
|
||
super(context, map, clusterManager);
|
||
Intrinsics.checkNotNullParameter(context, "context");
|
||
Intrinsics.checkNotNullParameter(scope, "scope");
|
||
Intrinsics.checkNotNullParameter(map, "map");
|
||
Intrinsics.checkNotNullParameter(clusterManager, "clusterManager");
|
||
Intrinsics.checkNotNullParameter(viewRendererState, "viewRendererState");
|
||
Intrinsics.checkNotNullParameter(clusterContentState, "clusterContentState");
|
||
Intrinsics.checkNotNullParameter(clusterItemContentState, "clusterItemContentState");
|
||
this.context = context;
|
||
this.scope = scope;
|
||
this.viewRendererState = viewRendererState;
|
||
this.clusterContentState = clusterContentState;
|
||
this.clusterItemContentState = clusterItemContentState;
|
||
this.fakeCanvas = new Canvas();
|
||
this.keysToViews = new LinkedHashMap();
|
||
}
|
||
|
||
@Override // com.google.maps.android.clustering.view.DefaultClusterRenderer, com.google.maps.android.clustering.view.ClusterRenderer
|
||
public void onClustersChanged(Set<? extends Cluster<T>> clusters) {
|
||
Intrinsics.checkNotNullParameter(clusters, "clusters");
|
||
super.onClustersChanged(clusters);
|
||
ArrayList arrayList = new ArrayList();
|
||
Iterator<T> it = clusters.iterator();
|
||
while (it.hasNext()) {
|
||
CollectionsKt.addAll(arrayList, computeViewKeys((Cluster) it.next()));
|
||
}
|
||
ArrayList<ViewKey<T>> arrayList2 = arrayList;
|
||
Iterator<Map.Entry<ViewKey<T>, ViewInfo>> it2 = this.keysToViews.entrySet().iterator();
|
||
while (it2.hasNext()) {
|
||
Map.Entry<ViewKey<T>, ViewInfo> next = it2.next();
|
||
ViewKey<T> key = next.getKey();
|
||
ViewInfo value = next.getValue();
|
||
if (!arrayList2.contains(key)) {
|
||
it2.remove();
|
||
value.getOnRemove().invoke();
|
||
}
|
||
}
|
||
for (ViewKey<T> viewKey : arrayList2) {
|
||
if (!this.keysToViews.keySet().contains(viewKey)) {
|
||
createAndAddView(viewKey);
|
||
}
|
||
}
|
||
}
|
||
|
||
private final Set<ViewKey<T>> computeViewKeys(Cluster<T> cluster) {
|
||
if (shouldRenderAsCluster(cluster)) {
|
||
return SetsKt.setOf(new ViewKey.Cluster(cluster));
|
||
}
|
||
Collection<T> items = cluster.getItems();
|
||
Intrinsics.checkNotNullExpressionValue(items, "getItems(...)");
|
||
LinkedHashSet linkedHashSet = new LinkedHashSet();
|
||
for (T t : items) {
|
||
Intrinsics.checkNotNull(t);
|
||
linkedHashSet.add(new ViewKey.Item(t));
|
||
}
|
||
return linkedHashSet;
|
||
}
|
||
|
||
private final ViewInfo createAndAddView(final ViewKey<T> key) {
|
||
ComposableLambda composableLambdaComposableLambdaInstance;
|
||
Context context = this.context;
|
||
if (key instanceof ViewKey.Cluster) {
|
||
composableLambdaComposableLambdaInstance = ComposableLambdaKt.composableLambdaInstance(-231222560, true, new Function2<Composer, Integer, Unit>(this) { // from class: com.google.maps.android.compose.clustering.ComposeUiClusterRenderer$createAndAddView$view$1
|
||
final /* synthetic */ ComposeUiClusterRenderer<T> this$0;
|
||
|
||
{
|
||
this.this$0 = this;
|
||
}
|
||
|
||
@Override // kotlin.jvm.functions.Function2
|
||
public /* bridge */ /* synthetic */ Unit invoke(Composer composer, Integer num) {
|
||
invoke(composer, num.intValue());
|
||
return Unit.INSTANCE;
|
||
}
|
||
|
||
public final void invoke(Composer composer, int i) {
|
||
if ((i & 11) == 2 && composer.getSkipping()) {
|
||
composer.skipToGroupEnd();
|
||
return;
|
||
}
|
||
Function3 function3 = (Function3) ((ComposeUiClusterRenderer) this.this$0).clusterContentState.getValue();
|
||
if (function3 == null) {
|
||
return;
|
||
}
|
||
function3.invoke(((ComposeUiClusterRenderer.ViewKey.Cluster) key).getCluster(), composer, 8);
|
||
}
|
||
});
|
||
} else {
|
||
if (!(key instanceof ViewKey.Item)) {
|
||
throw new NoWhenBranchMatchedException();
|
||
}
|
||
composableLambdaComposableLambdaInstance = ComposableLambdaKt.composableLambdaInstance(-1883693097, true, new Function2<Composer, Integer, Unit>(this) { // from class: com.google.maps.android.compose.clustering.ComposeUiClusterRenderer$createAndAddView$view$2
|
||
final /* synthetic */ ComposeUiClusterRenderer<T> this$0;
|
||
|
||
{
|
||
this.this$0 = this;
|
||
}
|
||
|
||
@Override // kotlin.jvm.functions.Function2
|
||
public /* bridge */ /* synthetic */ Unit invoke(Composer composer, Integer num) {
|
||
invoke(composer, num.intValue());
|
||
return Unit.INSTANCE;
|
||
}
|
||
|
||
public final void invoke(Composer composer, int i) {
|
||
if ((i & 11) == 2 && composer.getSkipping()) {
|
||
composer.skipToGroupEnd();
|
||
return;
|
||
}
|
||
Function3 function3 = (Function3) ((ComposeUiClusterRenderer) this.this$0).clusterItemContentState.getValue();
|
||
if (function3 == null) {
|
||
return;
|
||
}
|
||
function3.invoke(((ComposeUiClusterRenderer.ViewKey.Item) key).getItem(), composer, 0);
|
||
}
|
||
});
|
||
}
|
||
InvalidatingComposeView invalidatingComposeView = new InvalidatingComposeView(context, composableLambdaComposableLambdaInstance);
|
||
InvalidatingComposeView invalidatingComposeView2 = invalidatingComposeView;
|
||
final ComposeUiViewRenderer.RenderHandle renderHandleStartRenderingView = this.viewRendererState.getValue().startRenderingView(invalidatingComposeView2);
|
||
final Job jobLaunch$default = BuildersKt__Builders_commonKt.launch$default(this.scope, null, null, new ComposeUiClusterRenderer$createAndAddView$rerenderJob$1(this, key, invalidatingComposeView, null), 3, null);
|
||
ViewInfo viewInfo = new ViewInfo(invalidatingComposeView2, new Function0() { // from class: com.google.maps.android.compose.clustering.ComposeUiClusterRenderer$$ExternalSyntheticLambda0
|
||
@Override // kotlin.jvm.functions.Function0
|
||
public final Object invoke() {
|
||
return ComposeUiClusterRenderer.createAndAddView$lambda$5(jobLaunch$default, renderHandleStartRenderingView);
|
||
}
|
||
});
|
||
this.keysToViews.put(key, viewInfo);
|
||
return viewInfo;
|
||
}
|
||
|
||
/* JADX INFO: Access modifiers changed from: private */
|
||
public static final Unit createAndAddView$lambda$5(Job rerenderJob, ComposeUiViewRenderer.RenderHandle renderHandle) {
|
||
Intrinsics.checkNotNullParameter(rerenderJob, "$rerenderJob");
|
||
Intrinsics.checkNotNullParameter(renderHandle, "$renderHandle");
|
||
Job.DefaultImpls.cancel$default(rerenderJob, (CancellationException) null, 1, (Object) null);
|
||
renderHandle.dispose();
|
||
return Unit.INSTANCE;
|
||
}
|
||
|
||
/* JADX INFO: renamed from: com.google.maps.android.compose.clustering.ComposeUiClusterRenderer$collectInvalidationsAndRerender$2, reason: invalid class name */
|
||
/* JADX INFO: compiled from: ClusterRenderer.kt */
|
||
@Metadata(d1 = {"\u0000\n\n\u0000\n\u0002\u0010\u0002\n\u0002\u0018\u0002\u0010\u0000\u001a\u00020\u0001*\b\u0012\u0004\u0012\u00020\u00010\u0002H\n"}, d2 = {"<anonymous>", "", "Lkotlinx/coroutines/channels/ProducerScope;"}, k = 3, mv = {2, 0, 0}, xi = 48)
|
||
@DebugMetadata(c = "com.google.maps.android.compose.clustering.ComposeUiClusterRenderer$collectInvalidationsAndRerender$2", f = "ClusterRenderer.kt", i = {}, l = {136}, m = "invokeSuspend", n = {}, s = {})
|
||
static final class AnonymousClass2 extends SuspendLambda implements Function2<ProducerScope<? super Unit>, Continuation<? super Unit>, Object> {
|
||
final /* synthetic */ InvalidatingComposeView $view;
|
||
private /* synthetic */ Object L$0;
|
||
int label;
|
||
|
||
/* JADX WARN: 'super' call moved to the top of the method (can break code semantics) */
|
||
AnonymousClass2(InvalidatingComposeView invalidatingComposeView, Continuation<? super AnonymousClass2> continuation) {
|
||
super(2, continuation);
|
||
this.$view = invalidatingComposeView;
|
||
}
|
||
|
||
@Override // kotlin.coroutines.jvm.internal.BaseContinuationImpl
|
||
public final Continuation<Unit> create(Object obj, Continuation<?> continuation) {
|
||
AnonymousClass2 anonymousClass2 = new AnonymousClass2(this.$view, continuation);
|
||
anonymousClass2.L$0 = obj;
|
||
return anonymousClass2;
|
||
}
|
||
|
||
@Override // kotlin.jvm.functions.Function2
|
||
public final Object invoke(ProducerScope<? super Unit> producerScope, Continuation<? super Unit> continuation) {
|
||
return ((AnonymousClass2) create(producerScope, continuation)).invokeSuspend(Unit.INSTANCE);
|
||
}
|
||
|
||
@Override // kotlin.coroutines.jvm.internal.BaseContinuationImpl
|
||
public final Object invokeSuspend(Object obj) throws Throwable {
|
||
Object coroutine_suspended = IntrinsicsKt.getCOROUTINE_SUSPENDED();
|
||
int i = this.label;
|
||
if (i == 0) {
|
||
ResultKt.throwOnFailure(obj);
|
||
final ProducerScope producerScope = (ProducerScope) this.L$0;
|
||
final Ref.BooleanRef booleanRef = new Ref.BooleanRef();
|
||
this.$view.setOnInvalidate(new Function0() { // from class: com.google.maps.android.compose.clustering.ComposeUiClusterRenderer$collectInvalidationsAndRerender$2$$ExternalSyntheticLambda0
|
||
@Override // kotlin.jvm.functions.Function0
|
||
public final Object invoke() {
|
||
return ComposeUiClusterRenderer.AnonymousClass2.invokeSuspend$lambda$0(booleanRef, producerScope);
|
||
}
|
||
});
|
||
final InvalidatingComposeView invalidatingComposeView = this.$view;
|
||
final InvalidatingComposeView invalidatingComposeView2 = invalidatingComposeView;
|
||
if (ViewCompat.isAttachedToWindow(invalidatingComposeView2)) {
|
||
InvalidatingComposeView invalidatingComposeView3 = invalidatingComposeView;
|
||
if (!ViewCompat.isAttachedToWindow(invalidatingComposeView3)) {
|
||
SendChannel.DefaultImpls.close$default(producerScope, null, 1, null);
|
||
} else {
|
||
invalidatingComposeView3.addOnAttachStateChangeListener(new ComposeUiClusterRenderer$collectInvalidationsAndRerender$2$invokeSuspend$lambda$2$$inlined$doOnDetach$1(invalidatingComposeView3, producerScope));
|
||
}
|
||
} else {
|
||
invalidatingComposeView2.addOnAttachStateChangeListener(new View.OnAttachStateChangeListener() { // from class: com.google.maps.android.compose.clustering.ComposeUiClusterRenderer$collectInvalidationsAndRerender$2$invokeSuspend$$inlined$doOnAttach$1
|
||
@Override // android.view.View.OnAttachStateChangeListener
|
||
public void onViewDetachedFromWindow(View view) {
|
||
}
|
||
|
||
@Override // android.view.View.OnAttachStateChangeListener
|
||
public void onViewAttachedToWindow(View view) {
|
||
invalidatingComposeView2.removeOnAttachStateChangeListener(this);
|
||
ComposeUiClusterRenderer.InvalidatingComposeView invalidatingComposeView4 = invalidatingComposeView;
|
||
if (!ViewCompat.isAttachedToWindow(invalidatingComposeView4)) {
|
||
SendChannel.DefaultImpls.close$default(producerScope, null, 1, null);
|
||
} else {
|
||
invalidatingComposeView4.addOnAttachStateChangeListener(new ComposeUiClusterRenderer$collectInvalidationsAndRerender$2$invokeSuspend$lambda$2$$inlined$doOnDetach$1(invalidatingComposeView4, producerScope));
|
||
}
|
||
}
|
||
});
|
||
}
|
||
this.label = 1;
|
||
if (ProduceKt.awaitClose$default(producerScope, null, this, 1, null) == coroutine_suspended) {
|
||
return coroutine_suspended;
|
||
}
|
||
} else {
|
||
if (i != 1) {
|
||
throw new IllegalStateException("call to 'resume' before 'invoke' with coroutine");
|
||
}
|
||
ResultKt.throwOnFailure(obj);
|
||
}
|
||
return Unit.INSTANCE;
|
||
}
|
||
|
||
/* JADX INFO: Access modifiers changed from: private */
|
||
public static final Unit invokeSuspend$lambda$0(Ref.BooleanRef booleanRef, ProducerScope producerScope) {
|
||
if (!booleanRef.element) {
|
||
BuildersKt__Builders_commonKt.launch$default(producerScope, null, null, new ComposeUiClusterRenderer$collectInvalidationsAndRerender$2$1$1(producerScope, booleanRef, null), 3, null);
|
||
booleanRef.element = true;
|
||
}
|
||
return Unit.INSTANCE;
|
||
}
|
||
}
|
||
|
||
/* JADX INFO: Access modifiers changed from: private */
|
||
public final Object collectInvalidationsAndRerender(ViewKey<T> viewKey, InvalidatingComposeView invalidatingComposeView, Continuation<? super Unit> continuation) {
|
||
Object objCollectLatest = FlowKt.collectLatest(FlowKt.callbackFlow(new AnonymousClass2(invalidatingComposeView, null)), new AnonymousClass3(viewKey, this, invalidatingComposeView, null), continuation);
|
||
return objCollectLatest == IntrinsicsKt.getCOROUTINE_SUSPENDED() ? objCollectLatest : Unit.INSTANCE;
|
||
}
|
||
|
||
/* JADX INFO: renamed from: com.google.maps.android.compose.clustering.ComposeUiClusterRenderer$collectInvalidationsAndRerender$3, reason: invalid class name */
|
||
/* JADX INFO: compiled from: ClusterRenderer.kt */
|
||
@Metadata(d1 = {"\u0000\u0010\n\u0000\n\u0002\u0010\u0002\n\u0000\n\u0002\u0018\u0002\n\u0002\b\u0002\u0010\u0000\u001a\u00020\u00012\u0015\u0010\u0002\u001a\u00110\u0001¢\u0006\f\b\u0003\u0012\b\b\u0004\u0012\u0004\b\b(\u0005H\n"}, d2 = {"<anonymous>", "", "it", "Lkotlin/ParameterName;", "name", "value"}, k = 3, mv = {2, 0, 0}, xi = 48)
|
||
@DebugMetadata(c = "com.google.maps.android.compose.clustering.ComposeUiClusterRenderer$collectInvalidationsAndRerender$3", f = "ClusterRenderer.kt", i = {}, l = {}, m = "invokeSuspend", n = {}, s = {})
|
||
static final class AnonymousClass3 extends SuspendLambda implements Function2<Unit, Continuation<? super Unit>, Object> {
|
||
final /* synthetic */ ViewKey<T> $key;
|
||
final /* synthetic */ InvalidatingComposeView $view;
|
||
int label;
|
||
final /* synthetic */ ComposeUiClusterRenderer<T> this$0;
|
||
|
||
/* JADX WARN: 'super' call moved to the top of the method (can break code semantics) */
|
||
AnonymousClass3(ViewKey<T> viewKey, ComposeUiClusterRenderer<T> composeUiClusterRenderer, InvalidatingComposeView invalidatingComposeView, Continuation<? super AnonymousClass3> continuation) {
|
||
super(2, continuation);
|
||
this.$key = viewKey;
|
||
this.this$0 = composeUiClusterRenderer;
|
||
this.$view = invalidatingComposeView;
|
||
}
|
||
|
||
@Override // kotlin.coroutines.jvm.internal.BaseContinuationImpl
|
||
public final Continuation<Unit> create(Object obj, Continuation<?> continuation) {
|
||
return new AnonymousClass3(this.$key, this.this$0, this.$view, continuation);
|
||
}
|
||
|
||
@Override // kotlin.jvm.functions.Function2
|
||
public final Object invoke(Unit unit, Continuation<? super Unit> continuation) {
|
||
return ((AnonymousClass3) create(unit, continuation)).invokeSuspend(Unit.INSTANCE);
|
||
}
|
||
|
||
@Override // kotlin.coroutines.jvm.internal.BaseContinuationImpl
|
||
public final Object invokeSuspend(Object obj) throws Throwable {
|
||
Marker marker;
|
||
IntrinsicsKt.getCOROUTINE_SUSPENDED();
|
||
if (this.label != 0) {
|
||
throw new IllegalStateException("call to 'resume' before 'invoke' with coroutine");
|
||
}
|
||
ResultKt.throwOnFailure(obj);
|
||
ViewKey<T> viewKey = this.$key;
|
||
if (viewKey instanceof ViewKey.Cluster) {
|
||
marker = this.this$0.getMarker(((ViewKey.Cluster) viewKey).getCluster());
|
||
} else {
|
||
if (!(viewKey instanceof ViewKey.Item)) {
|
||
throw new NoWhenBranchMatchedException();
|
||
}
|
||
marker = this.this$0.getMarker(((ViewKey.Item) viewKey).getItem());
|
||
}
|
||
if (marker != null) {
|
||
marker.setIcon(this.this$0.renderViewToBitmapDescriptor(this.$view));
|
||
}
|
||
return Unit.INSTANCE;
|
||
}
|
||
}
|
||
|
||
@Override // com.google.maps.android.clustering.view.DefaultClusterRenderer
|
||
protected BitmapDescriptor getDescriptorForCluster(Cluster<T> cluster) {
|
||
Object obj;
|
||
ViewInfo viewInfoCreateAndAddView;
|
||
Intrinsics.checkNotNullParameter(cluster, "cluster");
|
||
if (this.clusterContentState.getValue() == null) {
|
||
BitmapDescriptor descriptorForCluster = super.getDescriptorForCluster(cluster);
|
||
Intrinsics.checkNotNull(descriptorForCluster);
|
||
return descriptorForCluster;
|
||
}
|
||
Iterator<T> it = this.keysToViews.entrySet().iterator();
|
||
while (true) {
|
||
if (!it.hasNext()) {
|
||
break;
|
||
}
|
||
Object next = it.next();
|
||
ViewKey viewKey = (ViewKey) ((Map.Entry) next).getKey();
|
||
ViewKey.Cluster cluster2 = viewKey instanceof ViewKey.Cluster ? (ViewKey.Cluster) viewKey : null;
|
||
if (Intrinsics.areEqual(cluster2 != null ? cluster2.getCluster() : null, cluster)) {
|
||
obj = next;
|
||
break;
|
||
}
|
||
}
|
||
Map.Entry entry = (Map.Entry) obj;
|
||
if (entry == null || (viewInfoCreateAndAddView = (ViewInfo) entry.getValue()) == null) {
|
||
viewInfoCreateAndAddView = createAndAddView((ViewKey) CollectionsKt.first(computeViewKeys(cluster)));
|
||
}
|
||
return renderViewToBitmapDescriptor(viewInfoCreateAndAddView.getView());
|
||
}
|
||
|
||
@Override // com.google.maps.android.clustering.view.DefaultClusterRenderer
|
||
protected void onBeforeClusterItemRendered(T item, MarkerOptions markerOptions) {
|
||
Object obj;
|
||
ViewInfo viewInfoCreateAndAddView;
|
||
Intrinsics.checkNotNullParameter(item, "item");
|
||
Intrinsics.checkNotNullParameter(markerOptions, "markerOptions");
|
||
super.onBeforeClusterItemRendered(item, markerOptions);
|
||
if (this.clusterItemContentState.getValue() != null) {
|
||
Iterator<T> it = this.keysToViews.entrySet().iterator();
|
||
while (true) {
|
||
if (!it.hasNext()) {
|
||
break;
|
||
}
|
||
Object next = it.next();
|
||
ViewKey viewKey = (ViewKey) ((Map.Entry) next).getKey();
|
||
ViewKey.Item item2 = viewKey instanceof ViewKey.Item ? (ViewKey.Item) viewKey : null;
|
||
if (Intrinsics.areEqual(item2 != null ? item2.getItem() : null, item)) {
|
||
obj = next;
|
||
break;
|
||
}
|
||
}
|
||
Map.Entry entry = (Map.Entry) obj;
|
||
if (entry == null || (viewInfoCreateAndAddView = (ViewInfo) entry.getValue()) == null) {
|
||
viewInfoCreateAndAddView = createAndAddView(new ViewKey.Item(item));
|
||
}
|
||
markerOptions.icon(renderViewToBitmapDescriptor(viewInfoCreateAndAddView.getView()));
|
||
}
|
||
}
|
||
|
||
/* JADX INFO: Access modifiers changed from: private */
|
||
public final BitmapDescriptor renderViewToBitmapDescriptor(AbstractComposeView view) {
|
||
view.draw(this.fakeCanvas);
|
||
ViewParent parent = view.getParent();
|
||
Intrinsics.checkNotNull(parent, "null cannot be cast to non-null type android.view.ViewGroup");
|
||
ViewGroup viewGroup = (ViewGroup) parent;
|
||
view.measure(View.MeasureSpec.makeMeasureSpec(viewGroup.getWidth(), Integer.MIN_VALUE), View.MeasureSpec.makeMeasureSpec(viewGroup.getHeight(), Integer.MIN_VALUE));
|
||
view.layout(0, 0, view.getMeasuredWidth(), view.getMeasuredHeight());
|
||
Integer numValueOf = Integer.valueOf(view.getMeasuredWidth());
|
||
if (numValueOf.intValue() <= 0) {
|
||
numValueOf = null;
|
||
}
|
||
int iIntValue = numValueOf != null ? numValueOf.intValue() : 1;
|
||
Integer numValueOf2 = Integer.valueOf(view.getMeasuredHeight());
|
||
Integer num = numValueOf2.intValue() > 0 ? numValueOf2 : null;
|
||
Bitmap bitmapCreateBitmap = Bitmap.createBitmap(iIntValue, num != null ? num.intValue() : 1, Bitmap.Config.ARGB_8888);
|
||
Intrinsics.checkNotNullExpressionValue(bitmapCreateBitmap, "createBitmap(...)");
|
||
view.draw(new Canvas(bitmapCreateBitmap));
|
||
BitmapDescriptor bitmapDescriptorFromBitmap = BitmapDescriptorFactory.fromBitmap(bitmapCreateBitmap);
|
||
Intrinsics.checkNotNullExpressionValue(bitmapDescriptorFromBitmap, "fromBitmap(...)");
|
||
return bitmapDescriptorFromBitmap;
|
||
}
|
||
|
||
/* JADX INFO: Access modifiers changed from: private */
|
||
/* JADX INFO: compiled from: ClusterRenderer.kt */
|
||
@Metadata(d1 = {"\u0000\u001c\n\u0002\u0018\u0002\n\u0000\n\u0002\u0018\u0002\n\u0002\u0010\u0000\n\u0002\b\u0004\n\u0002\u0018\u0002\n\u0002\u0018\u0002\n\u0000\b2\u0018\u0000*\b\b\u0001\u0010\u0001*\u00020\u00022\u00020\u0003:\u0002\u0006\u0007B\t\b\u0004¢\u0006\u0004\b\u0004\u0010\u0005\u0082\u0001\u0002\b\t¨\u0006\n"}, d2 = {"Lcom/google/maps/android/compose/clustering/ComposeUiClusterRenderer$ViewKey;", "T", "Lcom/google/maps/android/clustering/ClusterItem;", "", "<init>", "()V", "Cluster", "Item", "Lcom/google/maps/android/compose/clustering/ComposeUiClusterRenderer$ViewKey$Cluster;", "Lcom/google/maps/android/compose/clustering/ComposeUiClusterRenderer$ViewKey$Item;", "maps-compose-utils_release"}, k = 1, mv = {2, 0, 0}, xi = 48)
|
||
static abstract class ViewKey<T extends ClusterItem> {
|
||
public /* synthetic */ ViewKey(DefaultConstructorMarker defaultConstructorMarker) {
|
||
this();
|
||
}
|
||
|
||
private ViewKey() {
|
||
}
|
||
|
||
/* JADX INFO: compiled from: ClusterRenderer.kt */
|
||
@Metadata(d1 = {"\u00000\n\u0002\u0018\u0002\n\u0000\n\u0002\u0018\u0002\n\u0002\u0018\u0002\n\u0000\n\u0002\u0018\u0002\n\u0002\b\u0007\n\u0002\u0010\u000b\n\u0000\n\u0002\u0010\u0000\n\u0000\n\u0002\u0010\b\n\u0000\n\u0002\u0010\u000e\n\u0000\b\u0087\b\u0018\u0000*\b\b\u0002\u0010\u0001*\u00020\u00022\b\u0012\u0004\u0012\u0002H\u00010\u0003B\u0015\u0012\f\u0010\u0004\u001a\b\u0012\u0004\u0012\u00028\u00020\u0005¢\u0006\u0004\b\u0006\u0010\u0007J\u000f\u0010\n\u001a\b\u0012\u0004\u0012\u00028\u00020\u0005HÆ\u0003J\u001f\u0010\u000b\u001a\b\u0012\u0004\u0012\u00028\u00020\u00002\u000e\b\u0002\u0010\u0004\u001a\b\u0012\u0004\u0012\u00028\u00020\u0005HÇ\u0001J\u0013\u0010\f\u001a\u00020\r2\b\u0010\u000e\u001a\u0004\u0018\u00010\u000fH×\u0003J\t\u0010\u0010\u001a\u00020\u0011H×\u0001J\t\u0010\u0012\u001a\u00020\u0013H×\u0001R\u0017\u0010\u0004\u001a\b\u0012\u0004\u0012\u00028\u00020\u0005¢\u0006\b\n\u0000\u001a\u0004\b\b\u0010\t¨\u0006\u0014"}, d2 = {"Lcom/google/maps/android/compose/clustering/ComposeUiClusterRenderer$ViewKey$Cluster;", "T", "Lcom/google/maps/android/clustering/ClusterItem;", "Lcom/google/maps/android/compose/clustering/ComposeUiClusterRenderer$ViewKey;", "cluster", "Lcom/google/maps/android/clustering/Cluster;", "<init>", "(Lcom/google/maps/android/clustering/Cluster;)V", "getCluster", "()Lcom/google/maps/android/clustering/Cluster;", "component1", "copy", "equals", "", "other", "", "hashCode", "", "toString", "", "maps-compose-utils_release"}, k = 1, mv = {2, 0, 0}, xi = 48)
|
||
public static final /* data */ class Cluster<T extends ClusterItem> extends ViewKey<T> {
|
||
public static final int $stable = 8;
|
||
private final com.google.maps.android.clustering.Cluster<T> cluster;
|
||
|
||
/* JADX WARN: Multi-variable type inference failed */
|
||
public static /* synthetic */ Cluster copy$default(Cluster cluster, com.google.maps.android.clustering.Cluster cluster2, int i, Object obj) {
|
||
if ((i & 1) != 0) {
|
||
cluster2 = cluster.cluster;
|
||
}
|
||
return cluster.copy(cluster2);
|
||
}
|
||
|
||
public final com.google.maps.android.clustering.Cluster<T> component1() {
|
||
return this.cluster;
|
||
}
|
||
|
||
public final Cluster<T> copy(com.google.maps.android.clustering.Cluster<T> cluster) {
|
||
Intrinsics.checkNotNullParameter(cluster, "cluster");
|
||
return new Cluster<>(cluster);
|
||
}
|
||
|
||
public boolean equals(Object other) {
|
||
if (this == other) {
|
||
return true;
|
||
}
|
||
return (other instanceof Cluster) && Intrinsics.areEqual(this.cluster, ((Cluster) other).cluster);
|
||
}
|
||
|
||
public int hashCode() {
|
||
return this.cluster.hashCode();
|
||
}
|
||
|
||
public String toString() {
|
||
return "Cluster(cluster=" + this.cluster + ')';
|
||
}
|
||
|
||
public final com.google.maps.android.clustering.Cluster<T> getCluster() {
|
||
return this.cluster;
|
||
}
|
||
|
||
/* JADX WARN: 'super' call moved to the top of the method (can break code semantics) */
|
||
public Cluster(com.google.maps.android.clustering.Cluster<T> cluster) {
|
||
super(null);
|
||
Intrinsics.checkNotNullParameter(cluster, "cluster");
|
||
this.cluster = cluster;
|
||
}
|
||
}
|
||
|
||
/* JADX INFO: compiled from: ClusterRenderer.kt */
|
||
@Metadata(d1 = {"\u0000*\n\u0002\u0018\u0002\n\u0000\n\u0002\u0018\u0002\n\u0002\u0018\u0002\n\u0002\b\n\n\u0002\u0010\u000b\n\u0000\n\u0002\u0010\u0000\n\u0000\n\u0002\u0010\b\n\u0000\n\u0002\u0010\u000e\n\u0000\b\u0087\b\u0018\u0000*\b\b\u0002\u0010\u0001*\u00020\u00022\b\u0012\u0004\u0012\u0002H\u00010\u0003B\u000f\u0012\u0006\u0010\u0004\u001a\u00028\u0002¢\u0006\u0004\b\u0005\u0010\u0006J\u000e\u0010\n\u001a\u00028\u0002HÆ\u0003¢\u0006\u0002\u0010\bJ\u001e\u0010\u000b\u001a\b\u0012\u0004\u0012\u00028\u00020\u00002\b\b\u0002\u0010\u0004\u001a\u00028\u0002HÇ\u0001¢\u0006\u0002\u0010\fJ\u0013\u0010\r\u001a\u00020\u000e2\b\u0010\u000f\u001a\u0004\u0018\u00010\u0010H×\u0003J\t\u0010\u0011\u001a\u00020\u0012H×\u0001J\t\u0010\u0013\u001a\u00020\u0014H×\u0001R\u0013\u0010\u0004\u001a\u00028\u0002¢\u0006\n\n\u0002\u0010\t\u001a\u0004\b\u0007\u0010\b¨\u0006\u0015"}, d2 = {"Lcom/google/maps/android/compose/clustering/ComposeUiClusterRenderer$ViewKey$Item;", "T", "Lcom/google/maps/android/clustering/ClusterItem;", "Lcom/google/maps/android/compose/clustering/ComposeUiClusterRenderer$ViewKey;", "item", "<init>", "(Lcom/google/maps/android/clustering/ClusterItem;)V", "getItem", "()Lcom/google/maps/android/clustering/ClusterItem;", "Lcom/google/maps/android/clustering/ClusterItem;", "component1", "copy", "(Lcom/google/maps/android/clustering/ClusterItem;)Lcom/google/maps/android/compose/clustering/ComposeUiClusterRenderer$ViewKey$Item;", "equals", "", "other", "", "hashCode", "", "toString", "", "maps-compose-utils_release"}, k = 1, mv = {2, 0, 0}, xi = 48)
|
||
public static final /* data */ class Item<T extends ClusterItem> extends ViewKey<T> {
|
||
public static final int $stable = 0;
|
||
private final T item;
|
||
|
||
/* JADX WARN: Multi-variable type inference failed */
|
||
public static /* synthetic */ Item copy$default(Item item, ClusterItem clusterItem, int i, Object obj) {
|
||
if ((i & 1) != 0) {
|
||
clusterItem = item.item;
|
||
}
|
||
return item.copy(clusterItem);
|
||
}
|
||
|
||
public final T component1() {
|
||
return this.item;
|
||
}
|
||
|
||
public final Item<T> copy(T item) {
|
||
Intrinsics.checkNotNullParameter(item, "item");
|
||
return new Item<>(item);
|
||
}
|
||
|
||
public boolean equals(Object other) {
|
||
if (this == other) {
|
||
return true;
|
||
}
|
||
return (other instanceof Item) && Intrinsics.areEqual(this.item, ((Item) other).item);
|
||
}
|
||
|
||
public int hashCode() {
|
||
return this.item.hashCode();
|
||
}
|
||
|
||
public String toString() {
|
||
return "Item(item=" + this.item + ')';
|
||
}
|
||
|
||
public final T getItem() {
|
||
return this.item;
|
||
}
|
||
|
||
/* JADX WARN: 'super' call moved to the top of the method (can break code semantics) */
|
||
public Item(T item) {
|
||
super(null);
|
||
Intrinsics.checkNotNullParameter(item, "item");
|
||
this.item = item;
|
||
}
|
||
}
|
||
}
|
||
|
||
/* JADX INFO: compiled from: ClusterRenderer.kt */
|
||
@Metadata(d1 = {"\u0000\u001c\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\u0007\b\u0002\u0018\u00002\u00020\u0001B\u001d\u0012\u0006\u0010\u0002\u001a\u00020\u0003\u0012\f\u0010\u0004\u001a\b\u0012\u0004\u0012\u00020\u00060\u0005¢\u0006\u0004\b\u0007\u0010\bR\u0011\u0010\u0002\u001a\u00020\u0003¢\u0006\b\n\u0000\u001a\u0004\b\t\u0010\nR\u0017\u0010\u0004\u001a\b\u0012\u0004\u0012\u00020\u00060\u0005¢\u0006\b\n\u0000\u001a\u0004\b\u000b\u0010\f¨\u0006\r"}, d2 = {"Lcom/google/maps/android/compose/clustering/ComposeUiClusterRenderer$ViewInfo;", "", "view", "Landroidx/compose/ui/platform/AbstractComposeView;", "onRemove", "Lkotlin/Function0;", "", "<init>", "(Landroidx/compose/ui/platform/AbstractComposeView;Lkotlin/jvm/functions/Function0;)V", "getView", "()Landroidx/compose/ui/platform/AbstractComposeView;", "getOnRemove", "()Lkotlin/jvm/functions/Function0;", "maps-compose-utils_release"}, k = 1, mv = {2, 0, 0}, xi = 48)
|
||
private static final class ViewInfo {
|
||
private final Function0<Unit> onRemove;
|
||
private final AbstractComposeView view;
|
||
|
||
public ViewInfo(AbstractComposeView view, Function0<Unit> onRemove) {
|
||
Intrinsics.checkNotNullParameter(view, "view");
|
||
Intrinsics.checkNotNullParameter(onRemove, "onRemove");
|
||
this.view = view;
|
||
this.onRemove = onRemove;
|
||
}
|
||
|
||
public final AbstractComposeView getView() {
|
||
return this.view;
|
||
}
|
||
|
||
public final Function0<Unit> getOnRemove() {
|
||
return this.onRemove;
|
||
}
|
||
}
|
||
|
||
/* JADX INFO: Access modifiers changed from: private */
|
||
/* JADX INFO: compiled from: ClusterRenderer.kt */
|
||
@Metadata(d1 = {"\u0000(\n\u0002\u0018\u0002\n\u0002\u0018\u0002\n\u0000\n\u0002\u0018\u0002\n\u0000\n\u0002\u0018\u0002\n\u0002\u0010\u0002\n\u0002\u0018\u0002\n\u0002\b\f\n\u0002\u0018\u0002\n\u0002\b\u0002\b\u0002\u0018\u00002\u00020\u0001B\"\u0012\u0006\u0010\u0002\u001a\u00020\u0003\u0012\u0011\u0010\u0004\u001a\r\u0012\u0004\u0012\u00020\u00060\u0005¢\u0006\u0002\b\u0007¢\u0006\u0004\b\b\u0010\tJ\r\u0010\u0010\u001a\u00020\u0006H\u0017¢\u0006\u0002\u0010\u0011J\u0018\u0010\u0012\u001a\u00020\u00062\u0006\u0010\u0013\u001a\u00020\u00142\u0006\u0010\u0015\u001a\u00020\u0014H\u0016R\u001b\u0010\u0004\u001a\r\u0012\u0004\u0012\u00020\u00060\u0005¢\u0006\u0002\b\u0007X\u0082\u0004¢\u0006\u0004\n\u0002\u0010\nR\"\u0010\u000b\u001a\n\u0012\u0004\u0012\u00020\u0006\u0018\u00010\u0005X\u0086\u000e¢\u0006\u000e\n\u0000\u001a\u0004\b\f\u0010\r\"\u0004\b\u000e\u0010\u000f¨\u0006\u0016"}, d2 = {"Lcom/google/maps/android/compose/clustering/ComposeUiClusterRenderer$InvalidatingComposeView;", "Landroidx/compose/ui/platform/AbstractComposeView;", "context", "Landroid/content/Context;", "content", "Lkotlin/Function0;", "", "Landroidx/compose/runtime/Composable;", "<init>", "(Landroid/content/Context;Lkotlin/jvm/functions/Function2;)V", "Lkotlin/jvm/functions/Function2;", "onInvalidate", "getOnInvalidate", "()Lkotlin/jvm/functions/Function0;", "setOnInvalidate", "(Lkotlin/jvm/functions/Function0;)V", "Content", "(Landroidx/compose/runtime/Composer;I)V", "onDescendantInvalidated", "child", "Landroid/view/View;", "target", "maps-compose-utils_release"}, k = 1, mv = {2, 0, 0}, xi = 48)
|
||
static final class InvalidatingComposeView extends AbstractComposeView {
|
||
private final Function2<Composer, Integer, Unit> content;
|
||
private Function0<Unit> onInvalidate;
|
||
|
||
/* JADX INFO: Access modifiers changed from: private */
|
||
public static final Unit Content$lambda$0(InvalidatingComposeView tmp0_rcvr, int i, Composer composer, int i2) {
|
||
Intrinsics.checkNotNullParameter(tmp0_rcvr, "$tmp0_rcvr");
|
||
tmp0_rcvr.Content(composer, RecomposeScopeImplKt.updateChangedFlags(i | 1));
|
||
return Unit.INSTANCE;
|
||
}
|
||
|
||
/* JADX WARN: 'super' call moved to the top of the method (can break code semantics) */
|
||
/* JADX WARN: Multi-variable type inference failed */
|
||
public InvalidatingComposeView(Context context, Function2<? super Composer, ? super Integer, Unit> content) {
|
||
super(context, null, 0, 6, null);
|
||
Intrinsics.checkNotNullParameter(context, "context");
|
||
Intrinsics.checkNotNullParameter(content, "content");
|
||
this.content = content;
|
||
}
|
||
|
||
public final Function0<Unit> getOnInvalidate() {
|
||
return this.onInvalidate;
|
||
}
|
||
|
||
public final void setOnInvalidate(Function0<Unit> function0) {
|
||
this.onInvalidate = function0;
|
||
}
|
||
|
||
@Override // androidx.compose.ui.platform.AbstractComposeView
|
||
public void Content(Composer composer, final int i) {
|
||
Composer composerStartRestartGroup = composer.startRestartGroup(77023790);
|
||
this.content.invoke(composerStartRestartGroup, 0);
|
||
ScopeUpdateScope scopeUpdateScopeEndRestartGroup = composerStartRestartGroup.endRestartGroup();
|
||
if (scopeUpdateScopeEndRestartGroup != null) {
|
||
scopeUpdateScopeEndRestartGroup.updateScope(new Function2() { // from class: com.google.maps.android.compose.clustering.ComposeUiClusterRenderer$InvalidatingComposeView$$ExternalSyntheticLambda0
|
||
@Override // kotlin.jvm.functions.Function2
|
||
public final Object invoke(Object obj, Object obj2) {
|
||
return ComposeUiClusterRenderer.InvalidatingComposeView.Content$lambda$0(this.f$0, i, (Composer) obj, ((Integer) obj2).intValue());
|
||
}
|
||
});
|
||
}
|
||
}
|
||
|
||
@Override // android.view.ViewGroup, android.view.ViewParent
|
||
public void onDescendantInvalidated(View child, View target) {
|
||
Intrinsics.checkNotNullParameter(child, "child");
|
||
Intrinsics.checkNotNullParameter(target, "target");
|
||
super.onDescendantInvalidated(child, target);
|
||
Function0<Unit> function0 = this.onInvalidate;
|
||
if (function0 != null) {
|
||
function0.invoke();
|
||
}
|
||
}
|
||
}
|
||
} |