package Ġcom . android codes . url short ner . adapter Ċ Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . widget . Toast Ċ import Ġandroidx . lifecycle . LiveData Ċ import Ġandroidx . recyclerview . widget . Diff Util Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġcom . android codes . url short ner . R Ċ import Ġcom . android codes . url short ner . data . model . Url Data Ċ import Ġcom . android codes . url short ner . utils . Response Util Ċ import Ġkotlinx . android . synt hetic . main . single _ item . view .* Ċ Ċ class ĠShort ListAdapter ( private Ġval Ġon ItemClickListener : ĠOn ItemClickListener ): ĠRecyclerView . Adapter < Short ListAdapter . My ViewHolder >() Ġ{ ĊĊĠĠĠ Ġvar Ġdata List Ġ= Ġempty List < Url Data >() ĊĊĠĠĠ Ġinner Ġclass ĠMy ViewHolder ( view : ĠView , Ġon ItemClickListener : ĠOn ItemClickListener ): RecyclerView . ViewHolder ( view ){ ĊĠĠĠĠĠĠĠ Ġval Ġshort Url Ġ= Ġview . short _ url ĊĠĠĠĠĠĠĠ Ġval Ġlong Url Ġ= Ġview . long _ url ĊĠĠĠĠĠĠĠ Ġval Ġtitle Url = view . url _ title ĊĠĠĠĠĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview . share _ short _ url . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon ItemClickListener . on Share Btn Click ( adapter Position ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview . copy _ short _ url . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon ItemClickListener . on Copy Btn Click ( adapter Position ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ViewHolder ( parent : ĠViewGroup , Ġview Type : ĠInt ): ĠMy ViewHolder Ġ{ ĊĠĠĠĠĠĠĠ Ġval ĠitemView Ġ= ĠLayoutInflater . from ( parent . context ). inflate ( R . layout . single _ item , Ġparent , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġreturn ĠMy ViewHolder ( item View , Ġon ItemClickListener ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Bind ViewHolder ( holder : ĠMy ViewHolder , Ġposition : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġholder . short Url . text Ġ= Ġdata List [ position ]. short Url ĊĠĠĠĠĠĠĠ Ġholder . long Url . text Ġ= Ġdata List [ position ]. long Url ĊĠĠĠĠĠĠĠ Ġholder . title Url . text = data List [ position ]. url Title ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠgetItem Count (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġdata List . size ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun ĠsetData ( url Data : ĠList < Url Data > ){ ĊĠĠĠĠĠĠĠ Ġval Ġresponse Diff Util Ġ= ĠResponse Util ( data List , url Data ) ĊĠĠĠĠĠĠĠ Ġval Ġresponse Util Result Ġ= ĠDiff Util . calculate Diff ( response Diff Util ) ĊĠĠĠĠĠĠĠ Ġthis . data List Ġ= Ġurl Data ĊĠĠĠĠĠĠĠ Ġresponse Util Result . dispatch Updates To ( this ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinterface ĠOn ItemClickListener { ĊĠĠĠĠĠĠĠ Ġfun Ġon Share Btn Click ( position : ĠInt ) ĊĠĠĠĠĠĠĠ Ġfun Ġon Copy Btn Click ( position : ĠInt ) ĊĠĠĠ Ġ} Ċ Ċ }