TabIndicatorInterpolator.smali
.class Lcom/google/android/material/tabs/TabIndicatorInterpolator;
.super Ljava/lang/Object;
.source "TabIndicatorInterpolator.java"
# static fields
.field private static final MIN_INDICATOR_WIDTH:I = 0x18
# direct methods
.method constructor <init>()V
.registers 1
.line 48
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
.method static calculateIndicatorWidthForTab(Lcom/google/android/material/tabs/TabLayout;Landroid/view/View;)Landroid/graphics/RectF;
.registers 5
if-nez p1, :cond_8
.line 105
new-instance p0, Landroid/graphics/RectF;
invoke-direct {p0}, Landroid/graphics/RectF;-><init>()V
return-object p0
.line 109
:cond_8
invoke-virtual {p0}, Lcom/google/android/material/tabs/TabLayout;->isTabIndicatorFullWidth()Z
move-result p0
if-nez p0, :cond_1b
instance-of p0, p1, Lcom/google/android/material/tabs/TabLayout$TabView;
if-eqz p0, :cond_1b
.line 110
check-cast p1, Lcom/google/android/material/tabs/TabLayout$TabView;
const/16 p0, 0x18
invoke-static {p1, p0}, Lcom/google/android/material/tabs/TabIndicatorInterpolator;->calculateTabViewContentBounds(Lcom/google/android/material/tabs/TabLayout$TabView;I)Landroid/graphics/RectF;
move-result-object p0
return-object p0
.line 114
:cond_1b
new-instance p0, Landroid/graphics/RectF;
invoke-virtual {p1}, Landroid/view/View;->getLeft()I
move-result v0
int-to-float v0, v0
invoke-virtual {p1}, Landroid/view/View;->getTop()I
move-result v1
int-to-float v1, v1
invoke-virtual {p1}, Landroid/view/View;->getRight()I
move-result v2
int-to-float v2, v2
invoke-virtual {p1}, Landroid/view/View;->getBottom()I
move-result p1
int-to-float p1, p1
invoke-direct {p0, v0, v1, v2, p1}, Landroid/graphics/RectF;-><init>(FFFF)V
return-object p0
.end method
.method static calculateTabViewContentBounds(Lcom/google/android/material/tabs/TabLayout$TabView;I)Landroid/graphics/RectF;
.registers 5
.line 72
invoke-virtual {p0}, Lcom/google/android/material/tabs/TabLayout$TabView;->getContentWidth()I
move-result v0
.line 73
invoke-virtual {p0}, Lcom/google/android/material/tabs/TabLayout$TabView;->getContentHeight()I
move-result v1
.line 74
invoke-virtual {p0}, Lcom/google/android/material/tabs/TabLayout$TabView;->getContext()Landroid/content/Context;
move-result-object v2
invoke-static {v2, p1}, Lcom/google/android/material/internal/ViewUtils;->dpToPx(Landroid/content/Context;I)F
move-result p1
float-to-int p1, p1
if-ge v0, p1, :cond_14
move v0, p1
.line 80
:cond_14
invoke-virtual {p0}, Lcom/google/android/material/tabs/TabLayout$TabView;->getLeft()I
move-result p1
invoke-virtual {p0}, Lcom/google/android/material/tabs/TabLayout$TabView;->getRight()I
move-result v2
add-int/2addr p1, v2
div-int/lit8 p1, p1, 0x2
.line 81
invoke-virtual {p0}, Lcom/google/android/material/tabs/TabLayout$TabView;->getTop()I
move-result v2
invoke-virtual {p0}, Lcom/google/android/material/tabs/TabLayout$TabView;->getBottom()I
move-result p0
add-int/2addr v2, p0
div-int/lit8 v2, v2, 0x2
.line 82
div-int/lit8 v0, v0, 0x2
sub-int p0, p1, v0
.line 83
div-int/lit8 v1, v1, 0x2
sub-int v1, v2, v1
add-int/2addr v0, p1
.line 85
div-int/lit8 p1, p1, 0x2
add-int/2addr v2, p1
.line 87
new-instance p1, Landroid/graphics/RectF;
int-to-float p0, p0
int-to-float v1, v1
int-to-float v0, v0
int-to-float v2, v2
invoke-direct {p1, p0, v1, v0, v2}, Landroid/graphics/RectF;-><init>(FFFF)V
return-object p1
.end method
# virtual methods
.method setIndicatorBoundsForOffset(Lcom/google/android/material/tabs/TabLayout;Landroid/view/View;Landroid/view/View;FLandroid/graphics/drawable/Drawable;)V
.registers 7
.line 161
invoke-static {p1, p2}, Lcom/google/android/material/tabs/TabIndicatorInterpolator;->calculateIndicatorWidthForTab(Lcom/google/android/material/tabs/TabLayout;Landroid/view/View;)Landroid/graphics/RectF;
move-result-object p2
.line 164
invoke-static {p1, p3}, Lcom/google/android/material/tabs/TabIndicatorInterpolator;->calculateIndicatorWidthForTab(Lcom/google/android/material/tabs/TabLayout;Landroid/view/View;)Landroid/graphics/RectF;
move-result-object p1
.line 165
iget p3, p2, Landroid/graphics/RectF;->left:F
float-to-int p3, p3
iget v0, p1, Landroid/graphics/RectF;->left:F
float-to-int v0, v0
.line 166
invoke-static {p3, v0, p4}, Lcom/google/android/material/animation/AnimationUtils;->lerp(IIF)I
move-result p3
.line 167
invoke-virtual {p5}, Landroid/graphics/drawable/Drawable;->getBounds()Landroid/graphics/Rect;
move-result-object v0
iget v0, v0, Landroid/graphics/Rect;->top:I
iget p2, p2, Landroid/graphics/RectF;->right:F
float-to-int p2, p2
iget p1, p1, Landroid/graphics/RectF;->right:F
float-to-int p1, p1
.line 168
invoke-static {p2, p1, p4}, Lcom/google/android/material/animation/AnimationUtils;->lerp(IIF)I
move-result p1
.line 169
invoke-virtual {p5}, Landroid/graphics/drawable/Drawable;->getBounds()Landroid/graphics/Rect;
move-result-object p2
iget p2, p2, Landroid/graphics/Rect;->bottom:I
.line 165
invoke-virtual {p5, p3, v0, p1, p2}, Landroid/graphics/drawable/Drawable;->setBounds(IIII)V
return-void
.end method
.method setIndicatorBoundsForTab(Lcom/google/android/material/tabs/TabLayout;Landroid/view/View;Landroid/graphics/drawable/Drawable;)V
.registers 6
.line 129
invoke-static {p1, p2}, Lcom/google/android/material/tabs/TabIndicatorInterpolator;->calculateIndicatorWidthForTab(Lcom/google/android/material/tabs/TabLayout;Landroid/view/View;)Landroid/graphics/RectF;
move-result-object p1
.line 130
iget p2, p1, Landroid/graphics/RectF;->left:F
float-to-int p2, p2
.line 132
invoke-virtual {p3}, Landroid/graphics/drawable/Drawable;->getBounds()Landroid/graphics/Rect;
move-result-object v0
iget v0, v0, Landroid/graphics/Rect;->top:I
iget p1, p1, Landroid/graphics/RectF;->right:F
float-to-int p1, p1
.line 134
invoke-virtual {p3}, Landroid/graphics/drawable/Drawable;->getBounds()Landroid/graphics/Rect;
move-result-object v1
iget v1, v1, Landroid/graphics/Rect;->bottom:I
.line 130
invoke-virtual {p3, p2, v0, p1, v1}, Landroid/graphics/drawable/Drawable;->setBounds(IIII)V
return-void
.end method