package Ġcom . f ory ou and me . ui . auth . signin Ċ Ċ import Ġandroidx . compose . foundation . layout . Row Ċ import Ġandroidx . compose . foundation . layout . Spacer Ċ import Ġandroidx . compose . foundation . layout . fill Max Width Ċ import Ġandroidx . compose . foundation . layout . width Ċ import Ġandroidx . compose . foundation . text . Clickable Text Ċ import Ġandroidx . compose . material . Checkbox Ċ import Ġandroidx . compose . material . Checkbox Defaults Ċ import Ġandroidx . compose . material . Material Theme Ċ import Ġandroidx . compose . runtime . Composable Ċ import Ġandroidx . compose . ui . Alignment Ċ import Ġandroidx . compose . ui . Modifier Ċ import Ġandroidx . compose . ui . graphics . Color Ċ import Ġandroidx . compose . ui . text . Annotated String Ċ import Ġandroidx . compose . ui . text . Span Style Ċ import Ġandroidx . compose . ui . text . build Annotated String Ċ import Ġandroidx . compose . ui . text . style . Text Decoration Ċ import Ġandroidx . compose . ui . text . with Style Ċ import Ġandroidx . compose . ui . unit . dp Ċ import Ġcom . f ory ou and me . entity . configuration . Configuration Ċ Ċ @ Composable Ċ fun ĠPrivacy Terms Checkbox ( ĊĠĠĠ Ġis Checked : ĠBoolean , ĊĠĠĠ Ġconfiguration : ĠConfiguration , ĊĠĠĠ Ġmodifier : ĠModifier Ġ= ĠModifier , ĊĠĠĠ Ġon Checked Change : Ġ( Boolean ) Ġ-> ĠUnit Ġ= Ġ{}, ĊĠĠĠ Ġon Privacy Clicked : Ġ() Ġ-> ĠUnit Ġ= Ġ{}, ĊĠĠĠ Ġon Terms Clicked : Ġ() Ġ-> ĠUnit Ġ= Ġ{} Ċ ) Ġ{ ĊĠĠĠ ĠRow ( ĊĠĠĠĠĠĠĠ Ġmodifier Ġ= Ġmodifier , ĊĠĠĠĠĠĠĠ Ġvertical Alignment Ġ= ĠAlignment . Center Vert ically ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ ĠCheckbox ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġchecked Ġ= Ġis Checked , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon Checked Change Ġ= Ġon Checked Change , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcolors Ġ= ĠCheckbox Defaults . colors ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġchecked Color Ġ= ĠColor . Transparent , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġunchecked Color Ġ= Ġconfiguration . theme . secondary Color . value , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcheck mark Color Ġ= Ġconfiguration . theme . secondary Color . value ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ ĠSp acer ( modifier Ġ= ĠModifier . width ( 1 0 . dp )) ĊĠĠĠĠĠĠĠ Ġval Ġannotated Text Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġget Privacy Terms Annotated String ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġconfiguration . text . phone Verification . legal , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġconfiguration . text . phone Verification . legal Privacy Policy , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġconfiguration . text . phone Verification . legal Terms Of Service , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ ĠClick able Text ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtext Ġ= Ġannotated Text , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstyle Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMaterial Theme . typography . body 1 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. copy ( color Ġ= Ġconfiguration . theme . secondary Color . value ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmodifier Ġ= ĠModifier . fill Max Width (), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠonClick Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġannotated Text . getString Annotations ( tag Ġ= Ġ" privacy ", Ġstart Ġ= Ġit , Ġend Ġ= Ġit ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. first OrNull ()?. let Ġ{ Ġon Privacy Clicked () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġannotated Text . getString Annotations ( tag Ġ= Ġ" terms ", Ġstart Ġ= Ġit , Ġend Ġ= Ġit ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. first OrNull ()?. let Ġ{ Ġon Terms Clicked () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} Ċ } Ċ Ċ private Ġenum Ġclass ĠE Append able Type Ġ{ ĊĊĠĠĠ ĠPRIV ACY , ĊĠĠĠ ĠTER MS Ċ Ċ } Ċ Ċ fun Ġget Privacy Terms Annotated String ( ĊĠĠĠ Ġtext : ĠString , ĊĠĠĠ Ġprivacy : ĠString , ĊĠĠĠ Ġterms : ĠString , Ċ ): ĠAnnot ated String Ġ{ ĊĊĠĠĠ Ġval Ġprivacy Index Ġ= Ġif ( privacy . isEmpty ()) Ġ- 1 Ġelse Ġtext . indexOf ( privacy ) ĊĠĠĠ Ġval Ġterms Index Ġ= Ġif ( terms . isEmpty ()) Ġ- 1 Ġelse Ġtext . indexOf ( terms ) ĊĊĠĠĠ Ġval Ġprivacy Split Ġ= ĊĠĠĠĠĠĠĠ Ġif Ġ( privacy Index Ġ>= Ġ 0 ) Ġtext . split ( privacy ) ĊĠĠĠĠĠĠĠ Ġelse ĠlistOf ( text ) ĊĠĠĠ Ġval Ġsplit Ġ= ĊĠĠĠĠĠĠĠ Ġif Ġ( terms Index Ġ>= Ġ 0 ) Ġprivacy Split . flatMap Ġ{ Ġit . split ( terms ) Ġ} ĊĠĠĠĠĠĠĠ Ġelse Ġprivacy Split ĊĊĠĠĠ Ġval Ġfirst Span Type Ġ= ĊĠĠĠĠĠĠĠ Ġif Ġ( privacy Index Ġ< Ġ 0 Ġ&& Ġterms Index Ġ< Ġ 0 ) Ġnull ĊĠĠĠĠĠĠĠ Ġelse Ġif Ġ( privacy Index Ġ> Ġ 0 Ġ&& Ġterms Index Ġ< Ġ 0 ) ĠE Append able Type . PRIV ACY ĊĠĠĠĠĠĠĠ Ġelse Ġif Ġ( privacy Index Ġ< Ġ 0 Ġ&& Ġterms Index Ġ> Ġ 0 ) ĠE Append able Type . TERMS ĊĠĠĠĠĠĠĠ Ġelse Ġif Ġ( privacy Index Ġ> Ġterms Index ) ĠE Append able Type . TERMS ĊĠĠĠĠĠĠĠ Ġelse ĠE Append able Type . PRIV ACY ĊĊĠĠĠ Ġval Ġsecond Span Type Ġ= ĊĠĠĠĠĠĠĠ Ġif Ġ( privacy Index Ġ< Ġ 0 Ġ|| Ġterms Index Ġ< Ġ 0 ) Ġnull ĊĠĠĠĠĠĠĠ Ġelse Ġif Ġ( privacy Index Ġ> Ġterms Index ) ĠE Append able Type . PRIV ACY ĊĠĠĠĠĠĠĠ Ġelse ĠE Append able Type . TERMS ĊĊĠĠĠ Ġreturn Ġbuild Annotated String Ġ{ ĊĊĠĠĠĠĠĠĠ Ġappend ( split . getOrElse ( 0 ) Ġ{ Ġ"" Ġ}) ĊĠĠĠĠĠĠĠ Ġif Ġ( first Span Type Ġ!= Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġappend ( first Span Type , Ġprivacy , Ġterms ) ĊĠĠĠĠĠĠĠ Ġappend ( split . getOrElse ( 1 ) Ġ{ Ġ"" Ġ}) ĊĠĠĠĠĠĠĠ Ġif Ġ( second Span Type Ġ!= Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġappend ( second Span Type , Ġprivacy , Ġterms ) ĊĠĠĠĠĠĠĠ Ġappend ( split . getOrElse ( 2 ) Ġ{ Ġ"" Ġ}) ĊĠĠĠ Ġ} Ċ Ċ } Ċ Ċ private Ġfun ĠAnnot ated String . Builder . append ( ĊĠĠĠ Ġappend able Type : ĠE Append able Type , ĊĠĠĠ Ġprivacy : ĠString , ĊĠĠĠ Ġterms : ĠString Ċ ) Ġ{ ĊĊĠĠĠ Ġwith Style ( Span Style ( text Decoration Ġ= ĠText Decoration . Underline )) Ġ{ ĊĠĠĠĠĠĠĠ Ġwhen Ġ( append able Type ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠE Append able Type . PRIV ACY Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpush String Annotation ( tag Ġ= Ġ" privacy ", Ġannotation Ġ= Ġ" privacy ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġappend ( privacy ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpop () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠE Append able Type . TERMS Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpush String Annotation ( tag Ġ= Ġ" terms ", Ġannotation Ġ= Ġ" terms ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġappend ( terms ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpop () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ Ċ }