package Ġkr . ac . sn u . hc il . om n itr ack . views . rating Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . text . Sp ann able Ċ import Ġandroid . text . Sp ann able String Ċ import Ġandroid . text . style . ForegroundColor Span Ċ import Ġandroid . text . style . Relative Size Span Ċ import Ġandroid . text . style . Type face Span Ċ import Ġandroid . util . Attribute Set Ċ import Ġandroid . widget . LinearLayout Ċ import Ġandroid . widget . TextView Ċ import Ġandroidx . core . content . Context Compat Ċ import Ġkr . ac . sn u . hc il . android . common . view . inflate Content Ċ import Ġkr . ac . sn u . hc il . om n itr ack . views . R Ċ Ċ /** Ċ Ġ* ĠCreated Ġby Ġyo un gh ok im Ġon Ġ 2 0 1 7 . Ġ 4 . Ġ 1 5 .. Ċ Ġ*/ Ċ class ĠStar Score View Ġ: ĠLinearLayout Ġ{ ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġscore Type Span : ĠType face Span Ġby Ġlazy Ġ{ ĠType face Span (" sans - serif ") Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġscore Size Span : ĠRelative Size Span Ġby Ġlazy Ġ{ ĠRelative Size Span ( 1 . 5 f ) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval Ġscore Color Span : ĠFore ground Color Span Ġby Ġlazy Ġ{ ĠFore ground Color Span ( Context Compat . getColor ( context , ĠR . color . textColor Mid )) Ġ} ĊĊĠĠĠ Ġprivate Ġval Ġscore View : ĠTextView ĊĊĠĠĠ Ġconstructor ( context : ĠContext ?) Ġ: Ġsuper ( context ) ĊĊĠĠĠ Ġconstructor ( context : ĠContext ?, Ġattrs : ĠAttributeSet ?) Ġ: Ġsuper ( context , Ġattrs ) ĊĠĠĠ Ġconstructor ( context : ĠContext ?, Ġattrs : ĠAttributeSet ?, Ġdef Style Attr : ĠInt ) Ġ: Ġsuper ( context , Ġattrs , Ġdef Style Attr ) ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġorientation Ġ= ĠH ORIZONTAL ĊĠĠĠĠĠĠĠ Ġinf late Content ( R . layout . component _ star _ score _ view , Ġtrue ) ĊĠĠĠĠĠĠĠ Ġscore View Ġ= ĠfindViewById ( R . id . ui _ text ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset Score ( score : ĠFloat , Ġmax Score : ĠFloat ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġmax Score String Ġ= Ġif Ġ( max Score Ġ- Ġmax Score . toInt () Ġ< Ġ 0 . 0 0 0 0 0 0 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmax Score . toInt (). toString () ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġmax Score . toString () ĊĊĠĠĠĠĠĠĠ Ġval Ġscore String Ġ= Ġif Ġ( score Ġ- Ġscore . toInt () Ġ< Ġ 0 . 0 0 0 0 0 0 0 0 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġscore . toInt (). toString () ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġscore . toString () ĊĊĠĠĠĠĠĠĠ Ġval Ġsp ann able Ġ= ĠSp ann able String ("$ score String /$ max Score String "). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . set Span ( score Type Span , Ġ 0 , Ġscore String . length , ĠSp ann able . SPAN _ EXCL USIVE _ EXCL USIVE ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . set Span ( score Size Span , Ġ 0 , Ġscore String . length , ĠSp ann able . SPAN _ EXCL USIVE _ EXCL USIVE ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . set Span ( score Color Span , Ġ 0 , Ġscore String . length , ĠSp ann able . SPAN _ EXCL USIVE _ EXCL USIVE ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġscore View . text Ġ= Ġsp ann able ĊĠĠĠ Ġ} Ċ Ċ }