.class public Lcom/google/android/material/bottomnavigation/BottomNavigationMenuView; .super Lcom/google/android/material/navigation/NavigationBarMenuView; .source "BottomNavigationMenuView.java" # instance fields .field private final activeItemMaxWidth:I .field private final activeItemMinWidth:I .field private final inactiveItemMaxWidth:I .field private final inactiveItemMinWidth:I .field private final itemHeight:I .field private itemHorizontalTranslationEnabled:Z .field private tempChildWidths:[I # direct methods .method public constructor (Landroid/content/Context;)V .locals 1 .line 49 invoke-direct {p0, p1}, Lcom/google/android/material/navigation/NavigationBarMenuView;->(Landroid/content/Context;)V .line 51 new-instance p1, Landroid/widget/FrameLayout$LayoutParams; const/4 v0, -0x2 invoke-direct {p1, v0, v0}, Landroid/widget/FrameLayout$LayoutParams;->(II)V const/16 v0, 0x11 .line 54 iput v0, p1, Landroid/widget/FrameLayout$LayoutParams;->gravity:I .line 55 invoke-virtual {p0, p1}, Lcom/google/android/material/bottomnavigation/BottomNavigationMenuView;->setLayoutParams(Landroid/view/ViewGroup$LayoutParams;)V .line 57 invoke-virtual {p0}, Lcom/google/android/material/bottomnavigation/BottomNavigationMenuView;->getResources()Landroid/content/res/Resources; move-result-object p1 .line 58 sget v0, Lcom/google/android/material/R$dimen;->design_bottom_navigation_item_max_width:I .line 59 invoke-virtual {p1, v0}, Landroid/content/res/Resources;->getDimensionPixelSize(I)I move-result v0 iput v0, p0, Lcom/google/android/material/bottomnavigation/BottomNavigationMenuView;->inactiveItemMaxWidth:I .line 60 sget v0, Lcom/google/android/material/R$dimen;->design_bottom_navigation_item_min_width:I .line 61 invoke-virtual {p1, v0}, Landroid/content/res/Resources;->getDimensionPixelSize(I)I move-result v0 iput v0, p0, Lcom/google/android/material/bottomnavigation/BottomNavigationMenuView;->inactiveItemMinWidth:I .line 62 sget v0, Lcom/google/android/material/R$dimen;->design_bottom_navigation_active_item_max_width:I .line 63 invoke-virtual {p1, v0}, Landroid/content/res/Resources;->getDimensionPixelSize(I)I move-result v0 iput v0, p0, Lcom/google/android/material/bottomnavigation/BottomNavigationMenuView;->activeItemMaxWidth:I .line 64 sget v0, Lcom/google/android/material/R$dimen;->design_bottom_navigation_active_item_min_width:I .line 65 invoke-virtual {p1, v0}, Landroid/content/res/Resources;->getDimensionPixelSize(I)I move-result v0 iput v0, p0, Lcom/google/android/material/bottomnavigation/BottomNavigationMenuView;->activeItemMinWidth:I .line 66 sget v0, Lcom/google/android/material/R$dimen;->design_bottom_navigation_height:I invoke-virtual {p1, v0}, Landroid/content/res/Resources;->getDimensionPixelSize(I)I move-result p1 iput p1, p0, Lcom/google/android/material/bottomnavigation/BottomNavigationMenuView;->itemHeight:I const/4 p1, 0x5 new-array p1, p1, [I .line 68 iput-object p1, p0, Lcom/google/android/material/bottomnavigation/BottomNavigationMenuView;->tempChildWidths:[I return-void .end method # virtual methods .method protected createNavigationBarItemView(Landroid/content/Context;)Lcom/google/android/material/navigation/NavigationBarItemView; .locals 1 .line 197 new-instance v0, Lcom/google/android/material/bottomnavigation/BottomNavigationItemView; invoke-direct {v0, p1}, Lcom/google/android/material/bottomnavigation/BottomNavigationItemView;->(Landroid/content/Context;)V return-object v0 .end method .method public isItemHorizontalTranslationEnabled()Z .locals 1 .line 191 iget-boolean v0, p0, Lcom/google/android/material/bottomnavigation/BottomNavigationMenuView;->itemHorizontalTranslationEnabled:Z return v0 .end method .method protected onLayout(ZIIII)V .locals 4 .line 153 invoke-virtual {p0}, Lcom/google/android/material/bottomnavigation/BottomNavigationMenuView;->getChildCount()I move-result p1 sub-int/2addr p4, p2 sub-int/2addr p5, p3 const/4 p2, 0x0 move p3, p2 move v0, p3 :goto_0 if-ge p3, p1, :cond_2 .line 158 invoke-virtual {p0, p3}, Lcom/google/android/material/bottomnavigation/BottomNavigationMenuView;->getChildAt(I)Landroid/view/View; move-result-object v1 .line 159 invoke-virtual {v1}, Landroid/view/View;->getVisibility()I move-result v2 const/16 v3, 0x8 if-ne v2, v3, :cond_0 goto :goto_2 .line 162 :cond_0 invoke-static {p0}, Landroidx/core/view/ViewCompat;->getLayoutDirection(Landroid/view/View;)I move-result v2 const/4 v3, 0x1 if-ne v2, v3, :cond_1 sub-int v2, p4, v0 .line 163 invoke-virtual {v1}, Landroid/view/View;->getMeasuredWidth()I move-result v3 sub-int v3, v2, v3 invoke-virtual {v1, v3, p2, v2, p5}, Landroid/view/View;->layout(IIII)V goto :goto_1 .line 165 :cond_1 invoke-virtual {v1}, Landroid/view/View;->getMeasuredWidth()I move-result v2 add-int/2addr v2, v0 invoke-virtual {v1, v0, p2, v2, p5}, Landroid/view/View;->layout(IIII)V .line 167 :goto_1 invoke-virtual {v1}, Landroid/view/View;->getMeasuredWidth()I move-result v1 add-int/2addr v0, v1 :goto_2 add-int/lit8 p3, p3, 0x1 goto :goto_0 :cond_2 return-void .end method .method protected onMeasure(II)V .locals 10 .line 73 invoke-virtual {p0}, Lcom/google/android/material/bottomnavigation/BottomNavigationMenuView;->getMenu()Landroidx/appcompat/view/menu/MenuBuilder; move-result-object p2 .line 74 invoke-static {p1}, Landroid/view/View$MeasureSpec;->getSize(I)I move-result p1 .line 76 invoke-virtual {p2}, Landroidx/appcompat/view/menu/MenuBuilder;->getVisibleItems()Ljava/util/ArrayList; move-result-object p2 invoke-virtual {p2}, Ljava/util/ArrayList;->size()I move-result p2 .line 78 invoke-virtual {p0}, Lcom/google/android/material/bottomnavigation/BottomNavigationMenuView;->getChildCount()I move-result v0 .line 80 iget v1, p0, Lcom/google/android/material/bottomnavigation/BottomNavigationMenuView;->itemHeight:I const/high16 v2, 0x40000000 # 2.0f invoke-static {v1, v2}, Landroid/view/View$MeasureSpec;->makeMeasureSpec(II)I move-result v1 .line 82 invoke-virtual {p0}, Lcom/google/android/material/bottomnavigation/BottomNavigationMenuView;->getLabelVisibilityMode()I move-result v3 invoke-virtual {p0, v3, p2}, Lcom/google/android/material/bottomnavigation/BottomNavigationMenuView;->isShifting(II)Z move-result v3 const/16 v4, 0x8 const/4 v5, 0x1 const/4 v6, 0x0 if-eqz v3, :cond_6 .line 83 invoke-virtual {p0}, Lcom/google/android/material/bottomnavigation/BottomNavigationMenuView;->isItemHorizontalTranslationEnabled()Z move-result v3 if-eqz v3, :cond_6 .line 84 invoke-virtual {p0}, Lcom/google/android/material/bottomnavigation/BottomNavigationMenuView;->getSelectedItemPosition()I move-result v3 invoke-virtual {p0, v3}, Lcom/google/android/material/bottomnavigation/BottomNavigationMenuView;->getChildAt(I)Landroid/view/View; move-result-object v3 .line 85 iget v7, p0, Lcom/google/android/material/bottomnavigation/BottomNavigationMenuView;->activeItemMinWidth:I .line 86 invoke-virtual {v3}, Landroid/view/View;->getVisibility()I move-result v8 if-eq v8, v4, :cond_0 .line 89 iget v8, p0, Lcom/google/android/material/bottomnavigation/BottomNavigationMenuView;->activeItemMaxWidth:I const/high16 v9, -0x80000000 .line 90 invoke-static {v8, v9}, Landroid/view/View$MeasureSpec;->makeMeasureSpec(II)I move-result v8 .line 89 invoke-virtual {v3, v8, v1}, Landroid/view/View;->measure(II)V .line 91 invoke-virtual {v3}, Landroid/view/View;->getMeasuredWidth()I move-result v8 invoke-static {v7, v8}, Ljava/lang/Math;->max(II)I move-result v7 .line 93 :cond_0 invoke-virtual {v3}, Landroid/view/View;->getVisibility()I move-result v3 if-eq v3, v4, :cond_1 move v3, v5 goto :goto_0 :cond_1 move v3, v6 :goto_0 sub-int/2addr p2, v3 .line 94 iget v3, p0, Lcom/google/android/material/bottomnavigation/BottomNavigationMenuView;->inactiveItemMinWidth:I mul-int/2addr v3, p2 sub-int v3, p1, v3 .line 95 iget v8, p0, Lcom/google/android/material/bottomnavigation/BottomNavigationMenuView;->activeItemMaxWidth:I .line 96 invoke-static {v7, v8}, Ljava/lang/Math;->min(II)I move-result v7 invoke-static {v3, v7}, Ljava/lang/Math;->min(II)I move-result v3 sub-int/2addr p1, v3 if-nez p2, :cond_2 move v7, v5 goto :goto_1 :cond_2 move v7, p2 .line 97 :goto_1 div-int v7, p1, v7 .line 99 iget v8, p0, Lcom/google/android/material/bottomnavigation/BottomNavigationMenuView;->inactiveItemMaxWidth:I invoke-static {v7, v8}, Ljava/lang/Math;->min(II)I move-result v7 mul-int/2addr p2, v7 sub-int/2addr p1, p2 move p2, v6 :goto_2 if-ge p2, v0, :cond_a .line 103 invoke-virtual {p0, p2}, Lcom/google/android/material/bottomnavigation/BottomNavigationMenuView;->getChildAt(I)Landroid/view/View; move-result-object v8 invoke-virtual {v8}, Landroid/view/View;->getVisibility()I move-result v8 if-eq v8, v4, :cond_4 .line 104 iget-object v8, p0, Lcom/google/android/material/bottomnavigation/BottomNavigationMenuView;->tempChildWidths:[I invoke-virtual {p0}, Lcom/google/android/material/bottomnavigation/BottomNavigationMenuView;->getSelectedItemPosition()I move-result v9 if-ne p2, v9, :cond_3 move v9, v3 goto :goto_3 :cond_3 move v9, v7 :goto_3 aput v9, v8, p2 if-lez p1, :cond_5 .line 109 iget-object v8, p0, Lcom/google/android/material/bottomnavigation/BottomNavigationMenuView;->tempChildWidths:[I aget v9, v8, p2 add-int/2addr v9, v5 aput v9, v8, p2 add-int/lit8 p1, p1, -0x1 goto :goto_4 .line 113 :cond_4 iget-object v8, p0, Lcom/google/android/material/bottomnavigation/BottomNavigationMenuView;->tempChildWidths:[I aput v6, v8, p2 :cond_5 :goto_4 add-int/lit8 p2, p2, 0x1 goto :goto_2 :cond_6 if-nez p2, :cond_7 move v3, v5 goto :goto_5 :cond_7 move v3, p2 .line 117 :goto_5 div-int v3, p1, v3 .line 118 iget v7, p0, Lcom/google/android/material/bottomnavigation/BottomNavigationMenuView;->activeItemMaxWidth:I invoke-static {v3, v7}, Ljava/lang/Math;->min(II)I move-result v3 mul-int/2addr p2, v3 sub-int/2addr p1, p2 move p2, v6 :goto_6 if-ge p2, v0, :cond_a .line 121 invoke-virtual {p0, p2}, Lcom/google/android/material/bottomnavigation/BottomNavigationMenuView;->getChildAt(I)Landroid/view/View; move-result-object v7 invoke-virtual {v7}, Landroid/view/View;->getVisibility()I move-result v7 if-eq v7, v4, :cond_8 .line 122 iget-object v7, p0, Lcom/google/android/material/bottomnavigation/BottomNavigationMenuView;->tempChildWidths:[I aput v3, v7, p2 if-lez p1, :cond_9 .line 124 aget v8, v7, p2 add-int/2addr v8, v5 aput v8, v7, p2 add-int/lit8 p1, p1, -0x1 goto :goto_7 .line 128 :cond_8 iget-object v7, p0, Lcom/google/android/material/bottomnavigation/BottomNavigationMenuView;->tempChildWidths:[I aput v6, v7, p2 :cond_9 :goto_7 add-int/lit8 p2, p2, 0x1 goto :goto_6 :cond_a move p1, v6 move p2, p1 :goto_8 if-ge p1, v0, :cond_c .line 135 invoke-virtual {p0, p1}, Lcom/google/android/material/bottomnavigation/BottomNavigationMenuView;->getChildAt(I)Landroid/view/View; move-result-object v3 .line 136 invoke-virtual {v3}, Landroid/view/View;->getVisibility()I move-result v5 if-ne v5, v4, :cond_b goto :goto_9 .line 139 :cond_b iget-object v5, p0, Lcom/google/android/material/bottomnavigation/BottomNavigationMenuView;->tempChildWidths:[I aget v5, v5, p1 .line 140 invoke-static {v5, v2}, Landroid/view/View$MeasureSpec;->makeMeasureSpec(II)I move-result v5 .line 139 invoke-virtual {v3, v5, v1}, Landroid/view/View;->measure(II)V .line 141 invoke-virtual {v3}, Landroid/view/View;->getLayoutParams()Landroid/view/ViewGroup$LayoutParams; move-result-object v5 .line 142 invoke-virtual {v3}, Landroid/view/View;->getMeasuredWidth()I move-result v7 iput v7, v5, Landroid/view/ViewGroup$LayoutParams;->width:I .line 143 invoke-virtual {v3}, Landroid/view/View;->getMeasuredWidth()I move-result v3 add-int/2addr p2, v3 :goto_9 add-int/lit8 p1, p1, 0x1 goto :goto_8 .line 147 :cond_c invoke-static {p2, v2}, Landroid/view/View$MeasureSpec;->makeMeasureSpec(II)I move-result p1 .line 146 invoke-static {p2, p1, v6}, Landroid/view/View;->resolveSizeAndState(III)I move-result p1 iget p2, p0, Lcom/google/android/material/bottomnavigation/BottomNavigationMenuView;->itemHeight:I .line 148 invoke-static {p2, v1, v6}, Landroid/view/View;->resolveSizeAndState(III)I move-result p2 .line 145 invoke-virtual {p0, p1, p2}, Lcom/google/android/material/bottomnavigation/BottomNavigationMenuView;->setMeasuredDimension(II)V return-void .end method .method public setItemHorizontalTranslationEnabled(Z)V .locals 0 .line 180 iput-boolean p1, p0, Lcom/google/android/material/bottomnavigation/BottomNavigationMenuView;->itemHorizontalTranslationEnabled:Z return-void .end method