package Ġcom . co met chat . pro . u ikit . ui _ components . shared . co met chat Badge Count Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . graphics . Color Ċ import Ġandroid . util . Attribute Set Ċ import Ġandroid . view . View Ċ import Ġandroid . widget . LinearLayout Ċ import Ġandroid . widget . TextView Ċ import Ġandroidx . annotation . Color Int Ċ import Ġandroidx . core . graphics . drawable . Drawable Compat Ċ import Ġandroidx . databinding . Binding Method Ċ import Ġandroidx . databinding . Binding Methods Ċ import Ġcom . co met chat . pro . u ikit . R Ċ import Ġcom . co met chat . pro . u ikit . ui _ components . shared . co met chat Avatar . Come t Chat Avatar Ċ Ċ /** Ċ Ġ* ĠPurpose Ġ- ĠThis Ġclass Ġis Ġa Ġsubclass Ġof ĠLinearLayout , ĠIt Ġis Ġa Ġcomponent Ġwhich Ġis Ġbeen Ġused Ġby Ġdeveloper Ċ Ġ* Ġto Ġdisplay Ġthe ĠBadge count Ġfor Ġunread Ġmessage Ġcount Ġor Ġunread Ġconversations . ĠIt Ġcan Ġalso Ċ Ġ* Ġbe Ġused Ġfor Ġother Ġpurpose . ĠThis Ġclass Ġcontains Ġvarious Ġmethods Ġwhich Ċ Ġ* Ġare Ġused Ġto Ġupdate Ġthe Ġcount , Ġset Ġcount Ġbackground Ġcolor , Ġset Ġcount Ġcolor , Ġset Ġcount Ġsize Ċ Ġ* Ċ Ġ* ĠCreated Ġon Ġ- Ġ 2 0 th ĠDecember Ġ 2 0 1 9 Ċ Ġ* Ċ Ġ* ĠModified Ġon Ġ Ġ- Ġ 1 6 th ĠJanuary Ġ 2 0 2 0 Ċ Ġ* Ċ Ġ*/ Ċ @ Binding Methods ( value Ġ= Ġ[ Binding Method ( type Ġ= ĠCome t Chat Avatar :: class , Ġattribute Ġ= Ġ" app : count ", Ġmethod Ġ= Ġ" set Count ") ]) Ċ class ĠCome t Chat Badge Count Ġ: ĠLinearLayout Ġ{ ĊĠĠĠ Ġprivate Ġvar Ġtv Count : ĠTextView ? Ġ= Ġnull Ġ// Used Ġto Ġdisplay Ġcount ĊĠĠĠ Ġprivate Ġvar Ġcount : ĠInt ? Ġ= Ġnull // Used Ġto Ġstore Ġvalue Ġof Ġcount Ġ= Ġ 0 ĊĠĠĠ Ġprivate Ġvar Ġcount Size : ĠFloat ? Ġ= Ġnull Ġ// Used Ġto Ġstore Ġsize Ġof Ġcount Ġ= Ġ 0 f ĊĠĠĠ Ġprivate Ġvar Ġcount Color : ĠInt ?= Ġnull Ġ// Used Ġto Ġstore Ġcolor Ġof Ġcount Ġ= Ġ 0 ĊĠĠĠ Ġprivate Ġvar Ġcount BackgroundColor : ĠInt ? Ġ= Ġnull Ġ// Used Ġto Ġstore Ġbackground Ġcolor Ġof Ġcount . Ġ= Ġ 0 ĊĊĠĠĠ Ġconstructor ( context : ĠContext ) Ġ: Ġsuper ( context ) Ġ{ ĊĠĠĠĠĠĠĠ Ġinit View Component ( context , Ġnull , Ġ- 1 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġconstructor ( context : ĠContext , Ġattrs : ĠAttributeSet ?) Ġ: Ġsuper ( context , Ġattrs ) Ġ{ ĊĠĠĠĠĠĠĠ Ġinit View Component ( context , Ġattrs , Ġ- 1 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġconstructor ( context : ĠContext , Ġattrs : ĠAttributeSet ?, Ġdef Style Attr : ĠInt ) Ġ: Ġsuper ( context , Ġattrs , Ġdef Style Attr ) Ġ{ ĊĠĠĠĠĠĠĠ Ġinit View Component ( context , Ġattrs , Ġdef Style Attr ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠThis Ġmethod Ġis Ġused Ġto Ġinitialize Ġthe Ġview Ġpresent Ġin Ġcomponent Ġand Ġset Ġthe Ġvalue Ġif Ġit Ġis ĊĠĠĠĠ Ġ* Ġavailable . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġcontext ĊĠĠĠĠ Ġ* Ġ@ param Ġattribute Set ĊĠĠĠĠ Ġ* Ġ@ param Ġdef Style Attr ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġinit View Component ( context : ĠContext , Ġattribute Set : ĠAttributeSet ?, Ġdef Style Attr : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġview Ġ= ĠView . inflate ( context , ĠR . layout . co met chat _ badge _ count , Ġnull ) ĊĠĠĠĠĠĠĠ Ġval Ġa Ġ= ĠgetContext (). theme . obtain Styled Attributes ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġattribute Set , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . style able . Badge Count , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 0 , Ġ 0 ) ĊĠĠĠĠĠĠĠ Ġcount Ġ= Ġa . getInt ( R . style able . Badge Count _ count , Ġ 0 ) ĊĠĠĠĠĠĠĠ Ġcount Size Ġ= Ġa . get Dimension ( R . style able . Badge Count _ count _ size , Ġ 1 2 f ) ĊĠĠĠĠĠĠĠ Ġcount Color Ġ= Ġa . getColor ( R . style able . Badge Count _ count _ color , ĠColor . WHITE ) ĊĠĠĠĠĠĠĠ Ġcount BackgroundColor Ġ= Ġa . getColor ( R . style able . Badge Count _ count _ background _ color , Ġresources . getColor ( R . color . color Primary )) ĊĠĠĠĠĠĠĠ Ġadd View ( view ) ĊĠĠĠĠĠĠĠ Ġvisibility Ġ= Ġif Ġ( count Ġ== Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠView . IN VISIBLE ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠView . VISIBLE ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġtv Count Ġ= Ġview . findViewById ( R . id . tv Set Count ) ĊĠĠĠĠĠĠĠ Ġtv Count !!. background Ġ= Ġresources . get Drawable ( R . drawable . count _ background ) ĊĠĠĠĠĠĠĠ Ġtv Count !!. text Size Ġ= Ġcount Size !! ĊĠĠĠĠĠĠĠ Ġtv Count !!. setTextColor ( count Color !! ) ĊĠĠĠĠĠĠĠ Ġtv Count !!. text Ġ= Ġcount . toString () ĊĠĠĠĠĠĠĠ Ġset Count Background ( count BackgroundColor !! ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠThis Ġmethod Ġis Ġused Ġto Ġset Ġbackground Ġcolor Ġof Ġcount . ĊĠĠĠĠ Ġ* Ġ@ param Ġcolor Ġis Ġan Ġobject Ġof ĠColor . class Ġ. ĠIt Ġis Ġused Ġas Ġcolor Ġfor Ġbackground . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġset Count Background (@ Color Int Ġcolor : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġun wrapped Drawable Ġ= Ġtv Count !!. background ĊĠĠĠĠĠĠĠ Ġval Ġwrapped Drawable Ġ= ĠDrawable Compat . wrap ( un wrapped Drawable ) ĊĠĠĠĠĠĠĠ ĠDrawable Compat . set Tint ( wrapped Drawable , Ġcolor ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠThis Ġmethod Ġis Ġused Ġto Ġset Ġcolor Ġof Ġcount Ġi . e Ġinteger . ĊĠĠĠĠ Ġ* Ġ@ param Ġcolor Ġis Ġan Ġobject Ġof ĠColor . class . ĠIt Ġis Ġused Ġas Ġcolor Ġof Ġtext Ġin Ġtv Count Ġ( TextView ) ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġset Count Color (@ Color Int Ġcolor : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġtv Count !!. setTextColor ( color ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠThis Ġmethod Ġis Ġused Ġto Ġset Ġsize Ġof Ġtext Ġpresent Ġin Ġtv Count ( TextView ) Ġi . e Ġcount Ġsize ; ĊĠĠĠĠ Ġ* Ġ@ param Ġsize ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġset Count Size ( size : ĠFloat ) Ġ{ ĊĠĠĠĠĠĠĠ Ġtv Count !!. text Size Ġ= Ġsize ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠThis Ġmethod Ġis Ġused Ġto Ġset Ġcount Ġin Ġtv Count ( TextView ). ĠIf Ġcount Ġis Ġ 0 Ġthen Ġtv Count Ġis Ġinvisible ĊĠĠĠĠ Ġ* ĠIf Ġcount Ġis Ġmore Ġthan Ġ 1 , Ġthen Ġit Ġwill Ġdisplay Ġthe Ġvalue . ĠThe Ġlimit Ġof Ġthe Ġcount Ġshown Ġwill Ġbe Ġ 9 9 9 . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġcount Ġis Ġan ĠInteger Ġwhich Ġis Ġset Ġin Ġtv Count ( TextView ). ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġset Count ( count : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . count Ġ= Ġcount ĊĠĠĠĠĠĠĠ Ġvisibility Ġ= Ġif Ġ( count Ġ== Ġ 0 ) ĠView . GONE Ġelse ĠView . VISIBLE ĊĠĠĠĠĠĠĠ Ġif Ġ( count Ġ< Ġ 9 9 9 ) Ġtv Count !!. text Ġ= Ġcount . toString () Ġelse Ġtv Count !!. text Ġ= Ġ" 9 9 9 +" ĊĠĠĠ Ġ} Ċ }