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", "", "(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 extends DefaultClusterRenderer { public static final int $stable = 8; private final State, Composer, Integer, Unit>> clusterContentState; private final State> clusterItemContentState; private final Context context; private final Canvas fakeCanvas; private final Map, ViewInfo> keysToViews; private final CoroutineScope scope; private final State 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 clusterManager, State viewRendererState, State, ? super Composer, ? super Integer, Unit>> clusterContentState, State> 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> clusters) { Intrinsics.checkNotNullParameter(clusters, "clusters"); super.onClustersChanged(clusters); ArrayList arrayList = new ArrayList(); Iterator it = clusters.iterator(); while (it.hasNext()) { CollectionsKt.addAll(arrayList, computeViewKeys((Cluster) it.next())); } ArrayList> arrayList2 = arrayList; Iterator, ViewInfo>> it2 = this.keysToViews.entrySet().iterator(); while (it2.hasNext()) { Map.Entry, ViewInfo> next = it2.next(); ViewKey key = next.getKey(); ViewInfo value = next.getValue(); if (!arrayList2.contains(key)) { it2.remove(); value.getOnRemove().invoke(); } } for (ViewKey viewKey : arrayList2) { if (!this.keysToViews.keySet().contains(viewKey)) { createAndAddView(viewKey); } } } private final Set> computeViewKeys(Cluster cluster) { if (shouldRenderAsCluster(cluster)) { return SetsKt.setOf(new ViewKey.Cluster(cluster)); } Collection 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 key) { ComposableLambda composableLambdaComposableLambdaInstance; Context context = this.context; if (key instanceof ViewKey.Cluster) { composableLambdaComposableLambdaInstance = ComposableLambdaKt.composableLambdaInstance(-231222560, true, new Function2(this) { // from class: com.google.maps.android.compose.clustering.ComposeUiClusterRenderer$createAndAddView$view$1 final /* synthetic */ ComposeUiClusterRenderer 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(this) { // from class: com.google.maps.android.compose.clustering.ComposeUiClusterRenderer$createAndAddView$view$2 final /* synthetic */ ComposeUiClusterRenderer 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 = {"", "", "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, Continuation, 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 continuation) { super(2, continuation); this.$view = invalidatingComposeView; } @Override // kotlin.coroutines.jvm.internal.BaseContinuationImpl public final Continuation 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 producerScope, Continuation 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 viewKey, InvalidatingComposeView invalidatingComposeView, Continuation 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 = {"", "", "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, Object> { final /* synthetic */ ViewKey $key; final /* synthetic */ InvalidatingComposeView $view; int label; final /* synthetic */ ComposeUiClusterRenderer this$0; /* JADX WARN: 'super' call moved to the top of the method (can break code semantics) */ AnonymousClass3(ViewKey viewKey, ComposeUiClusterRenderer composeUiClusterRenderer, InvalidatingComposeView invalidatingComposeView, Continuation continuation) { super(2, continuation); this.$key = viewKey; this.this$0 = composeUiClusterRenderer; this.$view = invalidatingComposeView; } @Override // kotlin.coroutines.jvm.internal.BaseContinuationImpl public final Continuation 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 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 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 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 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 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;", "", "", "()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 { 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;", "", "(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 extends ViewKey { public static final int $stable = 8; private final com.google.maps.android.clustering.Cluster 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 component1() { return this.cluster; } public final Cluster copy(com.google.maps.android.clustering.Cluster 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 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 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", "", "(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 extends ViewKey { 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 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;", "", "", "(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 onRemove; private final AbstractComposeView view; public ViewInfo(AbstractComposeView view, Function0 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 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;", "", "(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 content; private Function0 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 content) { super(context, null, 0, 6, null); Intrinsics.checkNotNullParameter(context, "context"); Intrinsics.checkNotNullParameter(content, "content"); this.content = content; } public final Function0 getOnInvalidate() { return this.onInvalidate; } public final void setOnInvalidate(Function0 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 function0 = this.onInvalidate; if (function0 != null) { function0.invoke(); } } } }