.class Lcom/google/android/material/tabs/TabLayout$SlidingTabIndicator; .super Landroid/widget/LinearLayout; .source "TabLayout.java" # annotations .annotation system Ldalvik/annotation/EnclosingClass; value = Lcom/google/android/material/tabs/TabLayout; .end annotation .annotation system Ldalvik/annotation/InnerClass; accessFlags = 0x2 name = "SlidingTabIndicator" .end annotation # instance fields .field private final defaultSelectionIndicator:Landroid/graphics/drawable/GradientDrawable; .field private indicatorAnimator:Landroid/animation/ValueAnimator; .field private indicatorLeft:I .field private indicatorRight:I .field private layoutDirection:I .field private selectedIndicatorHeight:I .field private final selectedIndicatorPaint:Landroid/graphics/Paint; .field selectedPosition:I .field selectionOffset:F .field final synthetic this$0:Lcom/google/android/material/tabs/TabLayout; # direct methods .method constructor (Lcom/google/android/material/tabs/TabLayout;Landroid/content/Context;)V .registers 3 .line 2385 iput-object p1, p0, Lcom/google/android/material/tabs/TabLayout$SlidingTabIndicator;->this$0:Lcom/google/android/material/tabs/TabLayout; .line 2386 invoke-direct {p0, p2}, Landroid/widget/LinearLayout;->(Landroid/content/Context;)V const/4 p1, -0x1 .line 2375 iput p1, p0, Lcom/google/android/material/tabs/TabLayout$SlidingTabIndicator;->selectedPosition:I .line 2378 iput p1, p0, Lcom/google/android/material/tabs/TabLayout$SlidingTabIndicator;->layoutDirection:I .line 2380 iput p1, p0, Lcom/google/android/material/tabs/TabLayout$SlidingTabIndicator;->indicatorLeft:I .line 2381 iput p1, p0, Lcom/google/android/material/tabs/TabLayout$SlidingTabIndicator;->indicatorRight:I const/4 p1, 0x0 .line 2387 invoke-virtual {p0, p1}, Lcom/google/android/material/tabs/TabLayout$SlidingTabIndicator;->setWillNotDraw(Z)V .line 2388 new-instance p1, Landroid/graphics/Paint; invoke-direct {p1}, Landroid/graphics/Paint;->()V iput-object p1, p0, Lcom/google/android/material/tabs/TabLayout$SlidingTabIndicator;->selectedIndicatorPaint:Landroid/graphics/Paint; .line 2389 new-instance p1, Landroid/graphics/drawable/GradientDrawable; invoke-direct {p1}, Landroid/graphics/drawable/GradientDrawable;->()V iput-object p1, p0, Lcom/google/android/material/tabs/TabLayout$SlidingTabIndicator;->defaultSelectionIndicator:Landroid/graphics/drawable/GradientDrawable; return-void .end method .method private calculateTabViewContentBounds(Lcom/google/android/material/tabs/TabLayout$TabView;Landroid/graphics/RectF;)V .registers 6 .line 2632 # invokes: Lcom/google/android/material/tabs/TabLayout$TabView;->getContentWidth()I invoke-static {p1}, Lcom/google/android/material/tabs/TabLayout$TabView;->access$500(Lcom/google/android/material/tabs/TabLayout$TabView;)I move-result v0 .line 2634 iget-object v1, p0, Lcom/google/android/material/tabs/TabLayout$SlidingTabIndicator;->this$0:Lcom/google/android/material/tabs/TabLayout; const/16 v2, 0x18 invoke-virtual {v1, v2}, Lcom/google/android/material/tabs/TabLayout;->dpToPx(I)I move-result v1 if-ge v0, v1, :cond_14 .line 2635 iget-object v0, p0, Lcom/google/android/material/tabs/TabLayout$SlidingTabIndicator;->this$0:Lcom/google/android/material/tabs/TabLayout; invoke-virtual {v0, v2}, Lcom/google/android/material/tabs/TabLayout;->dpToPx(I)I move-result v0 .line 2638 :cond_14 invoke-virtual {p1}, Lcom/google/android/material/tabs/TabLayout$TabView;->getLeft()I move-result v1 invoke-virtual {p1}, Lcom/google/android/material/tabs/TabLayout$TabView;->getRight()I move-result p1 add-int/2addr v1, p1 div-int/lit8 v1, v1, 0x2 .line 2639 div-int/lit8 v0, v0, 0x2 sub-int p1, v1, v0 add-int/2addr v1, v0 int-to-float p1, p1 int-to-float v0, v1 const/4 v1, 0x0 .line 2642 invoke-virtual {p2, p1, v1, v0, v1}, Landroid/graphics/RectF;->set(FFFF)V return-void .end method .method private updateIndicatorPosition()V .registers 8 .line 2519 iget v0, p0, Lcom/google/android/material/tabs/TabLayout$SlidingTabIndicator;->selectedPosition:I invoke-virtual {p0, v0}, Lcom/google/android/material/tabs/TabLayout$SlidingTabIndicator;->getChildAt(I)Landroid/view/View; move-result-object v0 if-eqz v0, :cond_99 .line 2523 invoke-virtual {v0}, Landroid/view/View;->getWidth()I move-result v1 if-lez v1, :cond_99 .line 2524 invoke-virtual {v0}, Landroid/view/View;->getLeft()I move-result v1 .line 2525 invoke-virtual {v0}, Landroid/view/View;->getRight()I move-result v2 .line 2527 iget-object v3, p0, Lcom/google/android/material/tabs/TabLayout$SlidingTabIndicator;->this$0:Lcom/google/android/material/tabs/TabLayout; iget-boolean v3, v3, Lcom/google/android/material/tabs/TabLayout;->tabIndicatorFullWidth:Z if-nez v3, :cond_3d instance-of v3, v0, Lcom/google/android/material/tabs/TabLayout$TabView; if-eqz v3, :cond_3d .line 2528 check-cast v0, Lcom/google/android/material/tabs/TabLayout$TabView; iget-object v1, p0, Lcom/google/android/material/tabs/TabLayout$SlidingTabIndicator;->this$0:Lcom/google/android/material/tabs/TabLayout; # getter for: Lcom/google/android/material/tabs/TabLayout;->tabViewContentBounds:Landroid/graphics/RectF; invoke-static {v1}, Lcom/google/android/material/tabs/TabLayout;->access$400(Lcom/google/android/material/tabs/TabLayout;)Landroid/graphics/RectF; move-result-object v1 invoke-direct {p0, v0, v1}, Lcom/google/android/material/tabs/TabLayout$SlidingTabIndicator;->calculateTabViewContentBounds(Lcom/google/android/material/tabs/TabLayout$TabView;Landroid/graphics/RectF;)V .line 2529 iget-object v0, p0, Lcom/google/android/material/tabs/TabLayout$SlidingTabIndicator;->this$0:Lcom/google/android/material/tabs/TabLayout; # getter for: Lcom/google/android/material/tabs/TabLayout;->tabViewContentBounds:Landroid/graphics/RectF; invoke-static {v0}, Lcom/google/android/material/tabs/TabLayout;->access$400(Lcom/google/android/material/tabs/TabLayout;)Landroid/graphics/RectF; move-result-object v0 iget v0, v0, Landroid/graphics/RectF;->left:F float-to-int v1, v0 .line 2530 iget-object v0, p0, Lcom/google/android/material/tabs/TabLayout$SlidingTabIndicator;->this$0:Lcom/google/android/material/tabs/TabLayout; # getter for: Lcom/google/android/material/tabs/TabLayout;->tabViewContentBounds:Landroid/graphics/RectF; invoke-static {v0}, Lcom/google/android/material/tabs/TabLayout;->access$400(Lcom/google/android/material/tabs/TabLayout;)Landroid/graphics/RectF; move-result-object v0 iget v0, v0, Landroid/graphics/RectF;->right:F float-to-int v2, v0 .line 2533 :cond_3d iget v0, p0, Lcom/google/android/material/tabs/TabLayout$SlidingTabIndicator;->selectionOffset:F const/4 v3, 0x0 cmpl-float v0, v0, v3 if-lez v0, :cond_9b iget v0, p0, Lcom/google/android/material/tabs/TabLayout$SlidingTabIndicator;->selectedPosition:I invoke-virtual {p0}, Lcom/google/android/material/tabs/TabLayout$SlidingTabIndicator;->getChildCount()I move-result v3 add-int/lit8 v3, v3, -0x1 if-ge v0, v3, :cond_9b .line 2535 iget v0, p0, Lcom/google/android/material/tabs/TabLayout$SlidingTabIndicator;->selectedPosition:I add-int/lit8 v0, v0, 0x1 invoke-virtual {p0, v0}, Lcom/google/android/material/tabs/TabLayout$SlidingTabIndicator;->getChildAt(I)Landroid/view/View; move-result-object v0 .line 2536 invoke-virtual {v0}, Landroid/view/View;->getLeft()I move-result v3 .line 2537 invoke-virtual {v0}, Landroid/view/View;->getRight()I move-result v4 .line 2539 iget-object v5, p0, Lcom/google/android/material/tabs/TabLayout$SlidingTabIndicator;->this$0:Lcom/google/android/material/tabs/TabLayout; iget-boolean v5, v5, Lcom/google/android/material/tabs/TabLayout;->tabIndicatorFullWidth:Z if-nez v5, :cond_85 instance-of v5, v0, Lcom/google/android/material/tabs/TabLayout$TabView; if-eqz v5, :cond_85 .line 2540 check-cast v0, Lcom/google/android/material/tabs/TabLayout$TabView; iget-object v3, p0, Lcom/google/android/material/tabs/TabLayout$SlidingTabIndicator;->this$0:Lcom/google/android/material/tabs/TabLayout; # getter for: Lcom/google/android/material/tabs/TabLayout;->tabViewContentBounds:Landroid/graphics/RectF; invoke-static {v3}, Lcom/google/android/material/tabs/TabLayout;->access$400(Lcom/google/android/material/tabs/TabLayout;)Landroid/graphics/RectF; move-result-object v3 invoke-direct {p0, v0, v3}, Lcom/google/android/material/tabs/TabLayout$SlidingTabIndicator;->calculateTabViewContentBounds(Lcom/google/android/material/tabs/TabLayout$TabView;Landroid/graphics/RectF;)V .line 2541 iget-object v0, p0, Lcom/google/android/material/tabs/TabLayout$SlidingTabIndicator;->this$0:Lcom/google/android/material/tabs/TabLayout; # getter for: Lcom/google/android/material/tabs/TabLayout;->tabViewContentBounds:Landroid/graphics/RectF; invoke-static {v0}, Lcom/google/android/material/tabs/TabLayout;->access$400(Lcom/google/android/material/tabs/TabLayout;)Landroid/graphics/RectF; move-result-object v0 iget v0, v0, Landroid/graphics/RectF;->left:F float-to-int v3, v0 .line 2542 iget-object v0, p0, Lcom/google/android/material/tabs/TabLayout$SlidingTabIndicator;->this$0:Lcom/google/android/material/tabs/TabLayout; # getter for: Lcom/google/android/material/tabs/TabLayout;->tabViewContentBounds:Landroid/graphics/RectF; invoke-static {v0}, Lcom/google/android/material/tabs/TabLayout;->access$400(Lcom/google/android/material/tabs/TabLayout;)Landroid/graphics/RectF; move-result-object v0 iget v0, v0, Landroid/graphics/RectF;->right:F float-to-int v4, v0 .line 2545 :cond_85 iget v0, p0, Lcom/google/android/material/tabs/TabLayout$SlidingTabIndicator;->selectionOffset:F int-to-float v3, v3 mul-float/2addr v3, v0 const/high16 v5, 0x3f800000 # 1.0f sub-float v6, v5, v0 int-to-float v1, v1 mul-float/2addr v6, v1 add-float/2addr v3, v6 float-to-int v1, v3 int-to-float v3, v4 mul-float/2addr v3, v0 sub-float/2addr v5, v0 int-to-float v0, v2 mul-float/2addr v5, v0 add-float/2addr v3, v5 float-to-int v2, v3 goto :goto_9b :cond_99 const/4 v1, -0x1 move v2, v1 .line 2553 :cond_9b :goto_9b invoke-virtual {p0, v1, v2}, Lcom/google/android/material/tabs/TabLayout$SlidingTabIndicator;->setIndicatorPosition(II)V return-void .end method # virtual methods .method animateIndicatorToPosition(II)V .registers 12 .line 2566 iget-object v0, p0, Lcom/google/android/material/tabs/TabLayout$SlidingTabIndicator;->indicatorAnimator:Landroid/animation/ValueAnimator; if-eqz v0, :cond_f invoke-virtual {v0}, Landroid/animation/ValueAnimator;->isRunning()Z move-result v0 if-eqz v0, :cond_f .line 2567 iget-object v0, p0, Lcom/google/android/material/tabs/TabLayout$SlidingTabIndicator;->indicatorAnimator:Landroid/animation/ValueAnimator; invoke-virtual {v0}, Landroid/animation/ValueAnimator;->cancel()V .line 2570 :cond_f invoke-virtual {p0, p1}, Lcom/google/android/material/tabs/TabLayout$SlidingTabIndicator;->getChildAt(I)Landroid/view/View; move-result-object v0 if-nez v0, :cond_19 .line 2573 invoke-direct {p0}, Lcom/google/android/material/tabs/TabLayout$SlidingTabIndicator;->updateIndicatorPosition()V return-void .line 2577 :cond_19 invoke-virtual {v0}, Landroid/view/View;->getLeft()I move-result v1 .line 2578 invoke-virtual {v0}, Landroid/view/View;->getRight()I move-result v2 .line 2580 iget-object v3, p0, Lcom/google/android/material/tabs/TabLayout$SlidingTabIndicator;->this$0:Lcom/google/android/material/tabs/TabLayout; iget-boolean v3, v3, Lcom/google/android/material/tabs/TabLayout;->tabIndicatorFullWidth:Z if-nez v3, :cond_48 instance-of v3, v0, Lcom/google/android/material/tabs/TabLayout$TabView; if-eqz v3, :cond_48 .line 2581 check-cast v0, Lcom/google/android/material/tabs/TabLayout$TabView; iget-object v1, p0, Lcom/google/android/material/tabs/TabLayout$SlidingTabIndicator;->this$0:Lcom/google/android/material/tabs/TabLayout; # getter for: Lcom/google/android/material/tabs/TabLayout;->tabViewContentBounds:Landroid/graphics/RectF; invoke-static {v1}, Lcom/google/android/material/tabs/TabLayout;->access$400(Lcom/google/android/material/tabs/TabLayout;)Landroid/graphics/RectF; move-result-object v1 invoke-direct {p0, v0, v1}, Lcom/google/android/material/tabs/TabLayout$SlidingTabIndicator;->calculateTabViewContentBounds(Lcom/google/android/material/tabs/TabLayout$TabView;Landroid/graphics/RectF;)V .line 2582 iget-object v0, p0, Lcom/google/android/material/tabs/TabLayout$SlidingTabIndicator;->this$0:Lcom/google/android/material/tabs/TabLayout; # getter for: Lcom/google/android/material/tabs/TabLayout;->tabViewContentBounds:Landroid/graphics/RectF; invoke-static {v0}, Lcom/google/android/material/tabs/TabLayout;->access$400(Lcom/google/android/material/tabs/TabLayout;)Landroid/graphics/RectF; move-result-object v0 iget v0, v0, Landroid/graphics/RectF;->left:F float-to-int v1, v0 .line 2583 iget-object v0, p0, Lcom/google/android/material/tabs/TabLayout$SlidingTabIndicator;->this$0:Lcom/google/android/material/tabs/TabLayout; # getter for: Lcom/google/android/material/tabs/TabLayout;->tabViewContentBounds:Landroid/graphics/RectF; invoke-static {v0}, Lcom/google/android/material/tabs/TabLayout;->access$400(Lcom/google/android/material/tabs/TabLayout;)Landroid/graphics/RectF; move-result-object v0 iget v0, v0, Landroid/graphics/RectF;->right:F float-to-int v2, v0 :cond_48 move v6, v1 move v8, v2 .line 2589 iget v5, p0, Lcom/google/android/material/tabs/TabLayout$SlidingTabIndicator;->indicatorLeft:I .line 2590 iget v7, p0, Lcom/google/android/material/tabs/TabLayout$SlidingTabIndicator;->indicatorRight:I if-ne v5, v6, :cond_52 if-eq v7, v8, :cond_80 .line 2593 :cond_52 new-instance v0, Landroid/animation/ValueAnimator; invoke-direct {v0}, Landroid/animation/ValueAnimator;->()V iput-object v0, p0, Lcom/google/android/material/tabs/TabLayout$SlidingTabIndicator;->indicatorAnimator:Landroid/animation/ValueAnimator; .line 2594 sget-object v1, Lcom/google/android/material/animation/AnimationUtils;->FAST_OUT_SLOW_IN_INTERPOLATOR:Landroid/animation/TimeInterpolator; invoke-virtual {v0, v1}, Landroid/animation/ValueAnimator;->setInterpolator(Landroid/animation/TimeInterpolator;)V int-to-long v1, p2 .line 2595 invoke-virtual {v0, v1, v2}, Landroid/animation/ValueAnimator;->setDuration(J)Landroid/animation/ValueAnimator; const/4 p2, 0x2 .line 2596 new-array p2, p2, [F fill-array-data p2, :array_82 invoke-virtual {v0, p2}, Landroid/animation/ValueAnimator;->setFloatValues([F)V .line 2597 new-instance p2, Lcom/google/android/material/tabs/TabLayout$SlidingTabIndicator$1; move-object v3, p2 move-object v4, p0 invoke-direct/range {v3 .. v8}, Lcom/google/android/material/tabs/TabLayout$SlidingTabIndicator$1;->(Lcom/google/android/material/tabs/TabLayout$SlidingTabIndicator;IIII)V invoke-virtual {v0, p2}, Landroid/animation/ValueAnimator;->addUpdateListener(Landroid/animation/ValueAnimator$AnimatorUpdateListener;)V .line 2607 new-instance p2, Lcom/google/android/material/tabs/TabLayout$SlidingTabIndicator$2; invoke-direct {p2, p0, p1}, Lcom/google/android/material/tabs/TabLayout$SlidingTabIndicator$2;->(Lcom/google/android/material/tabs/TabLayout$SlidingTabIndicator;I)V invoke-virtual {v0, p2}, Landroid/animation/ValueAnimator;->addListener(Landroid/animation/Animator$AnimatorListener;)V .line 2615 invoke-virtual {v0}, Landroid/animation/ValueAnimator;->start()V :cond_80 return-void nop :array_82 .array-data 4 0x0 0x3f800000 # 1.0f .end array-data .end method .method childrenNeedLayout()Z .registers 5 .line 2407 invoke-virtual {p0}, Lcom/google/android/material/tabs/TabLayout$SlidingTabIndicator;->getChildCount()I move-result v0 const/4 v1, 0x0 move v2, v1 :goto_6 if-ge v2, v0, :cond_17 .line 2408 invoke-virtual {p0, v2}, Lcom/google/android/material/tabs/TabLayout$SlidingTabIndicator;->getChildAt(I)Landroid/view/View; move-result-object v3 .line 2409 invoke-virtual {v3}, Landroid/view/View;->getWidth()I move-result v3 if-gtz v3, :cond_14 const/4 v0, 0x1 return v0 :cond_14 add-int/lit8 v2, v2, 0x1 goto :goto_6 :cond_17 return v1 .end method .method public draw(Landroid/graphics/Canvas;)V .registers 7 .line 2648 iget-object v0, p0, Lcom/google/android/material/tabs/TabLayout$SlidingTabIndicator;->this$0:Lcom/google/android/material/tabs/TabLayout; iget-object v0, v0, Lcom/google/android/material/tabs/TabLayout;->tabSelectedIndicator:Landroid/graphics/drawable/Drawable; const/4 v1, 0x0 if-eqz v0, :cond_10 .line 2649 iget-object v0, p0, Lcom/google/android/material/tabs/TabLayout$SlidingTabIndicator;->this$0:Lcom/google/android/material/tabs/TabLayout; iget-object v0, v0, Lcom/google/android/material/tabs/TabLayout;->tabSelectedIndicator:Landroid/graphics/drawable/Drawable; invoke-virtual {v0}, Landroid/graphics/drawable/Drawable;->getIntrinsicHeight()I move-result v0 goto :goto_11 :cond_10 move v0, v1 .line 2651 :goto_11 iget v2, p0, Lcom/google/android/material/tabs/TabLayout$SlidingTabIndicator;->selectedIndicatorHeight:I if-ltz v2, :cond_16 move v0, v2 .line 2658 :cond_16 iget-object v2, p0, Lcom/google/android/material/tabs/TabLayout$SlidingTabIndicator;->this$0:Lcom/google/android/material/tabs/TabLayout; iget v2, v2, Lcom/google/android/material/tabs/TabLayout;->tabIndicatorGravity:I if-eqz v2, :cond_3a const/4 v3, 0x1 const/4 v4, 0x2 if-eq v2, v3, :cond_2c if-eq v2, v4, :cond_43 const/4 v0, 0x3 if-eq v2, v0, :cond_27 move v0, v1 goto :goto_43 .line 2673 :cond_27 invoke-virtual {p0}, Lcom/google/android/material/tabs/TabLayout$SlidingTabIndicator;->getHeight()I move-result v0 goto :goto_43 .line 2664 :cond_2c invoke-virtual {p0}, Lcom/google/android/material/tabs/TabLayout$SlidingTabIndicator;->getHeight()I move-result v1 sub-int/2addr v1, v0 div-int/2addr v1, v4 .line 2665 invoke-virtual {p0}, Lcom/google/android/material/tabs/TabLayout$SlidingTabIndicator;->getHeight()I move-result v2 add-int/2addr v2, v0 div-int/lit8 v0, v2, 0x2 goto :goto_43 .line 2660 :cond_3a invoke-virtual {p0}, Lcom/google/android/material/tabs/TabLayout$SlidingTabIndicator;->getHeight()I move-result v1 sub-int/2addr v1, v0 .line 2661 invoke-virtual {p0}, Lcom/google/android/material/tabs/TabLayout$SlidingTabIndicator;->getHeight()I move-result v0 .line 2680 :cond_43 :goto_43 iget v2, p0, Lcom/google/android/material/tabs/TabLayout$SlidingTabIndicator;->indicatorLeft:I if-ltz v2, :cond_73 iget v3, p0, Lcom/google/android/material/tabs/TabLayout$SlidingTabIndicator;->indicatorRight:I if-le v3, v2, :cond_73 .line 2682 iget-object v2, p0, Lcom/google/android/material/tabs/TabLayout$SlidingTabIndicator;->this$0:Lcom/google/android/material/tabs/TabLayout; iget-object v2, v2, Lcom/google/android/material/tabs/TabLayout;->tabSelectedIndicator:Landroid/graphics/drawable/Drawable; if-eqz v2, :cond_56 iget-object v2, p0, Lcom/google/android/material/tabs/TabLayout$SlidingTabIndicator;->this$0:Lcom/google/android/material/tabs/TabLayout; iget-object v2, v2, Lcom/google/android/material/tabs/TabLayout;->tabSelectedIndicator:Landroid/graphics/drawable/Drawable; goto :goto_58 :cond_56 iget-object v2, p0, Lcom/google/android/material/tabs/TabLayout$SlidingTabIndicator;->defaultSelectionIndicator:Landroid/graphics/drawable/GradientDrawable; .line 2683 :goto_58 invoke-static {v2}, Landroidx/core/graphics/drawable/DrawableCompat;->wrap(Landroid/graphics/drawable/Drawable;)Landroid/graphics/drawable/Drawable; move-result-object v2 .line 2685 iget v3, p0, Lcom/google/android/material/tabs/TabLayout$SlidingTabIndicator;->indicatorLeft:I iget v4, p0, Lcom/google/android/material/tabs/TabLayout$SlidingTabIndicator;->indicatorRight:I invoke-virtual {v2, v3, v1, v4, v0}, Landroid/graphics/drawable/Drawable;->setBounds(IIII)V .line 2686 iget-object v0, p0, Lcom/google/android/material/tabs/TabLayout$SlidingTabIndicator;->selectedIndicatorPaint:Landroid/graphics/Paint; if-eqz v0, :cond_70 .line 2692 iget-object v0, p0, Lcom/google/android/material/tabs/TabLayout$SlidingTabIndicator;->selectedIndicatorPaint:Landroid/graphics/Paint; invoke-virtual {v0}, Landroid/graphics/Paint;->getColor()I move-result v0 invoke-static {v2, v0}, Landroidx/core/graphics/drawable/DrawableCompat;->setTint(Landroid/graphics/drawable/Drawable;I)V .line 2695 :cond_70 invoke-virtual {v2, p1}, Landroid/graphics/drawable/Drawable;->draw(Landroid/graphics/Canvas;)V .line 2699 :cond_73 invoke-super {p0, p1}, Landroid/widget/LinearLayout;->draw(Landroid/graphics/Canvas;)V return-void .end method .method getIndicatorPosition()F .registers 3 .line 2427 iget v0, p0, Lcom/google/android/material/tabs/TabLayout$SlidingTabIndicator;->selectedPosition:I int-to-float v0, v0 iget v1, p0, Lcom/google/android/material/tabs/TabLayout$SlidingTabIndicator;->selectionOffset:F add-float/2addr v0, v1 return v0 .end method .method protected onLayout(ZIIII)V .registers 6 .line 2502 invoke-super/range {p0 .. p5}, Landroid/widget/LinearLayout;->onLayout(ZIIII)V .line 2504 iget-object p1, p0, Lcom/google/android/material/tabs/TabLayout$SlidingTabIndicator;->indicatorAnimator:Landroid/animation/ValueAnimator; if-eqz p1, :cond_2d invoke-virtual {p1}, Landroid/animation/ValueAnimator;->isRunning()Z move-result p1 if-eqz p1, :cond_2d .line 2507 iget-object p1, p0, Lcom/google/android/material/tabs/TabLayout$SlidingTabIndicator;->indicatorAnimator:Landroid/animation/ValueAnimator; invoke-virtual {p1}, Landroid/animation/ValueAnimator;->cancel()V .line 2508 iget-object p1, p0, Lcom/google/android/material/tabs/TabLayout$SlidingTabIndicator;->indicatorAnimator:Landroid/animation/ValueAnimator; invoke-virtual {p1}, Landroid/animation/ValueAnimator;->getDuration()J move-result-wide p1 .line 2509 iget p3, p0, Lcom/google/android/material/tabs/TabLayout$SlidingTabIndicator;->selectedPosition:I iget-object p4, p0, Lcom/google/android/material/tabs/TabLayout$SlidingTabIndicator;->indicatorAnimator:Landroid/animation/ValueAnimator; .line 2511 invoke-virtual {p4}, Landroid/animation/ValueAnimator;->getAnimatedFraction()F move-result p4 const/high16 p5, 0x3f800000 # 1.0f sub-float/2addr p5, p4 long-to-float p1, p1 mul-float/2addr p5, p1 invoke-static {p5}, Ljava/lang/Math;->round(F)I move-result p1 .line 2509 invoke-virtual {p0, p3, p1}, Lcom/google/android/material/tabs/TabLayout$SlidingTabIndicator;->animateIndicatorToPosition(II)V goto :goto_30 .line 2514 :cond_2d invoke-direct {p0}, Lcom/google/android/material/tabs/TabLayout$SlidingTabIndicator;->updateIndicatorPosition()V :goto_30 return-void .end method .method protected onMeasure(II)V .registers 11 .line 2446 invoke-super {p0, p1, p2}, Landroid/widget/LinearLayout;->onMeasure(II)V .line 2448 invoke-static {p1}, Landroid/view/View$MeasureSpec;->getMode(I)I move-result v0 const/high16 v1, 0x40000000 # 2.0f if-eq v0, v1, :cond_c return-void .line 2454 :cond_c iget-object v0, p0, Lcom/google/android/material/tabs/TabLayout$SlidingTabIndicator;->this$0:Lcom/google/android/material/tabs/TabLayout; iget v0, v0, Lcom/google/android/material/tabs/TabLayout;->mode:I const/4 v1, 0x1 if-ne v0, v1, :cond_7d iget-object v0, p0, Lcom/google/android/material/tabs/TabLayout$SlidingTabIndicator;->this$0:Lcom/google/android/material/tabs/TabLayout; iget v0, v0, Lcom/google/android/material/tabs/TabLayout;->tabGravity:I if-ne v0, v1, :cond_7d .line 2455 invoke-virtual {p0}, Lcom/google/android/material/tabs/TabLayout$SlidingTabIndicator;->getChildCount()I move-result v0 const/4 v2, 0x0 move v3, v2 move v4, v3 :goto_20 if-ge v3, v0, :cond_37 .line 2460 invoke-virtual {p0, v3}, Lcom/google/android/material/tabs/TabLayout$SlidingTabIndicator;->getChildAt(I)Landroid/view/View; move-result-object v5 .line 2461 invoke-virtual {v5}, Landroid/view/View;->getVisibility()I move-result v6 if-nez v6, :cond_34 .line 2462 invoke-virtual {v5}, Landroid/view/View;->getMeasuredWidth()I move-result v5 invoke-static {v4, v5}, Ljava/lang/Math;->max(II)I move-result v4 :cond_34 add-int/lit8 v3, v3, 0x1 goto :goto_20 :cond_37 if-gtz v4, :cond_3a return-void .line 2471 :cond_3a iget-object v3, p0, Lcom/google/android/material/tabs/TabLayout$SlidingTabIndicator;->this$0:Lcom/google/android/material/tabs/TabLayout; const/16 v5, 0x10 invoke-virtual {v3, v5}, Lcom/google/android/material/tabs/TabLayout;->dpToPx(I)I move-result v3 mul-int v5, v4, v0 .line 2474 invoke-virtual {p0}, Lcom/google/android/material/tabs/TabLayout$SlidingTabIndicator;->getMeasuredWidth()I move-result v6 mul-int/lit8 v3, v3, 0x2 sub-int/2addr v6, v3 if-gt v5, v6, :cond_6f move v3, v2 :goto_4e if-ge v2, v0, :cond_6d .line 2478 invoke-virtual {p0, v2}, Lcom/google/android/material/tabs/TabLayout$SlidingTabIndicator;->getChildAt(I)Landroid/view/View; move-result-object v5 invoke-virtual {v5}, Landroid/view/View;->getLayoutParams()Landroid/view/ViewGroup$LayoutParams; move-result-object v5 check-cast v5, Landroid/widget/LinearLayout$LayoutParams; .line 2479 iget v6, v5, Landroid/widget/LinearLayout$LayoutParams;->width:I const/4 v7, 0x0 if-ne v6, v4, :cond_65 iget v6, v5, Landroid/widget/LinearLayout$LayoutParams;->weight:F cmpl-float v6, v6, v7 if-eqz v6, :cond_6a .line 2480 :cond_65 iput v4, v5, Landroid/widget/LinearLayout$LayoutParams;->width:I .line 2481 iput v7, v5, Landroid/widget/LinearLayout$LayoutParams;->weight:F move v3, v1 :cond_6a add-int/lit8 v2, v2, 0x1 goto :goto_4e :cond_6d move v1, v3 goto :goto_78 .line 2488 :cond_6f iget-object v0, p0, Lcom/google/android/material/tabs/TabLayout$SlidingTabIndicator;->this$0:Lcom/google/android/material/tabs/TabLayout; iput v2, v0, Lcom/google/android/material/tabs/TabLayout;->tabGravity:I .line 2489 iget-object v0, p0, Lcom/google/android/material/tabs/TabLayout$SlidingTabIndicator;->this$0:Lcom/google/android/material/tabs/TabLayout; invoke-virtual {v0, v2}, Lcom/google/android/material/tabs/TabLayout;->updateTabViews(Z)V :goto_78 if-eqz v1, :cond_7d .line 2495 invoke-super {p0, p1, p2}, Landroid/widget/LinearLayout;->onMeasure(II)V :cond_7d return-void .end method .method public onRtlPropertiesChanged(I)V .registers 2 .line 2432 invoke-super {p0, p1}, Landroid/widget/LinearLayout;->onRtlPropertiesChanged(I)V return-void .end method .method setIndicatorPosition(II)V .registers 4 .line 2557 iget v0, p0, Lcom/google/android/material/tabs/TabLayout$SlidingTabIndicator;->indicatorLeft:I if-ne p1, v0, :cond_8 iget v0, p0, Lcom/google/android/material/tabs/TabLayout$SlidingTabIndicator;->indicatorRight:I if-eq p2, v0, :cond_f .line 2559 :cond_8 iput p1, p0, Lcom/google/android/material/tabs/TabLayout$SlidingTabIndicator;->indicatorLeft:I .line 2560 iput p2, p0, Lcom/google/android/material/tabs/TabLayout$SlidingTabIndicator;->indicatorRight:I .line 2561 invoke-static {p0}, Landroidx/core/view/ViewCompat;->postInvalidateOnAnimation(Landroid/view/View;)V :cond_f return-void .end method .method setIndicatorPositionFromTabPosition(IF)V .registers 4 .line 2417 iget-object v0, p0, Lcom/google/android/material/tabs/TabLayout$SlidingTabIndicator;->indicatorAnimator:Landroid/animation/ValueAnimator; if-eqz v0, :cond_f invoke-virtual {v0}, Landroid/animation/ValueAnimator;->isRunning()Z move-result v0 if-eqz v0, :cond_f .line 2418 iget-object v0, p0, Lcom/google/android/material/tabs/TabLayout$SlidingTabIndicator;->indicatorAnimator:Landroid/animation/ValueAnimator; invoke-virtual {v0}, Landroid/animation/ValueAnimator;->cancel()V .line 2421 :cond_f iput p1, p0, Lcom/google/android/material/tabs/TabLayout$SlidingTabIndicator;->selectedPosition:I .line 2422 iput p2, p0, Lcom/google/android/material/tabs/TabLayout$SlidingTabIndicator;->selectionOffset:F .line 2423 invoke-direct {p0}, Lcom/google/android/material/tabs/TabLayout$SlidingTabIndicator;->updateIndicatorPosition()V return-void .end method .method setSelectedIndicatorColor(I)V .registers 3 .line 2393 iget-object v0, p0, Lcom/google/android/material/tabs/TabLayout$SlidingTabIndicator;->selectedIndicatorPaint:Landroid/graphics/Paint; invoke-virtual {v0}, Landroid/graphics/Paint;->getColor()I move-result v0 if-eq v0, p1, :cond_10 .line 2394 iget-object v0, p0, Lcom/google/android/material/tabs/TabLayout$SlidingTabIndicator;->selectedIndicatorPaint:Landroid/graphics/Paint; invoke-virtual {v0, p1}, Landroid/graphics/Paint;->setColor(I)V .line 2395 invoke-static {p0}, Landroidx/core/view/ViewCompat;->postInvalidateOnAnimation(Landroid/view/View;)V :cond_10 return-void .end method .method setSelectedIndicatorHeight(I)V .registers 3 .line 2400 iget v0, p0, Lcom/google/android/material/tabs/TabLayout$SlidingTabIndicator;->selectedIndicatorHeight:I if-eq v0, p1, :cond_9 .line 2401 iput p1, p0, Lcom/google/android/material/tabs/TabLayout$SlidingTabIndicator;->selectedIndicatorHeight:I .line 2402 invoke-static {p0}, Landroidx/core/view/ViewCompat;->postInvalidateOnAnimation(Landroid/view/View;)V :cond_9 return-void .end method