.class public Landroidx/recyclerview/widget/DividerItemDecoration; .super Landroidx/recyclerview/widget/RecyclerView$ItemDecoration; .source "SourceFile" # static fields .field private static final ATTRS:[I .field public static final HORIZONTAL:I = 0x0 .field private static final TAG:Ljava/lang/String; = "DividerItem" .field public static final VERTICAL:I = 0x1 # instance fields .field private final mBounds:Landroid/graphics/Rect; .field private mDivider:Landroid/graphics/drawable/Drawable; .field private mOrientation:I # direct methods .method static constructor ()V .locals 1 const v0, 0x1010214 filled-new-array {v0}, [I move-result-object v0 sput-object v0, Landroidx/recyclerview/widget/DividerItemDecoration;->ATTRS:[I return-void .end method .method public constructor (Landroid/content/Context;I)V .locals 2 .line 66 invoke-direct {p0}, Landroidx/recyclerview/widget/RecyclerView$ItemDecoration;->()V .line 57 new-instance v0, Landroid/graphics/Rect; invoke-direct {v0}, Landroid/graphics/Rect;->()V iput-object v0, p0, Landroidx/recyclerview/widget/DividerItemDecoration;->mBounds:Landroid/graphics/Rect; sget-object v0, Landroidx/recyclerview/widget/DividerItemDecoration;->ATTRS:[I .line 67 invoke-virtual {p1, v0}, Landroid/content/Context;->obtainStyledAttributes([I)Landroid/content/res/TypedArray; move-result-object p1 const/4 v0, 0x0 .line 68 invoke-virtual {p1, v0}, Landroid/content/res/TypedArray;->getDrawable(I)Landroid/graphics/drawable/Drawable; move-result-object v0 iput-object v0, p0, Landroidx/recyclerview/widget/DividerItemDecoration;->mDivider:Landroid/graphics/drawable/Drawable; if-nez v0, :cond_0 const-string v0, "DividerItem" const-string v1, "@android:attr/listDivider was not set in the theme used for this DividerItemDecoration. Please set that attribute all call setDrawable()" .line 70 invoke-static {v0, v1}, Landroid/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)I .line 73 :cond_0 invoke-virtual {p1}, Landroid/content/res/TypedArray;->recycle()V .line 74 invoke-virtual {p0, p2}, Landroidx/recyclerview/widget/DividerItemDecoration;->setOrientation(I)V return-void .end method .method private drawHorizontal(Landroid/graphics/Canvas;Landroidx/recyclerview/widget/RecyclerView;)V .locals 7 .line 151 invoke-virtual {p1}, Landroid/graphics/Canvas;->save()I .line 155 invoke-virtual {p2}, Landroidx/recyclerview/widget/RecyclerView;->getClipToPadding()Z move-result v0 const/4 v1, 0x0 if-eqz v0, :cond_0 .line 156 invoke-virtual {p2}, Landroid/view/View;->getPaddingTop()I move-result v0 .line 157 invoke-virtual {p2}, Landroid/view/View;->getHeight()I move-result v2 invoke-virtual {p2}, Landroid/view/View;->getPaddingBottom()I move-result v3 sub-int/2addr v2, v3 .line 158 invoke-virtual {p2}, Landroid/view/View;->getPaddingLeft()I move-result v3 .line 159 invoke-virtual {p2}, Landroid/view/View;->getWidth()I move-result v4 invoke-virtual {p2}, Landroid/view/View;->getPaddingRight()I move-result v5 sub-int/2addr v4, v5 .line 158 invoke-virtual {p1, v3, v0, v4, v2}, Landroid/graphics/Canvas;->clipRect(IIII)Z goto :goto_0 .line 162 :cond_0 invoke-virtual {p2}, Landroid/view/View;->getHeight()I move-result v2 move v0, v1 .line 165 :goto_0 invoke-virtual {p2}, Landroid/view/ViewGroup;->getChildCount()I move-result v3 :goto_1 if-ge v1, v3, :cond_1 .line 167 invoke-virtual {p2, v1}, Landroid/view/ViewGroup;->getChildAt(I)Landroid/view/View; move-result-object v4 .line 168 invoke-virtual {p2}, Landroidx/recyclerview/widget/RecyclerView;->getLayoutManager()Landroidx/recyclerview/widget/RecyclerView$LayoutManager; move-result-object v5 iget-object v6, p0, Landroidx/recyclerview/widget/DividerItemDecoration;->mBounds:Landroid/graphics/Rect; invoke-virtual {v5, v4, v6}, Landroidx/recyclerview/widget/RecyclerView$LayoutManager;->getDecoratedBoundsWithMargins(Landroid/view/View;Landroid/graphics/Rect;)V iget-object v5, p0, Landroidx/recyclerview/widget/DividerItemDecoration;->mBounds:Landroid/graphics/Rect; .line 169 iget v5, v5, Landroid/graphics/Rect;->right:I invoke-virtual {v4}, Landroid/view/View;->getTranslationX()F move-result v4 invoke-static {v4}, Ljava/lang/Math;->round(F)I move-result v4 add-int/2addr v5, v4 iget-object v4, p0, Landroidx/recyclerview/widget/DividerItemDecoration;->mDivider:Landroid/graphics/drawable/Drawable; .line 170 invoke-virtual {v4}, Landroid/graphics/drawable/Drawable;->getIntrinsicWidth()I move-result v4 sub-int v4, v5, v4 iget-object v6, p0, Landroidx/recyclerview/widget/DividerItemDecoration;->mDivider:Landroid/graphics/drawable/Drawable; .line 171 invoke-virtual {v6, v4, v0, v5, v2}, Landroid/graphics/drawable/Drawable;->setBounds(IIII)V iget-object v4, p0, Landroidx/recyclerview/widget/DividerItemDecoration;->mDivider:Landroid/graphics/drawable/Drawable; .line 172 invoke-virtual {v4, p1}, Landroid/graphics/drawable/Drawable;->draw(Landroid/graphics/Canvas;)V add-int/lit8 v1, v1, 0x1 goto :goto_1 .line 174 :cond_1 invoke-virtual {p1}, Landroid/graphics/Canvas;->restore()V return-void .end method .method private drawVertical(Landroid/graphics/Canvas;Landroidx/recyclerview/widget/RecyclerView;)V .locals 7 .line 124 invoke-virtual {p1}, Landroid/graphics/Canvas;->save()I .line 128 invoke-virtual {p2}, Landroidx/recyclerview/widget/RecyclerView;->getClipToPadding()Z move-result v0 const/4 v1, 0x0 if-eqz v0, :cond_0 .line 129 invoke-virtual {p2}, Landroid/view/View;->getPaddingLeft()I move-result v0 .line 130 invoke-virtual {p2}, Landroid/view/View;->getWidth()I move-result v2 invoke-virtual {p2}, Landroid/view/View;->getPaddingRight()I move-result v3 sub-int/2addr v2, v3 .line 131 invoke-virtual {p2}, Landroid/view/View;->getPaddingTop()I move-result v3 .line 132 invoke-virtual {p2}, Landroid/view/View;->getHeight()I move-result v4 invoke-virtual {p2}, Landroid/view/View;->getPaddingBottom()I move-result v5 sub-int/2addr v4, v5 .line 131 invoke-virtual {p1, v0, v3, v2, v4}, Landroid/graphics/Canvas;->clipRect(IIII)Z goto :goto_0 .line 135 :cond_0 invoke-virtual {p2}, Landroid/view/View;->getWidth()I move-result v2 move v0, v1 .line 138 :goto_0 invoke-virtual {p2}, Landroid/view/ViewGroup;->getChildCount()I move-result v3 :goto_1 if-ge v1, v3, :cond_1 .line 140 invoke-virtual {p2, v1}, Landroid/view/ViewGroup;->getChildAt(I)Landroid/view/View; move-result-object v4 iget-object v5, p0, Landroidx/recyclerview/widget/DividerItemDecoration;->mBounds:Landroid/graphics/Rect; .line 141 invoke-virtual {p2, v4, v5}, Landroidx/recyclerview/widget/RecyclerView;->getDecoratedBoundsWithMargins(Landroid/view/View;Landroid/graphics/Rect;)V iget-object v5, p0, Landroidx/recyclerview/widget/DividerItemDecoration;->mBounds:Landroid/graphics/Rect; .line 142 iget v5, v5, Landroid/graphics/Rect;->bottom:I invoke-virtual {v4}, Landroid/view/View;->getTranslationY()F move-result v4 invoke-static {v4}, Ljava/lang/Math;->round(F)I move-result v4 add-int/2addr v5, v4 iget-object v4, p0, Landroidx/recyclerview/widget/DividerItemDecoration;->mDivider:Landroid/graphics/drawable/Drawable; .line 143 invoke-virtual {v4}, Landroid/graphics/drawable/Drawable;->getIntrinsicHeight()I move-result v4 sub-int v4, v5, v4 iget-object v6, p0, Landroidx/recyclerview/widget/DividerItemDecoration;->mDivider:Landroid/graphics/drawable/Drawable; .line 144 invoke-virtual {v6, v0, v4, v2, v5}, Landroid/graphics/drawable/Drawable;->setBounds(IIII)V iget-object v4, p0, Landroidx/recyclerview/widget/DividerItemDecoration;->mDivider:Landroid/graphics/drawable/Drawable; .line 145 invoke-virtual {v4, p1}, Landroid/graphics/drawable/Drawable;->draw(Landroid/graphics/Canvas;)V add-int/lit8 v1, v1, 0x1 goto :goto_1 .line 147 :cond_1 invoke-virtual {p1}, Landroid/graphics/Canvas;->restore()V return-void .end method # virtual methods .method public getDrawable()Landroid/graphics/drawable/Drawable; .locals 1 .annotation build Landroidx/annotation/Nullable; .end annotation iget-object v0, p0, Landroidx/recyclerview/widget/DividerItemDecoration;->mDivider:Landroid/graphics/drawable/Drawable; return-object v0 .end method .method public getItemOffsets(Landroid/graphics/Rect;Landroid/view/View;Landroidx/recyclerview/widget/RecyclerView;Landroidx/recyclerview/widget/RecyclerView$State;)V .locals 1 iget-object p2, p0, Landroidx/recyclerview/widget/DividerItemDecoration;->mDivider:Landroid/graphics/drawable/Drawable; const/4 p3, 0x0 if-nez p2, :cond_0 .line 181 invoke-virtual {p1, p3, p3, p3, p3}, Landroid/graphics/Rect;->set(IIII)V return-void :cond_0 iget p4, p0, Landroidx/recyclerview/widget/DividerItemDecoration;->mOrientation:I const/4 v0, 0x1 if-ne p4, v0, :cond_1 .line 185 invoke-virtual {p2}, Landroid/graphics/drawable/Drawable;->getIntrinsicHeight()I move-result p2 invoke-virtual {p1, p3, p3, p3, p2}, Landroid/graphics/Rect;->set(IIII)V goto :goto_0 .line 187 :cond_1 invoke-virtual {p2}, Landroid/graphics/drawable/Drawable;->getIntrinsicWidth()I move-result p2 invoke-virtual {p1, p3, p3, p2, p3}, Landroid/graphics/Rect;->set(IIII)V :goto_0 return-void .end method .method public onDraw(Landroid/graphics/Canvas;Landroidx/recyclerview/widget/RecyclerView;Landroidx/recyclerview/widget/RecyclerView$State;)V .locals 1 .line 113 invoke-virtual {p2}, Landroidx/recyclerview/widget/RecyclerView;->getLayoutManager()Landroidx/recyclerview/widget/RecyclerView$LayoutManager; move-result-object p3 if-eqz p3, :cond_2 iget-object p3, p0, Landroidx/recyclerview/widget/DividerItemDecoration;->mDivider:Landroid/graphics/drawable/Drawable; if-nez p3, :cond_0 goto :goto_0 :cond_0 iget p3, p0, Landroidx/recyclerview/widget/DividerItemDecoration;->mOrientation:I const/4 v0, 0x1 if-ne p3, v0, :cond_1 .line 117 invoke-direct {p0, p1, p2}, Landroidx/recyclerview/widget/DividerItemDecoration;->drawVertical(Landroid/graphics/Canvas;Landroidx/recyclerview/widget/RecyclerView;)V goto :goto_0 .line 119 :cond_1 invoke-direct {p0, p1, p2}, Landroidx/recyclerview/widget/DividerItemDecoration;->drawHorizontal(Landroid/graphics/Canvas;Landroidx/recyclerview/widget/RecyclerView;)V :cond_2 :goto_0 return-void .end method .method public setDrawable(Landroid/graphics/drawable/Drawable;)V .locals 1 .param p1 # Landroid/graphics/drawable/Drawable; .annotation build Landroidx/annotation/NonNull; .end annotation .end param if-eqz p1, :cond_0 iput-object p1, p0, Landroidx/recyclerview/widget/DividerItemDecoration;->mDivider:Landroid/graphics/drawable/Drawable; return-void .line 98 :cond_0 new-instance p1, Ljava/lang/IllegalArgumentException; const-string v0, "Drawable cannot be null." invoke-direct {p1, v0}, Ljava/lang/IllegalArgumentException;->(Ljava/lang/String;)V throw p1 .end method .method public setOrientation(I)V .locals 1 if-eqz p1, :cond_1 const/4 v0, 0x1 if-ne p1, v0, :cond_0 goto :goto_0 .line 85 :cond_0 new-instance p1, Ljava/lang/IllegalArgumentException; const-string v0, "Invalid orientation. It should be either HORIZONTAL or VERTICAL" invoke-direct {p1, v0}, Ljava/lang/IllegalArgumentException;->(Ljava/lang/String;)V throw p1 :cond_1 :goto_0 iput p1, p0, Landroidx/recyclerview/widget/DividerItemDecoration;->mOrientation:I return-void .end method