package Ġau . com . til bro ok . list activity Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . Intent Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . support . design . widget . Snackbar Ċ import Ġandroid . support . v 7 . app . AppCompatActivity Ċ import Ġandroid . view .* Ċ import Ġandroid . widget . Base Adapter Ċ import Ġandroid . widget . Toast Ċ import Ġkotlinx . android . synt hetic . main . activity _ main .* Ċ import Ġkotlinx . android . synt hetic . main . content _ main .* Ċ import Ġkotlinx . android . synt hetic . main . row _ user . view .* ĊĊ Ċ const Ġval ĠEX TRA _ EDIT _ USER _ ID Ġ= Ġ" EXTRA _ EDIT _ USER _ ID " Ċ Ċ class ĠMainActivity Ġ: ĠAppCompatActivity () Ġ{ ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġadapter : ĠUser Adapter ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ ĠsetContentView ( R . layout . activity _ main ) ĊĠĠĠĠĠĠĠ Ġset Support ActionBar ( toolbar ) ĊĠĠĠĠĠĠĠ Ġfab . setOnClickListener Ġ{ Ġview Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSn ackbar . make ( view , Ġ" Replace Ġwith Ġyour Ġown Ġaction ", ĠSn ackbar . LENGTH _ LONG ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setAction (" Action ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( view . context , Ġ" Sn ack ĠToast ", ĠToast . LENGTH _ LONG ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. show () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. show () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĊĠĠĠĠĠĠĠ Ġadapter Ġ= ĠUser Adapter ( this , ĠDatabase . simple List ) ĊĊĠĠĠĠĠĠĠ Ġitem List . adapter Ġ= Ġadapter ĊĠĠĠĠĠĠĠ Ġitem List . setOn ItemClickListener Ġ{ Ġadapter View , Ġview , Ġpos , ĠitemId Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent ( view . context , ĠUser Profile :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity ( intent ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Restart () Ġ{ ĊĠĠĠĠĠĠĠ Ġadapter . notify DataSet Changed () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate Options Menu ( menu : ĠMenu ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠInf late Ġthe Ġmenu ; Ġthis Ġadds Ġitems Ġto Ġthe Ġaction Ġbar Ġif Ġit Ġis Ġpresent . ĊĠĠĠĠĠĠĠ Ġmenu Inflater . inflate ( R . menu . menu _ main , Ġmenu ) ĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Options ItemSelected ( item : ĠMenuItem ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠHandle Ġaction Ġbar Ġitem Ġclicks Ġhere . ĠThe Ġaction Ġbar Ġwill ĊĠĠĠĠĠĠĠ Ġ// Ġautomatically Ġhandle Ġclicks Ġon Ġthe ĠHome / Up Ġbutton , Ġso Ġlong ĊĠĠĠĠĠĠĠ Ġ// Ġas Ġyou Ġspecify Ġa Ġparent Ġactivity Ġin ĠAndroid Manifest . xml . ĊĠĠĠĠĠĠĠ Ġval Ġid Ġ= Ġitem . itemId ĊĊĠĠĠĠĠĠĠ Ġ// no inspection ĠSimpl ifiable If Statement ĊĠĠĠĠĠĠĠ Ġif Ġ( id Ġ== ĠR . id . action _ settings ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġsuper . on Options ItemSelected ( item ) ĊĠĠĠ Ġ} Ċ } Ċ Ċ class ĠUser Adapter ( private Ġval Ġctx : ĠContext , Ġprivate Ġval Ġcollection : ĠList < User >) Ġ: ĠBase Adapter () Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġget Count (): ĠInt Ġ= Ġcollection . size ĊĊĠĠĠ Ġoverride Ġfun Ġget View ( position : ĠInt , ĠconvertView : ĠView ?, Ġparent : ĠViewGroup ): ĠView Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġview Ġ= ĠconvertView Ġ?: ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLayoutInflater . from ( ctx ). inflate ( R . layout . row _ user , Ġparent , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġval Ġuser Ġ= ĠgetItem ( position ) ĊĠĠĠĠĠĠĠ Ġview . profile Image . setImage Resource ( user . image Id ) ĊĠĠĠĠĠĠĠ Ġview . full UserName . text Ġ= Ġuser . fullName ĊĠĠĠĠĠĠĠ Ġview . title Name . text Ġ= Ġuser . title ĊĠĠĠĠĠĠĠ Ġview . description . text Ġ= Ġuser . description ĊĊĠĠĠĠĠĠĠ Ġreturn Ġview ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠgetItem ( position : ĠInt ): ĠUser Ġ= Ġcollection . get ( position ) ĊĊĠĠĠ Ġoverride Ġfun ĠgetItem Id ( position : ĠInt ): ĠLong Ġ= Ġ 1 Ċ } Ċ Ċ data Ġclass ĠUser ( ĊĠĠĠĠĠĠĠ Ġval ĠfirstName : ĠString , ĊĠĠĠĠĠĠĠ Ġval ĠlastName : ĠString , ĊĠĠĠĠĠĠĠ Ġval Ġtitle : ĠString , ĊĠĠĠĠĠĠĠ Ġval Ġimage Id : ĠInt , ĊĠĠĠĠĠĠĠ Ġval Ġdescription : ĠString Ġ= Ġ"") Ġ{ ĊĠĠĠ Ġval ĠfullName Ġ= Ġ"$ firstName Ġ$ lastName " ĊĠĠĠ Ġfun Ġlazy FullName () Ġ= Ġ"$ firstName Ġ$ lastName " Ċ } Ċ