package Ġcom . b ent reng ro ve . r unc al cul ator Ċ Ċ import Ġandroidx . compose . foundation .* Ċ import Ġandroidx . compose . foundation . layout . Row Ċ import Ġandroidx . compose . foundation . layout . padding Ċ import Ġandroidx . compose . foundation . layout . wrap Content Size Ċ import Ġandroidx . compose . foundation . selection . toggle able Ċ import Ġandroidx . compose . foundation . shape . Rounded Corner Shape Ċ import Ġandroidx . compose . material . Material Theme Ċ import Ġandroidx . compose . material . content Color For Ċ import Ġandroidx . compose . material . primary Surface Ċ import Ġandroidx . compose . material . ripple . R ipple Indication Ċ import Ġandroidx . compose . runtime . Composable Ċ import Ġandroidx . compose . ui . Modifier Ċ import Ġandroidx . compose . ui . graphics . Color Ċ import Ġandroidx . compose . ui . graphics . Rectangle Shape Ċ import Ġandroidx . compose . ui . graphics . Shape Ċ import Ġandroidx . compose . ui . unit . dp Ċ Ċ @ Composable Ċ fun ĠText Toggle Group ( ĊĠĠĠĠĠĠĠ Ġitems : ĠList < String >, ĊĠĠĠĠĠĠĠ Ġselected Index : ĠInt , ĊĠĠĠĠĠĠĠ Ġon Selected Changed : Ġ( Int ) Ġ-> ĠUnit , ĊĠĠĠĠĠĠĠ Ġmodifier : ĠModifier Ġ= ĠModifier Ċ ) Ġ{ ĊĠĠĠ ĠRow ( modifier ) Ġ{ ĊĠĠĠĠĠĠĠ Ġitems . forEach Indexed Ġ{ Ġindex , Ġvalue Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġon CheckedChanged : Ġ( Boolean ) Ġ-> ĠUnit Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( it ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon Selected Changed ( index ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcorner Size Ġ= Ġ 4 . dp ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġborder Shape Ġ= Ġwhen Ġ( index ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 0 Ġ-> ĠRo unded Corner Shape ( top Left Ġ= Ġcorner Size , Ġbottom Left Ġ= Ġcorner Size ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġitems . size - 1 Ġ-> ĠRo unded Corner Shape ( top Right Ġ= Ġcorner Size , Ġbottom Right Ġ= Ġcorner Size ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> ĠRectangle Shape ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠText ToggleButton ( checked Ġ= Ġindex Ġ== Ġselected Index , Ġon Checked Change Ġ= Ġon CheckedChanged , Ġborder Shape Ġ= Ġborder Shape , Ġtext Ġ= Ġvalue ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ @ Composable Ċ private Ġfun ĠText ToggleButton ( ĊĠĠĠĠĠĠĠ Ġchecked : ĠBoolean , ĊĠĠĠĠĠĠĠ Ġon Checked Change : Ġ( Boolean ) Ġ-> ĠUnit , ĊĠĠĠĠĠĠĠ Ġborder Shape : ĠShape Ġ= ĠRectangle Shape , ĊĠĠĠĠĠĠĠ Ġmodifier : ĠModifier Ġ= ĠModifier , ĊĠĠĠĠĠĠĠ Ġenabled : ĠBoolean Ġ= Ġtrue , ĊĠĠĠĠĠĠĠ Ġtext : ĠString Ċ ) Ġ{ ĊĠĠĠ Ġval Ġselected Indication Ġ= Ġif Ġ( checked ) ĠModifier . border ( 1 . dp , ĠMaterial Theme . colors . primary , Ġborder Shape ) Ġelse ĠModifier . border ( 1 . dp , ĠMaterial Theme . colors . on Background . copy ( alpha Ġ= Ġ 0 . 2 f ), Ġborder Shape ) ĊĠĠĠ Ġval Ġtext Style Ġ= Ġif Ġ( checked ) ĠMaterial Theme . typography . button . copy ( color Ġ= ĠMaterial Theme . colors . primary ) Ġelse ĠMaterial Theme . typography . button . copy ( color Ġ= ĠMaterial Theme . colors . content Color For ( Material Theme . colors . background ). copy ( alpha Ġ= Ġ 0 . 7 f )) ĊĠĠĠ Ġval Ġbackground Ġ= Ġif Ġ( checked ) ĠMaterial Theme . colors . primary Surface . copy ( alpha Ġ= Ġ 0 . 2 f ) Ġelse ĠMaterial Theme . colors . background ĊĠĠĠ ĠBox ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmodifier Ġ= Ġmodifier . toggle able ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvalue Ġ= Ġchecked , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon Value Change Ġ= Ġon Checked Change , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġenabled Ġ= Ġenabled , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġindication Ġ= ĠR ipple Indication ( bounded Ġ= Ġtrue ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. then ( selected Indication ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. background ( background , Ġborder Shape ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. padding ( 8 . dp ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. wrap Content Size (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgravity Ġ= ĠContent Gravity . Center , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġchildren Ġ= Ġ{ ĠText ( text , Ġstyle Ġ= Ġtext Style ) Ġ} ĊĠĠĠ Ġ) Ċ }