.class public Landroidx/recyclerview/widget/DividerItemDecoration; .super Landroidx/recyclerview/widget/RecyclerView$ItemDecoration; .source "DividerItemDecoration.java" # 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 .registers 1 const v0, 0x1010214 .line 47 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 .registers 5 .line 65 invoke-direct {p0}, Landroidx/recyclerview/widget/RecyclerView$ItemDecoration;->()V .line 56 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; .line 66 sget-object v0, Landroidx/recyclerview/widget/DividerItemDecoration;->ATTRS:[I invoke-virtual {p1, v0}, Landroid/content/Context;->obtainStyledAttributes([I)Landroid/content/res/TypedArray; move-result-object p1 const/4 v0, 0x0 .line 67 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_20 .line 69 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()" invoke-static {v0, v1}, Landroid/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)I .line 72 :cond_20 invoke-virtual {p1}, Landroid/content/res/TypedArray;->recycle()V .line 73 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 .registers 10 .line 142 invoke-virtual {p1}, Landroid/graphics/Canvas;->save()I .line 146 invoke-virtual {p2}, Landroidx/recyclerview/widget/RecyclerView;->getClipToPadding()Z move-result v0 const/4 v1, 0x0 if-eqz v0, :cond_28 .line 147 invoke-virtual {p2}, Landroidx/recyclerview/widget/RecyclerView;->getPaddingTop()I move-result v0 .line 148 invoke-virtual {p2}, Landroidx/recyclerview/widget/RecyclerView;->getHeight()I move-result v2 invoke-virtual {p2}, Landroidx/recyclerview/widget/RecyclerView;->getPaddingBottom()I move-result v3 sub-int/2addr v2, v3 .line 149 invoke-virtual {p2}, Landroidx/recyclerview/widget/RecyclerView;->getPaddingLeft()I move-result v3 .line 150 invoke-virtual {p2}, Landroidx/recyclerview/widget/RecyclerView;->getWidth()I move-result v4 invoke-virtual {p2}, Landroidx/recyclerview/widget/RecyclerView;->getPaddingRight()I move-result v5 sub-int/2addr v4, v5 .line 149 invoke-virtual {p1, v3, v0, v4, v2}, Landroid/graphics/Canvas;->clipRect(IIII)Z goto :goto_2d .line 153 :cond_28 invoke-virtual {p2}, Landroidx/recyclerview/widget/RecyclerView;->getHeight()I move-result v2 move v0, v1 .line 156 :goto_2d invoke-virtual {p2}, Landroidx/recyclerview/widget/RecyclerView;->getChildCount()I move-result v3 :goto_31 if-ge v1, v3, :cond_62 .line 158 invoke-virtual {p2, v1}, Landroidx/recyclerview/widget/RecyclerView;->getChildAt(I)Landroid/view/View; move-result-object v4 .line 159 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 .line 160 iget-object v5, p0, Landroidx/recyclerview/widget/DividerItemDecoration;->mBounds:Landroid/graphics/Rect; 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 .line 161 iget-object v4, p0, Landroidx/recyclerview/widget/DividerItemDecoration;->mDivider:Landroid/graphics/drawable/Drawable; invoke-virtual {v4}, Landroid/graphics/drawable/Drawable;->getIntrinsicWidth()I move-result v4 sub-int v4, v5, v4 .line 162 iget-object v6, p0, Landroidx/recyclerview/widget/DividerItemDecoration;->mDivider:Landroid/graphics/drawable/Drawable; invoke-virtual {v6, v4, v0, v5, v2}, Landroid/graphics/drawable/Drawable;->setBounds(IIII)V .line 163 iget-object v4, p0, Landroidx/recyclerview/widget/DividerItemDecoration;->mDivider:Landroid/graphics/drawable/Drawable; invoke-virtual {v4, p1}, Landroid/graphics/drawable/Drawable;->draw(Landroid/graphics/Canvas;)V add-int/lit8 v1, v1, 0x1 goto :goto_31 .line 165 :cond_62 invoke-virtual {p1}, Landroid/graphics/Canvas;->restore()V return-void .end method .method private drawVertical(Landroid/graphics/Canvas;Landroidx/recyclerview/widget/RecyclerView;)V .registers 10 .line 115 invoke-virtual {p1}, Landroid/graphics/Canvas;->save()I .line 119 invoke-virtual {p2}, Landroidx/recyclerview/widget/RecyclerView;->getClipToPadding()Z move-result v0 const/4 v1, 0x0 if-eqz v0, :cond_28 .line 120 invoke-virtual {p2}, Landroidx/recyclerview/widget/RecyclerView;->getPaddingLeft()I move-result v0 .line 121 invoke-virtual {p2}, Landroidx/recyclerview/widget/RecyclerView;->getWidth()I move-result v2 invoke-virtual {p2}, Landroidx/recyclerview/widget/RecyclerView;->getPaddingRight()I move-result v3 sub-int/2addr v2, v3 .line 122 invoke-virtual {p2}, Landroidx/recyclerview/widget/RecyclerView;->getPaddingTop()I move-result v3 .line 123 invoke-virtual {p2}, Landroidx/recyclerview/widget/RecyclerView;->getHeight()I move-result v4 invoke-virtual {p2}, Landroidx/recyclerview/widget/RecyclerView;->getPaddingBottom()I move-result v5 sub-int/2addr v4, v5 .line 122 invoke-virtual {p1, v0, v3, v2, v4}, Landroid/graphics/Canvas;->clipRect(IIII)Z goto :goto_2d .line 126 :cond_28 invoke-virtual {p2}, Landroidx/recyclerview/widget/RecyclerView;->getWidth()I move-result v2 move v0, v1 .line 129 :goto_2d invoke-virtual {p2}, Landroidx/recyclerview/widget/RecyclerView;->getChildCount()I move-result v3 :goto_31 if-ge v1, v3, :cond_5e .line 131 invoke-virtual {p2, v1}, Landroidx/recyclerview/widget/RecyclerView;->getChildAt(I)Landroid/view/View; move-result-object v4 .line 132 iget-object v5, p0, Landroidx/recyclerview/widget/DividerItemDecoration;->mBounds:Landroid/graphics/Rect; invoke-virtual {p2, v4, v5}, Landroidx/recyclerview/widget/RecyclerView;->getDecoratedBoundsWithMargins(Landroid/view/View;Landroid/graphics/Rect;)V .line 133 iget-object v5, p0, Landroidx/recyclerview/widget/DividerItemDecoration;->mBounds:Landroid/graphics/Rect; 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 .line 134 iget-object v4, p0, Landroidx/recyclerview/widget/DividerItemDecoration;->mDivider:Landroid/graphics/drawable/Drawable; invoke-virtual {v4}, Landroid/graphics/drawable/Drawable;->getIntrinsicHeight()I move-result v4 sub-int v4, v5, v4 .line 135 iget-object v6, p0, Landroidx/recyclerview/widget/DividerItemDecoration;->mDivider:Landroid/graphics/drawable/Drawable; invoke-virtual {v6, v0, v4, v2, v5}, Landroid/graphics/drawable/Drawable;->setBounds(IIII)V .line 136 iget-object v4, p0, Landroidx/recyclerview/widget/DividerItemDecoration;->mDivider:Landroid/graphics/drawable/Drawable; invoke-virtual {v4, p1}, Landroid/graphics/drawable/Drawable;->draw(Landroid/graphics/Canvas;)V add-int/lit8 v1, v1, 0x1 goto :goto_31 .line 138 :cond_5e invoke-virtual {p1}, Landroid/graphics/Canvas;->restore()V return-void .end method # virtual methods .method public getItemOffsets(Landroid/graphics/Rect;Landroid/view/View;Landroidx/recyclerview/widget/RecyclerView;Landroidx/recyclerview/widget/RecyclerView$State;)V .registers 6 .line 171 iget-object p2, p0, Landroidx/recyclerview/widget/DividerItemDecoration;->mDivider:Landroid/graphics/drawable/Drawable; const/4 p3, 0x0 if-nez p2, :cond_9 .line 172 invoke-virtual {p1, p3, p3, p3, p3}, Landroid/graphics/Rect;->set(IIII)V return-void .line 175 :cond_9 iget p4, p0, Landroidx/recyclerview/widget/DividerItemDecoration;->mOrientation:I const/4 v0, 0x1 if-ne p4, v0, :cond_16 .line 176 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_1d .line 178 :cond_16 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_1d return-void .end method .method public onDraw(Landroid/graphics/Canvas;Landroidx/recyclerview/widget/RecyclerView;Landroidx/recyclerview/widget/RecyclerView$State;)V .registers 5 .line 104 invoke-virtual {p2}, Landroidx/recyclerview/widget/RecyclerView;->getLayoutManager()Landroidx/recyclerview/widget/RecyclerView$LayoutManager; move-result-object p3 if-eqz p3, :cond_17 iget-object p3, p0, Landroidx/recyclerview/widget/DividerItemDecoration;->mDivider:Landroid/graphics/drawable/Drawable; if-nez p3, :cond_b goto :goto_17 .line 107 :cond_b iget p3, p0, Landroidx/recyclerview/widget/DividerItemDecoration;->mOrientation:I const/4 v0, 0x1 if-ne p3, v0, :cond_14 .line 108 invoke-direct {p0, p1, p2}, Landroidx/recyclerview/widget/DividerItemDecoration;->drawVertical(Landroid/graphics/Canvas;Landroidx/recyclerview/widget/RecyclerView;)V goto :goto_17 .line 110 :cond_14 invoke-direct {p0, p1, p2}, Landroidx/recyclerview/widget/DividerItemDecoration;->drawHorizontal(Landroid/graphics/Canvas;Landroidx/recyclerview/widget/RecyclerView;)V :cond_17 :goto_17 return-void .end method .method public setDrawable(Landroid/graphics/drawable/Drawable;)V .registers 3 if-eqz p1, :cond_5 .line 99 iput-object p1, p0, Landroidx/recyclerview/widget/DividerItemDecoration;->mDivider:Landroid/graphics/drawable/Drawable; return-void .line 97 :cond_5 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 .registers 3 if-eqz p1, :cond_e const/4 v0, 0x1 if-ne p1, v0, :cond_6 goto :goto_e .line 84 :cond_6 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 .line 87 :cond_e :goto_e iput p1, p0, Landroidx/recyclerview/widget/DividerItemDecoration;->mOrientation:I return-void .end method