package Ġcom . d rey zz . jet t rivia . ui . component Ċ Ċ import Ġandroidx . compose . foundation . Canvas Ċ import Ġandroidx . compose . foundation . background Ċ import Ġandroidx . compose . foundation . border Ċ import Ġandroidx . compose . foundation . layout .* Ċ import Ġandroidx . compose . foundation . shape . Rounded Corner Shape Ċ import Ġandroidx . compose . material .* Ċ import Ġandroidx . compose . material . Button Defaults . button Colors Ċ import Ġandroidx . compose . runtime .* Ċ import Ġandroidx . compose . ui . Alignment Ċ import Ġandroidx . compose . ui . Modifier Ċ import Ġandroidx . compose . ui . draw . clip Ċ import Ġandroidx . compose . ui . geometry . Offset Ċ import Ġandroidx . compose . ui . graphics . Brush Ċ import Ġandroidx . compose . ui . graphics . Color Ċ import Ġandroidx . compose . ui . graphics . Path Effect Ċ import Ġandroidx . compose . ui . text . Paragraph Style Ċ import Ġandroidx . compose . ui . text . Span Style Ċ import Ġandroidx . compose . ui . text . build Annotated String Ċ import Ġandroidx . compose . ui . text . font . Font Weight Ċ import Ġandroidx . compose . ui . text . style . Text Align Ċ import Ġandroidx . compose . ui . text . style . Text Indent Ċ import Ġandroidx . compose . ui . text . with Style Ċ import Ġandroidx . compose . ui . tool ing . preview . Preview Ċ import Ġandroidx . compose . ui . unit . dp Ċ import Ġandroidx . compose . ui . unit . sp Ċ import Ġcom . d rey zz . jet t rivia . model . Question Item Ċ import Ġcom . d rey zz . jet t rivia . ui . screens . Questions ViewModel Ċ import Ġcom . d rey zz . jet t rivia . util . App Colors Ċ Ċ @ Composable Ċ fun ĠQuestion Or Progress View ( viewModel : ĠQuestions ViewModel ) Ġ{ ĊĠĠĠ Ġval Ġquestions Ġ= ĠviewModel . data State . value . data ?. to Mutable List () ĊĊĠĠĠ Ġval Ġquestion Index State Ġ= Ġremember Ġ{ ĊĠĠĠĠĠĠĠ Ġmutable State Of ( 0 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġif Ġ( viewModel . data State . value . loading Ġ== Ġtrue ) Ġ{ ĊĠĠĠĠĠĠĠ ĠCircular Progress Indicator () ĊĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠ Ġquestions ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġquestion Ġ= Ġit [ question Index State . value ] ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠQuestion View ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġquestion Ġ= Ġquestion , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġquestion Index State Ġ= Ġquestion Index State , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠviewModel Ġ= ĠviewModel , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon Next Clicked Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġquestion Index State . value Ġ+= Ġ 1 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ @ Composable Ċ fun ĠQuestion View ( ĊĠĠĠ Ġquestion : ĠQuestion Item , ĊĠĠĠ Ġquestion Index State : ĠMutable State < Int >, ĊĠĠĠ ĠviewModel : ĠQuestions ViewModel , ĊĠĠĠ Ġon Next Clicked : Ġ( Int ) Ġ-> ĠUnit Ċ ) Ġ{ ĊĠĠĠ Ġval Ġchoices State Ġ= Ġremember ( question ) Ġ{ ĊĠĠĠĠĠĠĠ Ġquestion . choices . to Mutable List () ĊĠĠĠ Ġ} ĊĠĠĠ Ġval Ġanswer State Ġ= Ġremember ( question ) Ġ{ ĊĠĠĠĠĠĠĠ Ġmutable State Of < Int ? >( null ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġcorrect Answer State Ġ= Ġremember ( question ) Ġ{ ĊĠĠĠĠĠĠĠ Ġmutable State Of < Boolean ? >( null ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġupdate Answer : Ġ( Int ) Ġ-> ĠUnit Ġ= Ġremember ( question ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġanswer State . value Ġ= Ġit ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcorrect Answer State . value Ġ= Ġchoices State [ it ] Ġ== Ġquestion . answer ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġpath Effect Ġ= ĠPath Effect . dash Path Effect ( float ArrayOf ( 1 0 f , Ġ 1 0 f ), Ġ 0 f ) ĊĊĠĠĠ ĠSurface ( ĊĠĠĠĠĠĠĠ Ġmodifier Ġ= ĠModifier ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. fill Max Width () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. fill Max Height (), ĊĠĠĠĠĠĠĠ Ġcolor Ġ= ĠApp Colors . m Dark Pur ple ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ ĠColumn ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmodifier Ġ= ĠModifier . padding ( 1 2 . dp ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvertical Arrange ment Ġ= ĠArrange ment . Top , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhorizontal Alignment Ġ= ĠAlignment . Start ĊĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( question Index State . value Ġ>= Ġ 3 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠProgress Bar ( score Ġ= Ġquestion Index State . value ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠQuestion Tracker ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcounter Ġ= Ġquestion Index State . value , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġout Of Ġ= ĠviewModel . getTotal Question Count () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠDot ted Line ( path Effect Ġ= Ġpath Effect ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠColumn Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠText ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtext Ġ= Ġquestion . question , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmodifier Ġ= ĠModifier ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. padding ( 6 . dp ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. align ( alignment Ġ= ĠAlignment . Start ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. fill Max Height ( 0 . 3 f ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠfontSize Ġ= Ġ 1 7 . sp , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠfontWeight Ġ= ĠFontWeight . Bold , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġline Height Ġ= Ġ 2 2 . sp , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcolor Ġ= ĠApp Colors . m Off White ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCho ices View ( choices State , Ġanswer State , Ġupdate Answer , Ġcorrect Answer State ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠButton ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠonClick Ġ= Ġ{ Ġon Next Clicked ( question Index State . value ) Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmodifier Ġ= ĠModifier ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. padding ( 3 . dp ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. align ( alignment Ġ= ĠAlignment . Center H orizontally ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshape Ġ= ĠRo unded Corner Shape ( 3 4 . dp ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcolors Ġ= ĠButton Defaults . button Colors ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠbackgroundColor Ġ= ĠApp Colors . m Light Blue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠText ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtext Ġ= Ġ" Next ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmodifier Ġ= ĠModifier . padding ( 4 . dp ), Ġcolor Ġ= ĠApp Colors . m Off White , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠfontSize Ġ= Ġ 1 7 . sp ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} Ċ } Ċ Ċ @ Composable Ċ private Ġfun ĠCho ices View ( ĊĠĠĠ Ġchoices State : ĠMutable List < String >, ĊĠĠĠ Ġanswer State : ĠMutable State < Int ? >, ĊĠĠĠ Ġupdate Answer : Ġ( Int ) Ġ-> ĠUnit , ĊĠĠĠ Ġcorrect Answer State : ĠMutable State < Boolean ?> Ċ ) Ġ{ ĊĠĠĠ Ġchoices State . forEach Indexed Ġ{ Ġchoice Index , Ġanswer Text Ġ-> ĊĠĠĠĠĠĠĠ ĠRow ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmodifier Ġ= ĠModifier ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. padding ( 3 . dp ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. fill Max Width () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. height ( 4 5 . dp ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. border ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwidth Ġ= Ġ 4 . dp , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbrush Ġ= ĠBr ush . linear Gradient ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcolors Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠApp Colors . m Off Dark Pur ple , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠApp Colors . m Off Dark Pur ple ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshape Ġ= ĠRo unded Corner Shape ( 1 5 . dp ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. clip ( Rounded Corner Shape ( percent Ġ= Ġ 5 0 )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. background ( Color . Transparent ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvertical Alignment Ġ= ĠAlignment . Center Vert ically ĊĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠRadio Button ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġselected Ġ= Ġanswer State . value Ġ== Ġchoice Index , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠonClick Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġupdate Answer ( choice Index ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmodifier Ġ= ĠModifier . padding ( start Ġ= Ġ 1 6 . dp ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcolors Ġ= ĠRadio Button Defaults . colors ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġselected Color Ġ= Ġif Ġ( correct Answer State . value Ġ== Ġtrue Ġ&& Ġchoice Index Ġ== Ġanswer State . value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠColor . Green . copy ( alpha Ġ= Ġ 0 . 2 f ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠColor . Red . copy ( alpha Ġ= Ġ 0 . 2 f ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġannotated String Ġ= Ġbuild Annotated String Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwith Style ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstyle Ġ= ĠSpan Style ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠfontWeight Ġ= ĠFontWeight . Light , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcolor Ġ= Ġif Ġ( correct Answer State . value Ġ== Ġtrue Ġ&& Ġchoice Index Ġ== Ġanswer State . value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠColor . Green ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( correct Answer State . value Ġ== Ġfalse Ġ&& Ġchoice Index Ġ== Ġanswer State . value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠColor . Red ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠApp Colors . m Off White ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠfontSize Ġ= Ġ 1 7 . sp ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġappend ( answer Text ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠText ( annotated String , Ġmodifier Ġ= ĠModifier . padding ( 6 . dp )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ @ Composable Ċ fun ĠDot ted Line ( path Effect : ĠPath Effect ) Ġ{ ĊĠĠĠ ĠCanvas ( ĊĠĠĠĠĠĠĠ Ġmodifier Ġ= ĠModifier ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. fill Max Width () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. height ( 1 . dp ) ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġdraw Line ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcolor Ġ= ĠApp Colors . m Light Gray , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstart Ġ= ĠOffset ( 0 f , Ġ 0 f ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġend Ġ= ĠOffset ( size . width , Ġ 0 f ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpath Effect Ġ= Ġpath Effect ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} Ċ } Ċ Ċ @ Preview Ċ @ Composable Ċ fun ĠProgress Bar ( score : ĠInt Ġ= Ġ 1 2 ) Ġ{ ĊĠĠĠ Ġval Ġgradient Ġ= ĠBr ush . linear Gradient ( ĊĠĠĠĠĠĠĠ ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠColor ( 0 xFF F 9 5 0 7 5 ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠColor ( 0 xFF BE 6 BE 5 ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġval Ġprogress Factor Ġby Ġremember ( score ) Ġ{ ĊĠĠĠĠĠĠĠ Ġmutable State Of ( score Ġ* Ġ 0 . 0 0 5 f ) ĊĠĠĠ Ġ} ĊĊĠĠĠ ĠRow ( ĊĠĠĠĠĠĠĠ Ġmodifier Ġ= ĠModifier ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. padding ( 3 . dp ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. fill Max Width () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. height ( 4 5 . dp ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. border ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwidth Ġ= Ġ 4 . dp , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbrush Ġ= ĠBr ush . linear Gradient ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcolors Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠApp Colors . m Light Pur ple , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠApp Colors . m Light Pur ple ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshape Ġ= ĠRo unded Corner Shape ( 3 4 . dp ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. clip ( Rounded Corner Shape ( percent Ġ= Ġ 5 0 )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. background ( Color . Transparent ), ĊĠĠĠĠĠĠĠ Ġvertical Alignment Ġ= ĠAlignment . Center Vert ically ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ ĠButton ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠonClick Ġ= Ġ{}, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmodifier Ġ= ĠModifier ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. fill Max Width ( progress Factor ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. background ( brush Ġ= Ġgradient ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontent Padding Ġ= ĠPadding Values ( 1 . dp ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġenabled Ġ= Ġfalse , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelevation Ġ= Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcolors Ġ= Ġbutton Colors ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠbackgroundColor Ġ= ĠColor . Transparent , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdisabled BackgroundColor Ġ= ĠColor . Transparent ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠText ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtext Ġ= Ġ"${ score Ġ* Ġ 1 0 }", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmodifier Ġ= ĠModifier ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. clip ( shape Ġ= ĠRo unded Corner Shape ( 2 3 . dp )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. fill Max Height ( 0 . 8 7 f ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. fill Max Width () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. padding ( 6 . dp ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcolor Ġ= ĠApp Colors . m Off White , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠtextAlign Ġ= ĠText Align . Center ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ // Ġex : ĠQuestion Ġ 1 0 / 1 0 0 Ċ @ Composable Ċ fun ĠQuestion Tracker ( counter : ĠInt Ġ= Ġ 1 0 , Ġout Of : ĠInt Ġ= Ġ 1 0 0 ) Ġ{ ĊĠĠĠ ĠText ( ĊĠĠĠĠĠĠĠ Ġtext Ġ= Ġbuild Annotated String Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwith Style ( style Ġ= ĠParagraph Style ( text Indent Ġ= ĠText Indent . None )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwith Style ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstyle Ġ= ĠSpan Style ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcolor Ġ= ĠApp Colors . m Light Gray , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠfontWeight Ġ= ĠFontWeight . Bold , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠfontSize Ġ= Ġ 2 7 . sp ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġappend (" Question Ġ$ counter /") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwith Style ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstyle Ġ= ĠSpan Style ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠfontWeight Ġ= ĠFontWeight . Light , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠfontSize Ġ= Ġ 1 4 . sp ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġappend ("$ out Of ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠ Ġmodifier Ġ= ĠModifier . padding ( 2 0 . dp ) ĊĠĠĠ Ġ) Ċ }