package Ġcom . gr inde wal d 1 9 0 0 . sh ere ats . view . custom Ċ Ċ import Ġandroid . animation . Animator Ċ import Ġandroid . animation . Animator Inflater Ċ import Ġandroid . animation . Animator Set Ċ import Ġandroid . content . Context Ċ import Ġandroid . util . Attribute Set Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . widget . ImageView Ċ import Ġandroid . widget . TextView Ċ import Ġandroidx . constraint layout . widget . Constraint Layout Ċ import Ġcom . gr inde wal d 1 9 0 0 . sh ere ats . R Ċ import Ġcom . gr inde wal d 1 9 0 0 . sh ere ats . model . entity . Firebase Order Item Ċ import Ġcom . gr inde wal d 1 9 0 0 . sh ere ats . model . entity . Singleton Util Ċ import Ġcom . gr inde wal d 1 9 0 0 . sh ere ats . model . interfaces . Refresh Cart Ċ Ċ /** Ċ Ġ* ĠA Ġlayout Ġfor Ġcart Ġadapter , Ġincluding Ġplus Button , Ġcount View , Ġminus Button . Ċ Ġ*/ Ċ class ĠCounter Layout ( private Ġval ĠmContext : ĠContext , Ġprivate Ġval Ġattrs : ĠAttributeSet ): ĠConstraint Layout ( mContext , Ġattrs ){ ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġm Holder : ĠRefresh Cart ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġm Order Item : ĠFirebase Order Item ĊĠĠĠ Ġprivate Ġvar Ġiv Plus : ĠImageView ĊĠĠĠ Ġprivate Ġvar Ġiv Minus : ĠImageView ĊĠĠĠ Ġprivate Ġvar Ġtv Count : ĠTextView ĊĠĠĠ Ġprivate Ġvar Ġm Count : ĠLong Ġ= Ġ 0 ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġview : ĠView Ġ= ĠLayoutInflater . from ( mContext ). inflate ( R . layout . layout _ counter , Ġthis , Ġtrue ) ĊĠĠĠĠĠĠĠ Ġiv Plus Ġ= Ġview . findViewById ( R . id . iv _ layout _ counter _ plus ) ĊĠĠĠĠĠĠĠ Ġiv Minus Ġ= Ġview . findViewById ( R . id . iv _ layout _ counter _ minus ) ĊĠĠĠĠĠĠĠ Ġtv Count Ġ= Ġview . findViewById ( R . id . tv _ layout _ counter ) ĊĠĠĠĠĠĠĠ Ġset Listener () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġset Listener (){ ĊĠĠĠĠĠĠĠ Ġval Ġanim ator Set Ġ= ĠAn imator Inflater . load Animator ( mContext , ĠR . anim ator . anim ator _ counter _ button ). set Duration ( 5 0 0 ) Ġas ĠAn imator Set ĊĠĠĠĠĠĠĠ Ġanim ator Set . addListener ( object : ĠAn imator . Animator Listener { ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Animation Start ( p 0 : ĠAn imator ?) Ġ{} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Animation Repeat ( p 0 : ĠAn imator ?) Ġ{} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Animation Cancel ( p 0 : ĠAn imator ?) Ġ{} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Animation End ( p 0 : ĠAn imator ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġupdate Count ( null ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġiv Plus . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġanim ator Set . setTarget ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġanim ator Set . start () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Count Ġ++ ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġiv Minus . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġanim ator Set . setTarget ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġanim ator Set . start () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Count Ġ-- ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠIf Ġset Ġnull Ġas Ġparameter , Ġupdate Ġthe Ġtext view Ġaccording Ġto Ġ{@ see Ġm Count } ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġupdate Count ( count : ĠLong ? ){ ĊĠĠĠĠĠĠĠ Ġif ( count Ġ!= Ġnull ){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Count Ġ= Ġcount ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġtv Count . text Ġ= Ġm Count . toString () ĊĠĠĠĠĠĠĠ Ġm Order Item . item Amount Ġ= Ġm Count ĊĠĠĠĠĠĠĠ ĠSingleton Util . update Cart ( m Order Item ) ĊĠĠĠĠĠĠĠ Ġif Ġ( m Count Ġ<= Ġ 0 ){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Holder . refresh Data () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġm Holder . refresh Price () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset Holder ( holder : ĠRefresh Cart ){ ĊĠĠĠĠĠĠĠ Ġm Holder Ġ= Ġholder ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset Order Item ( order Item : ĠFirebase Order Item ){ ĊĠĠĠĠĠĠĠ Ġm Order Item Ġ= Ġorder Item ĊĠĠĠĠĠĠĠ Ġm Count Ġ= Ġm Order Item . item Amount !! ĊĠĠĠĠĠĠĠ Ġtv Count . text Ġ= Ġm Count . toString () ĊĠĠĠ Ġ} Ċ }