package Ġeu . kan ade . t ach iy omi . ui . library Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . res . Color State List Ċ import Ġandroid . util . Attribute Set Ċ import Ġandroidx . core . view . isVisible Ċ import Ġandroidx . core . view . update Padding Relative Ċ import Ġcom . google . android . material . card . Material Card View Ċ import Ġcom . google . android . material . shape . Material Shape Drawable Ċ import Ġeu . kan ade . t ach iy omi . R Ċ import Ġeu . kan ade . t ach iy omi . databinding . Un read Download Badge Binding Ċ import Ġeu . kan ade . t ach iy omi . util . system . context Compat Color Ċ import Ġeu . kan ade . t ach iy omi . util . system . dp To Px Ċ import Ġeu . kan ade . t ach iy omi . util . system . getResource Color Ċ import Ġeu . kan ade . t ach iy omi . util . view . make Shape C orners Ċ Ċ class ĠLibrary Badge Ġ@ Jvm Over loads Ġconstructor ( context : ĠContext , Ġattrs : ĠAttributeSet ? Ġ= Ġnull ) Ġ: ĊĠĠĠ ĠMaterial Card View ( context , Ġattrs ) Ġ{ ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġbinding : ĠUn read Download Badge Binding ĊĊĠĠĠ Ġoverride Ġfun Ġon Finish Inf late () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Finish Inf late () ĊĠĠĠĠĠĠĠ Ġbinding Ġ= ĠUn read Download Badge Binding . bind ( this ) ĊĊĠĠĠĠĠĠĠ Ġshape Appearance Model Ġ= Ġmake Shape C orners ( radius , Ġradius ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset Un read Download ( ĊĠĠĠĠĠĠĠ Ġunread : ĠInt , ĊĠĠĠĠĠĠĠ Ġdownloads : ĠInt , ĊĠĠĠĠĠĠĠ Ġshow Total Chapter s : ĠBoolean , ĊĠĠĠĠĠĠĠ Ġchange Shape : ĠBoolean ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠUpdate Ġthe Ġunread Ġcount Ġand Ġits Ġvisibility . ĊĊĠĠĠĠĠĠĠ Ġval Ġunread Badge Background Ġ= Ġif Ġ( show Total Chapter s ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontext . context Compat Color ( R . color . total _ badge ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġcontext . getResource Color ( R . attr . color Secondary ) ĊĊĠĠĠĠĠĠĠ Ġwith ( binding . unread Text ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis Visible Ġ= Ġunread Ġ> Ġ 0 Ġ|| Ġunread Ġ== Ġ- 1 Ġ|| Ġshow Total Chapter s ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! isVisible ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn @ with ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtext Ġ= Ġif Ġ( unread Ġ== Ġ- 1 ) Ġ" 0 " Ġelse Ġunread . toString () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset TextColor ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġhide Ġthe Ġbadge Ġtext Ġwhen Ġpreference Ġis Ġonly Ġshow Ġbadge ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġunread Ġ== Ġ- 1 Ġ&& Ġ! show Total Chapter s Ġ-> Ġunread Badge Background ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshow Total Chapter s Ġ-> Ġcontext . context Compat Color ( R . color . total _ badge _ text ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġcontext . getResource Color ( R . attr . color On Secondary ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset BackgroundColor ( unread Badge Background ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// ĠUpdate Ġthe Ġdownload Ġcount Ġor Ġlocal Ġstatus Ġand Ġits Ġvisibility . ĊĠĠĠĠĠĠĠ Ġwith ( binding . download Text ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis Visible Ġ= Ġdownloads Ġ== Ġ- 2 Ġ|| Ġdownloads Ġ> Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! isVisible ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn @ with ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtext Ġ= Ġif Ġ( downloads Ġ== Ġ- 2 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresources . getString ( R . string . local ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdownloads . toString () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġset TextColor ( context . getResource Color ( R . attr . color On T ert i ary )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset BackgroundColor ( context . getResource Color ( R . attr . color T ert i ary )) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġshape Appearance Model Ġ= Ġshape Appearance Model . with Corner Size ( radius ) ĊĠĠĠĠĠĠĠ Ġif Ġ( change Shape ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġshape Appearance Model Ġ= Ġmake Shape C orners ( radius , Ġradius ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( binding . download Text . isVisible Ġ&& Ġbinding . unread Text . isVisible ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . download Text . background Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMaterial Shape Drawable ( make Shape C orners ( top Start Ġ= Ġradius )). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis . fill Color Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠColor State List . valueOf ( context . getResource Color ( R . attr . color T ert i ary )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . unread Text . background Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMaterial Shape Drawable ( make Shape C orners ( bottom End Ġ= Ġradius )). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis . fill Color Ġ= ĠColor State List . valueOf ( unread Badge Background ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( binding . unread Text . isVisible ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . unread Text . background Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMaterial Shape Drawable ( make Shape C orners ( radius , Ġradius )). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis . fill Color Ġ= ĠColor State List . valueOf ( unread Badge Background ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( unread Ġ== Ġ- 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshape Appearance Model Ġ= Ġshape Appearance Model . with Corner Size ( radius ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( binding . download Text . isVisible ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . download Text . background Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMaterial Shape Drawable ( make Shape C orners ( radius , Ġradius )). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis . fill Color Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠColor State List . valueOf ( context . getResource Color ( R . attr . color T ert i ary )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// ĠShow Ġthe Ġbadge Ġcard Ġif Ġunread Ġor Ġdownloads Ġexists ĊĠĠĠĠĠĠĠ Ġis Visible Ġ= Ġbinding . download Text . isVisible Ġ|| Ġbinding . unread Text . isVisible ĊĊĠĠĠĠĠĠĠ Ġ// ĠShow Ġthe Ġangles Ġdivider Ġif Ġboth Ġunread Ġand Ġdownloads Ġexists ĊĠĠĠĠĠĠĠ Ġbinding . unread Angle . isVisible Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . download Text . isVisible Ġ&& Ġbinding . unread Text . isVisible ĊĊĠĠĠĠĠĠĠ Ġbinding . unread Angle . setColor Filter ( unread Badge Background ) ĊĠĠĠĠĠĠĠ Ġif Ġ( binding . unread Angle . isVisible ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . download Text . update Padding Relative ( end Ġ= Ġ 8 . dp To Px ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . unread Text . update Padding Relative ( start Ġ= Ġ 2 . dp To Px ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . download Text . update Padding Relative ( end Ġ= Ġ 5 . dp To Px ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . unread Text . update Padding Relative ( start Ġ= Ġ 5 . dp To Px ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset Chapter s ( chapter s : ĠInt ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġset Un read Download ( chapter s Ġ?: Ġ 0 , Ġ 0 , Ġchapter s Ġ!= Ġnull , Ġtrue ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset In Library ( in Library : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . isVisible Ġ= Ġin Library ĊĠĠĠĠĠĠĠ Ġbinding . unread Angle . isVisible Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġbinding . unread Text . update Padding Relative ( start Ġ= Ġ 5 . dp To Px ) ĊĠĠĠĠĠĠĠ Ġbinding . unread Text . isVisible Ġ= Ġin Library ĊĠĠĠĠĠĠĠ Ġbinding . unread Text . text Ġ= Ġresources . getText ( R . string . in _ library ) ĊĠĠĠĠĠĠĠ Ġbinding . unread Text . background Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMaterial Shape Drawable ( make Shape C orners ( radius , Ġradius )). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis . fill Color Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠColor State List . valueOf ( context . getResource Color ( R . attr . color Secondary )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ