package Ġbr . sen ac . game b ros . adapter Ċ Ċ import Ġandroid . annotation . Suppress Lint Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . util . Log Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . widget . Image Button Ċ import Ġandroid . widget . ImageView Ċ import Ġandroid . widget . TextView Ċ import Ġandroidx . appcompat . app . AppCompatActivity Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġbr . sen ac . game b ros . R Ċ import Ġbr . sen ac . game b ros . model . Cart Ċ import Ġbr . sen ac . game b ros . model . Cart Products Response Ċ import Ġbr . sen ac . game b ros . model . Cart Request Ċ import Ġbr . sen ac . game b ros . model . Cart Response Ċ import Ġbr . sen ac . game b ros . services . Cart s Service Ċ import Ġbr . sen ac . game b ros . utils . Constants Ċ import Ġbr . sen ac . game b ros . views . cart . Cart Fragment Ċ import Ġbr . sen ac . game b ros . views . products . Product Fragment Ċ import Ġcom . google . android . material . sn ackbar . Snackbar Ċ import Ġcom . squareup . pic asso . Pic asso Ċ import Ġkotlinx . android . synt hetic . main . item _ product . view .* Ċ import Ġretrofit 2 . Call Ċ import Ġretrofit 2 . Callback Ċ import Ġretrofit 2 . Response Ċ import Ġretrofit 2 . Ret rofit Ċ import Ġretrofit 2 . converter . gson . Gson Converter Factory Ċ Ċ class ĠCart Adapter ( private Ġval Ġcart : ĠArrayList < Cart Products Response >): ĠRecyclerView . Adapter < Cart Adapter . Cart ViewHolder >() Ġ{ ĊĠĠĠ Ġvar Ġremoved Position Ġ: ĠInt Ġ? Ġ= Ġnull ĊĠĠĠ Ġval Ġretrofit Ġ= ĠRet rofit . Builder () ĊĠĠĠĠĠĠĠ Ġ. baseUrl ( Constants . BASE _ URL ) ĊĠĠĠĠĠĠĠ Ġ. add Converter Factory ( Gson Converter Factory . create ()) ĊĠĠĠĠĠĠĠ Ġ. build () ĊĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ViewHolder ( parent : ĠViewGroup , Ġview Type : ĠInt ): ĠCart ViewHolder Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠC ria Ġo Ġitem Ġda Ġlista ĊĠĠĠĠĠĠĠ Ġval Ġitem C arr in ho Ġ= ĠLayoutInflater . from ( parent ?. context ). inflate ( R . layout . item _ product _ cart , Ġparent , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġval Ġholder Ġ= ĠCart ViewHolder ( item C arr in ho ) ĊĊĊĠĠĠĠĠĠĠ Ġreturn Ġholder ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Remove Item Position () Ġ: ĠInt ? Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġposition Ġ= Ġremoved Position ĊĠĠĠĠĠĠĠ Ġreturn Ġposition ; ĊĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Bind ViewHolder ( holder : ĠCart ViewHolder , Ġ@ Suppress Lint (" RecyclerView ") Ġposition : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠEx i be Ġo Ġitem Ġda Ġlista ĊĠĠĠĠĠĠĠ ĠPic asso . get (). load ( Constants . RAW _ URL Ġ+ Ġcart [ position ]. image ). into ( holder . image ) ĊĠĠĠĠĠĠĠ Ġholder . categoria . text Ġ= Ġcart [ position ]. category Name ĊĠĠĠĠĠĠĠ Ġholder . sub categoria . text Ġ= Ġcart [ position ]. sub Category ĊĠĠĠĠĠĠĠ Ġholder . nome . text Ġ= Ġcart [ position ]. name ĊĠĠĠĠĠĠĠ Ġholder . pre co . text Ġ= Ġ" R $" Ġ+ Ġcart [ position ]. price ĊĊĠĠĠĠĠĠĠ Ġ// Ġremov endo Ġprod uto Ġdo Ġc arr in ho ĊĠĠĠĠĠĠĠ Ġholder . li xe ira . setOnClickListener ( object : ĠView . OnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonClick ( v : ĠView ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġremo ver Produto ( cart [ position ]. cart ProductId , Ġholder ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcart . remove At ( position ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnotify DataSet Changed () ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbundle Ġ= ĠBundle () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġtotal Price Ġ= Ġ 0 . 0 0 ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcart . forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtotal Price Ġ= Ġtotal Price . plus ( it . price . toFloat ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbundle . put Serializable (" data ", Ġcart ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbundle . put Float (" total Cart ", Ġtotal Price . toFloat ()) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġactivity Ġ= Ġv !!. context Ġas ĠAppCompatActivity ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfragment Ġ= ĠCart Fragment () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfragment . arguments Ġ= Ġbundle ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġactivity ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. support FragmentManager ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. beginTransaction () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. replace ( R . id . container , Ġfragment ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. addTo Back Stack ( null ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. commit () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġremo ver Produto ( cart ProductId : ĠInt , Ġholder : ĠCart ViewHolder ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġservice Ġ= Ġretrofit . create ( Cart s Service :: class . java ) ĊĠĠĠĠĠĠĠ Ġval Ġrequest Ġ= ĠCart Request Ġ( user _ id Ġ= Ġ 1 , Ġproduct _ id Ġ= Ġcart ProductId ) ĊĊĠĠĠĠĠĠĠ Ġval Ġcall Ġ= Ġservice . remo ver Produto C arr in ho ( request ) ĊĊĠĠĠĠĠĠĠ Ġval Ġcallback Ġ= Ġobject Ġ: ĠCallback < Cart Response > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Response ( call : ĠCall < Cart Response >, Ġresponse : ĠResponse < Cart Response >) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif ( response . is Successful ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . i (" RESPONSE ", Ġresponse . body (). toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Snackbar . make ( holder . item View , Ġ" Produto Ġex cl uÃŃ do Ġdo Ġc arr in ho .", ĠSn ackbar . LENGTH _ LONG ). show () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse { ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSn ackbar . make ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġholder . item View , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" NÃ£o Ġfoi Ġposs ÃŃvel Ġadicion ar Ġao Ġc arr in ho .", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSn ackbar . LENGTH _ LONG ). show () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresponse . error Body ()?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . e (" ERROR ", Ġit . string ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Failure ( call : ĠCall < Cart Response >, Ġt : ĠThrowable ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSn ackbar . make ( holder . item View , Ġ" NÃ£o Ġfoi Ġposs ÃŃvel Ġse Ġconect ar Ġao Ġservidor ", ĠSn ackbar . LENGTH _ LONG ). show () ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . e (" ERROR ", Ġ" F al ha Ġao Ġexecut ar ĠserviÃ§o ", Ġt ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġcall . enqueue ( callback ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠgetItem Count (): ĠInt Ġ= Ġcart . size ĊĊĠĠĠ Ġinner Ġclass ĠCart ViewHolder ( item View : ĠView ) Ġ: ĠRecyclerView . ViewHolder ( item View ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġimage Ġ= ĠitemView . findViewById < ImageView >( R . id . image Produto ) ĊĠĠĠĠĠĠĠ Ġval Ġcategor ia Ġ= ĠitemView . findViewById < TextView >( R . id . text Categoria Produto ) ĊĠĠĠĠĠĠĠ Ġval Ġsub categoria Ġ= ĠitemView . findViewById < TextView >( R . id . text Sub Categoria Produto ) ĊĠĠĠĠĠĠĠ Ġval Ġnome Ġ= ĠitemView . findViewById < TextView >( R . id . text Nome Produto ) ĊĠĠĠĠĠĠĠ Ġval Ġpre co Ġ= ĠitemView . findViewById < TextView >( R . id . text Pre co Produto ) ĊĠĠĠĠĠĠĠ Ġval Ġli xe ira Ġ= ĠitemView . findViewById < Image Button >( R . id . btn Remove Item ) ĊĠĠĠ Ġ} Ċ }