package Ġcom . google . android . commerce . ui . fragment Ċ Ċ import Ġandroid . annotation . Suppress Lint Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . MenuItem Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . widget . LinearLayout Ċ import Ġandroidx . fragment . app . Fragment Ċ import Ġandroidx . lifecycle . ViewModel Providers Ċ import Ġandroidx . recyclerview . widget . Linear LayoutManager Ċ import Ġcom . google . android . commerce . R Ċ import Ġcom . google . android . commerce . adapters . B ask Item Adapter Ċ import Ġcom . google . android . commerce . data . model . Basket Item Ċ import Ġcom . google . android . commerce . interfaces . Basket Adapter Listener Ċ import Ġcom . google . android . commerce . ui . view . Basket ViewModel Ċ import Ġkotlinx . android . synt hetic . main . fragment _ basket .* Ċ import Ġjava . text . NumberFormat Ċ import Ġjava . util .* ĊĊ Ċ class ĠB asket Fragment Ġ: ĠFragment (), ĠB asket Adapter Listener Ġ{ ĊĊĊĊĠĠĠ Ġlateinit Ġvar Ġcart ViewModel : ĠB asket ViewModel ĊĠĠĠ Ġlateinit Ġvar Ġcart Adapter : ĠB ask Item Adapter ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( in flater : ĠLayoutInflater , Ġcontainer : ĠViewGroup ?, ĠsavedInstanceState : ĠBundle ?): ĠView ? Ġ{ ĊĊĠĠĠĠĠĠĠ Ġreturn Ġinflater . inflate ( R . layout . fragment _ basket , Ġcontainer , Ġfalse ) ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Suppress Lint (" Wrong Constant ") ĊĠĠĠ Ġoverride Ġfun Ġon Activity Created ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Activity Created ( savedInstanceState ) ĊĠĠĠĠĠĠĠ Ġcart Adapter Ġ= ĠB ask Item Adapter ( this ) ĊĠĠĠĠĠĠĠ Ġre cycler _ view _ cart . layout Manager Ġ= ĠLinearLayoutManager ( activity , ĠLinearLayout . VERTICAL , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġre cycler _ view _ cart . adapter Ġ= Ġcart Adapter ĊĊĠĠĠĠĠĠĠ Ġattach Data () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġattach Data () Ġ{ ĊĠĠĠĠĠĠĠ Ġcart ViewModel Ġ= ĠViewModel Providers . of ( this ). get ( Basket ViewModel :: class . java ) ĊĊĠĠĠĠĠĠĠ Ġfetch Items () ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġfetch Items () Ġ{ ĊĊĠĠĠĠĠĠĠ Ġcart ViewModel . fetch Products () ĊĊĠĠĠĠĠĠĠ Ġcart ViewModel . products . observe ( view Lifecycle Owner , Ġandroidx . lifecycle . Observer Ġ{ Ġvalues Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcart Adapter . set Products List ( values ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtotal Price Ġ= Ġcart ViewModel . total Price () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( total Price Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġformat Price ( total Price ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġprivate Ġfun Ġformat Price ( price : ĠDouble ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġn Ġ= ĠNumber Format . getC urrency Instance ( Locale . F RAN CE ) ĊĠĠĠĠĠĠĠ Ġval Ġprice Formatted Ġ= Ġn . format ( price . div ( 1 0 0 . 0 )) ĊĠĠĠĠĠĠĠ Ġtotal _ price . text Ġ= Ġprice Formatted ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġremove Basket Item ( item : ĠB asket Item ) Ġ{ ĊĠĠĠĠĠĠĠ Ġcart ViewModel . removeItem ( item ) ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġremove Item Inc ( item : ĠB asket Item ) Ġ{ ĊĠĠĠĠĠĠĠ Ġcart ViewModel . removeItem Increment ( item ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġadd Item Inc ( item : ĠB asket Item ) Ġ{ ĊĠĠĠĠĠĠĠ Ġcart ViewModel . add Cart Item ( item ) ĊĊĠĠĠ Ġ} Ċ }