package Ġcom . rar ms . stocks . performance . ui . charts Ċ Ċ import Ġandroidx . compose . foundation . layout .* Ċ import Ġandroidx . compose . material .* Ċ import Ġandroidx . compose . material . icons . Icons Ċ import Ġandroidx . compose . material . icons . outlined . T une Ċ import Ġandroidx . compose . runtime . Composable Ċ import Ġandroidx . compose . runtime . remember Coroutine Scope Ċ import Ġandroidx . compose . ui . Alignment Ċ import Ġandroidx . compose . ui . Modifier Ċ import Ġandroidx . compose . ui . unit . dp Ċ import Ġcom . rar ms . stocks . performance . model . Quote Symbol Ċ import Ġcom . rar ms . stocks . performance . model . Time frame Ċ import Ġcom . rar ms . stocks . performance . ui . components . Time frame Tabs Ċ import Ġkotlinx . coroutines . launch Ċ Ċ @ Opt In ( Experimental Material Api :: class ) Ċ @ Composable Ċ fun ĠChart Body ( ĊĠĠĠ Ġstock s : ĠList < Quote Symbol >, ĊĠĠĠ Ġtime frame : ĠTime frame , ĊĠĠĠ Ġrefresh ing : ĠBoolean , ĊĠĠĠ Ġon Time frame Selected : Ġ( Time frame ) Ġ-> ĠUnit , ĊĠĠĠ Ġsettings Composable : Ġ@ Composable Ġ() Ġ-> ĠUnit , ĊĠĠĠ Ġon Refresh Click : Ġ() Ġ-> ĠUnit , ĊĠĠĠ Ġerror : ĠString , ĊĠĠĠ Ġchart Body : Ġ@ Composable Ġ() Ġ-> ĠUnit Ċ ) Ġ{ ĊĠĠĠ ĠBox ( ĊĠĠĠĠĠĠĠ Ġmodifier Ġ= ĠModifier ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. fill Max Width () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. fill Max Height (), ĊĠĠĠĠĠĠĠ Ġcontent Alignment Ġ= ĠAlignment . Center ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġstate Ġ= Ġremember Modal Bottom Sheet State ( Modal Bottom Sheet Value . Hidden ) ĊĠĠĠĠĠĠĠ Ġval Ġscope Ġ= Ġremember Coroutine Scope () ĊĠĠĠĠĠĠĠ ĠModal Bottom Sheet Layout ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsheet State Ġ= Ġstate , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsheet Content Ġ= Ġ{ Ġsettings Composable () Ġ}) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠColumn ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmodifier Ġ= ĠModifier ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. fill Max Width () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. fill Max Height () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTabs And Buttons ( time frame , Ġon Time frame Selected , Ġon Refresh Click , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon Settings Clicked Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġscope . launch Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstate . show () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠScreen Body ( error , Ġstock s , Ġchart Body ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( refresh ing ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠCircular Progress Indicator ( color Ġ= ĠMaterial Theme . colors . on Surface ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ Ċ } Ċ Ċ @ Composable Ċ private Ġfun ĠScreen Body ( ĊĠĠĠ Ġerror : ĠString , ĊĠĠĠ Ġstock s : ĠList < Quote Symbol >, ĊĠĠĠ Ġchart Body : Ġ@ Composable Ġ() Ġ-> ĠUnit Ċ ) Ġ{ ĊĠĠĠ Ġwhen Ġ{ ĊĠĠĠĠĠĠĠ Ġerror . isNotBlank () Ġ-> ĠCenter Of Screen Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠText ( text Ġ= Ġerror ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġstock s . isNotEmpty () Ġ-> Ġchart Body () ĊĠĠĠĠĠĠĠ Ġelse Ġ-> ĠCenter Of Screen Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠText ( text Ġ= Ġ" No Ġstock s ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ @ Composable Ċ private Ġfun ĠTabs And Buttons ( ĊĠĠĠ Ġtime frame : ĠTime frame , ĊĠĠĠ Ġon Time frame Selected : Ġ( Time frame ) Ġ-> ĠUnit , ĊĠĠĠ Ġon Refresh Click : Ġ() Ġ-> ĠUnit , ĊĠĠĠ Ġon Settings Clicked : Ġ() Ġ-> ĠUnit Ċ ) Ġ{ ĊĠĠĠ ĠTime frame Tabs ( ĊĠĠĠĠĠĠĠ Ġtime frames Ġ= ĠTime frame . values (). toList (), ĊĠĠĠĠĠĠĠ Ġselected Time frame Ġ= Ġtime frame , ĊĠĠĠĠĠĠĠ Ġon Time frame Selected Ġ= Ġon Time frame Selected ĊĠĠĠ Ġ) ĊĠĠĠ ĠRow ( ĊĠĠĠĠĠĠĠ Ġmodifier Ġ= ĠModifier ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. padding ( start Ġ= Ġ 8 . dp , Ġend Ġ= Ġ 8 . dp ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. fill Max Width (), ĊĠĠĠĠĠĠĠ Ġvertical Alignment Ġ= ĠAlignment . Center Vert ically , ĊĠĠĠĠĠĠĠ Ġhorizontal Arrange ment Ġ= ĠArrange ment . Space Between ĊĠĠĠ Ġ) Ġ{ ĊĊĠĠĠĠĠĠĠ ĠButton ( modifier Ġ= ĠModifier ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. height ( 4 8 . dp ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. padding ( 8 . dp ), ĠonClick Ġ= Ġ{ Ġon Refresh Click () Ġ}) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠText ( text Ġ= Ġ" Refresh ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠButton ( modifier Ġ= ĠModifier ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. height ( 4 8 . dp ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. padding ( 8 . dp ), ĠonClick Ġ= Ġ{ Ġon Settings Clicked () Ġ}) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠIcon ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimage Vector Ġ= ĠIcons . Outlined . T une , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontent Description Ġ= Ġ" Settings " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ @ Composable Ċ fun ĠCenter Of Screen ( comp osable : Ġ@ Composable Ġ() Ġ-> ĠUnit ) Ġ{ ĊĠĠĠ ĠBox ( ĊĠĠĠĠĠĠĠ Ġcontent Alignment Ġ= ĠAlignment . Center , ĊĠĠĠĠĠĠĠ Ġmodifier Ġ= ĠModifier ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. fill Max Width () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. fill Max Height () ĊĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġcomp osable () ĊĠĠĠ Ġ} Ċ } Ċ