.class public final Lcom/bumptech/glide/module/ManifestParser; .super Ljava/lang/Object; .source "ManifestParser.java" # annotations .annotation runtime Ljava/lang/Deprecated; .end annotation # static fields .field private static final GLIDE_MODULE_VALUE:Ljava/lang/String; = "GlideModule" .field private static final TAG:Ljava/lang/String; = "ManifestParser" # instance fields .field private final context:Landroid/content/Context; # direct methods .method public constructor (Landroid/content/Context;)V .registers 2 .line 23 invoke-direct {p0}, Ljava/lang/Object;->()V .line 24 iput-object p1, p0, Lcom/bumptech/glide/module/ManifestParser;->context:Landroid/content/Context; return-void .end method .method private static parseModule(Ljava/lang/String;)Lcom/bumptech/glide/module/GlideModule; .registers 4 .line 67 :try_start_0 invoke-static {p0}, Ljava/lang/Class;->forName(Ljava/lang/String;)Ljava/lang/Class; move-result-object p0 :try_end_4 .catch Ljava/lang/ClassNotFoundException; {:try_start_0 .. :try_end_4} :catch_42 const/4 v0, 0x0 .line 74 :try_start_5 new-array v1, v0, [Ljava/lang/Class; invoke-virtual {p0, v1}, Ljava/lang/Class;->getDeclaredConstructor([Ljava/lang/Class;)Ljava/lang/reflect/Constructor; move-result-object v1 new-array v0, v0, [Ljava/lang/Object; invoke-virtual {v1, v0}, Ljava/lang/reflect/Constructor;->newInstance([Ljava/lang/Object;)Ljava/lang/Object; move-result-object p0 :try_end_11 .catch Ljava/lang/InstantiationException; {:try_start_5 .. :try_end_11} :catch_21 .catch Ljava/lang/IllegalAccessException; {:try_start_5 .. :try_end_11} :catch_1c .catch Ljava/lang/NoSuchMethodException; {:try_start_5 .. :try_end_11} :catch_17 .catch Ljava/lang/reflect/InvocationTargetException; {:try_start_5 .. :try_end_11} :catch_12 goto :goto_26 :catch_12 move-exception v0 .line 83 invoke-static {p0, v0}, Lcom/bumptech/glide/module/ManifestParser;->throwInstantiateGlideModuleException(Ljava/lang/Class;Ljava/lang/Exception;)V goto :goto_25 :catch_17 move-exception v0 .line 81 invoke-static {p0, v0}, Lcom/bumptech/glide/module/ManifestParser;->throwInstantiateGlideModuleException(Ljava/lang/Class;Ljava/lang/Exception;)V goto :goto_25 :catch_1c move-exception v0 .line 79 invoke-static {p0, v0}, Lcom/bumptech/glide/module/ManifestParser;->throwInstantiateGlideModuleException(Ljava/lang/Class;Ljava/lang/Exception;)V goto :goto_25 :catch_21 move-exception v0 .line 77 invoke-static {p0, v0}, Lcom/bumptech/glide/module/ManifestParser;->throwInstantiateGlideModuleException(Ljava/lang/Class;Ljava/lang/Exception;)V :goto_25 const/4 p0, 0x0 .line 86 :goto_26 instance-of v0, p0, Lcom/bumptech/glide/module/GlideModule; if-eqz v0, :cond_2d .line 89 check-cast p0, Lcom/bumptech/glide/module/GlideModule; return-object p0 .line 87 :cond_2d new-instance v0, Ljava/lang/RuntimeException; new-instance v1, Ljava/lang/StringBuilder; const-string v2, "Expected instanceof GlideModule, but found: " invoke-direct {v1, v2}, Ljava/lang/StringBuilder;->(Ljava/lang/String;)V invoke-virtual {v1, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder; move-result-object p0 invoke-virtual {p0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object p0 invoke-direct {v0, p0}, Ljava/lang/RuntimeException;->(Ljava/lang/String;)V throw v0 :catch_42 move-exception p0 .line 69 new-instance v0, Ljava/lang/IllegalArgumentException; const-string v1, "Unable to find GlideModule implementation" invoke-direct {v0, v1, p0}, Ljava/lang/IllegalArgumentException;->(Ljava/lang/String;Ljava/lang/Throwable;)V throw v0 .end method .method private static throwInstantiateGlideModuleException(Ljava/lang/Class;Ljava/lang/Exception;)V .registers 5 .annotation system Ldalvik/annotation/Signature; value = { "(", "Ljava/lang/Class<", "*>;", "Ljava/lang/Exception;", ")V" } .end annotation .line 93 new-instance v0, Ljava/lang/RuntimeException; new-instance v1, Ljava/lang/StringBuilder; const-string v2, "Unable to instantiate GlideModule implementation for " invoke-direct {v1, v2}, Ljava/lang/StringBuilder;->(Ljava/lang/String;)V invoke-virtual {v1, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder; move-result-object p0 invoke-virtual {p0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object p0 invoke-direct {v0, p0, p1}, Ljava/lang/RuntimeException;->(Ljava/lang/String;Ljava/lang/Throwable;)V throw v0 .end method # virtual methods .method public parse()Ljava/util/List; .registers 9 .annotation system Ldalvik/annotation/Signature; value = { "()", "Ljava/util/List<", "Lcom/bumptech/glide/module/GlideModule;", ">;" } .end annotation const-string v0, "Got app info metadata: " .line 29 const-string v1, "ManifestParser" const/4 v2, 0x3 invoke-static {v1, v2}, Landroid/util/Log;->isLoggable(Ljava/lang/String;I)Z move-result v3 if-eqz v3, :cond_10 .line 30 const-string v3, "Loading Glide modules" invoke-static {v1, v3}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I .line 32 :cond_10 new-instance v3, Ljava/util/ArrayList; invoke-direct {v3}, Ljava/util/ArrayList;->()V .line 34 :try_start_15 iget-object v4, p0, Lcom/bumptech/glide/module/ManifestParser;->context:Landroid/content/Context; invoke-virtual {v4}, Landroid/content/Context;->getPackageManager()Landroid/content/pm/PackageManager; move-result-object v4 iget-object v5, p0, Lcom/bumptech/glide/module/ManifestParser;->context:Landroid/content/Context; .line 35 invoke-virtual {v5}, Landroid/content/Context;->getPackageName()Ljava/lang/String; move-result-object v5 const/16 v6, 0x80 invoke-virtual {v4, v5, v6}, Landroid/content/pm/PackageManager;->getApplicationInfo(Ljava/lang/String;I)Landroid/content/pm/ApplicationInfo; move-result-object v4 .line 36 iget-object v5, v4, Landroid/content/pm/ApplicationInfo;->metaData:Landroid/os/Bundle; if-nez v5, :cond_37 .line 37 invoke-static {v1, v2}, Landroid/util/Log;->isLoggable(Ljava/lang/String;I)Z move-result v0 if-eqz v0, :cond_36 .line 38 const-string v0, "Got null app info metadata" invoke-static {v1, v0}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I :cond_36 return-object v3 :cond_37 const/4 v5, 0x2 .line 42 invoke-static {v1, v5}, Landroid/util/Log;->isLoggable(Ljava/lang/String;I)Z move-result v5 if-eqz v5, :cond_50 .line 43 new-instance v5, Ljava/lang/StringBuilder; invoke-direct {v5, v0}, Ljava/lang/StringBuilder;->(Ljava/lang/String;)V iget-object v0, v4, Landroid/content/pm/ApplicationInfo;->metaData:Landroid/os/Bundle; invoke-virtual {v5, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder; move-result-object v0 invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object v0 invoke-static {v1, v0}, Landroid/util/Log;->v(Ljava/lang/String;Ljava/lang/String;)I .line 45 :cond_50 iget-object v0, v4, Landroid/content/pm/ApplicationInfo;->metaData:Landroid/os/Bundle; invoke-virtual {v0}, Landroid/os/Bundle;->keySet()Ljava/util/Set; move-result-object v0 invoke-interface {v0}, Ljava/util/Set;->iterator()Ljava/util/Iterator; move-result-object v0 :cond_5a :goto_5a invoke-interface {v0}, Ljava/util/Iterator;->hasNext()Z move-result v5 if-eqz v5, :cond_98 invoke-interface {v0}, Ljava/util/Iterator;->next()Ljava/lang/Object; move-result-object v5 check-cast v5, Ljava/lang/String; .line 46 const-string v6, "GlideModule" iget-object v7, v4, Landroid/content/pm/ApplicationInfo;->metaData:Landroid/os/Bundle; invoke-virtual {v7, v5}, Landroid/os/Bundle;->get(Ljava/lang/String;)Ljava/lang/Object; move-result-object v7 invoke-virtual {v6, v7}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result v6 if-eqz v6, :cond_5a .line 47 invoke-static {v5}, Lcom/bumptech/glide/module/ManifestParser;->parseModule(Ljava/lang/String;)Lcom/bumptech/glide/module/GlideModule; move-result-object v6 invoke-interface {v3, v6}, Ljava/util/List;->add(Ljava/lang/Object;)Z .line 48 invoke-static {v1, v2}, Landroid/util/Log;->isLoggable(Ljava/lang/String;I)Z move-result v6 if-eqz v6, :cond_5a .line 49 new-instance v6, Ljava/lang/StringBuilder; invoke-direct {v6}, Ljava/lang/StringBuilder;->()V const-string v7, "Loaded Glide module: " invoke-virtual {v6, v7}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object v6 invoke-virtual {v6, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object v5 invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object v5 invoke-static {v1, v5}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I :try_end_97 .catch Landroid/content/pm/PackageManager$NameNotFoundException; {:try_start_15 .. :try_end_97} :catch_a4 goto :goto_5a .line 56 :cond_98 invoke-static {v1, v2}, Landroid/util/Log;->isLoggable(Ljava/lang/String;I)Z move-result v0 if-eqz v0, :cond_a3 .line 57 const-string v0, "Finished loading Glide modules" invoke-static {v1, v0}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I :cond_a3 return-object v3 :catch_a4 move-exception v0 .line 54 new-instance v1, Ljava/lang/RuntimeException; const-string v2, "Unable to find metadata to parse GlideModules" invoke-direct {v1, v2, v0}, Ljava/lang/RuntimeException;->(Ljava/lang/String;Ljava/lang/Throwable;)V throw v1 .end method