.class public Landroidx/navigation/ActivityNavigator; .super Landroidx/navigation/Navigator; .source "ActivityNavigator.java" # annotations .annotation runtime Landroidx/navigation/Navigator$Name; value = "activity" .end annotation .annotation system Ldalvik/annotation/MemberClasses; value = { Landroidx/navigation/ActivityNavigator$Extras;, Landroidx/navigation/ActivityNavigator$Destination; } .end annotation .annotation system Ldalvik/annotation/Signature; value = { "Landroidx/navigation/Navigator<", "Landroidx/navigation/ActivityNavigator$Destination;", ">;" } .end annotation # static fields .field private static final EXTRA_NAV_CURRENT:Ljava/lang/String; = "android-support-navigation:ActivityNavigator:current" .field private static final EXTRA_NAV_SOURCE:Ljava/lang/String; = "android-support-navigation:ActivityNavigator:source" .field private static final EXTRA_POP_ENTER_ANIM:Ljava/lang/String; = "android-support-navigation:ActivityNavigator:popEnterAnim" .field private static final EXTRA_POP_EXIT_ANIM:Ljava/lang/String; = "android-support-navigation:ActivityNavigator:popExitAnim" # instance fields .field private mContext:Landroid/content/Context; .field private mHostActivity:Landroid/app/Activity; # direct methods .method public constructor (Landroid/content/Context;)V .locals 1 .line 56 invoke-direct {p0}, Landroidx/navigation/Navigator;->()V .line 57 iput-object p1, p0, Landroidx/navigation/ActivityNavigator;->mContext:Landroid/content/Context; .line 58 :goto_0 instance-of v0, p1, Landroid/content/ContextWrapper; if-eqz v0, :cond_1 .line 59 instance-of v0, p1, Landroid/app/Activity; if-eqz v0, :cond_0 .line 60 check-cast p1, Landroid/app/Activity; iput-object p1, p0, Landroidx/navigation/ActivityNavigator;->mHostActivity:Landroid/app/Activity; goto :goto_1 .line 63 :cond_0 check-cast p1, Landroid/content/ContextWrapper; invoke-virtual {p1}, Landroid/content/ContextWrapper;->getBaseContext()Landroid/content/Context; move-result-object p1 goto :goto_0 :cond_1 :goto_1 return-void .end method .method public static applyPopAnimationsToPendingTransition(Landroid/app/Activity;)V .locals 4 .line 76 invoke-virtual {p0}, Landroid/app/Activity;->getIntent()Landroid/content/Intent; move-result-object v0 if-nez v0, :cond_0 return-void :cond_0 const-string v1, "android-support-navigation:ActivityNavigator:popEnterAnim" const/4 v2, -0x1 .line 80 invoke-virtual {v0, v1, v2}, Landroid/content/Intent;->getIntExtra(Ljava/lang/String;I)I move-result v1 const-string v3, "android-support-navigation:ActivityNavigator:popExitAnim" .line 81 invoke-virtual {v0, v3, v2}, Landroid/content/Intent;->getIntExtra(Ljava/lang/String;I)I move-result v0 if-ne v1, v2, :cond_1 if-eq v0, v2, :cond_4 :cond_1 const/4 v3, 0x0 if-eq v1, v2, :cond_2 goto :goto_0 :cond_2 move v1, v3 :goto_0 if-eq v0, v2, :cond_3 goto :goto_1 :cond_3 move v0, v3 .line 85 :goto_1 invoke-virtual {p0, v1, v0}, Landroid/app/Activity;->overridePendingTransition(II)V :cond_4 return-void .end method # virtual methods .method public createDestination()Landroidx/navigation/ActivityNavigator$Destination; .locals 1 .line 97 new-instance v0, Landroidx/navigation/ActivityNavigator$Destination; invoke-direct {v0, p0}, Landroidx/navigation/ActivityNavigator$Destination;->(Landroidx/navigation/Navigator;)V return-object v0 .end method .method public bridge synthetic createDestination()Landroidx/navigation/NavDestination; .locals 1 .line 42 invoke-virtual {p0}, Landroidx/navigation/ActivityNavigator;->createDestination()Landroidx/navigation/ActivityNavigator$Destination; move-result-object v0 return-object v0 .end method .method final getContext()Landroid/content/Context; .locals 1 .line 91 iget-object v0, p0, Landroidx/navigation/ActivityNavigator;->mContext:Landroid/content/Context; return-object v0 .end method .method public navigate(Landroidx/navigation/ActivityNavigator$Destination;Landroid/os/Bundle;Landroidx/navigation/NavOptions;Landroidx/navigation/Navigator$Extras;)Landroidx/navigation/NavDestination; .locals 6 .line 113 invoke-virtual {p1}, Landroidx/navigation/ActivityNavigator$Destination;->getIntent()Landroid/content/Intent; move-result-object v0 if-eqz v0, :cond_e .line 117 new-instance v0, Landroid/content/Intent; invoke-virtual {p1}, Landroidx/navigation/ActivityNavigator$Destination;->getIntent()Landroid/content/Intent; move-result-object v1 invoke-direct {v0, v1}, Landroid/content/Intent;->(Landroid/content/Intent;)V if-eqz p2, :cond_2 .line 119 invoke-virtual {v0, p2}, Landroid/content/Intent;->putExtras(Landroid/os/Bundle;)Landroid/content/Intent; .line 120 invoke-virtual {p1}, Landroidx/navigation/ActivityNavigator$Destination;->getDataPattern()Ljava/lang/String; move-result-object v1 .line 121 invoke-static {v1}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z move-result v2 if-nez v2, :cond_2 .line 123 new-instance v2, Ljava/lang/StringBuffer; invoke-direct {v2}, Ljava/lang/StringBuffer;->()V const-string v3, "\\{(.+?)\\}" .line 124 invoke-static {v3}, Ljava/util/regex/Pattern;->compile(Ljava/lang/String;)Ljava/util/regex/Pattern; move-result-object v3 .line 125 invoke-virtual {v3, v1}, Ljava/util/regex/Pattern;->matcher(Ljava/lang/CharSequence;)Ljava/util/regex/Matcher; move-result-object v3 .line 126 :goto_0 invoke-virtual {v3}, Ljava/util/regex/Matcher;->find()Z move-result v4 if-eqz v4, :cond_1 const/4 v4, 0x1 .line 127 invoke-virtual {v3, v4}, Ljava/util/regex/Matcher;->group(I)Ljava/lang/String; move-result-object v4 .line 128 invoke-virtual {p2, v4}, Landroid/os/Bundle;->containsKey(Ljava/lang/String;)Z move-result v5 if-eqz v5, :cond_0 const-string v5, "" .line 129 invoke-virtual {v3, v2, v5}, Ljava/util/regex/Matcher;->appendReplacement(Ljava/lang/StringBuffer;Ljava/lang/String;)Ljava/util/regex/Matcher; .line 131 invoke-virtual {p2, v4}, Landroid/os/Bundle;->get(Ljava/lang/String;)Ljava/lang/Object; move-result-object v4 invoke-virtual {v4}, Ljava/lang/Object;->toString()Ljava/lang/String; move-result-object v4 invoke-static {v4}, Landroid/net/Uri;->encode(Ljava/lang/String;)Ljava/lang/String; move-result-object v4 invoke-virtual {v2, v4}, Ljava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer; goto :goto_0 .line 133 :cond_0 new-instance p1, Ljava/lang/IllegalArgumentException; new-instance p3, Ljava/lang/StringBuilder; invoke-direct {p3}, Ljava/lang/StringBuilder;->()V const-string p4, "Could not find " invoke-virtual {p3, p4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object p3 invoke-virtual {p3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object p3 const-string p4, " in " invoke-virtual {p3, p4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object p3 invoke-virtual {p3, p2}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder; move-result-object p2 const-string p3, " to fill data pattern " invoke-virtual {p2, p3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object p2 invoke-virtual {p2, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object p2 invoke-virtual {p2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object p2 invoke-direct {p1, p2}, Ljava/lang/IllegalArgumentException;->(Ljava/lang/String;)V throw p1 .line 137 :cond_1 invoke-virtual {v3, v2}, Ljava/util/regex/Matcher;->appendTail(Ljava/lang/StringBuffer;)Ljava/lang/StringBuffer; .line 138 invoke-virtual {v2}, Ljava/lang/StringBuffer;->toString()Ljava/lang/String; move-result-object p2 invoke-static {p2}, Landroid/net/Uri;->parse(Ljava/lang/String;)Landroid/net/Uri; move-result-object p2 invoke-virtual {v0, p2}, Landroid/content/Intent;->setData(Landroid/net/Uri;)Landroid/content/Intent; .line 141 :cond_2 instance-of p2, p4, Landroidx/navigation/ActivityNavigator$Extras; if-eqz p2, :cond_3 .line 142 move-object v1, p4 check-cast v1, Landroidx/navigation/ActivityNavigator$Extras; .line 143 invoke-virtual {v1}, Landroidx/navigation/ActivityNavigator$Extras;->getFlags()I move-result v1 invoke-virtual {v0, v1}, Landroid/content/Intent;->addFlags(I)Landroid/content/Intent; .line 145 :cond_3 iget-object v1, p0, Landroidx/navigation/ActivityNavigator;->mContext:Landroid/content/Context; instance-of v1, v1, Landroid/app/Activity; if-nez v1, :cond_4 const/high16 v1, 0x10000000 .line 147 invoke-virtual {v0, v1}, Landroid/content/Intent;->addFlags(I)Landroid/content/Intent; :cond_4 if-eqz p3, :cond_5 .line 149 invoke-virtual {p3}, Landroidx/navigation/NavOptions;->shouldLaunchSingleTop()Z move-result v1 if-eqz v1, :cond_5 const/high16 v1, 0x20000000 .line 150 invoke-virtual {v0, v1}, Landroid/content/Intent;->addFlags(I)Landroid/content/Intent; .line 152 :cond_5 iget-object v1, p0, Landroidx/navigation/ActivityNavigator;->mHostActivity:Landroid/app/Activity; const-string v2, "android-support-navigation:ActivityNavigator:current" const/4 v3, 0x0 if-eqz v1, :cond_6 .line 153 invoke-virtual {v1}, Landroid/app/Activity;->getIntent()Landroid/content/Intent; move-result-object v1 if-eqz v1, :cond_6 .line 155 invoke-virtual {v1, v2, v3}, Landroid/content/Intent;->getIntExtra(Ljava/lang/String;I)I move-result v1 if-eqz v1, :cond_6 const-string v4, "android-support-navigation:ActivityNavigator:source" .line 157 invoke-virtual {v0, v4, v1}, Landroid/content/Intent;->putExtra(Ljava/lang/String;I)Landroid/content/Intent; .line 161 :cond_6 invoke-virtual {p1}, Landroidx/navigation/ActivityNavigator$Destination;->getId()I move-result p1 .line 162 invoke-virtual {v0, v2, p1}, Landroid/content/Intent;->putExtra(Ljava/lang/String;I)Landroid/content/Intent; if-eqz p3, :cond_7 .line 165 invoke-virtual {p3}, Landroidx/navigation/NavOptions;->getPopEnterAnim()I move-result p1 const-string v1, "android-support-navigation:ActivityNavigator:popEnterAnim" invoke-virtual {v0, v1, p1}, Landroid/content/Intent;->putExtra(Ljava/lang/String;I)Landroid/content/Intent; .line 166 invoke-virtual {p3}, Landroidx/navigation/NavOptions;->getPopExitAnim()I move-result p1 const-string v1, "android-support-navigation:ActivityNavigator:popExitAnim" invoke-virtual {v0, v1, p1}, Landroid/content/Intent;->putExtra(Ljava/lang/String;I)Landroid/content/Intent; :cond_7 if-eqz p2, :cond_9 .line 169 check-cast p4, Landroidx/navigation/ActivityNavigator$Extras; .line 170 invoke-virtual {p4}, Landroidx/navigation/ActivityNavigator$Extras;->getActivityOptions()Landroidx/core/app/ActivityOptionsCompat; move-result-object p1 if-eqz p1, :cond_8 .line 172 iget-object p2, p0, Landroidx/navigation/ActivityNavigator;->mContext:Landroid/content/Context; invoke-virtual {p1}, Landroidx/core/app/ActivityOptionsCompat;->toBundle()Landroid/os/Bundle; move-result-object p1 invoke-static {p2, v0, p1}, Landroidx/core/app/ActivityCompat;->startActivity(Landroid/content/Context;Landroid/content/Intent;Landroid/os/Bundle;)V goto :goto_1 .line 174 :cond_8 iget-object p1, p0, Landroidx/navigation/ActivityNavigator;->mContext:Landroid/content/Context; invoke-virtual {p1, v0}, Landroid/content/Context;->startActivity(Landroid/content/Intent;)V goto :goto_1 .line 177 :cond_9 iget-object p1, p0, Landroidx/navigation/ActivityNavigator;->mContext:Landroid/content/Context; invoke-virtual {p1, v0}, Landroid/content/Context;->startActivity(Landroid/content/Intent;)V :goto_1 if-eqz p3, :cond_d .line 179 iget-object p1, p0, Landroidx/navigation/ActivityNavigator;->mHostActivity:Landroid/app/Activity; if-eqz p1, :cond_d .line 180 invoke-virtual {p3}, Landroidx/navigation/NavOptions;->getEnterAnim()I move-result p1 .line 181 invoke-virtual {p3}, Landroidx/navigation/NavOptions;->getExitAnim()I move-result p2 const/4 p3, -0x1 if-ne p1, p3, :cond_a if-eq p2, p3, :cond_d :cond_a if-eq p1, p3, :cond_b goto :goto_2 :cond_b move p1, v3 :goto_2 if-eq p2, p3, :cond_c move v3, p2 .line 185 :cond_c iget-object p2, p0, Landroidx/navigation/ActivityNavigator;->mHostActivity:Landroid/app/Activity; invoke-virtual {p2, p1, v3}, Landroid/app/Activity;->overridePendingTransition(II)V :cond_d const/4 p1, 0x0 return-object p1 .line 114 :cond_e new-instance p2, Ljava/lang/IllegalStateException; new-instance p3, Ljava/lang/StringBuilder; invoke-direct {p3}, Ljava/lang/StringBuilder;->()V const-string p4, "Destination " invoke-virtual {p3, p4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object p3 invoke-virtual {p1}, Landroidx/navigation/ActivityNavigator$Destination;->getId()I move-result p1 invoke-virtual {p3, p1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder; move-result-object p1 const-string p3, " does not have an Intent set." invoke-virtual {p1, p3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object p1 invoke-virtual {p1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object p1 invoke-direct {p2, p1}, Ljava/lang/IllegalStateException;->(Ljava/lang/String;)V throw p2 .end method .method public bridge synthetic navigate(Landroidx/navigation/NavDestination;Landroid/os/Bundle;Landroidx/navigation/NavOptions;Landroidx/navigation/Navigator$Extras;)Landroidx/navigation/NavDestination; .locals 0 .line 42 check-cast p1, Landroidx/navigation/ActivityNavigator$Destination; invoke-virtual {p0, p1, p2, p3, p4}, Landroidx/navigation/ActivityNavigator;->navigate(Landroidx/navigation/ActivityNavigator$Destination;Landroid/os/Bundle;Landroidx/navigation/NavOptions;Landroidx/navigation/Navigator$Extras;)Landroidx/navigation/NavDestination; move-result-object p1 return-object p1 .end method .method public popBackStack()Z .locals 1 .line 102 iget-object v0, p0, Landroidx/navigation/ActivityNavigator;->mHostActivity:Landroid/app/Activity; if-eqz v0, :cond_0 .line 103 invoke-virtual {v0}, Landroid/app/Activity;->finish()V const/4 v0, 0x1 return v0 :cond_0 const/4 v0, 0x0 return v0 .end method