package Ġcom . mast omas . com ic book browser . adapters Ċ Ċ import Ġandroid . graphics . Rect Ċ import Ġandroid . view . View Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġandroidx . recyclerview . widget . RecyclerView . Item Decoration Ċ import Ġandroidx . recyclerview . widget . RecyclerView . State Ċ import Ġandroidx . recyclerview . widget . St agger ed Grid LayoutManager Ċ import Ġcom . mast omas . com ic book browser . util . dp To Px Ċ Ċ class ĠCustom Item Dec Ġ: ĠItem Decoration () Ġ{ ĊĊĠĠĠ Ġoverride Ġfun ĠgetItem Offsets ( out Rect : ĠRect , Ġview : ĠView , Ġparent : ĠRecyclerView , Ġstate : ĠState ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . getItem Offsets ( out Rect , Ġview , Ġparent , Ġstate ) ĊĠĠĠĠĠĠĠ Ġval Ġposition Ġ= Ġparent . getChild Adapter Position ( view ) ĊĠĠĠĠĠĠĠ Ġval Ġcontext Ġ= Ġparent . context ĊĠĠĠĠĠĠĠ Ġval Ġouter Horizontal Margin Ġ= Ġ 2 0 . dp To Px ( context ) ĊĠĠĠĠĠĠĠ Ġval Ġinner Horizontal Margin Ġ= Ġ 1 0 . dp To Px ( context ) ĊĠĠĠĠĠĠĠ Ġval Ġouter Vertical Margin Ġ= Ġ 2 0 . dp To Px ( context ) ĊĠĠĠĠĠĠĠ Ġval Ġinner Vertical Margin Ġ= Ġ 1 0 . dp To Px ( context ) ĊĠĠĠĠĠĠĠ Ġwhen Ġ(( view . layout Params Ġas ĠSt agger ed Grid LayoutManager . LayoutParams ). span Index ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Items Ġon Ġthe Ġleft ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġout Rect . left Ġ= Ġouter Horizontal Margin ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġout Rect . right Ġ= Ġinner Horizontal Margin ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( position ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// First Ġitem ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 0 Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġout Rect . top Ġ= Ġouter Vertical Margin ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġout Rect . bottom Ġ= Ġinner Vertical Margin ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Last Ġitem ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġparent . adapter ?. item Count ?. minus ( 1 ) Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġout Rect . top Ġ= Ġinner Vertical Margin ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġout Rect . bottom Ġ= Ġouter Vertical Margin ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Rest Ġof Ġitems ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġout Rect . top Ġ= Ġinner Vertical Margin ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġout Rect . bottom Ġ= Ġinner Vertical Margin ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Items Ġon Ġthe Ġright ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġout Rect . left Ġ= Ġinner Horizontal Margin ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġout Rect . right Ġ= Ġouter Horizontal Margin ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( position ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// First Ġitem ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 0 Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġout Rect . top Ġ= Ġouter Vertical Margin ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġout Rect . bottom Ġ= Ġinner Vertical Margin ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Last Ġitem ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġparent . adapter ?. item Count ?. minus ( 1 ) Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġout Rect . top Ġ= Ġinner Vertical Margin ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġout Rect . bottom Ġ= Ġouter Vertical Margin ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Rest Ġof Ġitems ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġout Rect . top Ġ= Ġinner Vertical Margin ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġout Rect . bottom Ġ= Ġinner Vertical Margin ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }