.class final Landroidx/window/layout/ExtensionWindowLayoutInfoBackend$MulticastConsumer; .super Ljava/lang/Object; .source "ExtensionWindowLayoutInfoBackend.kt" # interfaces .implements Ljava/util/function/Consumer; # annotations .annotation system Ldalvik/annotation/EnclosingClass; value = Landroidx/window/layout/ExtensionWindowLayoutInfoBackend; .end annotation .annotation system Ldalvik/annotation/InnerClass; accessFlags = 0x1a name = "MulticastConsumer" .end annotation .annotation system Ldalvik/annotation/Signature; value = { "Ljava/lang/Object;", "Ljava/util/function/Consumer<", "Landroidx/window/extensions/layout/WindowLayoutInfo;", ">;" } .end annotation .annotation system Ldalvik/annotation/SourceDebugExtension; value = "SMAP\nExtensionWindowLayoutInfoBackend.kt\nKotlin\n*S Kotlin\n*F\n+ 1 ExtensionWindowLayoutInfoBackend.kt\nandroidx/window/layout/ExtensionWindowLayoutInfoBackend$MulticastConsumer\n+ 2 _Collections.kt\nkotlin/collections/CollectionsKt___CollectionsKt\n+ 3 fake.kt\nkotlin/jvm/internal/FakeKt\n*L\n1#1,128:1\n1849#2,2:129\n1#3:131\n*S KotlinDebug\n*F\n+ 1 ExtensionWindowLayoutInfoBackend.kt\nandroidx/window/layout/ExtensionWindowLayoutInfoBackend$MulticastConsumer\n*L\n107#1:129,2\n*E\n" .end annotation .annotation runtime Lkotlin/Metadata; d1 = { "\u0000<\n\u0002\u0018\u0002\n\u0002\u0018\u0002\n\u0002\u0018\u0002\n\u0000\n\u0002\u0018\u0002\n\u0002\u0008\u0002\n\u0002\u0018\u0002\n\u0000\n\u0002\u0018\u0002\n\u0000\n\u0002\u0010#\n\u0002\u0018\u0002\n\u0000\n\u0002\u0010\u0002\n\u0002\u0008\u0004\n\u0002\u0010\u000b\n\u0002\u0008\u0002\u0008\u0003\u0018\u00002\u0008\u0012\u0004\u0012\u00020\u00020\u0001B\r\u0012\u0006\u0010\u0003\u001a\u00020\u0004\u00a2\u0006\u0002\u0010\u0005J\u0010\u0010\r\u001a\u00020\u000e2\u0006\u0010\u000f\u001a\u00020\u0002H\u0016J\u0014\u0010\u0010\u001a\u00020\u000e2\u000c\u0010\u0011\u001a\u0008\u0012\u0004\u0012\u00020\u00070\u000cJ\u0006\u0010\u0012\u001a\u00020\u0013J\u0014\u0010\u0014\u001a\u00020\u000e2\u000c\u0010\u0011\u001a\u0008\u0012\u0004\u0012\u00020\u00070\u000cR\u000e\u0010\u0003\u001a\u00020\u0004X\u0082\u0004\u00a2\u0006\u0002\n\u0000R\u0014\u0010\u0006\u001a\u0004\u0018\u00010\u00078\u0002@\u0002X\u0083\u000e\u00a2\u0006\u0002\n\u0000R\u000e\u0010\u0008\u001a\u00020\tX\u0082\u0004\u00a2\u0006\u0002\n\u0000R\u001c\u0010\n\u001a\u000e\u0012\n\u0012\u0008\u0012\u0004\u0012\u00020\u00070\u000c0\u000b8\u0002X\u0083\u0004\u00a2\u0006\u0002\n\u0000\u00a8\u0006\u0015" } d2 = { "Landroidx/window/layout/ExtensionWindowLayoutInfoBackend$MulticastConsumer;", "Ljava/util/function/Consumer;", "Landroidx/window/extensions/layout/WindowLayoutInfo;", "activity", "Landroid/app/Activity;", "(Landroid/app/Activity;)V", "lastKnownValue", "Landroidx/window/layout/WindowLayoutInfo;", "multicastConsumerLock", "Ljava/util/concurrent/locks/ReentrantLock;", "registeredListeners", "", "Landroidx/core/util/Consumer;", "accept", "", "value", "addListener", "listener", "isEmpty", "", "removeListener", "window_release" } k = 0x1 mv = { 0x1, 0x6, 0x0 } xi = 0x30 .end annotation # instance fields .field private final activity:Landroid/app/Activity; .field private lastKnownValue:Landroidx/window/layout/WindowLayoutInfo; .field private final multicastConsumerLock:Ljava/util/concurrent/locks/ReentrantLock; .field private final registeredListeners:Ljava/util/Set; .annotation system Ldalvik/annotation/Signature; value = { "Ljava/util/Set<", "Landroidx/core/util/Consumer<", "Landroidx/window/layout/WindowLayoutInfo;", ">;>;" } .end annotation .end field # direct methods .method public constructor (Landroid/app/Activity;)V .locals 1 const-string v0, "activity" invoke-static {p1, v0}, Lkotlin/jvm/internal/Intrinsics;->checkNotNullParameter(Ljava/lang/Object;Ljava/lang/String;)V .line 94 invoke-direct {p0}, Ljava/lang/Object;->()V iput-object p1, p0, Landroidx/window/layout/ExtensionWindowLayoutInfoBackend$MulticastConsumer;->activity:Landroid/app/Activity; .line 98 new-instance p1, Ljava/util/concurrent/locks/ReentrantLock; invoke-direct {p1}, Ljava/util/concurrent/locks/ReentrantLock;->()V iput-object p1, p0, Landroidx/window/layout/ExtensionWindowLayoutInfoBackend$MulticastConsumer;->multicastConsumerLock:Ljava/util/concurrent/locks/ReentrantLock; .line 102 new-instance p1, Ljava/util/LinkedHashSet; invoke-direct {p1}, Ljava/util/LinkedHashSet;->()V check-cast p1, Ljava/util/Set; iput-object p1, p0, Landroidx/window/layout/ExtensionWindowLayoutInfoBackend$MulticastConsumer;->registeredListeners:Ljava/util/Set; return-void .end method # virtual methods .method public accept(Landroidx/window/extensions/layout/WindowLayoutInfo;)V .locals 3 const-string v0, "value" invoke-static {p1, v0}, Lkotlin/jvm/internal/Intrinsics;->checkNotNullParameter(Ljava/lang/Object;Ljava/lang/String;)V iget-object v0, p0, Landroidx/window/layout/ExtensionWindowLayoutInfoBackend$MulticastConsumer;->multicastConsumerLock:Ljava/util/concurrent/locks/ReentrantLock; .line 105 check-cast v0, Ljava/util/concurrent/locks/Lock; invoke-interface {v0}, Ljava/util/concurrent/locks/Lock;->lock()V .line 106 :try_start_0 sget-object v1, Landroidx/window/layout/ExtensionsWindowLayoutInfoAdapter;->INSTANCE:Landroidx/window/layout/ExtensionsWindowLayoutInfoAdapter; iget-object v2, p0, Landroidx/window/layout/ExtensionWindowLayoutInfoBackend$MulticastConsumer;->activity:Landroid/app/Activity; invoke-virtual {v1, v2, p1}, Landroidx/window/layout/ExtensionsWindowLayoutInfoAdapter;->translate$window_release(Landroid/app/Activity;Landroidx/window/extensions/layout/WindowLayoutInfo;)Landroidx/window/layout/WindowLayoutInfo; move-result-object p1 iput-object p1, p0, Landroidx/window/layout/ExtensionWindowLayoutInfoBackend$MulticastConsumer;->lastKnownValue:Landroidx/window/layout/WindowLayoutInfo; iget-object p1, p0, Landroidx/window/layout/ExtensionWindowLayoutInfoBackend$MulticastConsumer;->registeredListeners:Ljava/util/Set; .line 107 check-cast p1, Ljava/lang/Iterable; .line 129 invoke-interface {p1}, Ljava/lang/Iterable;->iterator()Ljava/util/Iterator; move-result-object p1 :goto_0 invoke-interface {p1}, Ljava/util/Iterator;->hasNext()Z move-result v1 if-eqz v1, :cond_0 invoke-interface {p1}, Ljava/util/Iterator;->next()Ljava/lang/Object; move-result-object v1 check-cast v1, Landroidx/core/util/Consumer; iget-object v2, p0, Landroidx/window/layout/ExtensionWindowLayoutInfoBackend$MulticastConsumer;->lastKnownValue:Landroidx/window/layout/WindowLayoutInfo; .line 107 invoke-interface {v1, v2}, Landroidx/core/util/Consumer;->accept(Ljava/lang/Object;)V goto :goto_0 .line 108 :cond_0 sget-object p0, Lkotlin/Unit;->INSTANCE:Lkotlin/Unit; :try_end_0 .catchall {:try_start_0 .. :try_end_0} :catchall_0 .line 105 invoke-interface {v0}, Ljava/util/concurrent/locks/Lock;->unlock()V return-void :catchall_0 move-exception p0 invoke-interface {v0}, Ljava/util/concurrent/locks/Lock;->unlock()V throw p0 .end method .method public bridge synthetic accept(Ljava/lang/Object;)V .locals 0 .line 94 check-cast p1, Landroidx/window/extensions/layout/WindowLayoutInfo; invoke-virtual {p0, p1}, Landroidx/window/layout/ExtensionWindowLayoutInfoBackend$MulticastConsumer;->accept(Landroidx/window/extensions/layout/WindowLayoutInfo;)V return-void .end method .method public final addListener(Landroidx/core/util/Consumer;)V .locals 2 .annotation system Ldalvik/annotation/Signature; value = { "(", "Landroidx/core/util/Consumer<", "Landroidx/window/layout/WindowLayoutInfo;", ">;)V" } .end annotation const-string v0, "listener" invoke-static {p1, v0}, Lkotlin/jvm/internal/Intrinsics;->checkNotNullParameter(Ljava/lang/Object;Ljava/lang/String;)V iget-object v0, p0, Landroidx/window/layout/ExtensionWindowLayoutInfoBackend$MulticastConsumer;->multicastConsumerLock:Ljava/util/concurrent/locks/ReentrantLock; .line 112 check-cast v0, Ljava/util/concurrent/locks/Lock; invoke-interface {v0}, Ljava/util/concurrent/locks/Lock;->lock()V :try_start_0 iget-object v1, p0, Landroidx/window/layout/ExtensionWindowLayoutInfoBackend$MulticastConsumer;->lastKnownValue:Landroidx/window/layout/WindowLayoutInfo; if-nez v1, :cond_0 goto :goto_0 .line 113 :cond_0 invoke-interface {p1, v1}, Landroidx/core/util/Consumer;->accept(Ljava/lang/Object;)V :goto_0 iget-object p0, p0, Landroidx/window/layout/ExtensionWindowLayoutInfoBackend$MulticastConsumer;->registeredListeners:Ljava/util/Set; .line 114 invoke-interface {p0, p1}, Ljava/util/Set;->add(Ljava/lang/Object;)Z :try_end_0 .catchall {:try_start_0 .. :try_end_0} :catchall_0 .line 112 invoke-interface {v0}, Ljava/util/concurrent/locks/Lock;->unlock()V return-void :catchall_0 move-exception p0 invoke-interface {v0}, Ljava/util/concurrent/locks/Lock;->unlock()V throw p0 .end method .method public final isEmpty()Z .locals 0 iget-object p0, p0, Landroidx/window/layout/ExtensionWindowLayoutInfoBackend$MulticastConsumer;->registeredListeners:Ljava/util/Set; .line 125 invoke-interface {p0}, Ljava/util/Set;->isEmpty()Z move-result p0 return p0 .end method .method public final removeListener(Landroidx/core/util/Consumer;)V .locals 1 .annotation system Ldalvik/annotation/Signature; value = { "(", "Landroidx/core/util/Consumer<", "Landroidx/window/layout/WindowLayoutInfo;", ">;)V" } .end annotation const-string v0, "listener" invoke-static {p1, v0}, Lkotlin/jvm/internal/Intrinsics;->checkNotNullParameter(Ljava/lang/Object;Ljava/lang/String;)V iget-object v0, p0, Landroidx/window/layout/ExtensionWindowLayoutInfoBackend$MulticastConsumer;->multicastConsumerLock:Ljava/util/concurrent/locks/ReentrantLock; .line 119 check-cast v0, Ljava/util/concurrent/locks/Lock; invoke-interface {v0}, Ljava/util/concurrent/locks/Lock;->lock()V :try_start_0 iget-object p0, p0, Landroidx/window/layout/ExtensionWindowLayoutInfoBackend$MulticastConsumer;->registeredListeners:Ljava/util/Set; .line 120 invoke-interface {p0, p1}, Ljava/util/Set;->remove(Ljava/lang/Object;)Z :try_end_0 .catchall {:try_start_0 .. :try_end_0} :catchall_0 .line 119 invoke-interface {v0}, Ljava/util/concurrent/locks/Lock;->unlock()V return-void :catchall_0 move-exception p0 invoke-interface {v0}, Ljava/util/concurrent/locks/Lock;->unlock()V throw p0 .end method