package Ġcom . r he yan sh . r pdf generator Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . widget . TextView Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġkotlinx . android . synt hetic . main . row _ transaction . view .* Ċ import Ġcom . r he yan sh . model . R Transaction Ċ import Ġcom . r he yan sh . model . R Transaction Type Ċ Ċ private Ġconst Ġval ĠVIEW _ TYPE _ GENERAL _ MESSAGE Ġ= Ġ 1 Ċ Ċ class ĠTrans ListAdapter Ġ( val Ġcontext : ĠContext ) Ġ: ĠRecyclerView . Adapter < Trans Row ViewHolder >() Ġ{ ĊĊĠĠĠ Ġvar Ġon Item Click : Ġ(( item : ĠR Transaction ) Ġ-> ĠUnit )? Ġ= Ġnull ĊĠĠĠ Ġvar Ġitems Ġ= Ġempty List < R Transaction >() ĊĊĠĠĠ Ġinit Ġ{ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Bind ViewHolder ( holder : ĠTrans Row ViewHolder , Ġposition : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġitem Ġ= Ġitems . get ( position ) ĊĠĠĠĠĠĠĠ Ġholder ?. bind ( item ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ViewHolder ( parent : ĠViewGroup , Ġview Type : ĠInt ): ĠTrans Row ViewHolder Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠItem ViewHolder ( LayoutInflater . from ( context ). inflate ( R . layout . row _ transaction , Ġparent , Ġfalse )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠgetItem Count (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġitems . size ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠgetItem ViewType ( position : ĠInt ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠVIEW _ TYPE _ GENERAL _ MESSAGE ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinner Ġclass ĠItem ViewHolder Ġ( view : ĠView ) Ġ: ĠTrans Row ViewHolder ( view ) Ġ{ ĊĊĠĠĠĠĠĠĠ Ġprivate Ġvar Ġtitle TextView : ĠTextView Ġ= Ġview . title TextView ĊĠĠĠĠĠĠĠ Ġprivate Ġvar Ġsub Title TextView : ĠTextView Ġ= Ġview . sub Title TextView ĊĠĠĠĠĠĠĠ Ġprivate Ġvar Ġt Type TextView : ĠTextView Ġ= Ġview . t Type TextView ĊĠĠĠĠĠĠĠ Ġprivate Ġvar Ġquantity TextView : ĠTextView Ġ= Ġview . quantity TextView ĊĠĠĠĠĠĠĠ Ġprivate Ġvar Ġdate TextView : ĠTextView Ġ= Ġview . date TextView ĊĠĠĠĠĠĠĠ Ġprivate Ġvar Ġprice TextView : ĠTextView Ġ= Ġview . price TextView ĊĊĠĠĠĠĠĠĠ Ġprivate Ġvar Ġis Setup Done Ġ= Ġfalse ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġbind ( item : ĠR Transaction ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsuper . bind ( item ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! is Setup Done ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠitemView . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġitem Ġ= Ġitems . get ( adapter Position ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon Item Click ?. invoke ( item ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis Setup Done Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠsetUp () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġtitle TextView . text Ġ= Ġitem . itemName ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsub Title TextView . text Ġ= Ġitem . cust Name ĊĠĠĠĠĠĠĠĠĠĠĠ Ġquantity TextView . text Ġ= Ġitem . quantity . toString () Ġ+ Ġ" Ġx Ġ" Ġ+ Ġitem . price Per Unit . toString () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdate TextView . text Ġ= Ġitem . transaction Date Str ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtotal Price Str Ġ= Ġitem . quantity Ġ* Ġitem . price Per Unit ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprice TextView . text Ġ= Ġ"= Ġ" Ġ+ Ġtotal Price Str ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( item . trans Type Ġ== ĠR Transaction Type . minus ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġt Type TextView . setBackground Resource ( R . color . alert ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprice TextView . setTextColor ( context . getResources (). getColor ( R . color . alert )); ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġt Type TextView . setBackground Resource ( R . color . success ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprice TextView . setTextColor ( context . getResources (). getColor ( R . color . success )); ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġprivate Ġfun ĠsetUp () Ġ{ ĊĊĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ open Ġclass ĠTrans Row ViewHolder Ġ( view : ĠView ) Ġ: ĠRecyclerView . ViewHolder ( view ) Ġ{ ĊĠĠĠ Ġopen Ġfun Ġbind ( item : ĠR Transaction ) Ġ{} Ċ }