package Ġcom . ire ward . html compose Ċ Ċ import Ġandroid . text . style .* Ċ import Ġandroid . widget . TextView Ċ import Ġandroidx . compose . foundation . text . Clickable Text Ċ import Ġandroidx . compose . material . Text Ċ import Ġandroidx . compose . runtime . Composable Ċ import Ġandroidx . compose . ui . Modifier Ċ import Ġandroidx . compose . ui . graphics . Color Ċ import Ġandroidx . compose . ui . platform . Local Context Ċ import Ġandroidx . compose . ui . text . Span Style Ċ import Ġandroidx . compose . ui . text . Text Layout Result Ċ import Ġandroidx . compose . ui . text . TextStyle Ċ import Ġandroidx . compose . ui . text . build Annotated String Ċ import Ġandroidx . compose . ui . text . style . Text Decoration Ċ import Ġandroidx . compose . ui . text . style . Text Overflow Ċ import Ġandroidx . compose . ui . unit . Text Unit Ċ import Ġandroidx . compose . ui . unit . sp Ċ import Ġandroidx . core . text . Html Compat Ċ Ċ private Ġconst Ġval ĠURL _ TAG Ġ= Ġ" url _ tag " Ċ Ċ @ Composable Ċ fun ĠHtml Text ( ĊĠĠĠ Ġtext : ĠString , ĊĠĠĠ Ġmodifier : ĠModifier Ġ= ĠModifier , ĊĠĠĠ Ġstyle : ĠTextStyle Ġ= ĠTextStyle . Default , ĊĠĠĠ Ġsoft Wrap : ĠBoolean Ġ= Ġtrue , ĊĠĠĠ Ġoverflow : ĠText Overflow Ġ= ĠText Overflow . Clip , ĊĠĠĠ Ġmax Lines : ĠInt Ġ= ĠInt . MAX _ VALUE , ĊĠĠĠ Ġon Text Layout : Ġ( Text Layout Result ) Ġ-> ĠUnit Ġ= Ġ{}, ĊĠĠĠ Ġlink Clicked : Ġ(( String ) Ġ-> ĠUnit )? Ġ= Ġnull , ĊĠĠĠ ĠfontSize : ĠText Unit Ġ= Ġ 1 4 . sp , ĊĠĠĠ Ġflags : ĠInt Ġ= ĠHtml Compat . FROM _ HTML _ MODE _ COMP ACT , ĊĠĠĠ ĠURL Span Style : ĠSpan Style Ġ= ĠSpan Style ( ĊĠĠĠĠĠĠĠ Ġcolor Ġ= Ġlink TextColor (), ĊĠĠĠĠĠĠĠ Ġtext Decoration Ġ= ĠText Decoration . Underline ĊĠĠĠ Ġ) Ċ ) Ġ{ ĊĠĠĠ Ġval Ġcontent Ġ= Ġtext . as HTML ( fontSize , Ġflags , ĠURL Span Style ) ĊĠĠĠ Ġif Ġ( link Clicked Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠ ĠClick able Text ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmodifier Ġ= Ġmodifier , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtext Ġ= Ġcontent , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstyle Ġ= Ġstyle , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsoft Wrap Ġ= Ġsoft Wrap , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverflow Ġ= Ġoverflow , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmax Lines Ġ= Ġmax Lines , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon Text Layout Ġ= Ġon Text Layout , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠonClick Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontent ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. getString Annotations ( URL _ TAG , Ġit , Ġit ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. first OrNull () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ? . let Ġ{ Ġstring Annotation Ġ-> Ġlink Clicked ( string Annotation . item ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠ ĠText ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmodifier Ġ= Ġmodifier , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtext Ġ= Ġcontent , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstyle Ġ= Ġstyle , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsoft Wrap Ġ= Ġsoft Wrap , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverflow Ġ= Ġoverflow , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmax Lines Ġ= Ġmax Lines , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon Text Layout Ġ= Ġon Text Layout ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} Ċ Ċ } Ċ Ċ @ Composable Ċ private Ġfun Ġlink TextColor () Ġ= ĠColor ( ĊĠĠĠ ĠTextView ( Local Context . current ). link Text Colors . default Color Ċ ) Ċ Ċ @ Composable Ċ private Ġfun ĠString . as HTML ( ĊĠĠĠ ĠfontSize : ĠText Unit , ĊĠĠĠ Ġflags : ĠInt , ĊĠĠĠ ĠURL Span Style : ĠSpan Style Ċ ) Ġ= Ġbuild Annotated String Ġ{ ĊĠĠĠ Ġval Ġsp anned Ġ= ĠHtml Compat . from Html ( this @ as HTML , Ġflags ) ĊĠĠĠ Ġval Ġspans Ġ= Ġsp anned . get Spans ( 0 , Ġsp anned . length , ĠAny :: class . java ) ĊĊĠĠĠ Ġappend ( span ned . toString ()) ĊĊĠĠĠ Ġspans ĊĠĠĠĠĠĠĠ Ġ. filter Ġ{ Ġit Ġ! is ĠBullet Span Ġ} ĊĠĠĠĠĠĠĠ Ġ. forEach Ġ{ Ġspan Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġstart Ġ= Ġsp anned . get Span Start ( span ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġend Ġ= Ġsp anned . get Span End ( span ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( span ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠRelative Size Span Ġ-> Ġspan . span Style ( fontSize ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠStyle Span Ġ-> Ġspan . span Style () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠUnder line Span Ġ-> Ġspan . span Style () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠFore ground Color Span Ġ-> Ġspan . span Style () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠType face Span Ġ-> Ġspan . span Style () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠStri ke through Span Ġ-> Ġspan . span Style () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠSup erscript Span Ġ-> Ġspan . span Style () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠSub script Span Ġ-> Ġspan . span Style () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠURL Span Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd String Annotation ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtag Ġ= ĠURL _ TAG , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġannotation Ġ= Ġspan . url , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstart Ġ= Ġstart , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġend Ġ= Ġend ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠURL Span Style ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ?. let Ġ{ Ġspan Style Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd Style ( span Style , Ġstart , Ġend ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ċ } Ċ