package Ġorg . simple . clin ic . widgets Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . graphics . Canvas Ċ import Ġandroid . graphics . Rect Ċ import Ġandroid . graphics . drawable . Drawable Ċ import Ġandroid . view . View Ċ import Ġandroidx . core . content . res . use Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġtim ber . log . Tim ber Ċ import Ġkotlin . math . round ToInt Ċ Ċ private Ġval ĠATTR S Ġ= Ġint ArrayOf ( android . R . attr . list Divider ) Ċ Ċ class ĠDiv ider Item Decorator ( ĊĠĠĠ Ġval Ġcontext : ĠContext , ĊĠĠĠ Ġval Ġmargin Start : ĠInt , ĊĠĠĠ Ġval Ġmargin End : ĠInt , Ċ ) Ġ: ĠRecyclerView . Item Decoration () Ġ{ ĊĊĠ Ġprivate Ġval Ġm Bounds Ġ= ĠRect () ĊĊĠ Ġprivate Ġvar Ġdivider : ĠDrawable ? Ġ= Ġnull ĊĊĠ Ġinit Ġ{ ĊĠĠĠ Ġcontext . obtain Styled Attributes ( ATTR S ). use Ġ{ ĊĠĠĠĠĠ Ġdivider Ġ= Ġit . get Drawable ( 0 ) ĊĠĠĠ Ġ} ĊĠĠĠ Ġif Ġ( divider Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠ ĠTim ber . w ("@ android : attr / list Divider Ġwas Ġnot Ġset Ġin Ġthe Ġtheme Ġused ") ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġon Draw ( c : ĠCanvas , Ġparent : ĠRecyclerView , Ġstate : ĠRecyclerView . State ) Ġ{ ĊĠĠĠ Ġif Ġ( parent . layout Manager Ġ== Ġnull Ġ|| Ġdivider Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠ Ġreturn ĊĠĠĠ Ġ} ĊĠĠĠ Ġdraw Div iders ( c , Ġparent ) ĊĠ Ġ} ĊĊĠ Ġprivate Ġfun Ġdraw Div iders ( canvas : ĠCanvas , Ġparent : ĠRecyclerView ) Ġ{ ĊĠĠĠ Ġcanvas . save () ĊĠĠĠ Ġval Ġleft Ġ= Ġmargin Start ĊĠĠĠ Ġval Ġright Ġ= Ġparent . width Ġ- Ġmargin End ĊĊĠĠĠ Ġval Ġchild Count Ġ= Ġparent . child Count ĊĠĠĠ Ġfor Ġ( i Ġin Ġ 0 Ġuntil Ġchild Count Ġ- Ġ 1 ) Ġ{ ĊĠĠĠĠĠ Ġval Ġchild Ġ= Ġparent . getChild At ( i ) ĊĠĠĠĠĠ Ġparent . get Decorated Bounds With Margins ( child , Ġm Bounds ) ĊĠĠĠĠĠ Ġval Ġbottom : ĠInt Ġ= Ġm Bounds . bottom Ġ+ Ġchild . translation Y . round ToInt () ĊĠĠĠĠĠ Ġval Ġtop : ĠInt Ġ= Ġbottom Ġ- Ġdivider !!. intrinsic Height ĊĠĠĠĠĠ Ġdivider !!. setBounds ( left , Ġtop , Ġright , Ġbottom ) ĊĠĠĠĠĠ Ġdivider !!. draw ( canvas ) ĊĠĠĠ Ġ} ĊĠĠĠ Ġcanvas . restore () ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun ĠgetItem Offsets ( ĊĠĠĠĠĠ Ġout Rect : ĠRect , ĊĠĠĠĠĠ Ġview : ĠView , ĊĠĠĠĠĠ Ġparent : ĠRecyclerView , ĊĠĠĠĠĠ Ġstate : ĠRecyclerView . State ĊĠ Ġ) Ġ{ ĊĠĠĠ Ġif Ġ( divider Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠ Ġout Rect [ 0 , Ġ 0 , Ġ 0 ] Ġ= Ġ 0 ĊĠĠĠĠĠ Ġreturn ĊĠĠĠ Ġ} ĊĠĠĠ Ġout Rect [ 0 , Ġ 0 , Ġ 0 ] Ġ= Ġdivider !!. intrinsic Height ĊĠ Ġ} Ċ } Ċ