package Ġio . ed ug ma . features . schedule . sources Ċ Ċ import Ġandroidx . compose . foundation . Experimental Foundation Api Ċ import Ġandroidx . compose . foundation . click able Ċ import Ġandroidx . compose . foundation . layout .* Ċ import Ġandroidx . compose . foundation . lazy . Lazy Column Ċ import Ġandroidx . compose . foundation . lazy . Lazy Row Ċ import Ġandroidx . compose . foundation . lazy . items Ċ import Ġandroidx . compose . material 3 .* Ċ import Ġandroidx . compose . runtime . Composable Ċ import Ġandroidx . compose . runtime . collect As State Ċ import Ġandroidx . compose . runtime . getValue Ċ import Ġandroidx . compose . ui . Modifier Ċ import Ġandroidx . compose . ui . res . p ainter Resource Ċ import Ġandroidx . compose . ui . unit . dp Ċ import Ġio . ed ug ma . domain . schedule . model . source . Schedule Source Full Ċ import Ġio . ed ug ma . domain . schedule . model . source . Schedule Sources Ċ import Ġio . ed ug ma . domain . schedule . model . source . Schedule Sources Tabs Ċ import Ġio . ed ug ma . features . base . core . utils .* Ċ import Ġio . ed ug ma . features . base . elements .* Ċ import Ġorg . k oin . android x . compose . get ViewModel Ċ Ċ @ Composable Ċ fun ĠSchedule Sources Screen ( viewModel : ĠSchedule Sources ViewModel Ġ= Ġget ViewModel ()) Ġ{ ĊĠĠĠ Ġval Ġstate Ġby ĠviewModel . state . collect As State () ĊĊĠĠĠ ĠSchedule Sources Content ( ĊĠĠĠĠĠĠĠ Ġstate Ġ= Ġstate , ĊĠĠĠĠĠĠĠ Ġon Back Click Ġ= ĠviewModel :: exit , ĊĠĠĠĠĠĠĠ Ġon Query Change Ġ= ĠviewModel :: on Query Change , ĊĠĠĠĠĠĠĠ Ġon Tab Selected Ġ= ĠviewModel :: on Select Tab , ĊĠĠĠĠĠĠĠ Ġon Source Selected Ġ= ĠviewModel :: on Select Source , ĊĠĠĠĠĠĠĠ Ġon Add Favorite Ġ= ĠviewModel :: on Add Favorite , ĊĠĠĠĠĠĠĠ ĠonDelete Favorite Ġ= ĠviewModel :: onDelete Favorite ĊĠĠĠ Ġ) Ċ } Ċ Ċ @ Opt In ( Experimental Foundation Api :: class ) Ċ @ Composable Ċ fun ĠSchedule Sources Content ( ĊĠĠĠ Ġstate : ĠSchedule Source State , ĊĠĠĠ Ġon Back Click : ĠClick Listener , ĊĠĠĠ Ġon Query Change : ĠTyped 1 Listener < String >, ĊĠĠĠ Ġon Tab Selected : ĠTyped 1 Listener < Schedule Sources Tabs >, ĊĠĠĠ Ġon Source Selected : ĠTyped 1 Listener < Schedule Source Full >, ĊĠĠĠ Ġon Add Favorite : ĠTyped 1 Listener < Schedule Source Full >, ĊĠĠĠ ĠonDelete Favorite : ĠTyped 1 Listener < Schedule Source Full > Ċ ) Ġ{ ĊĊĠĠĠ ĠColumn Ġ{ ĊĠĠĠĠĠĠĠ ĠPrimary Top AppBar ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtitle Ġ= Ġ" ÐĴ Ñĭ Ð± Ð¾ÑĢ ĠÑĢÐ°Ñģ Ð¿Ð¸Ñģ Ð°Ð½Ð¸Ñı ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon Back Click Ġ= Ġon Back Click ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ ĠPrimary Search Field ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvalue Ġ= Ġstate . query , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon Value Change Ġ= Ġon Query Change , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmodifier Ġ= ĠModifier ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. padding ( horizontal Ġ= Ġ 1 6 . dp ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. fill Max Width (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġplaceholder Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠWith Content Alpha ( alpha Ġ= ĠContent Alpha . medium ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠText ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtext Ġ= Ġ" ÐŁ Ð¾ Ð¸Ñģ Ðº " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ ĠLazy Row ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmodifier Ġ= ĠModifier . fill Max Width () ĊĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġitem Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSp acer Width ( 1 0 . dp ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġitems ( state . tabs ) Ġ{ Ġtab Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSource Type Tab ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtab , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtab Ġ== Ġstate . selected Tab , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon Tab Selected Ġ= Ġon Tab Selected ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġitem Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSp acer Width ( 1 0 . dp ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠLazy Column ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmodifier Ġ= ĠModifier . fill MaxSize () ĊĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġitems ( state . filtered Sources , Ġkey Ġ= Ġ{ Ġstate . selected Tab Ġto Ġit . key Ġ}) Ġ{ Ġsource Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSource Item ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsource Ġ= Ġsource , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis Favorite Ġ= Ġstate . selected Tab Ġ== ĠSchedule Sources Tabs . Favorite , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon Item Click Ġ= Ġon Source Selected , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon Add Favorite Ġ= Ġon Add Favorite , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠonDelete Favorite Ġ= ĠonDelete Favorite , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmodifier Ġ= ĠModifier . animate Item Placement (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ @ Composable Ċ fun ĠSource Type Tab ( ĊĠĠĠ Ġtab : ĠSchedule Sources Tabs , ĊĠĠĠ Ġis Selected : ĠBoolean , ĊĠĠĠ Ġon Tab Selected : ĠTyped 1 Listener < Schedule Sources Tabs > Ċ ) Ġ{ ĊĠĠĠ Ġval Ġcolor Ġ= Ġif Ġ( isSelected ) ĊĠĠĠĠĠĠĠ ĠMaterial Theme 3 . color Scheme . secondary Container ĊĠĠĠ Ġelse ĊĠĠĠĠĠĠĠ ĠMaterial Theme 3 . color Scheme . surface ĊĊĠĠĠ Ġval Ġtitle Ġ= Ġwhen Ġ( tab ) Ġ{ ĊĠĠĠĠĠĠĠ ĠSchedule Sources Tabs . Favorite Ġ-> Ġ" Ðĺ Ð· Ð± ÑĢÐ°Ð½ Ð½Ð¾Ðµ " ĊĠĠĠĠĠĠĠ ĠSchedule Sources Tabs . Group Ġ-> Ġ" Ðĵ ÑĢÑĥ Ð¿ Ð¿ Ñĭ " ĊĠĠĠĠĠĠĠ ĠSchedule Sources Tabs . Teacher Ġ-> Ġ" ÐŁÑĢ ÐµÐ¿ Ð¾Ð´ Ð°Ð² Ð°ÑĤ ÐµÐ»Ð¸ " ĊĠĠĠĠĠĠĠ ĠSchedule Sources Tabs . Student Ġ-> Ġ" Ð¡ ÑĤ ÑĥÐ´ ÐµÐ½ÑĤ Ñĭ " ĊĠĠĠĠĠĠĠ ĠSchedule Sources Tabs . Place Ġ-> Ġ" Ðľ ÐµÑģÑĤ Ð° ĠÐ· Ð°Ð½ Ñı ÑĤÐ¸ Ð¹ " ĊĠĠĠĠĠĠĠ ĠSchedule Sources Tabs . Subject Ġ-> Ġ" ÐŁ ÑĢÐµÐ´ Ð¼ ÐµÑĤ Ñĭ " ĊĠĠĠĠĠĠĠ ĠSchedule Sources Tabs . Complex Ġ-> Ġ" Ðł Ð°Ñģ ÑĪÐ¸ ÑĢ ÐµÐ½ Ð½ÑĭÐ¹ ĠÐ¿Ð¾ Ð¸Ñģ Ðº " ĊĠĠĠ Ġ} ĊĊĠĠĠ ĠT onal Card ( ĊĠĠĠĠĠĠĠ ĠonClick Ġ= Ġ{ Ġon Tab Selected ( tab ) Ġ}, ĊĠĠĠĠĠĠĠ Ġmodifier Ġ= ĠModifier . padding ( horizontal Ġ= Ġ 6 . dp , Ġvertical Ġ= Ġ 5 . dp ), ĊĠĠĠĠĠĠĠ Ġcolor Ġ= Ġcolor , ĊĠĠĠĠĠĠĠ Ġshape Ġ= ĠMaterial Theme 3 . shapes . small ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ ĠText ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtext Ġ= Ġtitle , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmodifier Ġ= ĠModifier . padding ( horizontal Ġ= Ġ 1 6 . dp , Ġvertical Ġ= Ġ 6 . dp ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} Ċ } Ċ Ċ @ Composable Ċ fun ĠSource Item ( ĊĠĠĠ Ġsource : ĠSchedule Source Full , ĊĠĠĠ Ġis Favorite : ĠBoolean , ĊĠĠĠ Ġon Item Click : ĠTyped 1 Listener < Schedule Source Full >, ĊĠĠĠ Ġon Add Favorite : ĠTyped 1 Listener < Schedule Source Full >, ĊĠĠĠ ĠonDelete Favorite : ĠTyped 1 Listener < Schedule Source Full >, ĊĠĠĠ Ġmodifier : ĠModifier Ġ= ĠModifier Ċ ) Ġ{ ĊĠĠĠ ĠColumn ( ĊĠĠĠĠĠĠĠ Ġmodifier ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. click able ( onClick Ġ= Ġ{ Ġon Item Click ( source ) Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. fill Max Width () ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ ĠRow ( Modifier . padding ( vertical Ġ= Ġ 5 . dp )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSp acer Width ( 1 6 . dp ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġinitial s Ġ= Ġwhen Ġ( source . type ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSchedule Sources . Group Ġ-> Ġsource . title . split ('- ') ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. join ToString ( separator Ġ= Ġ"") Ġ{ Ġit . take ( 1 ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSchedule Sources . Teacher Ġ-> Ġsource . title . split (' Ġ') ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. join ToString ( separator Ġ= Ġ"") Ġ{ Ġit . take ( 1 ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSchedule Sources . Student Ġ-> Ġsource . title . split (' Ġ') ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. join ToString ( separator Ġ= Ġ"") Ġ{ Ġit . take ( 1 ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSchedule Sources . Place Ġ-> Ġsource . title ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSchedule Sources . Subject Ġ-> Ġsource . title . split (' Ġ') ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. join ToString ( separator Ġ= Ġ"") Ġ{ Ġit . take ( 1 ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSchedule Sources . Complex Ġ-> Ġsource . title . split (' Ġ') ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. join ToString ( separator Ġ= Ġ"") Ġ{ Ġit . take ( 1 ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠInitial Avatar ( url Ġ= Ġsource . avatar Url , Ġinitial s ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSp acer Width ( 8 . dp ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠColumn ( Modifier . weight ( 1 f )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠText ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtext Ġ= Ġsource . title , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstyle Ġ= ĠMaterial Theme 3 . typography . title Small ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠWith Content Alpha ( alpha Ġ= ĠContent Alpha . medium ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠText ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtext Ġ= Ġsource . description , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstyle Ġ= ĠMaterial Theme 3 . typography . body Small ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠIcon Button ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠonClick Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( is Favorite ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠonDelete Favorite ( source ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon Add Favorite ( source ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġt int Color Ġ= Ġif Ġ( is Favorite ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMaterial Theme 3 . color Scheme . primary ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLocal Content Color . current ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpainter Ġ= Ġif Ġ( is Favorite ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpainter Resource ( Fluent Icons . ic _ fluent _ star _ 2 4 _ filled ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpainter Resource ( Fluent Icons . ic _ fluent _ star _ 2 4 _ regular ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠIcon ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpainter Ġ= Ġpainter , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontent Description Ġ= Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġt int Ġ= Ġt int Color ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSp acer Width ( 1 6 . dp ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } ĊĊ Ċ //@ Composable Ċ // fun ĠAuto Size Text ( Ċ // ĠĠĠ Ġtext : ĠString , Ċ // ĠĠĠ Ġmodifier : ĠModifier Ġ= ĠModifier , Ċ // ĠĠĠ Ġcolor : ĠColor Ġ= ĠColor . Unspecified , Ċ // ĠĠĠ ĠfontSize : ĠText Unit Ġ= ĠText Unit . Unspecified , Ċ // ĠĠĠ Ġfont Style : ĠFont Style ? Ġ= Ġnull , Ċ // ĠĠĠ ĠfontWeight : ĠFontWeight ? Ġ= Ġnull , Ċ // ĠĠĠ ĠfontFamily : ĠFont Family ? Ġ= Ġnull , Ċ // ĠĠĠ Ġletter Spacing : ĠText Unit Ġ= ĠText Unit . Unspecified , Ċ // ĠĠĠ Ġtext Decoration : ĠText Decoration ? Ġ= Ġnull , Ċ // ĠĠĠ ĠtextAlign : ĠText Align ? Ġ= Ġnull , Ċ // ĠĠĠ Ġline Height : ĠText Unit Ġ= ĠText Unit . Unspecified , Ċ // ĠĠĠ Ġoverflow : ĠText Overflow Ġ= ĠText Overflow . Clip , Ċ // ĠĠĠ Ġsoft Wrap : ĠBoolean Ġ= Ġtrue , Ċ // ĠĠĠ Ġmax Lines : ĠInt Ġ= ĠInt . MAX _ VALUE , Ċ // ĠĠĠ Ġon Text Layout : Ġ( Text Layout Result ) Ġ-> ĠUnit Ġ= Ġ{}, Ċ // ĠĠĠ Ġstyle : ĠTextStyle Ġ= ĠLocal TextStyle . current Ċ // ) Ġ{ Ċ // ĠĠĠ Ġvar Ġscaled TextStyle Ġby Ġremember Ġ{ Ġmutable State Of ( style ) Ġ} Ċ // ĠĠĠ Ġvar Ġready To Draw Ġby Ġremember Ġ{ Ġmutable State Of ( false ) Ġ} Ċ // Ċ // ĠĠĠ ĠText ( Ċ // ĠĠĠĠĠĠĠ Ġtext , Ċ // ĠĠĠĠĠĠĠ Ġmodifier Ġ= Ġmodifier . draw With Content Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( ready To Draw ) Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdraw Content () Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ċ // ĠĠĠĠĠĠĠ Ġ}, Ċ // ĠĠĠĠĠĠĠ Ġcolor Ġ= Ġcolor , Ċ // ĠĠĠĠĠĠĠ ĠfontSize Ġ= ĠfontSize , Ċ // ĠĠĠĠĠĠĠ Ġfont Style Ġ= Ġfont Style , Ċ // ĠĠĠĠĠĠĠ ĠfontWeight Ġ= ĠfontWeight , Ċ // ĠĠĠĠĠĠĠ ĠfontFamily Ġ= ĠfontFamily , Ċ // ĠĠĠĠĠĠĠ Ġletter Spacing Ġ= Ġletter Spacing , Ċ // ĠĠĠĠĠĠĠ Ġtext Decoration Ġ= Ġtext Decoration , Ċ // ĠĠĠĠĠĠĠ ĠtextAlign Ġ= ĠtextAlign , Ċ // ĠĠĠĠĠĠĠ Ġline Height Ġ= Ġline Height , Ċ // ĠĠĠĠĠĠĠ Ġoverflow Ġ= Ġoverflow , Ċ // ĠĠĠĠĠĠĠ Ġ// soft Wrap Ġ= Ġsoft Wrap , Ċ // ĠĠĠĠĠĠĠ Ġsoft Wrap Ġ= Ġfalse , Ċ // ĠĠĠĠĠĠĠ Ġmax Lines Ġ= Ġmax Lines , Ċ // ĠĠĠĠĠĠĠ Ġstyle Ġ= Ġscaled TextStyle , Ċ // ĠĠĠĠĠĠĠ Ġon Text Layout Ġ= Ġ{ Ġtext Layout Result Ġ-> Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( text Layout Result . did Overflow Width ) Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġscaled TextStyle Ġ= Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġscaled TextStyle . copy ( fontSize Ġ= Ġscaled TextStyle . fontSize Ġ* Ġ( text Layout Result . size . width Ġ/ Ġtext Layout Result . multi Paragraph . width )) Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġready To Draw Ġ= Ġtrue Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ċ // ĠĠĠĠĠĠĠ Ġ} Ċ // ĠĠĠ Ġ) Ċ //}