package Ġpet rov . iv an . delivery mobile . ui . fragment . delivery Ċ Ċ import Ġandroid . app . Activity Ċ import Ġandroid . content . Intent Ċ import Ġandroid . os . Bundle Ċ import Ġcom . are l lo mobile . mvp . presenter . Inject Presenter Ċ import Ġcom . are l lo mobile . mvp . presenter . Provide Presenter Ċ import Ġcom . bump tech . glide . load . engine . Disk Cache Strategy Ċ import Ġcom . bump tech . glide . load . resource . bitmap . Center Crop Ċ import Ġcom . bump tech . glide . load . resource . bitmap . Rounded C orners Ċ import Ġcom . bump tech . glide . request . RequestOptions Ċ import Ġcom . google . android . material . sn ackbar . Snackbar Ċ import Ġcom . squareup . mos hi . Json Adapter Ċ import Ġcom . squareup . mos hi . M oshi Ċ import Ġkotlinx . android . synt hetic . main . activity _ product _ info .* Ċ import Ġpet rov . delivery . web api . Product Ċ import Ġpet rov . iv an . delivery mobile . Basket Ċ import Ġpet rov . iv an . delivery mobile . R Ċ import Ġpet rov . iv an . delivery mobile . presentation . presenter . delivery . Product Info Presenter Ċ import Ġpet rov . iv an . delivery mobile . presentation . view . delivery . Product Info View Ċ import Ġpet rov . iv an . delivery mobile . ui . MainActivity . Companion . PRODUCT _ RESULT _ OPEN _ B ASK ET Ċ import Ġpet rov . iv an . delivery mobile . ui . base . Base Activity Ċ import Ġpet rov . iv an . delivery mobile . utils . BigDecimal Adapter Ċ import Ġpet rov . iv an . delivery mobile . utils . to Px Ċ Ċ class ĠProduct Info Activity Ġ: ĠBase Activity (), ĠProduct Info View Ġ{ ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġproduct : ĠProduct ĊĊĠĠĠ Ġprivate Ġval Ġbasket : ĠB asket Ġby Ġlazy ( mode Ġ= ĠLazy Thread Safety Mode . NONE ) Ġ{ ĊĠĠĠĠĠĠĠ Ġdelivery Components . getB asket () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Inject Presenter ĊĠĠĠ Ġlateinit Ġvar Ġpresenter : ĠProduct Info Presenter ĊĊĠĠĠ Ġ@ Provide Presenter ĊĠĠĠ Ġfun Ġprovide Presenter (): ĠProduct Info Presenter Ġ= ĠProduct Info Presenter ( basket ) ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ ĠsetContentView ( R . layout . activity _ product _ info ) ĊĊĠĠĠĠĠĠĠ Ġintent . extras ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( it . containsKey ( PARAM _ PRODUCT )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . getString ( PARAM _ PRODUCT )?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġproduct Ġ= Ġget Product Adapter (). fromJson ( it ) !! ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfab Back . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfinish () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfab Basket . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Result ( PRODUCT _ RESULT _ OPEN _ B ASK ET ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfinish () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġpresenter . show Product ( product ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġshow Product ( product : ĠProduct ) Ġ{ ĊĠĠĠĠĠĠĠ Ġdelivery Components . get G lide Request Manager () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. load ( product . img Url ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. disk Cache Strategy ( Disk Cache Strategy . NONE ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. placeholder ( R . drawable . ic _ p izza ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. apply ( RequestOptions (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtransform ( Center Crop (), ĠRo unded C orners ( resources . getInteger ( R . integer . product _ image _ corner ). to Px ())) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. into ( imageView ) ĊĊĠĠĠĠĠĠĠ Ġtv Name . text Ġ= Ġproduct . name ĊĠĠĠĠĠĠĠ Ġtv Description . text Ġ= Ġproduct . description ĊĠĠĠĠĠĠĠ Ġtv Ing redients . text Ġ= Ġproduct . ingredients ĊĊĠĠĠĠĠĠĠ Ġbtn AddTo Basket . text Ġ= ĠString . format ( getString ( R . string . product _ info _ add _ basket ), Ġproduct . cost ) ĊĊĠĠĠĠĠĠĠ Ġbtn AddTo Basket . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpresenter . addTo Basket ( product ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġsuc ces AddTo Bus ket () Ġ{ ĊĠĠĠĠĠĠĠ ĠSn ackbar . make ( btn AddTo Basket , ĠgetString ( R . string . product _ info _ suc ces _ add ), ĠSn ackbar . LENGTH _ LONG ). show () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġshow Error ( errorCode : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ ĠSn ackbar . make ( btn AddTo Basket , ĠgetString ( errorCode ), ĠSn ackbar . LENGTH _ LONG ). show () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠTAG Ġ= Ġ" Product Info Activity " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠPARAM _ PRODUCT Ġ= Ġ" param _ product " ĊĊĠĠĠĠĠĠĠ Ġ// Ġtodo Ġremove Ġm oshi ĊĠĠĠĠĠĠĠ Ġfun Ġget Product Adapter (): ĠJson Adapter < Product > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġm oshi Ġ= ĠM oshi . Builder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add ( BigDecimal Adapter ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġm oshi . adapter ( Product :: class . java ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun ĠstartActivity For Result ( activity : ĠActivity , Ġrequest Code : ĠInt , Ġproduct : ĠProduct ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent ( activity , ĠProduct Info Activity :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġintent . putExtra ( PARAM _ PRODUCT , Ġget Product Adapter (). toJson ( product )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġactivity . startActivity For Result ( intent , Ġrequest Code ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ