.class public final Landroidx/navigation/NavInflater; .super Ljava/lang/Object; .source "NavInflater.java" # static fields .field private static final APPLICATION_ID_PLACEHOLDER:Ljava/lang/String; = "${applicationId}" .field private static final TAG_ACTION:Ljava/lang/String; = "action" .field private static final TAG_ARGUMENT:Ljava/lang/String; = "argument" .field private static final TAG_DEEP_LINK:Ljava/lang/String; = "deepLink" .field private static final TAG_INCLUDE:Ljava/lang/String; = "include" .field private static final sTmpValue:Ljava/lang/ThreadLocal; .annotation system Ldalvik/annotation/Signature; value = { "Ljava/lang/ThreadLocal<", "Landroid/util/TypedValue;", ">;" } .end annotation .end field # instance fields .field private mContext:Landroid/content/Context; .field private mNavigatorProvider:Landroidx/navigation/NavigatorProvider; # direct methods .method static constructor ()V .locals 1 .line 48 new-instance v0, Ljava/lang/ThreadLocal; invoke-direct {v0}, Ljava/lang/ThreadLocal;->()V sput-object v0, Landroidx/navigation/NavInflater;->sTmpValue:Ljava/lang/ThreadLocal; return-void .end method .method public constructor (Landroid/content/Context;Landroidx/navigation/NavigatorProvider;)V .locals 0 .line 53 invoke-direct {p0}, Ljava/lang/Object;->()V .line 54 iput-object p1, p0, Landroidx/navigation/NavInflater;->mContext:Landroid/content/Context; .line 55 iput-object p2, p0, Landroidx/navigation/NavInflater;->mNavigatorProvider:Landroidx/navigation/NavigatorProvider; return-void .end method .method private static checkNavType(Landroid/util/TypedValue;Landroidx/navigation/NavType;Landroidx/navigation/NavType;Ljava/lang/String;Ljava/lang/String;)Landroidx/navigation/NavType; .locals 1 .annotation system Ldalvik/annotation/Throws; value = { Lorg/xmlpull/v1/XmlPullParserException; } .end annotation if-eqz p1, :cond_1 if-ne p1, p2, :cond_0 goto :goto_0 .line 262 :cond_0 new-instance p1, Lorg/xmlpull/v1/XmlPullParserException; new-instance p2, Ljava/lang/StringBuilder; invoke-direct {p2}, Ljava/lang/StringBuilder;->()V const-string v0, "Type is " invoke-virtual {p2, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object p2 invoke-virtual {p2, p3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object p2 const-string p3, " but found " invoke-virtual {p2, p3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object p2 invoke-virtual {p2, p4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object p2 const-string p3, ": " invoke-virtual {p2, p3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object p2 iget p0, p0, Landroid/util/TypedValue;->data:I invoke-virtual {p2, p0}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder; move-result-object p0 invoke-virtual {p0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object p0 invoke-direct {p1, p0}, Lorg/xmlpull/v1/XmlPullParserException;->(Ljava/lang/String;)V throw p1 :cond_1 :goto_0 if-eqz p1, :cond_2 goto :goto_1 :cond_2 move-object p1, p2 :goto_1 return-object p1 .end method .method private inflate(Landroid/content/res/Resources;Landroid/content/res/XmlResourceParser;Landroid/util/AttributeSet;I)Landroidx/navigation/NavDestination; .locals 9 .annotation system Ldalvik/annotation/Throws; value = { Lorg/xmlpull/v1/XmlPullParserException;, Ljava/io/IOException; } .end annotation .line 100 iget-object v0, p0, Landroidx/navigation/NavInflater;->mNavigatorProvider:Landroidx/navigation/NavigatorProvider; invoke-interface {p2}, Landroid/content/res/XmlResourceParser;->getName()Ljava/lang/String; move-result-object v1 invoke-virtual {v0, v1}, Landroidx/navigation/NavigatorProvider;->getNavigator(Ljava/lang/String;)Landroidx/navigation/Navigator; move-result-object v0 .line 101 invoke-virtual {v0}, Landroidx/navigation/Navigator;->createDestination()Landroidx/navigation/NavDestination; move-result-object v0 .line 103 iget-object v1, p0, Landroidx/navigation/NavInflater;->mContext:Landroid/content/Context; invoke-virtual {v0, v1, p3}, Landroidx/navigation/NavDestination;->onInflate(Landroid/content/Context;Landroid/util/AttributeSet;)V .line 105 invoke-interface {p2}, Landroid/content/res/XmlResourceParser;->getDepth()I move-result v1 const/4 v7, 0x1 add-int/lit8 v8, v1, 0x1 .line 108 :cond_0 :goto_0 invoke-interface {p2}, Landroid/content/res/XmlResourceParser;->next()I move-result v1 if-eq v1, v7, :cond_8 .line 109 invoke-interface {p2}, Landroid/content/res/XmlResourceParser;->getDepth()I move-result v2 if-ge v2, v8, :cond_1 const/4 v3, 0x3 if-eq v1, v3, :cond_8 :cond_1 const/4 v3, 0x2 if-eq v1, v3, :cond_2 goto :goto_0 :cond_2 if-le v2, v8, :cond_3 goto :goto_0 .line 119 :cond_3 invoke-interface {p2}, Landroid/content/res/XmlResourceParser;->getName()Ljava/lang/String; move-result-object v1 const-string v2, "argument" .line 120 invoke-virtual {v2, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result v2 if-eqz v2, :cond_4 .line 121 invoke-direct {p0, p1, v0, p3, p4}, Landroidx/navigation/NavInflater;->inflateArgumentForDestination(Landroid/content/res/Resources;Landroidx/navigation/NavDestination;Landroid/util/AttributeSet;I)V goto :goto_0 :cond_4 const-string v2, "deepLink" .line 122 invoke-virtual {v2, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result v2 if-eqz v2, :cond_5 .line 123 invoke-direct {p0, p1, v0, p3}, Landroidx/navigation/NavInflater;->inflateDeepLink(Landroid/content/res/Resources;Landroidx/navigation/NavDestination;Landroid/util/AttributeSet;)V goto :goto_0 :cond_5 const-string v2, "action" .line 124 invoke-virtual {v2, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result v2 if-eqz v2, :cond_6 move-object v1, p0 move-object v2, p1 move-object v3, v0 move-object v4, p3 move-object v5, p2 move v6, p4 .line 125 invoke-direct/range {v1 .. v6}, Landroidx/navigation/NavInflater;->inflateAction(Landroid/content/res/Resources;Landroidx/navigation/NavDestination;Landroid/util/AttributeSet;Landroid/content/res/XmlResourceParser;I)V goto :goto_0 :cond_6 const-string v2, "include" .line 126 invoke-virtual {v2, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result v1 if-eqz v1, :cond_7 instance-of v1, v0, Landroidx/navigation/NavGraph; if-eqz v1, :cond_7 .line 127 sget-object v1, Landroidx/navigation/R$styleable;->NavInclude:[I invoke-virtual {p1, p3, v1}, Landroid/content/res/Resources;->obtainAttributes(Landroid/util/AttributeSet;[I)Landroid/content/res/TypedArray; move-result-object v1 .line 128 sget v2, Landroidx/navigation/R$styleable;->NavInclude_graph:I const/4 v3, 0x0 invoke-virtual {v1, v2, v3}, Landroid/content/res/TypedArray;->getResourceId(II)I move-result v2 .line 129 move-object v3, v0 check-cast v3, Landroidx/navigation/NavGraph; invoke-virtual {p0, v2}, Landroidx/navigation/NavInflater;->inflate(I)Landroidx/navigation/NavGraph; move-result-object v2 invoke-virtual {v3, v2}, Landroidx/navigation/NavGraph;->addDestination(Landroidx/navigation/NavDestination;)V .line 130 invoke-virtual {v1}, Landroid/content/res/TypedArray;->recycle()V goto :goto_0 .line 131 :cond_7 instance-of v1, v0, Landroidx/navigation/NavGraph; if-eqz v1, :cond_0 .line 132 move-object v1, v0 check-cast v1, Landroidx/navigation/NavGraph; invoke-direct {p0, p1, p2, p3, p4}, Landroidx/navigation/NavInflater;->inflate(Landroid/content/res/Resources;Landroid/content/res/XmlResourceParser;Landroid/util/AttributeSet;I)Landroidx/navigation/NavDestination; move-result-object v2 invoke-virtual {v1, v2}, Landroidx/navigation/NavGraph;->addDestination(Landroidx/navigation/NavDestination;)V goto :goto_0 :cond_8 return-object v0 .end method .method private inflateAction(Landroid/content/res/Resources;Landroidx/navigation/NavDestination;Landroid/util/AttributeSet;Landroid/content/res/XmlResourceParser;I)V .locals 9 .annotation system Ldalvik/annotation/Throws; value = { Ljava/io/IOException;, Lorg/xmlpull/v1/XmlPullParserException; } .end annotation .line 284 sget-object v0, Landroidx/navigation/R$styleable;->NavAction:[I invoke-virtual {p1, p3, v0}, Landroid/content/res/Resources;->obtainAttributes(Landroid/util/AttributeSet;[I)Landroid/content/res/TypedArray; move-result-object v0 .line 285 sget v1, Landroidx/navigation/R$styleable;->NavAction_android_id:I const/4 v2, 0x0 invoke-virtual {v0, v1, v2}, Landroid/content/res/TypedArray;->getResourceId(II)I move-result v1 .line 286 sget v3, Landroidx/navigation/R$styleable;->NavAction_destination:I invoke-virtual {v0, v3, v2}, Landroid/content/res/TypedArray;->getResourceId(II)I move-result v3 .line 287 new-instance v4, Landroidx/navigation/NavAction; invoke-direct {v4, v3}, Landroidx/navigation/NavAction;->(I)V .line 289 new-instance v3, Landroidx/navigation/NavOptions$Builder; invoke-direct {v3}, Landroidx/navigation/NavOptions$Builder;->()V .line 290 sget v5, Landroidx/navigation/R$styleable;->NavAction_launchSingleTop:I invoke-virtual {v0, v5, v2}, Landroid/content/res/TypedArray;->getBoolean(IZ)Z move-result v5 invoke-virtual {v3, v5}, Landroidx/navigation/NavOptions$Builder;->setLaunchSingleTop(Z)Landroidx/navigation/NavOptions$Builder; .line 291 sget v5, Landroidx/navigation/R$styleable;->NavAction_popUpTo:I const/4 v6, -0x1 invoke-virtual {v0, v5, v6}, Landroid/content/res/TypedArray;->getResourceId(II)I move-result v5 sget v7, Landroidx/navigation/R$styleable;->NavAction_popUpToInclusive:I .line 292 invoke-virtual {v0, v7, v2}, Landroid/content/res/TypedArray;->getBoolean(IZ)Z move-result v2 .line 291 invoke-virtual {v3, v5, v2}, Landroidx/navigation/NavOptions$Builder;->setPopUpTo(IZ)Landroidx/navigation/NavOptions$Builder; .line 293 sget v2, Landroidx/navigation/R$styleable;->NavAction_enterAnim:I invoke-virtual {v0, v2, v6}, Landroid/content/res/TypedArray;->getResourceId(II)I move-result v2 invoke-virtual {v3, v2}, Landroidx/navigation/NavOptions$Builder;->setEnterAnim(I)Landroidx/navigation/NavOptions$Builder; .line 294 sget v2, Landroidx/navigation/R$styleable;->NavAction_exitAnim:I invoke-virtual {v0, v2, v6}, Landroid/content/res/TypedArray;->getResourceId(II)I move-result v2 invoke-virtual {v3, v2}, Landroidx/navigation/NavOptions$Builder;->setExitAnim(I)Landroidx/navigation/NavOptions$Builder; .line 295 sget v2, Landroidx/navigation/R$styleable;->NavAction_popEnterAnim:I invoke-virtual {v0, v2, v6}, Landroid/content/res/TypedArray;->getResourceId(II)I move-result v2 invoke-virtual {v3, v2}, Landroidx/navigation/NavOptions$Builder;->setPopEnterAnim(I)Landroidx/navigation/NavOptions$Builder; .line 296 sget v2, Landroidx/navigation/R$styleable;->NavAction_popExitAnim:I invoke-virtual {v0, v2, v6}, Landroid/content/res/TypedArray;->getResourceId(II)I move-result v2 invoke-virtual {v3, v2}, Landroidx/navigation/NavOptions$Builder;->setPopExitAnim(I)Landroidx/navigation/NavOptions$Builder; .line 297 invoke-virtual {v3}, Landroidx/navigation/NavOptions$Builder;->build()Landroidx/navigation/NavOptions; move-result-object v2 invoke-virtual {v4, v2}, Landroidx/navigation/NavAction;->setNavOptions(Landroidx/navigation/NavOptions;)V .line 299 new-instance v2, Landroid/os/Bundle; invoke-direct {v2}, Landroid/os/Bundle;->()V .line 300 invoke-interface {p4}, Landroid/content/res/XmlResourceParser;->getDepth()I move-result v3 const/4 v5, 0x1 add-int/2addr v3, v5 .line 303 :cond_0 :goto_0 invoke-interface {p4}, Landroid/content/res/XmlResourceParser;->next()I move-result v6 if-eq v6, v5, :cond_4 .line 304 invoke-interface {p4}, Landroid/content/res/XmlResourceParser;->getDepth()I move-result v7 if-ge v7, v3, :cond_1 const/4 v8, 0x3 if-eq v6, v8, :cond_4 :cond_1 const/4 v8, 0x2 if-eq v6, v8, :cond_2 goto :goto_0 :cond_2 if-le v7, v3, :cond_3 goto :goto_0 .line 313 :cond_3 invoke-interface {p4}, Landroid/content/res/XmlResourceParser;->getName()Ljava/lang/String; move-result-object v6 const-string v7, "argument" .line 314 invoke-virtual {v7, v6}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result v6 if-eqz v6, :cond_0 .line 315 invoke-direct {p0, p1, v2, p3, p5}, Landroidx/navigation/NavInflater;->inflateArgumentForBundle(Landroid/content/res/Resources;Landroid/os/Bundle;Landroid/util/AttributeSet;I)V goto :goto_0 .line 318 :cond_4 invoke-virtual {v2}, Landroid/os/Bundle;->isEmpty()Z move-result p1 if-nez p1, :cond_5 .line 319 invoke-virtual {v4, v2}, Landroidx/navigation/NavAction;->setDefaultArguments(Landroid/os/Bundle;)V .line 321 :cond_5 invoke-virtual {p2, v1, v4}, Landroidx/navigation/NavDestination;->putAction(ILandroidx/navigation/NavAction;)V .line 322 invoke-virtual {v0}, Landroid/content/res/TypedArray;->recycle()V return-void .end method .method private inflateArgument(Landroid/content/res/TypedArray;Landroid/content/res/Resources;I)Landroidx/navigation/NavArgument; .locals 8 .annotation system Ldalvik/annotation/Throws; value = { Lorg/xmlpull/v1/XmlPullParserException; } .end annotation .line 169 new-instance v0, Landroidx/navigation/NavArgument$Builder; invoke-direct {v0}, Landroidx/navigation/NavArgument$Builder;->()V .line 170 sget v1, Landroidx/navigation/R$styleable;->NavArgument_nullable:I const/4 v2, 0x0 invoke-virtual {p1, v1, v2}, Landroid/content/res/TypedArray;->getBoolean(IZ)Z move-result v1 invoke-virtual {v0, v1}, Landroidx/navigation/NavArgument$Builder;->setIsNullable(Z)Landroidx/navigation/NavArgument$Builder; .line 172 sget-object v1, Landroidx/navigation/NavInflater;->sTmpValue:Ljava/lang/ThreadLocal; invoke-virtual {v1}, Ljava/lang/ThreadLocal;->get()Ljava/lang/Object; move-result-object v3 check-cast v3, Landroid/util/TypedValue; if-nez v3, :cond_0 .line 174 new-instance v3, Landroid/util/TypedValue; invoke-direct {v3}, Landroid/util/TypedValue;->()V .line 175 invoke-virtual {v1, v3}, Ljava/lang/ThreadLocal;->set(Ljava/lang/Object;)V .line 180 :cond_0 sget v1, Landroidx/navigation/R$styleable;->NavArgument_argType:I invoke-virtual {p1, v1}, Landroid/content/res/TypedArray;->getString(I)Ljava/lang/String; move-result-object v1 const/4 v4, 0x0 if-eqz v1, :cond_1 .line 182 invoke-virtual {p2, p3}, Landroid/content/res/Resources;->getResourcePackageName(I)Ljava/lang/String; move-result-object p3 invoke-static {v1, p3}, Landroidx/navigation/NavType;->fromArgType(Ljava/lang/String;Ljava/lang/String;)Landroidx/navigation/NavType; move-result-object p3 goto :goto_0 :cond_1 move-object p3, v4 .line 185 :goto_0 sget v5, Landroidx/navigation/R$styleable;->NavArgument_android_defaultValue:I invoke-virtual {p1, v5, v3}, Landroid/content/res/TypedArray;->getValue(ILandroid/util/TypedValue;)Z move-result v5 if-eqz v5, :cond_f .line 186 sget-object v4, Landroidx/navigation/NavType;->ReferenceType:Landroidx/navigation/NavType; const-string v5, "\' for " const-string v6, "unsupported value \'" const/16 v7, 0x10 if-ne p3, v4, :cond_4 .line 187 iget p1, v3, Landroid/util/TypedValue;->resourceId:I if-eqz p1, :cond_2 .line 188 iget p1, v3, Landroid/util/TypedValue;->resourceId:I invoke-static {p1}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; move-result-object v4 goto/16 :goto_1 .line 189 :cond_2 iget p1, v3, Landroid/util/TypedValue;->type:I if-ne p1, v7, :cond_3 iget p1, v3, Landroid/util/TypedValue;->data:I if-nez p1, :cond_3 .line 191 invoke-static {v2}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; move-result-object v4 goto/16 :goto_1 .line 193 :cond_3 new-instance p1, Lorg/xmlpull/v1/XmlPullParserException; new-instance p2, Ljava/lang/StringBuilder; invoke-direct {p2}, Ljava/lang/StringBuilder;->()V invoke-virtual {p2, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object p2 iget-object v0, v3, Landroid/util/TypedValue;->string:Ljava/lang/CharSequence; invoke-virtual {p2, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder; move-result-object p2 invoke-virtual {p2, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object p2 .line 195 invoke-virtual {p3}, Landroidx/navigation/NavType;->getName()Ljava/lang/String; move-result-object p3 invoke-virtual {p2, p3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object p2 const-string p3, ". Must be a reference to a resource." invoke-virtual {p2, p3}, 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}, Lorg/xmlpull/v1/XmlPullParserException;->(Ljava/lang/String;)V throw p1 .line 198 :cond_4 iget v4, v3, Landroid/util/TypedValue;->resourceId:I if-eqz v4, :cond_6 if-nez p3, :cond_5 .line 200 sget-object p3, Landroidx/navigation/NavType;->ReferenceType:Landroidx/navigation/NavType; .line 201 iget p1, v3, Landroid/util/TypedValue;->resourceId:I invoke-static {p1}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; move-result-object v4 goto/16 :goto_1 .line 203 :cond_5 new-instance p1, Lorg/xmlpull/v1/XmlPullParserException; new-instance p2, Ljava/lang/StringBuilder; invoke-direct {p2}, Ljava/lang/StringBuilder;->()V invoke-virtual {p2, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object p2 iget-object v0, v3, Landroid/util/TypedValue;->string:Ljava/lang/CharSequence; invoke-virtual {p2, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder; move-result-object p2 invoke-virtual {p2, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object p2 .line 205 invoke-virtual {p3}, Landroidx/navigation/NavType;->getName()Ljava/lang/String; move-result-object p3 invoke-virtual {p2, p3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object p2 const-string p3, ". You must use a \"" invoke-virtual {p2, p3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object p2 sget-object p3, Landroidx/navigation/NavType;->ReferenceType:Landroidx/navigation/NavType; .line 206 invoke-virtual {p3}, Landroidx/navigation/NavType;->getName()Ljava/lang/String; move-result-object p3 invoke-virtual {p2, p3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object p2 const-string p3, "\" type to reference other resources." invoke-virtual {p2, p3}, 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}, Lorg/xmlpull/v1/XmlPullParserException;->(Ljava/lang/String;)V throw p1 .line 209 :cond_6 sget-object v4, Landroidx/navigation/NavType;->StringType:Landroidx/navigation/NavType; if-ne p3, v4, :cond_7 .line 210 sget p2, Landroidx/navigation/R$styleable;->NavArgument_android_defaultValue:I invoke-virtual {p1, p2}, Landroid/content/res/TypedArray;->getString(I)Ljava/lang/String; move-result-object v4 goto/16 :goto_1 .line 212 :cond_7 iget p1, v3, Landroid/util/TypedValue;->type:I const/4 v4, 0x3 if-eq p1, v4, :cond_d const/4 v4, 0x4 if-eq p1, v4, :cond_c const/4 v4, 0x5 if-eq p1, v4, :cond_b const/16 p2, 0x12 if-eq p1, p2, :cond_9 .line 236 iget p1, v3, Landroid/util/TypedValue;->type:I if-lt p1, v7, :cond_8 iget p1, v3, Landroid/util/TypedValue;->type:I const/16 p2, 0x1f if-gt p1, p2, :cond_8 .line 238 sget-object p1, Landroidx/navigation/NavType;->IntType:Landroidx/navigation/NavType; const-string p2, "integer" invoke-static {v3, p3, p1, v1, p2}, Landroidx/navigation/NavInflater;->checkNavType(Landroid/util/TypedValue;Landroidx/navigation/NavType;Landroidx/navigation/NavType;Ljava/lang/String;Ljava/lang/String;)Landroidx/navigation/NavType; move-result-object p3 .line 240 iget p1, v3, Landroid/util/TypedValue;->data:I invoke-static {p1}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; move-result-object v4 goto :goto_1 .line 242 :cond_8 new-instance p1, Lorg/xmlpull/v1/XmlPullParserException; new-instance p2, Ljava/lang/StringBuilder; invoke-direct {p2}, Ljava/lang/StringBuilder;->()V const-string p3, "unsupported argument type " invoke-virtual {p2, p3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object p2 iget p3, v3, Landroid/util/TypedValue;->type:I invoke-virtual {p2, p3}, Ljava/lang/StringBuilder;->append(I)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}, Lorg/xmlpull/v1/XmlPullParserException;->(Ljava/lang/String;)V throw p1 .line 231 :cond_9 sget-object p1, Landroidx/navigation/NavType;->BoolType:Landroidx/navigation/NavType; const-string p2, "boolean" invoke-static {v3, p3, p1, v1, p2}, Landroidx/navigation/NavInflater;->checkNavType(Landroid/util/TypedValue;Landroidx/navigation/NavType;Landroidx/navigation/NavType;Ljava/lang/String;Ljava/lang/String;)Landroidx/navigation/NavType; move-result-object p3 .line 233 iget p1, v3, Landroid/util/TypedValue;->data:I if-eqz p1, :cond_a const/4 v2, 0x1 :cond_a invoke-static {v2}, Ljava/lang/Boolean;->valueOf(Z)Ljava/lang/Boolean; move-result-object v4 goto :goto_1 .line 221 :cond_b sget-object p1, Landroidx/navigation/NavType;->IntType:Landroidx/navigation/NavType; const-string v2, "dimension" invoke-static {v3, p3, p1, v1, v2}, Landroidx/navigation/NavInflater;->checkNavType(Landroid/util/TypedValue;Landroidx/navigation/NavType;Landroidx/navigation/NavType;Ljava/lang/String;Ljava/lang/String;)Landroidx/navigation/NavType; move-result-object p3 .line 223 invoke-virtual {p2}, Landroid/content/res/Resources;->getDisplayMetrics()Landroid/util/DisplayMetrics; move-result-object p1 invoke-virtual {v3, p1}, Landroid/util/TypedValue;->getDimension(Landroid/util/DisplayMetrics;)F move-result p1 float-to-int p1, p1 invoke-static {p1}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; move-result-object v4 goto :goto_1 .line 226 :cond_c sget-object p1, Landroidx/navigation/NavType;->FloatType:Landroidx/navigation/NavType; const-string p2, "float" invoke-static {v3, p3, p1, v1, p2}, Landroidx/navigation/NavInflater;->checkNavType(Landroid/util/TypedValue;Landroidx/navigation/NavType;Landroidx/navigation/NavType;Ljava/lang/String;Ljava/lang/String;)Landroidx/navigation/NavType; move-result-object p3 .line 228 invoke-virtual {v3}, Landroid/util/TypedValue;->getFloat()F move-result p1 invoke-static {p1}, Ljava/lang/Float;->valueOf(F)Ljava/lang/Float; move-result-object v4 goto :goto_1 .line 214 :cond_d iget-object p1, v3, Landroid/util/TypedValue;->string:Ljava/lang/CharSequence; invoke-interface {p1}, Ljava/lang/CharSequence;->toString()Ljava/lang/String; move-result-object p1 if-nez p3, :cond_e .line 216 invoke-static {p1}, Landroidx/navigation/NavType;->inferFromValue(Ljava/lang/String;)Landroidx/navigation/NavType; move-result-object p3 .line 218 :cond_e invoke-virtual {p3, p1}, Landroidx/navigation/NavType;->parseValue(Ljava/lang/String;)Ljava/lang/Object; move-result-object v4 :cond_f :goto_1 if-eqz v4, :cond_10 .line 250 invoke-virtual {v0, v4}, Landroidx/navigation/NavArgument$Builder;->setDefaultValue(Ljava/lang/Object;)Landroidx/navigation/NavArgument$Builder; :cond_10 if-eqz p3, :cond_11 .line 253 invoke-virtual {v0, p3}, Landroidx/navigation/NavArgument$Builder;->setType(Landroidx/navigation/NavType;)Landroidx/navigation/NavArgument$Builder; .line 255 :cond_11 invoke-virtual {v0}, Landroidx/navigation/NavArgument$Builder;->build()Landroidx/navigation/NavArgument; move-result-object p1 return-object p1 .end method .method private inflateArgumentForBundle(Landroid/content/res/Resources;Landroid/os/Bundle;Landroid/util/AttributeSet;I)V .locals 1 .annotation system Ldalvik/annotation/Throws; value = { Lorg/xmlpull/v1/XmlPullParserException; } .end annotation .line 153 sget-object v0, Landroidx/navigation/R$styleable;->NavArgument:[I invoke-virtual {p1, p3, v0}, Landroid/content/res/Resources;->obtainAttributes(Landroid/util/AttributeSet;[I)Landroid/content/res/TypedArray; move-result-object p3 .line 154 sget v0, Landroidx/navigation/R$styleable;->NavArgument_android_name:I invoke-virtual {p3, v0}, Landroid/content/res/TypedArray;->getString(I)Ljava/lang/String; move-result-object v0 if-eqz v0, :cond_1 .line 158 invoke-direct {p0, p3, p1, p4}, Landroidx/navigation/NavInflater;->inflateArgument(Landroid/content/res/TypedArray;Landroid/content/res/Resources;I)Landroidx/navigation/NavArgument; move-result-object p1 .line 159 invoke-virtual {p1}, Landroidx/navigation/NavArgument;->isDefaultValuePresent()Z move-result p4 if-eqz p4, :cond_0 .line 160 invoke-virtual {p1, v0, p2}, Landroidx/navigation/NavArgument;->putDefaultValue(Ljava/lang/String;Landroid/os/Bundle;)V .line 162 :cond_0 invoke-virtual {p3}, Landroid/content/res/TypedArray;->recycle()V return-void .line 156 :cond_1 new-instance p1, Lorg/xmlpull/v1/XmlPullParserException; const-string p2, "Arguments must have a name" invoke-direct {p1, p2}, Lorg/xmlpull/v1/XmlPullParserException;->(Ljava/lang/String;)V throw p1 .end method .method private inflateArgumentForDestination(Landroid/content/res/Resources;Landroidx/navigation/NavDestination;Landroid/util/AttributeSet;I)V .locals 1 .annotation system Ldalvik/annotation/Throws; value = { Lorg/xmlpull/v1/XmlPullParserException; } .end annotation .line 141 sget-object v0, Landroidx/navigation/R$styleable;->NavArgument:[I invoke-virtual {p1, p3, v0}, Landroid/content/res/Resources;->obtainAttributes(Landroid/util/AttributeSet;[I)Landroid/content/res/TypedArray; move-result-object p3 .line 142 sget v0, Landroidx/navigation/R$styleable;->NavArgument_android_name:I invoke-virtual {p3, v0}, Landroid/content/res/TypedArray;->getString(I)Ljava/lang/String; move-result-object v0 if-eqz v0, :cond_0 .line 146 invoke-direct {p0, p3, p1, p4}, Landroidx/navigation/NavInflater;->inflateArgument(Landroid/content/res/TypedArray;Landroid/content/res/Resources;I)Landroidx/navigation/NavArgument; move-result-object p1 .line 147 invoke-virtual {p2, v0, p1}, Landroidx/navigation/NavDestination;->addArgument(Ljava/lang/String;Landroidx/navigation/NavArgument;)V .line 148 invoke-virtual {p3}, Landroid/content/res/TypedArray;->recycle()V return-void .line 144 :cond_0 new-instance p1, Lorg/xmlpull/v1/XmlPullParserException; const-string p2, "Arguments must have a name" invoke-direct {p1, p2}, Lorg/xmlpull/v1/XmlPullParserException;->(Ljava/lang/String;)V throw p1 .end method .method private inflateDeepLink(Landroid/content/res/Resources;Landroidx/navigation/NavDestination;Landroid/util/AttributeSet;)V .locals 2 .line 270 sget-object v0, Landroidx/navigation/R$styleable;->NavDeepLink:[I invoke-virtual {p1, p3, v0}, Landroid/content/res/Resources;->obtainAttributes(Landroid/util/AttributeSet;[I)Landroid/content/res/TypedArray; move-result-object p1 .line 271 sget p3, Landroidx/navigation/R$styleable;->NavDeepLink_uri:I invoke-virtual {p1, p3}, Landroid/content/res/TypedArray;->getString(I)Ljava/lang/String; move-result-object p3 .line 272 invoke-static {p3}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z move-result v0 if-nez v0, :cond_0 .line 276 iget-object v0, p0, Landroidx/navigation/NavInflater;->mContext:Landroid/content/Context; invoke-virtual {v0}, Landroid/content/Context;->getPackageName()Ljava/lang/String; move-result-object v0 const-string v1, "${applicationId}" invoke-virtual {p3, v1, v0}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String; move-result-object p3 .line 277 invoke-virtual {p2, p3}, Landroidx/navigation/NavDestination;->addDeepLink(Ljava/lang/String;)V .line 278 invoke-virtual {p1}, Landroid/content/res/TypedArray;->recycle()V return-void .line 273 :cond_0 new-instance p1, Ljava/lang/IllegalArgumentException; const-string p2, "Every must include an app:uri" invoke-direct {p1, p2}, Ljava/lang/IllegalArgumentException;->(Ljava/lang/String;)V throw p1 .end method # virtual methods .method public inflate(I)Landroidx/navigation/NavGraph; .locals 6 .line 67 iget-object v0, p0, Landroidx/navigation/NavInflater;->mContext:Landroid/content/Context; invoke-virtual {v0}, Landroid/content/Context;->getResources()Landroid/content/res/Resources; move-result-object v0 .line 68 invoke-virtual {v0, p1}, Landroid/content/res/Resources;->getXml(I)Landroid/content/res/XmlResourceParser; move-result-object v1 .line 69 invoke-static {v1}, Landroid/util/Xml;->asAttributeSet(Lorg/xmlpull/v1/XmlPullParser;)Landroid/util/AttributeSet; move-result-object v2 .line 72 :goto_0 :try_start_0 invoke-interface {v1}, Landroid/content/res/XmlResourceParser;->next()I move-result v3 const/4 v4, 0x2 if-eq v3, v4, :cond_0 const/4 v5, 0x1 if-eq v3, v5, :cond_0 goto :goto_0 :cond_0 if-ne v3, v4, :cond_2 .line 80 invoke-interface {v1}, Landroid/content/res/XmlResourceParser;->getName()Ljava/lang/String; move-result-object v3 .line 81 invoke-direct {p0, v0, v1, v2, p1}, Landroidx/navigation/NavInflater;->inflate(Landroid/content/res/Resources;Landroid/content/res/XmlResourceParser;Landroid/util/AttributeSet;I)Landroidx/navigation/NavDestination; move-result-object v2 .line 82 instance-of v4, v2, Landroidx/navigation/NavGraph; if-eqz v4, :cond_1 .line 86 check-cast v2, Landroidx/navigation/NavGraph; :try_end_0 .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_0} :catch_0 .catchall {:try_start_0 .. :try_end_0} :catchall_0 .line 92 invoke-interface {v1}, Landroid/content/res/XmlResourceParser;->close()V return-object v2 .line 83 :cond_1 :try_start_1 new-instance v2, Ljava/lang/IllegalArgumentException; new-instance v4, Ljava/lang/StringBuilder; invoke-direct {v4}, Ljava/lang/StringBuilder;->()V const-string v5, "Root element <" invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object v4 invoke-virtual {v4, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object v3 const-string v4, "> did not inflate into a NavGraph" invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object v3 invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object v3 invoke-direct {v2, v3}, Ljava/lang/IllegalArgumentException;->(Ljava/lang/String;)V throw v2 .line 77 :cond_2 new-instance v2, Lorg/xmlpull/v1/XmlPullParserException; const-string v3, "No start tag found" invoke-direct {v2, v3}, Lorg/xmlpull/v1/XmlPullParserException;->(Ljava/lang/String;)V throw v2 :try_end_1 .catch Ljava/lang/Exception; {:try_start_1 .. :try_end_1} :catch_0 .catchall {:try_start_1 .. :try_end_1} :catchall_0 :catchall_0 move-exception p1 goto :goto_1 :catch_0 move-exception v2 .line 88 :try_start_2 new-instance v3, Ljava/lang/RuntimeException; new-instance v4, Ljava/lang/StringBuilder; invoke-direct {v4}, Ljava/lang/StringBuilder;->()V const-string v5, "Exception inflating " invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object v4 .line 89 invoke-virtual {v0, p1}, Landroid/content/res/Resources;->getResourceName(I)Ljava/lang/String; move-result-object p1 invoke-virtual {v4, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object p1 const-string v0, " line " invoke-virtual {p1, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object p1 .line 90 invoke-interface {v1}, Landroid/content/res/XmlResourceParser;->getLineNumber()I move-result v0 invoke-virtual {p1, v0}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder; move-result-object p1 invoke-virtual {p1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object p1 invoke-direct {v3, p1, v2}, Ljava/lang/RuntimeException;->(Ljava/lang/String;Ljava/lang/Throwable;)V throw v3 :try_end_2 .catchall {:try_start_2 .. :try_end_2} :catchall_0 .line 92 :goto_1 invoke-interface {v1}, Landroid/content/res/XmlResourceParser;->close()V throw p1 .end method