package Ġcom . bru has c ended . organ iso . ui . new Conversation Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . widget . ImageView Ċ import Ġandroid . widget . TextView Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġcom . bru has c ended . organ iso . R Ċ import Ġcom . bru has c ended . core . data . Contacts Manager Ċ import Ġcom . bru has c ended . core . db . Contact Ċ import Ġcom . bru has c ended . core . db . Contact Comparator Ċ import Ġcom . bru has c ended . organ iso . common . My Paging Data Adapter Ċ import Ġcom . bru has c ended . organ iso . ui . new Conversation . Contact Recycler Adaptor . Contact ViewHolder Ċ import Ġcom . squareup . pic asso . Pic asso Ċ import Ġjava . io . File Ċ import Ġkotlin . math . abs Ċ Ċ /* ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCopyright Ġ 2 0 2 0 ĠCh ir ag ĠKal ra ĊĊĠĠ ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); ĊĠĠ Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . ĊĠĠ ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat ĊĊĠĠĠĠĠĠ Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 ĊĊĠĠ ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware ĊĠĠ Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , ĊĠĠ ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . ĊĠĠ ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand ĊĠĠ Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ Ċ class ĠContact Recycler Adaptor Ġ( ĊĠĠĠ Ġprivate Ġval ĠmContext : ĠContext Ċ ): ĠMy Paging Data Adapter < Contact , ĠContact ViewHolder >( ĊĠĠĠ ĠContact Comparator Ċ ){ ĊĊĠĠĠ Ġprivate Ġval Ġcolors Ġ= ĠmContext . resources . getInt Array ( R . array . colors ) ĊĊĠĠĠ Ġprivate Ġval Ġcm Ġ= ĠContact s Manager ( mContext ) ĊĠĠĠ Ġprivate Ġval Ġpic asso Ġ= ĠPic asso . get () ĊĊĠĠĠ Ġvar Ġon Item Click : Ġ(( Contact ) Ġ-> ĠUnit )? Ġ= Ġnull ĊĊĠĠĠ Ġinner Ġclass ĠContact ViewHolder ( view : ĠView ) Ġ: ĊĠĠĠĠĠĠĠ ĠRecyclerView . ViewHolder ( view ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġname : ĠTextView Ġ= Ġview . findViewById ( R . id . name ) ĊĠĠĠĠĠĠĠ Ġval Ġnumber : ĠTextView Ġ= Ġview . findViewById ( R . id . number ) ĊĠĠĠĠĠĠĠ Ġval Ġdp : ĠImageView Ġ= Ġview . findViewById ( R . id . dp ImageView ) ĊĊĠĠĠĠĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon Item Click ?. invoke ( getItem ( layout Position ) Ġ?: Ġreturn @ setOnClickListener ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ViewHolder ( parent : ĠViewGroup , Ġview Type : ĠInt ): ĠContact ViewHolder Ġ{ ĊĠĠĠĠĠĠĠ Ġval ĠitemView : ĠView Ġ= ĠLayoutInflater . from ( parent . context ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. inflate ( R . layout . item _ contact , Ġparent , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġreturn ĠContact ViewHolder ( item View ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Bind ViewHolder ( holder : ĠContact ViewHolder , Ġposition : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcontact : ĠContact Ġ= ĠgetItem ( position ) Ġ?: Ġreturn ĊĠĠĠĠĠĠĠ Ġholder . name . text Ġ= Ġcontact . name ĊĠĠĠĠĠĠĠ Ġholder . number . text Ġ= Ġcontact . number ĊĠĠĠĠĠĠĠ Ġval Ġdp Ġ= ĠFile ( mContext . files Dir , Ġcontact . number ) ĊĠĠĠĠĠĠĠ Ġholder . dp . apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset BackgroundColor ( colors [ abs ( contact . hashCode ()) Ġ% Ġcolors . size ]) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( dp . exists ()) Ġpic asso . load ( dp ). into ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġset Image Resource ( R . drawable . ic _ person ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ Ċ } Ċ