Utils.smali
.class public final Lbutterknife/internal/Utils;
.super Ljava/lang/Object;
.source "Utils.java"
# static fields
.field private static final VALUE:Landroid/util/TypedValue;
# direct methods
.method static constructor <clinit>()V
.registers 1
.line 20
new-instance v0, Landroid/util/TypedValue;
invoke-direct {v0}, Landroid/util/TypedValue;-><init>()V
sput-object v0, Lbutterknife/internal/Utils;->VALUE:Landroid/util/TypedValue;
return-void
.end method
.method private constructor <init>()V
.registers 3
.line 143
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 144
new-instance v0, Ljava/lang/AssertionError;
const-string v1, "No instances."
invoke-direct {v0, v1}, Ljava/lang/AssertionError;-><init>(Ljava/lang/Object;)V
throw v0
.end method
.method public static varargs arrayFilteringNull([Ljava/lang/Object;)[Ljava/lang/Object;
.registers 6
.annotation system Ldalvik/annotation/Signature;
value = {
"<T:",
"Ljava/lang/Object;",
">([TT;)[TT;"
}
.end annotation
.annotation runtime Ljava/lang/SafeVarargs;
.end annotation
.line 54
.local p0, "views":[Ljava/lang/Object;, "[TT;"
const/4 v0, 0x0
.line 55
.local v0, "end":I
array-length v1, p0
.line 56
.local v1, "length":I
const/4 v2, 0x0
.local v2, "i":I
:goto_3
if-ge v2, v1, :cond_11
.line 57
aget-object v3, p0, v2
.line 58
.local v3, "view":Ljava/lang/Object;, "TT;"
if-eqz v3, :cond_e
.line 59
add-int/lit8 v4, v0, 0x1
.end local v0 # "end":I
.local v4, "end":I
aput-object v3, p0, v0
move v0, v4
.line 56
.end local v3 # "view":Ljava/lang/Object;, "TT;"
.end local v4 # "end":I
.restart local v0 # "end":I
:cond_e
add-int/lit8 v2, v2, 0x1
goto :goto_3
.line 62
.end local v2 # "i":I
:cond_11
if-ne v0, v1, :cond_14
.line 63
return-object p0
.line 66
:cond_14
invoke-virtual {p0}, Ljava/lang/Object;->getClass()Ljava/lang/Class;
move-result-object v2
invoke-virtual {v2}, Ljava/lang/Class;->getComponentType()Ljava/lang/Class;
move-result-object v2
invoke-static {v2, v0}, Ljava/lang/reflect/Array;->newInstance(Ljava/lang/Class;I)Ljava/lang/Object;
move-result-object v2
check-cast v2, [Ljava/lang/Object;
.line 67
.local v2, "newViews":[Ljava/lang/Object;, "[TT;"
const/4 v3, 0x0
invoke-static {p0, v3, v2, v3, v0}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V
.line 68
return-object v2
.end method
.method public static castParam(Ljava/lang/Object;Ljava/lang/String;ILjava/lang/String;ILjava/lang/Class;)Ljava/lang/Object;
.registers 11
.param p0, "value" # Ljava/lang/Object;
.param p1, "from" # Ljava/lang/String;
.param p2, "fromPos" # I
.param p3, "to" # Ljava/lang/String;
.param p4, "toPos" # I
.annotation system Ldalvik/annotation/Signature;
value = {
"<T:",
"Ljava/lang/Object;",
">(",
"Ljava/lang/Object;",
"Ljava/lang/String;",
"I",
"Ljava/lang/String;",
"I",
"Ljava/lang/Class<",
"TT;>;)TT;"
}
.end annotation
.line 122
.local p5, "cls":Ljava/lang/Class;, "Ljava/lang/Class<TT;>;"
:try_start_0
invoke-virtual {p5, p0}, Ljava/lang/Class;->cast(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v0
:try_end_4
.catch Ljava/lang/ClassCastException; {:try_start_0 .. :try_end_4} :catch_5
return-object v0
.line 123
:catch_5
move-exception v0
.line 124
.local v0, "e":Ljava/lang/ClassCastException;
new-instance v1, Ljava/lang/IllegalStateException;
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
const-string v3, "Parameter #"
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
add-int/lit8 v3, p2, 0x1
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
const-string v3, " of method \'"
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v2, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const-string v4, "\' was of the wrong type for parameter #"
invoke-virtual {v2, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
add-int/lit8 v4, p4, 0x1
invoke-virtual {v2, v4}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v2, p3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const-string v3, "\'. See cause for more info."
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v2
invoke-direct {v1, v2, v0}, Ljava/lang/IllegalStateException;-><init>(Ljava/lang/String;Ljava/lang/Throwable;)V
throw v1
.end method
.method public static castView(Landroid/view/View;ILjava/lang/String;Ljava/lang/Class;)Ljava/lang/Object;
.registers 9
.param p0, "view" # Landroid/view/View;
.param p1, "id" # I
.param p2, "who" # Ljava/lang/String;
.annotation system Ldalvik/annotation/Signature;
value = {
"<T:",
"Ljava/lang/Object;",
">(",
"Landroid/view/View;",
"I",
"Ljava/lang/String;",
"Ljava/lang/Class<",
"TT;>;)TT;"
}
.end annotation
.line 106
.local p3, "cls":Ljava/lang/Class;, "Ljava/lang/Class<TT;>;"
:try_start_0
invoke-virtual {p3, p0}, Ljava/lang/Class;->cast(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v0
:try_end_4
.catch Ljava/lang/ClassCastException; {:try_start_0 .. :try_end_4} :catch_5
return-object v0
.line 107
:catch_5
move-exception v0
.line 108
.local v0, "e":Ljava/lang/ClassCastException;
invoke-static {p0, p1}, Lbutterknife/internal/Utils;->getResourceEntryName(Landroid/view/View;I)Ljava/lang/String;
move-result-object v1
.line 109
.local v1, "name":Ljava/lang/String;
new-instance v2, Ljava/lang/IllegalStateException;
new-instance v3, Ljava/lang/StringBuilder;
invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
const-string v4, "View \'"
invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v3, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const-string v4, "\' with ID "
invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v3, p1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
const-string v4, " for "
invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v3, p2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const-string v4, " was of the wrong type. See cause for more info."
invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v3
invoke-direct {v2, v3, v0}, Ljava/lang/IllegalStateException;-><init>(Ljava/lang/String;Ljava/lang/Throwable;)V
throw v2
.end method
.method public static findOptionalViewAsType(Landroid/view/View;ILjava/lang/String;Ljava/lang/Class;)Ljava/lang/Object;
.registers 6
.param p0, "source" # Landroid/view/View;
.param p1, "id" # I
.param p2, "who" # Ljava/lang/String;
.annotation system Ldalvik/annotation/Signature;
value = {
"<T:",
"Ljava/lang/Object;",
">(",
"Landroid/view/View;",
"I",
"Ljava/lang/String;",
"Ljava/lang/Class<",
"TT;>;)TT;"
}
.end annotation
.line 78
.local p3, "cls":Ljava/lang/Class;, "Ljava/lang/Class<TT;>;"
invoke-virtual {p0, p1}, Landroid/view/View;->findViewById(I)Landroid/view/View;
move-result-object v0
.line 79
.local v0, "view":Landroid/view/View;
invoke-static {v0, p1, p2, p3}, Lbutterknife/internal/Utils;->castView(Landroid/view/View;ILjava/lang/String;Ljava/lang/Class;)Ljava/lang/Object;
move-result-object v1
return-object v1
.end method
.method public static findRequiredView(Landroid/view/View;ILjava/lang/String;)Landroid/view/View;
.registers 8
.param p0, "source" # Landroid/view/View;
.param p1, "id" # I
.param p2, "who" # Ljava/lang/String;
.line 83
invoke-virtual {p0, p1}, Landroid/view/View;->findViewById(I)Landroid/view/View;
move-result-object v0
.line 84
.local v0, "view":Landroid/view/View;
if-eqz v0, :cond_7
.line 85
return-object v0
.line 87
:cond_7
invoke-static {p0, p1}, Lbutterknife/internal/Utils;->getResourceEntryName(Landroid/view/View;I)Ljava/lang/String;
move-result-object v1
.line 88
.local v1, "name":Ljava/lang/String;
new-instance v2, Ljava/lang/IllegalStateException;
new-instance v3, Ljava/lang/StringBuilder;
invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
const-string v4, "Required view \'"
invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v3, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const-string v4, "\' with ID "
invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v3, p1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
const-string v4, " for "
invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v3, p2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const-string v4, " was not found. If this view is optional add \'@Nullable\' (fields) or \'@Optional\' (methods) annotation."
invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v3
invoke-direct {v2, v3}, Ljava/lang/IllegalStateException;-><init>(Ljava/lang/String;)V
throw v2
.end method
.method public static findRequiredViewAsType(Landroid/view/View;ILjava/lang/String;Ljava/lang/Class;)Ljava/lang/Object;
.registers 6
.param p0, "source" # Landroid/view/View;
.param p1, "id" # I
.param p2, "who" # Ljava/lang/String;
.annotation system Ldalvik/annotation/Signature;
value = {
"<T:",
"Ljava/lang/Object;",
">(",
"Landroid/view/View;",
"I",
"Ljava/lang/String;",
"Ljava/lang/Class<",
"TT;>;)TT;"
}
.end annotation
.line 100
.local p3, "cls":Ljava/lang/Class;, "Ljava/lang/Class<TT;>;"
invoke-static {p0, p1, p2}, Lbutterknife/internal/Utils;->findRequiredView(Landroid/view/View;ILjava/lang/String;)Landroid/view/View;
move-result-object v0
.line 101
.local v0, "view":Landroid/view/View;
invoke-static {v0, p1, p2, p3}, Lbutterknife/internal/Utils;->castView(Landroid/view/View;ILjava/lang/String;Ljava/lang/Class;)Ljava/lang/Object;
move-result-object v1
return-object v1
.end method
.method public static getFloat(Landroid/content/Context;I)F
.registers 6
.param p0, "context" # Landroid/content/Context;
.param p1, "id" # I
.line 43
sget-object v0, Lbutterknife/internal/Utils;->VALUE:Landroid/util/TypedValue;
.line 44
.local v0, "value":Landroid/util/TypedValue;
invoke-virtual {p0}, Landroid/content/Context;->getResources()Landroid/content/res/Resources;
move-result-object v1
const/4 v2, 0x1
invoke-virtual {v1, p1, v0, v2}, Landroid/content/res/Resources;->getValue(ILandroid/util/TypedValue;Z)V
.line 45
iget v1, v0, Landroid/util/TypedValue;->type:I
const/4 v2, 0x4
if-ne v1, v2, :cond_14
.line 46
invoke-virtual {v0}, Landroid/util/TypedValue;->getFloat()F
move-result v1
return v1
.line 48
:cond_14
new-instance v1, Landroid/content/res/Resources$NotFoundException;
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
const-string v3, "Resource ID #0x"
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-static {p1}, Ljava/lang/Integer;->toHexString(I)Ljava/lang/String;
move-result-object v3
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const-string v3, " type #0x"
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget v3, v0, Landroid/util/TypedValue;->type:I
.line 49
invoke-static {v3}, Ljava/lang/Integer;->toHexString(I)Ljava/lang/String;
move-result-object v3
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const-string v3, " is not valid"
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v2
invoke-direct {v1, v2}, Landroid/content/res/Resources$NotFoundException;-><init>(Ljava/lang/String;)V
throw v1
.end method
.method private static getResourceEntryName(Landroid/view/View;I)Ljava/lang/String;
.registers 3
.param p0, "view" # Landroid/view/View;
.param p1, "id" # I
.line 137
invoke-virtual {p0}, Landroid/view/View;->isInEditMode()Z
move-result v0
if-eqz v0, :cond_9
.line 138
const-string v0, "<unavailable while editing>"
return-object v0
.line 140
:cond_9
invoke-virtual {p0}, Landroid/view/View;->getContext()Landroid/content/Context;
move-result-object v0
invoke-virtual {v0}, Landroid/content/Context;->getResources()Landroid/content/res/Resources;
move-result-object v0
invoke-virtual {v0, p1}, Landroid/content/res/Resources;->getResourceEntryName(I)Ljava/lang/String;
move-result-object v0
return-object v0
.end method
.method public static getTintedDrawable(Landroid/content/Context;II)Landroid/graphics/drawable/Drawable;
.registers 7
.param p0, "context" # Landroid/content/Context;
.param p1, "id" # I
.param p2, "tintAttrId" # I
.line 25
invoke-virtual {p0}, Landroid/content/Context;->getTheme()Landroid/content/res/Resources$Theme;
move-result-object v0
sget-object v1, Lbutterknife/internal/Utils;->VALUE:Landroid/util/TypedValue;
const/4 v2, 0x1
invoke-virtual {v0, p2, v1, v2}, Landroid/content/res/Resources$Theme;->resolveAttribute(ILandroid/util/TypedValue;Z)Z
move-result v0
.line 26
.local v0, "attributeFound":Z
if-eqz v0, :cond_25
.line 34
invoke-static {p0, p1}, Landroidx/core/content/ContextCompat;->getDrawable(Landroid/content/Context;I)Landroid/graphics/drawable/Drawable;
move-result-object v1
.line 35
.local v1, "drawable":Landroid/graphics/drawable/Drawable;
invoke-virtual {v1}, Landroid/graphics/drawable/Drawable;->mutate()Landroid/graphics/drawable/Drawable;
move-result-object v2
invoke-static {v2}, Landroidx/core/graphics/drawable/DrawableCompat;->wrap(Landroid/graphics/drawable/Drawable;)Landroid/graphics/drawable/Drawable;
move-result-object v1
.line 36
sget-object v2, Lbutterknife/internal/Utils;->VALUE:Landroid/util/TypedValue;
iget v2, v2, Landroid/util/TypedValue;->resourceId:I
invoke-static {p0, v2}, Landroidx/core/content/ContextCompat;->getColor(Landroid/content/Context;I)I
move-result v2
.line 37
.local v2, "color":I
invoke-static {v1, v2}, Landroidx/core/graphics/drawable/DrawableCompat;->setTint(Landroid/graphics/drawable/Drawable;I)V
.line 38
return-object v1
.line 27
.end local v1 # "drawable":Landroid/graphics/drawable/Drawable;
.end local v2 # "color":I
:cond_25
new-instance v1, Landroid/content/res/Resources$NotFoundException;
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
const-string v3, "Required tint color attribute with name "
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
.line 28
invoke-virtual {p0}, Landroid/content/Context;->getResources()Landroid/content/res/Resources;
move-result-object v3
invoke-virtual {v3, p2}, Landroid/content/res/Resources;->getResourceEntryName(I)Ljava/lang/String;
move-result-object v3
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const-string v3, " and attribute ID "
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v2, p2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
const-string v3, " was not found."
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v2
invoke-direct {v1, v2}, Landroid/content/res/Resources$NotFoundException;-><init>(Ljava/lang/String;)V
throw v1
.end method
.method public static varargs listFilteringNull([Ljava/lang/Object;)Ljava/util/List;
.registers 3
.annotation system Ldalvik/annotation/Signature;
value = {
"<T:",
"Ljava/lang/Object;",
">([TT;)",
"Ljava/util/List<",
"TT;>;"
}
.end annotation
.annotation runtime Ljava/lang/SafeVarargs;
.end annotation
.line 73
.local p0, "views":[Ljava/lang/Object;, "[TT;"
new-instance v0, Lbutterknife/internal/ImmutableList;
invoke-static {p0}, Lbutterknife/internal/Utils;->arrayFilteringNull([Ljava/lang/Object;)[Ljava/lang/Object;
move-result-object v1
invoke-direct {v0, v1}, Lbutterknife/internal/ImmutableList;-><init>([Ljava/lang/Object;)V
return-object v0
.end method