.class public Lcom/bumptech/glide/load/model/ModelLoaderRegistry; .super Ljava/lang/Object; .source "ModelLoaderRegistry.java" # annotations .annotation system Ldalvik/annotation/MemberClasses; value = { Lcom/bumptech/glide/load/model/ModelLoaderRegistry$ModelLoaderCache; } .end annotation # instance fields .field private final cache:Lcom/bumptech/glide/load/model/ModelLoaderRegistry$ModelLoaderCache; .field private final multiModelLoaderFactory:Lcom/bumptech/glide/load/model/MultiModelLoaderFactory; # direct methods .method public constructor (Landroidx/core/util/Pools$Pool;)V .registers 3 .annotation system Ldalvik/annotation/Signature; value = { "(", "Landroidx/core/util/Pools$Pool<", "Ljava/util/List<", "Ljava/lang/Throwable;", ">;>;)V" } .end annotation .line 25 new-instance v0, Lcom/bumptech/glide/load/model/MultiModelLoaderFactory; invoke-direct {v0, p1}, Lcom/bumptech/glide/load/model/MultiModelLoaderFactory;->(Landroidx/core/util/Pools$Pool;)V invoke-direct {p0, v0}, Lcom/bumptech/glide/load/model/ModelLoaderRegistry;->(Lcom/bumptech/glide/load/model/MultiModelLoaderFactory;)V return-void .end method .method private constructor (Lcom/bumptech/glide/load/model/MultiModelLoaderFactory;)V .registers 3 .line 28 invoke-direct {p0}, Ljava/lang/Object;->()V .line 22 new-instance v0, Lcom/bumptech/glide/load/model/ModelLoaderRegistry$ModelLoaderCache; invoke-direct {v0}, Lcom/bumptech/glide/load/model/ModelLoaderRegistry$ModelLoaderCache;->()V iput-object v0, p0, Lcom/bumptech/glide/load/model/ModelLoaderRegistry;->cache:Lcom/bumptech/glide/load/model/ModelLoaderRegistry$ModelLoaderCache; .line 29 iput-object p1, p0, Lcom/bumptech/glide/load/model/ModelLoaderRegistry;->multiModelLoaderFactory:Lcom/bumptech/glide/load/model/MultiModelLoaderFactory; return-void .end method .method private static getClass(Ljava/lang/Object;)Ljava/lang/Class; .registers 1 .annotation system Ldalvik/annotation/Signature; value = { "(TA;)", "Ljava/lang/Class<", "TA;>;" } .end annotation .line 116 invoke-virtual {p0}, Ljava/lang/Object;->getClass()Ljava/lang/Class; move-result-object p0 return-object p0 .end method .method private declared-synchronized getModelLoadersForClass(Ljava/lang/Class;)Ljava/util/List; .registers 4 .annotation system Ldalvik/annotation/Signature; value = { "(", "Ljava/lang/Class<", "TA;>;)", "Ljava/util/List<", "Lcom/bumptech/glide/load/model/ModelLoader<", "TA;*>;>;" } .end annotation monitor-enter p0 .line 105 :try_start_1 iget-object v0, p0, Lcom/bumptech/glide/load/model/ModelLoaderRegistry;->cache:Lcom/bumptech/glide/load/model/ModelLoaderRegistry$ModelLoaderCache; invoke-virtual {v0, p1}, Lcom/bumptech/glide/load/model/ModelLoaderRegistry$ModelLoaderCache;->get(Ljava/lang/Class;)Ljava/util/List; move-result-object v0 if-nez v0, :cond_18 .line 107 iget-object v0, p0, Lcom/bumptech/glide/load/model/ModelLoaderRegistry;->multiModelLoaderFactory:Lcom/bumptech/glide/load/model/MultiModelLoaderFactory; invoke-virtual {v0, p1}, Lcom/bumptech/glide/load/model/MultiModelLoaderFactory;->build(Ljava/lang/Class;)Ljava/util/List; move-result-object v0 invoke-static {v0}, Ljava/util/Collections;->unmodifiableList(Ljava/util/List;)Ljava/util/List; move-result-object v0 .line 108 iget-object v1, p0, Lcom/bumptech/glide/load/model/ModelLoaderRegistry;->cache:Lcom/bumptech/glide/load/model/ModelLoaderRegistry$ModelLoaderCache; invoke-virtual {v1, p1, v0}, Lcom/bumptech/glide/load/model/ModelLoaderRegistry$ModelLoaderCache;->put(Ljava/lang/Class;Ljava/util/List;)V :try_end_18 .catchall {:try_start_1 .. :try_end_18} :catchall_1a .line 110 :cond_18 monitor-exit p0 return-object v0 :catchall_1a move-exception p1 :try_start_1b monitor-exit p0 :try_end_1c .catchall {:try_start_1b .. :try_end_1c} :catchall_1a throw p1 .end method .method private tearDown(Ljava/util/List;)V .registers 3 .annotation system Ldalvik/annotation/Signature; value = { "(", "Ljava/util/List<", "Lcom/bumptech/glide/load/model/ModelLoaderFactory<", "+TModel;+TData;>;>;)V" } .end annotation .line 64 invoke-interface {p1}, Ljava/util/List;->iterator()Ljava/util/Iterator; move-result-object p1 :goto_4 invoke-interface {p1}, Ljava/util/Iterator;->hasNext()Z move-result v0 if-eqz v0, :cond_14 invoke-interface {p1}, Ljava/util/Iterator;->next()Ljava/lang/Object; move-result-object v0 check-cast v0, Lcom/bumptech/glide/load/model/ModelLoaderFactory; .line 65 invoke-interface {v0}, Lcom/bumptech/glide/load/model/ModelLoaderFactory;->teardown()V goto :goto_4 :cond_14 return-void .end method # virtual methods .method public declared-synchronized append(Ljava/lang/Class;Ljava/lang/Class;Lcom/bumptech/glide/load/model/ModelLoaderFactory;)V .registers 5 .annotation system Ldalvik/annotation/Signature; value = { "(", "Ljava/lang/Class<", "TModel;>;", "Ljava/lang/Class<", "TData;>;", "Lcom/bumptech/glide/load/model/ModelLoaderFactory<", "+TModel;+TData;>;)V" } .end annotation monitor-enter p0 .line 36 :try_start_1 iget-object v0, p0, Lcom/bumptech/glide/load/model/ModelLoaderRegistry;->multiModelLoaderFactory:Lcom/bumptech/glide/load/model/MultiModelLoaderFactory; invoke-virtual {v0, p1, p2, p3}, Lcom/bumptech/glide/load/model/MultiModelLoaderFactory;->append(Ljava/lang/Class;Ljava/lang/Class;Lcom/bumptech/glide/load/model/ModelLoaderFactory;)V .line 37 iget-object p1, p0, Lcom/bumptech/glide/load/model/ModelLoaderRegistry;->cache:Lcom/bumptech/glide/load/model/ModelLoaderRegistry$ModelLoaderCache; invoke-virtual {p1}, Lcom/bumptech/glide/load/model/ModelLoaderRegistry$ModelLoaderCache;->clear()V :try_end_b .catchall {:try_start_1 .. :try_end_b} :catchall_d .line 38 monitor-exit p0 return-void :catchall_d move-exception p1 :try_start_e monitor-exit p0 :try_end_f .catchall {:try_start_e .. :try_end_f} :catchall_d throw p1 .end method .method public declared-synchronized build(Ljava/lang/Class;Ljava/lang/Class;)Lcom/bumptech/glide/load/model/ModelLoader; .registers 4 .annotation system Ldalvik/annotation/Signature; value = { "(", "Ljava/lang/Class<", "TModel;>;", "Ljava/lang/Class<", "TData;>;)", "Lcom/bumptech/glide/load/model/ModelLoader<", "TModel;TData;>;" } .end annotation monitor-enter p0 .line 94 :try_start_1 iget-object v0, p0, Lcom/bumptech/glide/load/model/ModelLoaderRegistry;->multiModelLoaderFactory:Lcom/bumptech/glide/load/model/MultiModelLoaderFactory; invoke-virtual {v0, p1, p2}, Lcom/bumptech/glide/load/model/MultiModelLoaderFactory;->build(Ljava/lang/Class;Ljava/lang/Class;)Lcom/bumptech/glide/load/model/ModelLoader; move-result-object p1 :try_end_7 .catchall {:try_start_1 .. :try_end_7} :catchall_9 monitor-exit p0 return-object p1 :catchall_9 move-exception p1 :try_start_a monitor-exit p0 :try_end_b .catchall {:try_start_a .. :try_end_b} :catchall_9 throw p1 .end method .method public declared-synchronized getDataClasses(Ljava/lang/Class;)Ljava/util/List; .registers 3 .annotation system Ldalvik/annotation/Signature; value = { "(", "Ljava/lang/Class<", "*>;)", "Ljava/util/List<", "Ljava/lang/Class<", "*>;>;" } .end annotation monitor-enter p0 .line 99 :try_start_1 iget-object v0, p0, Lcom/bumptech/glide/load/model/ModelLoaderRegistry;->multiModelLoaderFactory:Lcom/bumptech/glide/load/model/MultiModelLoaderFactory; invoke-virtual {v0, p1}, Lcom/bumptech/glide/load/model/MultiModelLoaderFactory;->getDataClasses(Ljava/lang/Class;)Ljava/util/List; move-result-object p1 :try_end_7 .catchall {:try_start_1 .. :try_end_7} :catchall_9 monitor-exit p0 return-object p1 :catchall_9 move-exception p1 :try_start_a monitor-exit p0 :try_end_b .catchall {:try_start_a .. :try_end_b} :catchall_9 throw p1 .end method .method public getModelLoaders(Ljava/lang/Object;)Ljava/util/List; .registers 10 .annotation system Ldalvik/annotation/Signature; value = { "(TA;)", "Ljava/util/List<", "Lcom/bumptech/glide/load/model/ModelLoader<", "TA;*>;>;" } .end annotation .line 74 invoke-static {p1}, Lcom/bumptech/glide/load/model/ModelLoaderRegistry;->getClass(Ljava/lang/Object;)Ljava/lang/Class; move-result-object v0 invoke-direct {p0, v0}, Lcom/bumptech/glide/load/model/ModelLoaderRegistry;->getModelLoadersForClass(Ljava/lang/Class;)Ljava/util/List; move-result-object v0 .line 75 invoke-interface {v0}, Ljava/util/List;->size()I move-result v1 .line 77 invoke-static {}, Ljava/util/Collections;->emptyList()Ljava/util/List; move-result-object v2 const/4 v3, 0x1 const/4 v4, 0x0 move v5, v4 :goto_13 if-ge v5, v1, :cond_31 .line 80 invoke-interface {v0, v5}, Ljava/util/List;->get(I)Ljava/lang/Object; move-result-object v6 check-cast v6, Lcom/bumptech/glide/load/model/ModelLoader; .line 81 invoke-interface {v6, p1}, Lcom/bumptech/glide/load/model/ModelLoader;->handles(Ljava/lang/Object;)Z move-result v7 if-eqz v7, :cond_2e if-eqz v3, :cond_2b .line 83 new-instance v2, Ljava/util/ArrayList; sub-int v3, v1, v5 invoke-direct {v2, v3}, Ljava/util/ArrayList;->(I)V move v3, v4 .line 86 :cond_2b invoke-interface {v2, v6}, Ljava/util/List;->add(Ljava/lang/Object;)Z :cond_2e add-int/lit8 v5, v5, 0x1 goto :goto_13 :cond_31 return-object v2 .end method .method public declared-synchronized prepend(Ljava/lang/Class;Ljava/lang/Class;Lcom/bumptech/glide/load/model/ModelLoaderFactory;)V .registers 5 .annotation system Ldalvik/annotation/Signature; value = { "(", "Ljava/lang/Class<", "TModel;>;", "Ljava/lang/Class<", "TData;>;", "Lcom/bumptech/glide/load/model/ModelLoaderFactory<", "+TModel;+TData;>;)V" } .end annotation monitor-enter p0 .line 44 :try_start_1 iget-object v0, p0, Lcom/bumptech/glide/load/model/ModelLoaderRegistry;->multiModelLoaderFactory:Lcom/bumptech/glide/load/model/MultiModelLoaderFactory; invoke-virtual {v0, p1, p2, p3}, Lcom/bumptech/glide/load/model/MultiModelLoaderFactory;->prepend(Ljava/lang/Class;Ljava/lang/Class;Lcom/bumptech/glide/load/model/ModelLoaderFactory;)V .line 45 iget-object p1, p0, Lcom/bumptech/glide/load/model/ModelLoaderRegistry;->cache:Lcom/bumptech/glide/load/model/ModelLoaderRegistry$ModelLoaderCache; invoke-virtual {p1}, Lcom/bumptech/glide/load/model/ModelLoaderRegistry$ModelLoaderCache;->clear()V :try_end_b .catchall {:try_start_1 .. :try_end_b} :catchall_d .line 46 monitor-exit p0 return-void :catchall_d move-exception p1 :try_start_e monitor-exit p0 :try_end_f .catchall {:try_start_e .. :try_end_f} :catchall_d throw p1 .end method .method public declared-synchronized remove(Ljava/lang/Class;Ljava/lang/Class;)V .registers 4 .annotation system Ldalvik/annotation/Signature; value = { "(", "Ljava/lang/Class<", "TModel;>;", "Ljava/lang/Class<", "TData;>;)V" } .end annotation monitor-enter p0 .line 50 :try_start_1 iget-object v0, p0, Lcom/bumptech/glide/load/model/ModelLoaderRegistry;->multiModelLoaderFactory:Lcom/bumptech/glide/load/model/MultiModelLoaderFactory; invoke-virtual {v0, p1, p2}, Lcom/bumptech/glide/load/model/MultiModelLoaderFactory;->remove(Ljava/lang/Class;Ljava/lang/Class;)Ljava/util/List; move-result-object p1 invoke-direct {p0, p1}, Lcom/bumptech/glide/load/model/ModelLoaderRegistry;->tearDown(Ljava/util/List;)V .line 51 iget-object p1, p0, Lcom/bumptech/glide/load/model/ModelLoaderRegistry;->cache:Lcom/bumptech/glide/load/model/ModelLoaderRegistry$ModelLoaderCache; invoke-virtual {p1}, Lcom/bumptech/glide/load/model/ModelLoaderRegistry$ModelLoaderCache;->clear()V :try_end_f .catchall {:try_start_1 .. :try_end_f} :catchall_11 .line 52 monitor-exit p0 return-void :catchall_11 move-exception p1 :try_start_12 monitor-exit p0 :try_end_13 .catchall {:try_start_12 .. :try_end_13} :catchall_11 throw p1 .end method .method public declared-synchronized replace(Ljava/lang/Class;Ljava/lang/Class;Lcom/bumptech/glide/load/model/ModelLoaderFactory;)V .registers 5 .annotation system Ldalvik/annotation/Signature; value = { "(", "Ljava/lang/Class<", "TModel;>;", "Ljava/lang/Class<", "TData;>;", "Lcom/bumptech/glide/load/model/ModelLoaderFactory<", "+TModel;+TData;>;)V" } .end annotation monitor-enter p0 .line 58 :try_start_1 iget-object v0, p0, Lcom/bumptech/glide/load/model/ModelLoaderRegistry;->multiModelLoaderFactory:Lcom/bumptech/glide/load/model/MultiModelLoaderFactory; invoke-virtual {v0, p1, p2, p3}, Lcom/bumptech/glide/load/model/MultiModelLoaderFactory;->replace(Ljava/lang/Class;Ljava/lang/Class;Lcom/bumptech/glide/load/model/ModelLoaderFactory;)Ljava/util/List; move-result-object p1 invoke-direct {p0, p1}, Lcom/bumptech/glide/load/model/ModelLoaderRegistry;->tearDown(Ljava/util/List;)V .line 59 iget-object p1, p0, Lcom/bumptech/glide/load/model/ModelLoaderRegistry;->cache:Lcom/bumptech/glide/load/model/ModelLoaderRegistry$ModelLoaderCache; invoke-virtual {p1}, Lcom/bumptech/glide/load/model/ModelLoaderRegistry$ModelLoaderCache;->clear()V :try_end_f .catchall {:try_start_1 .. :try_end_f} :catchall_11 .line 60 monitor-exit p0 return-void :catchall_11 move-exception p1 :try_start_12 monitor-exit p0 :try_end_13 .catchall {:try_start_12 .. :try_end_13} :catchall_11 throw p1 .end method