package Ġme . jacob le wis . daily expense . adapters Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroidx . recyclerview . widget . ListAdapter Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġme . jacob le wis . daily expense . adapters . view holders .* Ċ import Ġme . jacob le wis . daily expense . commons . Stats Type Ċ import Ġme . jacob le wis . daily expense . data . Balances DB Ċ import Ġme . jacob le wis . daily expense . data . models . Category Ċ import Ġme . jacob le wis . daily expense . data . models . Footer Ċ import Ġme . jacob le wis . daily expense . data . models . Payment Category Ċ import Ġme . jacob le wis . daily expense . data . models . Stats Ċ import Ġme . jacob le wis . daily expense . managers . Balance Manager Ċ import Ġme . jacob le wis . j kl core . components . recyclerview . Id Item Ċ import Ġme . jacob le wis . j kl core . components . recyclerview . RB RecyclerView Holder Ċ import Ġjavax . inject . Inject Ċ Ċ class ĠGeneral Item Adapter Ċ @ Inject Ġconstructor ( context : ĠContext ?, Ġval Ġdb : ĠBal ances DB , Ġbalance Manager : ĠBalance Manager ) Ġ: ĠList Adapter < Id Item <* >, ĠRB RecyclerView Holder < Id Item <* >, ĠItem Delegate < Any > ?> >( General Diff Util ()) Ġ{ ĊĠĠĠ Ġvar Ġcallback : ĠItem Delegate < Any >? Ġ= Ġnull ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ViewHolder ( parent : ĠViewGroup , Ġview Type : ĠInt ): ĠRB RecyclerView Holder < Id Item <* >, ĠItem Delegate < Any > ?> Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ( view Type ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠStats ĊĠĠĠĠĠĠĠĠĠĠĠ ĠBudget Overview ViewHolder . LAYOUT _ TYPE Ġ-> ĠBudget Overview ViewHolder ( parent ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠStat Pie ViewHolder . LAYOUT _ TYPE Ġ-> ĠStat Pie ViewHolder ( parent ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠCategories ĊĠĠĠĠĠĠĠĠĠĠĠ ĠCategory Edit ViewHolder . LAYOUT _ TYPE Ġ-> ĠCategory Edit ViewHolder ( parent ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠCategory Choose ViewHolder . LAYOUT _ TYPE Ġ-> ĠCategory Choose ViewHolder ( parent , Ġbudget ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠPay ments ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPayment ViewHolder . LAYOUT _ TYPE Ġ-> ĠPayment ViewHolder ( parent ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠFooter ĊĠĠĠĠĠĠĠĠĠĠĠ ĠFooter ViewHolder . LAYOUT _ TYPE Ġ-> ĠFooter ViewHolder ( parent ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġthrow ĠException (" No ĠViewHolder Ġfor Ġitem ") ĊĠĠĠĠĠĠĠ Ġ} Ġas ĠRB RecyclerView Holder < Id Item <* >, ĠItem Delegate < Any > ?> ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠgetItem ViewType ( position : ĠInt ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġitem Ġ= ĠgetItem ( position ) ĊĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ( item ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠStats ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠStats Ġ-> Ġwhen Ġ( item . display Type ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠStats Type . Overview Ġ-> ĠBudget Overview ViewHolder . LAYOUT _ TYPE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠStats Type . Pie Chart Ġ-> ĠStat Pie ViewHolder . LAYOUT _ TYPE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠCategories ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠCategory Ġ-> Ġwhen Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġeditable Ġ-> ĠCategory Edit ViewHolder . LAYOUT _ TYPE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> ĠCategory Choose ViewHolder . LAYOUT _ TYPE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠPay ments ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠPayment Category Ġ-> ĠPayment ViewHolder . LAYOUT _ TYPE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠFooter ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠFooter Ġ-> ĠFooter ViewHolder . LAYOUT _ TYPE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġthrow ĠException (" No ĠViewHolder Ġfor Ġitem ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Bind ViewHolder ( holder : ĠRB RecyclerView Holder < Id Item <* >, ĠItem Delegate < Any >? >, Ġposition : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġholder . bind Item ( getItem ( position ), Ġposition , Ġcallback ) ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġlateinit Ġvar Ġre cyclerView : ĠRecyclerView ĊĠĠĠ Ġvar Ġeditable : ĠBoolean Ġ= Ġfalse ĊĠĠĠ Ġprivate Ġval Ġbudget Ġ= Ġbalance Manager . current Budget Ċ }