.class public abstract Landroidx/navigation/NavigatorState; .super Ljava/lang/Object; .source "NavigatorState.kt" # annotations .annotation system Ldalvik/annotation/SourceDebugExtension; value = "SMAP\nNavigatorState.kt\nKotlin\n*S Kotlin\n*F\n+ 1 NavigatorState.kt\nandroidx/navigation/NavigatorState\n+ 2 _Collections.kt\nkotlin/collections/CollectionsKt___CollectionsKt\n*L\n1#1,230:1\n1747#2,3:231\n1747#2,3:234\n959#2,7:237\n1747#2,3:244\n2624#2,3:247\n533#2,6:250\n378#2,7:256\n451#2,6:263\n*S KotlinDebug\n*F\n+ 1 NavigatorState.kt\nandroidx/navigation/NavigatorState\n*L\n85#1:231,3\n86#1:234,3\n114#1:237,7\n136#1:244,3\n137#1:247,3\n142#1:250,6\n169#1:256,7\n194#1:263,6\n*E\n" .end annotation .annotation runtime Lkotlin/Metadata; d1 = { "\u0000J\n\u0002\u0018\u0002\n\u0002\u0010\u0000\n\u0002\u0008\u0002\n\u0002\u0018\u0002\n\u0002\u0010 \n\u0002\u0018\u0002\n\u0000\n\u0002\u0010\"\n\u0000\n\u0002\u0018\u0002\n\u0002\u0008\u0003\n\u0002\u0018\u0002\n\u0000\n\u0002\u0010\u000b\n\u0002\u0008\u0007\n\u0002\u0018\u0002\n\u0000\n\u0002\u0018\u0002\n\u0000\n\u0002\u0010\u0002\n\u0002\u0008\u000c\u0008&\u0018\u00002\u00020\u0001B\u0005\u00a2\u0006\u0002\u0010\u0002J\u001a\u0010\u0016\u001a\u00020\u00062\u0006\u0010\u0017\u001a\u00020\u00182\u0008\u0010\u0019\u001a\u0004\u0018\u00010\u001aH&J\u0010\u0010\u001b\u001a\u00020\u001c2\u0006\u0010\u001d\u001a\u00020\u0006H\u0016J\u0010\u0010\u001e\u001a\u00020\u001c2\u0006\u0010\u001f\u001a\u00020\u0006H\u0017J\u0010\u0010 \u001a\u00020\u001c2\u0006\u0010\u001f\u001a\u00020\u0006H\u0017J\u0018\u0010!\u001a\u00020\u001c2\u0006\u0010\"\u001a\u00020\u00062\u0006\u0010#\u001a\u00020\u0010H\u0016J\u0018\u0010$\u001a\u00020\u001c2\u0006\u0010\"\u001a\u00020\u00062\u0006\u0010#\u001a\u00020\u0010H\u0016J\u0010\u0010%\u001a\u00020\u001c2\u0006\u0010\u001d\u001a\u00020\u0006H\u0017J\u0010\u0010&\u001a\u00020\u001c2\u0006\u0010\u001f\u001a\u00020\u0006H\u0016J\u0010\u0010\'\u001a\u00020\u001c2\u0006\u0010\u001f\u001a\u00020\u0006H\u0016R\u001a\u0010\u0003\u001a\u000e\u0012\n\u0012\u0008\u0012\u0004\u0012\u00020\u00060\u00050\u0004X\u0082\u0004\u00a2\u0006\u0002\n\u0000R\u001a\u0010\u0007\u001a\u000e\u0012\n\u0012\u0008\u0012\u0004\u0012\u00020\u00060\u00080\u0004X\u0082\u0004\u00a2\u0006\u0002\n\u0000R\u001d\u0010\t\u001a\u000e\u0012\n\u0012\u0008\u0012\u0004\u0012\u00020\u00060\u00050\n\u00a2\u0006\u0008\n\u0000\u001a\u0004\u0008\u000b\u0010\u000cR\u000e\u0010\r\u001a\u00020\u000eX\u0082\u0004\u00a2\u0006\u0002\n\u0000R\u001e\u0010\u000f\u001a\u00020\u00108\u0006@\u0006X\u0087\u000e\u00a2\u0006\u000e\n\u0000\u001a\u0004\u0008\u000f\u0010\u0011\"\u0004\u0008\u0012\u0010\u0013R\u001d\u0010\u0014\u001a\u000e\u0012\n\u0012\u0008\u0012\u0004\u0012\u00020\u00060\u00080\n\u00a2\u0006\u0008\n\u0000\u001a\u0004\u0008\u0015\u0010\u000c\u00a8\u0006(" } d2 = { "Landroidx/navigation/NavigatorState;", "", "()V", "_backStack", "Lkotlinx/coroutines/flow/MutableStateFlow;", "", "Landroidx/navigation/NavBackStackEntry;", "_transitionsInProgress", "", "backStack", "Lkotlinx/coroutines/flow/StateFlow;", "getBackStack", "()Lkotlinx/coroutines/flow/StateFlow;", "backStackLock", "Ljava/util/concurrent/locks/ReentrantLock;", "isNavigating", "", "()Z", "setNavigating", "(Z)V", "transitionsInProgress", "getTransitionsInProgress", "createBackStackEntry", "destination", "Landroidx/navigation/NavDestination;", "arguments", "Landroid/os/Bundle;", "markTransitionComplete", "", "entry", "onLaunchSingleTop", "backStackEntry", "onLaunchSingleTopWithTransition", "pop", "popUpTo", "saveState", "popWithTransition", "prepareForTransition", "push", "pushWithTransition", "navigation-common_release" } k = 0x1 mv = { 0x1, 0x8, 0x0 } xi = 0x30 .end annotation # instance fields .field private final _backStack:Lkotlinx/coroutines/flow/MutableStateFlow; .annotation system Ldalvik/annotation/Signature; value = { "Lkotlinx/coroutines/flow/MutableStateFlow<", "Ljava/util/List<", "Landroidx/navigation/NavBackStackEntry;", ">;>;" } .end annotation .end field .field private final _transitionsInProgress:Lkotlinx/coroutines/flow/MutableStateFlow; .annotation system Ldalvik/annotation/Signature; value = { "Lkotlinx/coroutines/flow/MutableStateFlow<", "Ljava/util/Set<", "Landroidx/navigation/NavBackStackEntry;", ">;>;" } .end annotation .end field .field private final backStack:Lkotlinx/coroutines/flow/StateFlow; .annotation system Ldalvik/annotation/Signature; value = { "Lkotlinx/coroutines/flow/StateFlow<", "Ljava/util/List<", "Landroidx/navigation/NavBackStackEntry;", ">;>;" } .end annotation .end field .field private final backStackLock:Ljava/util/concurrent/locks/ReentrantLock; .field private isNavigating:Z .field private final transitionsInProgress:Lkotlinx/coroutines/flow/StateFlow; .annotation system Ldalvik/annotation/Signature; value = { "Lkotlinx/coroutines/flow/StateFlow<", "Ljava/util/Set<", "Landroidx/navigation/NavBackStackEntry;", ">;>;" } .end annotation .end field # direct methods .method public constructor ()V .locals 2 .line 33 invoke-direct {p0}, Ljava/lang/Object;->()V .line 34 new-instance v0, Ljava/util/concurrent/locks/ReentrantLock; const/4 v1, 0x1 invoke-direct {v0, v1}, Ljava/util/concurrent/locks/ReentrantLock;->(Z)V iput-object v0, p0, Landroidx/navigation/NavigatorState;->backStackLock:Ljava/util/concurrent/locks/ReentrantLock; .line 35 invoke-static {}, Lkotlin/collections/CollectionsKt;->emptyList()Ljava/util/List; move-result-object v0 invoke-static {v0}, Lkotlinx/coroutines/flow/StateFlowKt;->MutableStateFlow(Ljava/lang/Object;)Lkotlinx/coroutines/flow/MutableStateFlow; move-result-object v0 iput-object v0, p0, Landroidx/navigation/NavigatorState;->_backStack:Lkotlinx/coroutines/flow/MutableStateFlow; .line 37 invoke-static {}, Lkotlin/collections/SetsKt;->emptySet()Ljava/util/Set; move-result-object v1 invoke-static {v1}, Lkotlinx/coroutines/flow/StateFlowKt;->MutableStateFlow(Ljava/lang/Object;)Lkotlinx/coroutines/flow/MutableStateFlow; move-result-object v1 iput-object v1, p0, Landroidx/navigation/NavigatorState;->_transitionsInProgress:Lkotlinx/coroutines/flow/MutableStateFlow; .line 52 invoke-static {v0}, Lkotlinx/coroutines/flow/FlowKt;->asStateFlow(Lkotlinx/coroutines/flow/MutableStateFlow;)Lkotlinx/coroutines/flow/StateFlow; move-result-object v0 iput-object v0, p0, Landroidx/navigation/NavigatorState;->backStack:Lkotlinx/coroutines/flow/StateFlow; .line 59 invoke-static {v1}, Lkotlinx/coroutines/flow/FlowKt;->asStateFlow(Lkotlinx/coroutines/flow/MutableStateFlow;)Lkotlinx/coroutines/flow/StateFlow; move-result-object v0 iput-object v0, p0, Landroidx/navigation/NavigatorState;->transitionsInProgress:Lkotlinx/coroutines/flow/StateFlow; return-void .end method # virtual methods .method public abstract createBackStackEntry(Landroidx/navigation/NavDestination;Landroid/os/Bundle;)Landroidx/navigation/NavBackStackEntry; .end method .method public final getBackStack()Lkotlinx/coroutines/flow/StateFlow; .locals 0 .annotation system Ldalvik/annotation/Signature; value = { "()", "Lkotlinx/coroutines/flow/StateFlow<", "Ljava/util/List<", "Landroidx/navigation/NavBackStackEntry;", ">;>;" } .end annotation iget-object p0, p0, Landroidx/navigation/NavigatorState;->backStack:Lkotlinx/coroutines/flow/StateFlow; return-object p0 .end method .method public final getTransitionsInProgress()Lkotlinx/coroutines/flow/StateFlow; .locals 0 .annotation system Ldalvik/annotation/Signature; value = { "()", "Lkotlinx/coroutines/flow/StateFlow<", "Ljava/util/Set<", "Landroidx/navigation/NavBackStackEntry;", ">;>;" } .end annotation iget-object p0, p0, Landroidx/navigation/NavigatorState;->transitionsInProgress:Lkotlinx/coroutines/flow/StateFlow; return-object p0 .end method .method public final isNavigating()Z .locals 0 iget-boolean p0, p0, Landroidx/navigation/NavigatorState;->isNavigating:Z return p0 .end method .method public markTransitionComplete(Landroidx/navigation/NavBackStackEntry;)V .locals 1 const-string v0, "entry" invoke-static {p1, v0}, Lkotlin/jvm/internal/Intrinsics;->checkNotNullParameter(Ljava/lang/Object;Ljava/lang/String;)V iget-object p0, p0, Landroidx/navigation/NavigatorState;->_transitionsInProgress:Lkotlinx/coroutines/flow/MutableStateFlow; .line 215 invoke-interface {p0}, Lkotlinx/coroutines/flow/MutableStateFlow;->getValue()Ljava/lang/Object; move-result-object v0 check-cast v0, Ljava/util/Set; invoke-static {v0, p1}, Lkotlin/collections/SetsKt;->minus(Ljava/util/Set;Ljava/lang/Object;)Ljava/util/Set; move-result-object p1 invoke-interface {p0, p1}, Lkotlinx/coroutines/flow/MutableStateFlow;->setValue(Ljava/lang/Object;)V return-void .end method .method public onLaunchSingleTop(Landroidx/navigation/NavBackStackEntry;)V .locals 5 const-string v0, "backStackEntry" invoke-static {p1, v0}, Lkotlin/jvm/internal/Intrinsics;->checkNotNullParameter(Ljava/lang/Object;Ljava/lang/String;)V iget-object v0, p0, Landroidx/navigation/NavigatorState;->backStackLock:Ljava/util/concurrent/locks/ReentrantLock; .line 167 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/navigation/NavigatorState;->backStack:Lkotlinx/coroutines/flow/StateFlow; .line 168 invoke-interface {v1}, Lkotlinx/coroutines/flow/StateFlow;->getValue()Ljava/lang/Object; move-result-object v1 check-cast v1, Ljava/util/Collection; invoke-static {v1}, Lkotlin/collections/CollectionsKt;->toMutableList(Ljava/util/Collection;)Ljava/util/List; move-result-object v1 .line 256 invoke-interface {v1}, Ljava/util/List;->size()I move-result v2 invoke-interface {v1, v2}, Ljava/util/List;->listIterator(I)Ljava/util/ListIterator; move-result-object v2 .line 257 :cond_0 invoke-interface {v2}, Ljava/util/ListIterator;->hasPrevious()Z move-result v3 if-eqz v3, :cond_1 .line 258 invoke-interface {v2}, Ljava/util/ListIterator;->previous()Ljava/lang/Object; move-result-object v3 check-cast v3, Landroidx/navigation/NavBackStackEntry; .line 169 invoke-virtual {v3}, Landroidx/navigation/NavBackStackEntry;->getId()Ljava/lang/String; move-result-object v3 invoke-virtual {p1}, Landroidx/navigation/NavBackStackEntry;->getId()Ljava/lang/String; move-result-object v4 invoke-static {v3, v4}, Lkotlin/jvm/internal/Intrinsics;->areEqual(Ljava/lang/Object;Ljava/lang/Object;)Z move-result v3 if-eqz v3, :cond_0 .line 259 invoke-interface {v2}, Ljava/util/ListIterator;->nextIndex()I move-result v2 goto :goto_0 :cond_1 const/4 v2, -0x1 .line 170 :goto_0 invoke-interface {v1, v2, p1}, Ljava/util/List;->set(ILjava/lang/Object;)Ljava/lang/Object; iget-object p0, p0, Landroidx/navigation/NavigatorState;->_backStack:Lkotlinx/coroutines/flow/MutableStateFlow; .line 172 invoke-interface {p0, v1}, Lkotlinx/coroutines/flow/MutableStateFlow;->setValue(Ljava/lang/Object;)V .line 173 sget-object p0, Lkotlin/Unit;->INSTANCE:Lkotlin/Unit; :try_end_0 .catchall {:try_start_0 .. :try_end_0} :catchall_0 .line 167 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 onLaunchSingleTopWithTransition(Landroidx/navigation/NavBackStackEntry;)V .locals 4 const-string v0, "backStackEntry" invoke-static {p1, v0}, Lkotlin/jvm/internal/Intrinsics;->checkNotNullParameter(Ljava/lang/Object;Ljava/lang/String;)V iget-object v0, p0, Landroidx/navigation/NavigatorState;->backStack:Lkotlinx/coroutines/flow/StateFlow; .line 194 invoke-interface {v0}, Lkotlinx/coroutines/flow/StateFlow;->getValue()Ljava/lang/Object; move-result-object v0 check-cast v0, Ljava/util/List; .line 263 invoke-interface {v0}, Ljava/util/List;->size()I move-result v1 invoke-interface {v0, v1}, Ljava/util/List;->listIterator(I)Ljava/util/ListIterator; move-result-object v0 .line 264 :cond_0 invoke-interface {v0}, Ljava/util/ListIterator;->hasPrevious()Z move-result v1 if-eqz v1, :cond_1 .line 265 invoke-interface {v0}, Ljava/util/ListIterator;->previous()Ljava/lang/Object; move-result-object v1 .line 266 check-cast v1, Landroidx/navigation/NavBackStackEntry; .line 194 invoke-virtual {v1}, Landroidx/navigation/NavBackStackEntry;->getId()Ljava/lang/String; move-result-object v2 invoke-virtual {p1}, Landroidx/navigation/NavBackStackEntry;->getId()Ljava/lang/String; move-result-object v3 invoke-static {v2, v3}, Lkotlin/jvm/internal/Intrinsics;->areEqual(Ljava/lang/Object;Ljava/lang/Object;)Z move-result v2 if-eqz v2, :cond_0 iget-object v0, p0, Landroidx/navigation/NavigatorState;->_transitionsInProgress:Lkotlinx/coroutines/flow/MutableStateFlow; .line 195 invoke-interface {v0}, Lkotlinx/coroutines/flow/MutableStateFlow;->getValue()Ljava/lang/Object; move-result-object v2 check-cast v2, Ljava/util/Set; invoke-static {v2, v1}, Lkotlin/collections/SetsKt;->plus(Ljava/util/Set;Ljava/lang/Object;)Ljava/util/Set; move-result-object v1 invoke-static {v1, p1}, Lkotlin/collections/SetsKt;->plus(Ljava/util/Set;Ljava/lang/Object;)Ljava/util/Set; move-result-object v1 invoke-interface {v0, v1}, Lkotlinx/coroutines/flow/MutableStateFlow;->setValue(Ljava/lang/Object;)V .line 196 invoke-virtual {p0, p1}, Landroidx/navigation/NavigatorState;->onLaunchSingleTop(Landroidx/navigation/NavBackStackEntry;)V return-void .line 268 :cond_1 new-instance p0, Ljava/util/NoSuchElementException; const-string p1, "List contains no element matching the predicate." invoke-direct {p0, p1}, Ljava/util/NoSuchElementException;->(Ljava/lang/String;)V throw p0 .end method .method public pop(Landroidx/navigation/NavBackStackEntry;Z)V .locals 4 const-string p2, "popUpTo" invoke-static {p1, p2}, Lkotlin/jvm/internal/Intrinsics;->checkNotNullParameter(Ljava/lang/Object;Ljava/lang/String;)V iget-object p2, p0, Landroidx/navigation/NavigatorState;->backStackLock:Ljava/util/concurrent/locks/ReentrantLock; .line 113 check-cast p2, Ljava/util/concurrent/locks/Lock; invoke-interface {p2}, Ljava/util/concurrent/locks/Lock;->lock()V :try_start_0 iget-object p0, p0, Landroidx/navigation/NavigatorState;->_backStack:Lkotlinx/coroutines/flow/MutableStateFlow; .line 114 invoke-interface {p0}, Lkotlinx/coroutines/flow/MutableStateFlow;->getValue()Ljava/lang/Object; move-result-object v0 check-cast v0, Ljava/lang/Iterable; .line 237 new-instance v1, Ljava/util/ArrayList; invoke-direct {v1}, Ljava/util/ArrayList;->()V .line 238 invoke-interface {v0}, Ljava/lang/Iterable;->iterator()Ljava/util/Iterator; move-result-object v0 :goto_0 invoke-interface {v0}, Ljava/util/Iterator;->hasNext()Z move-result v2 if-eqz v2, :cond_1 invoke-interface {v0}, Ljava/util/Iterator;->next()Ljava/lang/Object; move-result-object v2 .line 239 move-object v3, v2 check-cast v3, Landroidx/navigation/NavBackStackEntry; .line 114 invoke-static {v3, p1}, Lkotlin/jvm/internal/Intrinsics;->areEqual(Ljava/lang/Object;Ljava/lang/Object;)Z move-result v3 xor-int/lit8 v3, v3, 0x1 if-nez v3, :cond_0 goto :goto_1 .line 241 :cond_0 invoke-virtual {v1, v2}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z goto :goto_0 .line 243 :cond_1 :goto_1 check-cast v1, Ljava/util/List; .line 114 invoke-interface {p0, v1}, Lkotlinx/coroutines/flow/MutableStateFlow;->setValue(Ljava/lang/Object;)V .line 115 sget-object p0, Lkotlin/Unit;->INSTANCE:Lkotlin/Unit; :try_end_0 .catchall {:try_start_0 .. :try_end_0} :catchall_0 .line 113 invoke-interface {p2}, Ljava/util/concurrent/locks/Lock;->unlock()V return-void :catchall_0 move-exception p0 invoke-interface {p2}, Ljava/util/concurrent/locks/Lock;->unlock()V throw p0 .end method .method public popWithTransition(Landroidx/navigation/NavBackStackEntry;Z)V .locals 4 const-string v0, "popUpTo" invoke-static {p1, v0}, Lkotlin/jvm/internal/Intrinsics;->checkNotNullParameter(Ljava/lang/Object;Ljava/lang/String;)V iget-object v0, p0, Landroidx/navigation/NavigatorState;->_transitionsInProgress:Lkotlinx/coroutines/flow/MutableStateFlow; .line 136 invoke-interface {v0}, Lkotlinx/coroutines/flow/MutableStateFlow;->getValue()Ljava/lang/Object; move-result-object v0 check-cast v0, Ljava/lang/Iterable; .line 244 instance-of v1, v0, Ljava/util/Collection; if-eqz v1, :cond_0 move-object v1, v0 check-cast v1, Ljava/util/Collection; invoke-interface {v1}, Ljava/util/Collection;->isEmpty()Z move-result v1 if-eqz v1, :cond_0 goto :goto_1 .line 245 :cond_0 invoke-interface {v0}, Ljava/lang/Iterable;->iterator()Ljava/util/Iterator; move-result-object v0 :cond_1 invoke-interface {v0}, Ljava/util/Iterator;->hasNext()Z move-result v1 if-eqz v1, :cond_5 invoke-interface {v0}, Ljava/util/Iterator;->next()Ljava/lang/Object; move-result-object v1 check-cast v1, Landroidx/navigation/NavBackStackEntry; if-ne v1, p1, :cond_1 iget-object v0, p0, Landroidx/navigation/NavigatorState;->backStack:Lkotlinx/coroutines/flow/StateFlow; .line 137 invoke-interface {v0}, Lkotlinx/coroutines/flow/StateFlow;->getValue()Ljava/lang/Object; move-result-object v0 check-cast v0, Ljava/lang/Iterable; .line 247 instance-of v1, v0, Ljava/util/Collection; if-eqz v1, :cond_2 move-object v1, v0 check-cast v1, Ljava/util/Collection; invoke-interface {v1}, Ljava/util/Collection;->isEmpty()Z move-result v1 if-eqz v1, :cond_2 goto :goto_0 .line 248 :cond_2 invoke-interface {v0}, Ljava/lang/Iterable;->iterator()Ljava/util/Iterator; move-result-object v0 :cond_3 invoke-interface {v0}, Ljava/util/Iterator;->hasNext()Z move-result v1 if-eqz v1, :cond_4 invoke-interface {v0}, Ljava/util/Iterator;->next()Ljava/lang/Object; move-result-object v1 check-cast v1, Landroidx/navigation/NavBackStackEntry; if-ne v1, p1, :cond_3 goto :goto_1 :cond_4 :goto_0 return-void :cond_5 :goto_1 iget-object v0, p0, Landroidx/navigation/NavigatorState;->_transitionsInProgress:Lkotlinx/coroutines/flow/MutableStateFlow; .line 141 invoke-interface {v0}, Lkotlinx/coroutines/flow/MutableStateFlow;->getValue()Ljava/lang/Object; move-result-object v1 check-cast v1, Ljava/util/Set; invoke-static {v1, p1}, Lkotlin/collections/SetsKt;->plus(Ljava/util/Set;Ljava/lang/Object;)Ljava/util/Set; move-result-object v1 invoke-interface {v0, v1}, Lkotlinx/coroutines/flow/MutableStateFlow;->setValue(Ljava/lang/Object;)V iget-object v0, p0, Landroidx/navigation/NavigatorState;->backStack:Lkotlinx/coroutines/flow/StateFlow; .line 142 invoke-interface {v0}, Lkotlinx/coroutines/flow/StateFlow;->getValue()Ljava/lang/Object; move-result-object v0 check-cast v0, Ljava/util/List; .line 250 invoke-interface {v0}, Ljava/util/List;->size()I move-result v1 invoke-interface {v0, v1}, Ljava/util/List;->listIterator(I)Ljava/util/ListIterator; move-result-object v0 .line 251 :cond_6 invoke-interface {v0}, Ljava/util/ListIterator;->hasPrevious()Z move-result v1 if-eqz v1, :cond_7 .line 252 invoke-interface {v0}, Ljava/util/ListIterator;->previous()Ljava/lang/Object; move-result-object v1 .line 253 move-object v2, v1 check-cast v2, Landroidx/navigation/NavBackStackEntry; .line 143 invoke-static {v2, p1}, Lkotlin/jvm/internal/Intrinsics;->areEqual(Ljava/lang/Object;Ljava/lang/Object;)Z move-result v3 if-nez v3, :cond_6 iget-object v3, p0, Landroidx/navigation/NavigatorState;->backStack:Lkotlinx/coroutines/flow/StateFlow; .line 144 invoke-interface {v3}, Lkotlinx/coroutines/flow/StateFlow;->getValue()Ljava/lang/Object; move-result-object v3 check-cast v3, Ljava/util/List; invoke-interface {v3, v2}, Ljava/util/List;->lastIndexOf(Ljava/lang/Object;)I move-result v2 iget-object v3, p0, Landroidx/navigation/NavigatorState;->backStack:Lkotlinx/coroutines/flow/StateFlow; invoke-interface {v3}, Lkotlinx/coroutines/flow/StateFlow;->getValue()Ljava/lang/Object; move-result-object v3 check-cast v3, Ljava/util/List; invoke-interface {v3, p1}, Ljava/util/List;->lastIndexOf(Ljava/lang/Object;)I move-result v3 if-ge v2, v3, :cond_6 goto :goto_2 :cond_7 const/4 v1, 0x0 .line 142 :goto_2 check-cast v1, Landroidx/navigation/NavBackStackEntry; if-eqz v1, :cond_8 iget-object v0, p0, Landroidx/navigation/NavigatorState;->_transitionsInProgress:Lkotlinx/coroutines/flow/MutableStateFlow; .line 149 invoke-interface {v0}, Lkotlinx/coroutines/flow/MutableStateFlow;->getValue()Ljava/lang/Object; move-result-object v2 check-cast v2, Ljava/util/Set; invoke-static {v2, v1}, Lkotlin/collections/SetsKt;->plus(Ljava/util/Set;Ljava/lang/Object;)Ljava/util/Set; move-result-object v1 invoke-interface {v0, v1}, Lkotlinx/coroutines/flow/MutableStateFlow;->setValue(Ljava/lang/Object;)V .line 151 :cond_8 invoke-virtual {p0, p1, p2}, Landroidx/navigation/NavigatorState;->pop(Landroidx/navigation/NavBackStackEntry;Z)V return-void .end method .method public prepareForTransition(Landroidx/navigation/NavBackStackEntry;)V .locals 1 const-string v0, "entry" invoke-static {p1, v0}, Lkotlin/jvm/internal/Intrinsics;->checkNotNullParameter(Ljava/lang/Object;Ljava/lang/String;)V iget-object p0, p0, Landroidx/navigation/NavigatorState;->_transitionsInProgress:Lkotlinx/coroutines/flow/MutableStateFlow; .line 227 invoke-interface {p0}, Lkotlinx/coroutines/flow/MutableStateFlow;->getValue()Ljava/lang/Object; move-result-object v0 check-cast v0, Ljava/util/Set; invoke-static {v0, p1}, Lkotlin/collections/SetsKt;->plus(Ljava/util/Set;Ljava/lang/Object;)Ljava/util/Set; move-result-object p1 invoke-interface {p0, p1}, Lkotlinx/coroutines/flow/MutableStateFlow;->setValue(Ljava/lang/Object;)V return-void .end method .method public push(Landroidx/navigation/NavBackStackEntry;)V .locals 2 const-string v0, "backStackEntry" invoke-static {p1, v0}, Lkotlin/jvm/internal/Intrinsics;->checkNotNullParameter(Ljava/lang/Object;Ljava/lang/String;)V iget-object v0, p0, Landroidx/navigation/NavigatorState;->backStackLock:Ljava/util/concurrent/locks/ReentrantLock; .line 65 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/navigation/NavigatorState;->_backStack:Lkotlinx/coroutines/flow/MutableStateFlow; .line 66 invoke-interface {p0}, Lkotlinx/coroutines/flow/MutableStateFlow;->getValue()Ljava/lang/Object; move-result-object v1 check-cast v1, Ljava/util/Collection; invoke-static {v1, p1}, Lkotlin/collections/CollectionsKt;->plus(Ljava/util/Collection;Ljava/lang/Object;)Ljava/util/List; move-result-object p1 invoke-interface {p0, p1}, Lkotlinx/coroutines/flow/MutableStateFlow;->setValue(Ljava/lang/Object;)V .line 67 sget-object p0, Lkotlin/Unit;->INSTANCE:Lkotlin/Unit; :try_end_0 .catchall {:try_start_0 .. :try_end_0} :catchall_0 .line 65 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 pushWithTransition(Landroidx/navigation/NavBackStackEntry;)V .locals 3 const-string v0, "backStackEntry" invoke-static {p1, v0}, Lkotlin/jvm/internal/Intrinsics;->checkNotNullParameter(Ljava/lang/Object;Ljava/lang/String;)V iget-object v0, p0, Landroidx/navigation/NavigatorState;->_transitionsInProgress:Lkotlinx/coroutines/flow/MutableStateFlow; .line 85 invoke-interface {v0}, Lkotlinx/coroutines/flow/MutableStateFlow;->getValue()Ljava/lang/Object; move-result-object v0 check-cast v0, Ljava/lang/Iterable; .line 231 instance-of v1, v0, Ljava/util/Collection; if-eqz v1, :cond_0 move-object v1, v0 check-cast v1, Ljava/util/Collection; invoke-interface {v1}, Ljava/util/Collection;->isEmpty()Z move-result v1 if-eqz v1, :cond_0 goto :goto_0 .line 232 :cond_0 invoke-interface {v0}, Ljava/lang/Iterable;->iterator()Ljava/util/Iterator; move-result-object v0 :cond_1 invoke-interface {v0}, Ljava/util/Iterator;->hasNext()Z move-result v1 if-eqz v1, :cond_4 invoke-interface {v0}, Ljava/util/Iterator;->next()Ljava/lang/Object; move-result-object v1 check-cast v1, Landroidx/navigation/NavBackStackEntry; if-ne v1, p1, :cond_1 iget-object v0, p0, Landroidx/navigation/NavigatorState;->backStack:Lkotlinx/coroutines/flow/StateFlow; .line 86 invoke-interface {v0}, Lkotlinx/coroutines/flow/StateFlow;->getValue()Ljava/lang/Object; move-result-object v0 check-cast v0, Ljava/lang/Iterable; .line 234 instance-of v1, v0, Ljava/util/Collection; if-eqz v1, :cond_2 move-object v1, v0 check-cast v1, Ljava/util/Collection; invoke-interface {v1}, Ljava/util/Collection;->isEmpty()Z move-result v1 if-eqz v1, :cond_2 goto :goto_0 .line 235 :cond_2 invoke-interface {v0}, Ljava/lang/Iterable;->iterator()Ljava/util/Iterator; move-result-object v0 :cond_3 invoke-interface {v0}, Ljava/util/Iterator;->hasNext()Z move-result v1 if-eqz v1, :cond_4 invoke-interface {v0}, Ljava/util/Iterator;->next()Ljava/lang/Object; move-result-object v1 check-cast v1, Landroidx/navigation/NavBackStackEntry; if-ne v1, p1, :cond_3 return-void :cond_4 :goto_0 iget-object v0, p0, Landroidx/navigation/NavigatorState;->backStack:Lkotlinx/coroutines/flow/StateFlow; .line 90 invoke-interface {v0}, Lkotlinx/coroutines/flow/StateFlow;->getValue()Ljava/lang/Object; move-result-object v0 check-cast v0, Ljava/util/List; invoke-static {v0}, Lkotlin/collections/CollectionsKt;->lastOrNull(Ljava/util/List;)Ljava/lang/Object; move-result-object v0 check-cast v0, Landroidx/navigation/NavBackStackEntry; if-eqz v0, :cond_5 iget-object v1, p0, Landroidx/navigation/NavigatorState;->_transitionsInProgress:Lkotlinx/coroutines/flow/MutableStateFlow; .line 94 invoke-interface {v1}, Lkotlinx/coroutines/flow/MutableStateFlow;->getValue()Ljava/lang/Object; move-result-object v2 check-cast v2, Ljava/util/Set; invoke-static {v2, v0}, Lkotlin/collections/SetsKt;->plus(Ljava/util/Set;Ljava/lang/Object;)Ljava/util/Set; move-result-object v0 invoke-interface {v1, v0}, Lkotlinx/coroutines/flow/MutableStateFlow;->setValue(Ljava/lang/Object;)V :cond_5 iget-object v0, p0, Landroidx/navigation/NavigatorState;->_transitionsInProgress:Lkotlinx/coroutines/flow/MutableStateFlow; .line 96 invoke-interface {v0}, Lkotlinx/coroutines/flow/MutableStateFlow;->getValue()Ljava/lang/Object; move-result-object v1 check-cast v1, Ljava/util/Set; invoke-static {v1, p1}, Lkotlin/collections/SetsKt;->plus(Ljava/util/Set;Ljava/lang/Object;)Ljava/util/Set; move-result-object v1 invoke-interface {v0, v1}, Lkotlinx/coroutines/flow/MutableStateFlow;->setValue(Ljava/lang/Object;)V .line 97 invoke-virtual {p0, p1}, Landroidx/navigation/NavigatorState;->push(Landroidx/navigation/NavBackStackEntry;)V return-void .end method .method public final setNavigating(Z)V .locals 0 iput-boolean p1, p0, Landroidx/navigation/NavigatorState;->isNavigating:Z return-void .end method