package Ġcz . covid 1 9 cz . erous ka . utils Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . widget . TextView Ċ import Ġandroidx . annotation . Pl urals Res Ċ import Ġandroidx . annotation . String Res Ċ import Ġandroidx . databinding . Binding Adapter Ċ import Ġkotlinx . android . parcel . Raw Value Ċ Ċ sealed Ġclass ĠText Ġ{ ĊĠĠĠ Ġdata Ġclass ĠChar Text ( val Ġchar Sequence : ĠCharSequence ) Ġ: ĠText () ĊĊĠĠĠ Ġdata Ġclass ĠRes Text ( ĊĠĠĠĠĠĠĠ Ġ@ String Res Ġval Ġres Id : ĠInt , ĊĠĠĠĠĠĠĠ Ġval Ġformat Args : ĠList < @ Raw Value ĠAny > Ġ= Ġempty List () ĊĠĠĠ Ġ) Ġ: ĠText () ĊĊĠĠĠ Ġdata Ġclass ĠRes Quantity Text ( ĊĠĠĠĠĠĠĠ Ġ@ Pl urals Res Ġval Ġres Id : ĠInt , ĊĠĠĠĠĠĠĠ Ġval Ġquantity : ĠInt , ĊĠĠĠĠĠĠĠ Ġval Ġformat Args : ĠList < @ Raw Value ĠAny > Ġ= Ġempty List () ĊĠĠĠ Ġ) Ġ: ĠText () ĊĊĠĠĠ Ġdata Ġclass ĠResolved Text ( val Ġresolver : Ġ@ Raw Value ĠText Resolver ): ĠText () ĊĊĠĠĠ Ġfun Ġto CharSequence ( context : ĠContext ): ĠCharSequence Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ( this ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠChar Text Ġ-> Ġchar Sequence ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠRes Text Ġ-> Ġif Ġ( format Args . isEmpty ()) Ġcontext . getText ( res Id ) Ġelse Ġcontext . getString ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġres Id , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* format Args . resolver Format Args ( context ). to Typed Array () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠRes Quantity Text Ġ-> Ġif Ġ( format Args . isEmpty ()) Ġcontext . resources . get Quantity String ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġres Id , Ġquantity , Ġquantity ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġelse Ġcontext . resources . get Quantity String ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġres Id , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġquantity , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* format Args . resolver Format Args ( context ). to Typed Array () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠResolved Text Ġ-> Ġresolver ( context ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ private Ġfun ĠList < Any >. resolver Format Args ( context : ĠContext ): ĠList < Any > Ġ{ ĊĠĠĠ Ġreturn Ġthis . map Ġ{ Ġif Ġ( it Ġis ĠText ) Ġit . to CharSequence ( context ) Ġelse Ġit Ġ} Ċ } Ċ Ċ type alias ĠText Resolver Ġ= Ġ( Context ) Ġ-> ĠCharSequence Ċ Ċ fun ĠCharSequence . to Text () Ġ= ĠText . Char Text ( this ) Ċ fun Ġ@ receiver : String Res ĠInt . to Text ( var arg Ġformat Args : ĠAny ) Ġ= ĠText . Res Text ( this , Ġformat Args . toList ()) Ċ fun Ġ@ receiver : Pl urals Res ĠInt . to Quantity Text ( quantity : ĠInt , Ġvar arg Ġformat Args : ĠAny ) Ġ= ĊĠĠĠ ĠText . Res Quantity Text ( this , Ġquantity , Ġformat Args . toList ()) Ċ Ċ @ Binding Adapter (" android : text ") Ċ fun Ġset Text ( textView : ĠTextView , Ġtext : ĠText ?) Ġ{ ĊĠĠĠ ĠtextView . text Ġ= Ġtext ?. to CharSequence ( textView . context ) Ċ } Ċ Ċ private Ġval ĠPH ONE _ REGEX Ġ= ĠRegex (""" ( \+ \ d + )? \ s * (\ d { 3 })\ s * (\ d { 3 })\ s * (\ d { 3 }) """) Ċ