package Ġcom . re mon h 8 7 . p izza . ui Ċ Ċ import Ġandroid . app . Activity . RESULT _ OK Ċ import Ġandroid . content . Intent Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroidx . core . os . bundle Of Ċ import Ġandroidx . fragment . app . Fragment Ċ import Ġandroidx . fragment . app . view Models Ċ import Ġandroidx . lifecycle . Observer Ċ import Ġcom . re mon h 8 7 . p izza . R Ċ import Ġcom . re mon h 8 7 . p izza . business logic . P izza Order Ċ import Ġcom . re mon h 8 7 . p izza . business logic . P izza Size Ċ import Ġkotlinx . android . synt hetic . main . select _ p izza _ fragment .* Ċ import Ġkotlinx . android . synt hetic . main . select _ p izza _ fragment . view .* Ċ Ċ class ĠSelect P izza Fragment () Ġ: ĠFragment () Ġ{ ĊĊĠĠĠ Ġprivate Ġval ĠviewModel : ĠP izza Order ViewModel Ġby Ġview Models () ĊĊĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( ĊĠĠĠĠĠĠĠ Ġinflater : ĠLayoutInflater , ĊĠĠĠĠĠĠĠ Ġcontainer : ĠViewGroup ?, ĊĠĠĠĠĠĠĠ ĠsavedInstanceState : ĠBundle ? ĊĠĠĠ Ġ): ĠView ? Ġ{ ĊĊĠĠĠĠĠĠĠ Ġreturn Ġinflater . inflate ( R . layout . select _ p izza _ fragment , Ġcontainer , Ġfalse ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon View Created ( view : ĠView , ĠsavedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on View Created ( view , ĠsavedInstanceState ) ĊĊĠĠĠĠĠĠĠ Ġval Ġorder Observer Ġ= ĠObserver < P izza Order > Ġ{ Ġnew Order Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpizza Ġ= Ġnew Order . p izz as [ 1 ] ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpizza _ name . text Ġ= Ġpizza ?. name Ġ?: Ġ"" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpizza _ description . text Ġ= Ġpizza ?. description Ġ?: Ġ"" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpizza _ price . text Ġ= Ġ"${ new Order . total Price ()} 0 " ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġpizza _ size _ selection . setOn Checked ChangeListener Ġ{ Ġ_, Ġindex Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( index Ġ== ĠR . id . medium _ selection ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpizza ?. change Size ( P izza Size . REG ULAR ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpizza _ price . text Ġ= Ġ"${ new Order . total Price ()} 0 " ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( index Ġ== ĠR . id . xl _ selection ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpizza ?. change Size ( P izza Size . XL ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpizza _ price . text Ġ= Ġ"${ new Order . total Price ()} 0 " ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġcomplete _ order _ button . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresult Intent Ġ= ĠIntent () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbundle Ġ= ĠBundle () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbundle . putString (" description ", Ġ" P izza " Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbundle . put Double (" price ", Ġnew Order ?. total Price () Ġ?: Ġ 0 . 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġactivity ?. set Result ( RESULT _ OK , Ġresult Intent . put Extras ( bundle )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġactivity ?. finish () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠviewModel . p izza Order . observe ( view Lifecycle Owner , Ġorder Observer Ġ) ĊĊĊĠĠĠĠĠĠĠ Ġpizza _ size _ selection . check ( R . id . medium _ selection ) ĊĠĠĠ Ġ} Ċ }