@ file : Suppress (" unused ") Ċ Ċ package Ġcom . nek 1 2 . android utils . extensions . android Ċ Ċ import Ġandroid . graphics . Color Ċ import Ġandroid . graphics . Type face Ċ import Ġandroid . text . Sp ann able Ċ import Ġandroid . text . Sp ann able String Ċ import Ġandroid . text . Sp ann able StringBuilder Ċ import Ġandroid . text . Sp anned Ċ import Ġandroid . text . style . BackgroundColor Span Ċ import Ġandroid . text . style . Clickable Span Ċ import Ġandroid . text . style . ForegroundColor Span Ċ import Ġandroid . text . style . Relative Size Span Ċ import Ġandroid . text . style . Stri ke through Span Ċ import Ġandroid . text . style . Style Span Ċ import Ġandroid . text . style . Sub script Span Ċ import Ġandroid . text . style . Sup erscript Span Ċ import Ġandroid . text . style . Underline Span Ċ import Ġandroid . util . Patterns Ċ import Ġandroid . view . View Ċ import Ġandroidx . annotation . Color Int Ċ import Ġandroidx . core . text . Html Compat Ċ import Ġcom . nek 1 2 . android utils . extensions . core . isValid Ċ import Ġjava . util .* Ċ Ċ val ĠString ?. isValid Email : ĠBoolean ĊĠĠĠ Ġget () Ġ= ĠisValid Ġ&& ĠPattern s . EMAIL _ ADDRESS . matcher ( this !! ). matches () Ċ Ċ val ĠString ?. isValid Phone : ĠBoolean ĊĠĠĠ Ġget () Ġ= ĠisValid Ġ&& ĠPattern s . PHONE . matcher ( this !! ). matches () Ċ Ċ /** Ċ Ġ* ĠCreate Ġa Ġspan Ġwith Ġa Ġ[ click able Part ] Ġof Ġthe Ġtext , Ġand Ġinvokes Ġthe Ġ[ on ClickListener ] Ġon Ġclick . Ċ Ġ*/ Ċ fun ĠSp ann able String . with Clickable Span ( ĊĠĠĠ Ġclick able Part : ĠString , ĊĠĠĠ ĠonClick Listener : Ġ() Ġ-> ĠUnit Ċ ): ĠSp ann able String Ġ{ ĊĠĠĠ Ġval Ġclick able Span Ġ= Ġobject : ĠClick able Span () Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonClick ( widget : ĠView ) Ġ= ĠonClick Listener . invoke () ĊĠĠĠ Ġ} ĊĠĠĠ Ġval Ġclick able Part Start Ġ= ĠindexOf ( click able Part ) ĊĠĠĠ Ġset Span ( ĊĠĠĠĠĠĠĠ Ġclick able Span , ĊĠĠĠĠĠĠĠ Ġclick able Part Start , ĊĠĠĠĠĠĠĠ Ġclick able Part Start Ġ+ Ġclick able Part . length , ĊĠĠĠĠĠĠĠ ĠSp ann able . SPAN _ EXCL USIVE _ EXCL USIVE ĊĠĠĠ Ġ) ĊĠĠĠ Ġreturn Ġthis Ċ } ĊĊ Ċ /** Ċ Ġ* Ġ[ span ] Ġis Ġa Ġ.. Span Ġobject Ġlike Ġa Ġ[ ForegroundColor Span ] Ġor Ġa Ġ[ Sup erscript Span ] Ċ Ġ* ĠSp ans Ġthis Ġwhole Ġstring Ċ Ġ*/ Ċ fun ĠCharSequence . span ( span : ĠAny ): ĠSp ann able String Ġ= ĠSp ann able String ( this ). set Span ( span ) Ċ Ċ private Ġfun ĠCharSequence . build Span () Ġ= ĠSp ann able StringBuilder ( this ) Ċ Ċ private Ġval ĠCharSequence . span nable Ġget () Ġ= ĠSp ann able String ( this ) Ċ Ċ /** Ċ Ġ* Ġ[ span ] Ġis Ġa Ġ.. Span Ġobject Ġlike Ġa Ġ[ ForegroundColor Span ] Ġor Ġa Ġ[ Sup erscript Span ] Ċ Ġ* ĠSp ans Ġthis Ġwhole Ġstring Ċ Ġ*/ Ċ private Ġfun ĠSp ann able String . set Span ( span : ĠAny ?) Ġ= Ġapply Ġ{ ĊĠĠĠ Ġset Span ( span , Ġ 0 , Ġlength , ĠSp ann able String . SPAN _ INCL USIVE _ EXCL USIVE ) Ċ } Ċ Ċ fun ĠCharSequence . foreground Color (@ Color Int Ġcolor : ĠInt ): ĠSp ann able String Ġ= Ġspan ( ForegroundColor Span ( color )) Ċ Ċ fun ĠCharSequence . backgroundColor (@ Color Int Ġcolor : ĠInt ): ĠSp ann able String Ġ= Ġspan ( BackgroundColor Span ( color )) Ċ Ċ fun ĠCharSequence . relative Size ( size : ĠFloat ): ĠSp ann able String Ġ= Ġspan ( Relative Size Span ( size )) Ċ Ċ fun ĠCharSequence . sup erscript (): ĠSp ann able String Ġ= Ġspan ( Sup erscript Span ()) Ċ Ċ fun ĠCharSequence . sub script () Ġ= Ġspan ( Sub script Span ()) Ċ Ċ fun ĠCharSequence . strike (): ĠSp ann able String Ġ= Ġspan ( Stri ke through Span ()) Ċ Ċ fun ĠCharSequence . bold () Ġ= Ġspan ( Style Span ( Type face . BOLD )) Ċ Ċ fun ĠCharSequence . italic () Ġ= Ġspan ( Style Span ( Type face . ITAL IC )) Ċ Ċ fun ĠCharSequence . underline () Ġ= Ġspan ( Underline Span ()) Ċ Ċ /** Ċ Ġ* ĠIf Ġthis Ġis Ġa Ġvalid Ġhex Ġcolor Ġstring Ġrepresentation , Ġreturns Ġits ĠR , ĠG Ġand ĠB Ġcomponents Ċ Ġ* Ġ@ throws ĠIllegalArgumentException Ġif Ġthe Ġcolor Ġstring Ġis Ġinvalid Ċ Ġ* Ċ Ġ*/ Ċ fun ĠString . hex to RGB (): ĠTrip le < Int , ĠInt , ĠInt > Ġ{ ĊĠĠĠ Ġvar Ġname Ġ= Ġthis ĊĠĠĠ Ġif Ġ(! name . startsWith ("# ")) Ġ{ ĊĠĠĠĠĠĠĠ Ġname Ġ= Ġ"# $ this " ĊĠĠĠ Ġ} ĊĠĠĠ Ġval Ġcolor Ġ= ĠColor . parse Color ( name ) ĊĠĠĠ Ġval Ġred Ġ= ĠColor . red ( color ) ĊĠĠĠ Ġval Ġgreen Ġ= ĠColor . green ( color ) ĊĠĠĠ Ġval Ġblue Ġ= ĠColor . blue ( color ) ĊĠĠĠ Ġreturn ĠTrip le ( red , Ġgreen , Ġblue ) Ċ } Ċ Ċ /** Ċ Ġ* ĠIf Ġthis Ġis Ġa Ġcolor Ġint , Ġturns Ġit Ġinto Ġa Ġhex Ġstring . Ċ Ġ*/ Ċ fun ĠInt . color To HexString () Ġ= ĠString . format ( Locale . ROOT , Ġ"# % 0 6 X ", Ġ- 0 x 1 Ġand Ġthis ). replace ("# FF ", Ġ"# ") Ċ Ċ val ĠString . as HTML : ĠSp anned ĊĠĠĠ Ġget () Ġ= ĠHtml Compat . from Html ( this , Ġ 0 ) Ċ