ModelLoaderRegistry.smali
.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 static constructor <clinit>()V
.registers 1
return-void
.end method
.method public constructor <init>(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
.local p1, "throwableListPool":Landroidx/core/util/Pools$Pool;, "Landroidx/core/util/Pools$Pool<Ljava/util/List<Ljava/lang/Throwable;>;>;"
new-instance v0, Lcom/bumptech/glide/load/model/MultiModelLoaderFactory;
invoke-direct {v0, p1}, Lcom/bumptech/glide/load/model/MultiModelLoaderFactory;-><init>(Landroidx/core/util/Pools$Pool;)V
invoke-direct {p0, v0}, Lcom/bumptech/glide/load/model/ModelLoaderRegistry;-><init>(Lcom/bumptech/glide/load/model/MultiModelLoaderFactory;)V
.line 26
return-void
.end method
.method private constructor <init>(Lcom/bumptech/glide/load/model/MultiModelLoaderFactory;)V
.registers 3
.param p1, "multiModelLoaderFactory" # Lcom/bumptech/glide/load/model/MultiModelLoaderFactory;
.line 28
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 22
new-instance v0, Lcom/bumptech/glide/load/model/ModelLoaderRegistry$ModelLoaderCache;
invoke-direct {v0}, Lcom/bumptech/glide/load/model/ModelLoaderRegistry$ModelLoaderCache;-><init>()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;
.line 30
return-void
.end method
.method private static getClass(Ljava/lang/Object;)Ljava/lang/Class;
.registers 2
.annotation system Ldalvik/annotation/Signature;
value = {
"<A:",
"Ljava/lang/Object;",
">(TA;)",
"Ljava/lang/Class<",
"TA;>;"
}
.end annotation
.line 116
.local p0, "model":Ljava/lang/Object;, "TA;"
invoke-virtual {p0}, Ljava/lang/Object;->getClass()Ljava/lang/Class;
move-result-object v0
return-object v0
.end method
.method private declared-synchronized getModelLoadersForClass(Ljava/lang/Class;)Ljava/util/List;
.registers 4
.annotation system Ldalvik/annotation/Signature;
value = {
"<A:",
"Ljava/lang/Object;",
">(",
"Ljava/lang/Class<",
"TA;>;)",
"Ljava/util/List<",
"Lcom/bumptech/glide/load/model/ModelLoader<",
"TA;*>;>;"
}
.end annotation
.local p1, "modelClass":Ljava/lang/Class;, "Ljava/lang/Class<TA;>;"
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
.line 106
.local v0, "loaders":Ljava/util/List;, "Ljava/util/List<Lcom/bumptech/glide/load/model/ModelLoader<TA;*>;>;"
if-nez v0, :cond_19
.line 107
iget-object v1, p0, Lcom/bumptech/glide/load/model/ModelLoaderRegistry;->multiModelLoaderFactory:Lcom/bumptech/glide/load/model/MultiModelLoaderFactory;
invoke-virtual {v1, p1}, Lcom/bumptech/glide/load/model/MultiModelLoaderFactory;->build(Ljava/lang/Class;)Ljava/util/List;
move-result-object v1
invoke-static {v1}, Ljava/util/Collections;->unmodifiableList(Ljava/util/List;)Ljava/util/List;
move-result-object v1
move-object v0, v1
.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_19
.catchall {:try_start_1 .. :try_end_19} :catchall_1b
.line 110
.end local p0 # "this":Lcom/bumptech/glide/load/model/ModelLoaderRegistry;
:cond_19
monitor-exit p0
return-object v0
.line 104
.end local v0 # "loaders":Ljava/util/List;, "Ljava/util/List<Lcom/bumptech/glide/load/model/ModelLoader<TA;*>;>;"
.end local p1 # "modelClass":Ljava/lang/Class;, "Ljava/lang/Class<TA;>;"
:catchall_1b
move-exception p1
monitor-exit p0
throw p1
.end method
.method private tearDown(Ljava/util/List;)V
.registers 4
.annotation system Ldalvik/annotation/Signature;
value = {
"<Model:",
"Ljava/lang/Object;",
"Data:",
"Ljava/lang/Object;",
">(",
"Ljava/util/List<",
"Lcom/bumptech/glide/load/model/ModelLoaderFactory<",
"+TModel;+TData;>;>;)V"
}
.end annotation
.line 64
.local p1, "factories":Ljava/util/List;, "Ljava/util/List<Lcom/bumptech/glide/load/model/ModelLoaderFactory<+TModel;+TData;>;>;"
invoke-interface {p1}, Ljava/util/List;->iterator()Ljava/util/Iterator;
move-result-object v0
:goto_4
invoke-interface {v0}, Ljava/util/Iterator;->hasNext()Z
move-result v1
if-eqz v1, :cond_14
invoke-interface {v0}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v1
check-cast v1, Lcom/bumptech/glide/load/model/ModelLoaderFactory;
.line 65
.local v1, "factory":Lcom/bumptech/glide/load/model/ModelLoaderFactory;, "Lcom/bumptech/glide/load/model/ModelLoaderFactory<+TModel;+TData;>;"
invoke-interface {v1}, Lcom/bumptech/glide/load/model/ModelLoaderFactory;->teardown()V
.line 66
.end local v1 # "factory":Lcom/bumptech/glide/load/model/ModelLoaderFactory;, "Lcom/bumptech/glide/load/model/ModelLoaderFactory<+TModel;+TData;>;"
goto :goto_4
.line 67
: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 = {
"<Model:",
"Ljava/lang/Object;",
"Data:",
"Ljava/lang/Object;",
">(",
"Ljava/lang/Class<",
"TModel;>;",
"Ljava/lang/Class<",
"TData;>;",
"Lcom/bumptech/glide/load/model/ModelLoaderFactory<",
"+TModel;+TData;>;)V"
}
.end annotation
.local p1, "modelClass":Ljava/lang/Class;, "Ljava/lang/Class<TModel;>;"
.local p2, "dataClass":Ljava/lang/Class;, "Ljava/lang/Class<TData;>;"
.local p3, "factory":Lcom/bumptech/glide/load/model/ModelLoaderFactory;, "Lcom/bumptech/glide/load/model/ModelLoaderFactory<+TModel;+TData;>;"
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 v0, p0, Lcom/bumptech/glide/load/model/ModelLoaderRegistry;->cache:Lcom/bumptech/glide/load/model/ModelLoaderRegistry$ModelLoaderCache;
invoke-virtual {v0}, 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
.line 35
.end local p0 # "this":Lcom/bumptech/glide/load/model/ModelLoaderRegistry;
.end local p1 # "modelClass":Ljava/lang/Class;, "Ljava/lang/Class<TModel;>;"
.end local p2 # "dataClass":Ljava/lang/Class;, "Ljava/lang/Class<TData;>;"
.end local p3 # "factory":Lcom/bumptech/glide/load/model/ModelLoaderFactory;, "Lcom/bumptech/glide/load/model/ModelLoaderFactory<+TModel;+TData;>;"
:catchall_d
move-exception p1
monitor-exit p0
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 = {
"<Model:",
"Ljava/lang/Object;",
"Data:",
"Ljava/lang/Object;",
">(",
"Ljava/lang/Class<",
"TModel;>;",
"Ljava/lang/Class<",
"TData;>;)",
"Lcom/bumptech/glide/load/model/ModelLoader<",
"TModel;TData;>;"
}
.end annotation
.local p1, "modelClass":Ljava/lang/Class;, "Ljava/lang/Class<TModel;>;"
.local p2, "dataClass":Ljava/lang/Class;, "Ljava/lang/Class<TData;>;"
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 v0
:try_end_7
.catchall {:try_start_1 .. :try_end_7} :catchall_9
monitor-exit p0
return-object v0
.end local p0 # "this":Lcom/bumptech/glide/load/model/ModelLoaderRegistry;
.end local p1 # "modelClass":Ljava/lang/Class;, "Ljava/lang/Class<TModel;>;"
.end local p2 # "dataClass":Ljava/lang/Class;, "Ljava/lang/Class<TData;>;"
:catchall_9
move-exception p1
monitor-exit p0
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
.local p1, "modelClass":Ljava/lang/Class;, "Ljava/lang/Class<*>;"
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 v0
:try_end_7
.catchall {:try_start_1 .. :try_end_7} :catchall_9
monitor-exit p0
return-object v0
.end local p0 # "this":Lcom/bumptech/glide/load/model/ModelLoaderRegistry;
.end local p1 # "modelClass":Ljava/lang/Class;, "Ljava/lang/Class<*>;"
:catchall_9
move-exception p1
monitor-exit p0
throw p1
.end method
.method public getModelLoaders(Ljava/lang/Object;)Ljava/util/List;
.registers 10
.annotation system Ldalvik/annotation/Signature;
value = {
"<A:",
"Ljava/lang/Object;",
">(TA;)",
"Ljava/util/List<",
"Lcom/bumptech/glide/load/model/ModelLoader<",
"TA;*>;>;"
}
.end annotation
.line 74
.local p1, "model":Ljava/lang/Object;, "TA;"
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
.local v0, "modelLoaders":Ljava/util/List;, "Ljava/util/List<Lcom/bumptech/glide/load/model/ModelLoader<TA;*>;>;"
invoke-interface {v0}, Ljava/util/List;->size()I
move-result v1
.line 76
.local v1, "size":I
const/4 v2, 0x1
.line 77
.local v2, "isEmpty":Z
invoke-static {}, Ljava/util/Collections;->emptyList()Ljava/util/List;
move-result-object v3
.line 79
.local v3, "filteredLoaders":Ljava/util/List;, "Ljava/util/List<Lcom/bumptech/glide/load/model/ModelLoader<TA;*>;>;"
const/4 v4, 0x0
.local v4, "i":I
:goto_12
if-ge v4, v1, :cond_31
.line 80
invoke-interface {v0, v4}, Ljava/util/List;->get(I)Ljava/lang/Object;
move-result-object v5
check-cast v5, Lcom/bumptech/glide/load/model/ModelLoader;
.line 81
.local v5, "loader":Lcom/bumptech/glide/load/model/ModelLoader;, "Lcom/bumptech/glide/load/model/ModelLoader<TA;*>;"
invoke-interface {v5, p1}, Lcom/bumptech/glide/load/model/ModelLoader;->handles(Ljava/lang/Object;)Z
move-result v6
if-eqz v6, :cond_2e
.line 82
if-eqz v2, :cond_2b
.line 83
new-instance v6, Ljava/util/ArrayList;
sub-int v7, v1, v4
invoke-direct {v6, v7}, Ljava/util/ArrayList;-><init>(I)V
move-object v3, v6
.line 84
const/4 v2, 0x0
.line 86
:cond_2b
invoke-interface {v3, v5}, Ljava/util/List;->add(Ljava/lang/Object;)Z
.line 79
.end local v5 # "loader":Lcom/bumptech/glide/load/model/ModelLoader;, "Lcom/bumptech/glide/load/model/ModelLoader<TA;*>;"
:cond_2e
add-int/lit8 v4, v4, 0x1
goto :goto_12
.line 89
.end local v4 # "i":I
:cond_31
return-object v3
.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 = {
"<Model:",
"Ljava/lang/Object;",
"Data:",
"Ljava/lang/Object;",
">(",
"Ljava/lang/Class<",
"TModel;>;",
"Ljava/lang/Class<",
"TData;>;",
"Lcom/bumptech/glide/load/model/ModelLoaderFactory<",
"+TModel;+TData;>;)V"
}
.end annotation
.local p1, "modelClass":Ljava/lang/Class;, "Ljava/lang/Class<TModel;>;"
.local p2, "dataClass":Ljava/lang/Class;, "Ljava/lang/Class<TData;>;"
.local p3, "factory":Lcom/bumptech/glide/load/model/ModelLoaderFactory;, "Lcom/bumptech/glide/load/model/ModelLoaderFactory<+TModel;+TData;>;"
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 v0, p0, Lcom/bumptech/glide/load/model/ModelLoaderRegistry;->cache:Lcom/bumptech/glide/load/model/ModelLoaderRegistry$ModelLoaderCache;
invoke-virtual {v0}, 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
.line 43
.end local p0 # "this":Lcom/bumptech/glide/load/model/ModelLoaderRegistry;
.end local p1 # "modelClass":Ljava/lang/Class;, "Ljava/lang/Class<TModel;>;"
.end local p2 # "dataClass":Ljava/lang/Class;, "Ljava/lang/Class<TData;>;"
.end local p3 # "factory":Lcom/bumptech/glide/load/model/ModelLoaderFactory;, "Lcom/bumptech/glide/load/model/ModelLoaderFactory<+TModel;+TData;>;"
:catchall_d
move-exception p1
monitor-exit p0
throw p1
.end method
.method public declared-synchronized remove(Ljava/lang/Class;Ljava/lang/Class;)V
.registers 4
.annotation system Ldalvik/annotation/Signature;
value = {
"<Model:",
"Ljava/lang/Object;",
"Data:",
"Ljava/lang/Object;",
">(",
"Ljava/lang/Class<",
"TModel;>;",
"Ljava/lang/Class<",
"TData;>;)V"
}
.end annotation
.local p1, "modelClass":Ljava/lang/Class;, "Ljava/lang/Class<TModel;>;"
.local p2, "dataClass":Ljava/lang/Class;, "Ljava/lang/Class<TData;>;"
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 v0
invoke-direct {p0, v0}, Lcom/bumptech/glide/load/model/ModelLoaderRegistry;->tearDown(Ljava/util/List;)V
.line 51
iget-object v0, p0, Lcom/bumptech/glide/load/model/ModelLoaderRegistry;->cache:Lcom/bumptech/glide/load/model/ModelLoaderRegistry$ModelLoaderCache;
invoke-virtual {v0}, 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
.line 49
.end local p0 # "this":Lcom/bumptech/glide/load/model/ModelLoaderRegistry;
.end local p1 # "modelClass":Ljava/lang/Class;, "Ljava/lang/Class<TModel;>;"
.end local p2 # "dataClass":Ljava/lang/Class;, "Ljava/lang/Class<TData;>;"
:catchall_11
move-exception p1
monitor-exit p0
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 = {
"<Model:",
"Ljava/lang/Object;",
"Data:",
"Ljava/lang/Object;",
">(",
"Ljava/lang/Class<",
"TModel;>;",
"Ljava/lang/Class<",
"TData;>;",
"Lcom/bumptech/glide/load/model/ModelLoaderFactory<",
"+TModel;+TData;>;)V"
}
.end annotation
.local p1, "modelClass":Ljava/lang/Class;, "Ljava/lang/Class<TModel;>;"
.local p2, "dataClass":Ljava/lang/Class;, "Ljava/lang/Class<TData;>;"
.local p3, "factory":Lcom/bumptech/glide/load/model/ModelLoaderFactory;, "Lcom/bumptech/glide/load/model/ModelLoaderFactory<+TModel;+TData;>;"
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 v0
invoke-direct {p0, v0}, Lcom/bumptech/glide/load/model/ModelLoaderRegistry;->tearDown(Ljava/util/List;)V
.line 59
iget-object v0, p0, Lcom/bumptech/glide/load/model/ModelLoaderRegistry;->cache:Lcom/bumptech/glide/load/model/ModelLoaderRegistry$ModelLoaderCache;
invoke-virtual {v0}, 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
.line 57
.end local p0 # "this":Lcom/bumptech/glide/load/model/ModelLoaderRegistry;
.end local p1 # "modelClass":Ljava/lang/Class;, "Ljava/lang/Class<TModel;>;"
.end local p2 # "dataClass":Ljava/lang/Class;, "Ljava/lang/Class<TData;>;"
.end local p3 # "factory":Lcom/bumptech/glide/load/model/ModelLoaderFactory;, "Lcom/bumptech/glide/load/model/ModelLoaderFactory<+TModel;+TData;>;"
:catchall_11
move-exception p1
monitor-exit p0
throw p1
.end method