package Ġcom . mex ator . pet finder _ client . ui . fragment . details Ċ Ċ import Ġandroid . annotation . Suppress Lint Ċ import Ġandroid . graphics . drawable . Drawable Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroidx . recyclerview . widget . Diff Util Ċ import Ġandroidx . recyclerview . widget . ListAdapter Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġcom . mex ator . pet finder _ client . R Ċ import Ġcom . mex ator . pet finder _ client . mv vm . view model . pet _ detail . Photo Wrapper Ċ import Ġkotlinx . android . extensions . Layout Container Ċ import Ġkotlinx . android . synt hetic . main . item _ detail _ photo _ page .* Ċ Ċ class ĠPet Photo ViewHolder ( override Ġval Ġcontainer View : ĠView ) Ġ: ĠRecyclerView . ViewHolder ( container View ), ĊĠĠĠ ĠLayout Container Ċ Ċ private Ġobject ĠPet Photo Diff Ġ: ĠDiff Util . Item Callback < Photo Wrapper >() Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġare Items The Same ( old Item : ĠPhoto Wrapper , Ġnew Item : ĠPhoto Wrapper ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġold Item . id Ġ== Ġnew Item . id ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Suppress Lint (" Diff Util Equals ") ĊĠĠĠ Ġoverride Ġfun Ġare Contents The Same ( old Item : ĠPhoto Wrapper , Ġnew Item : ĠPhoto Wrapper ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( old Item . is Placeholder Ġand Ġ! new Item . is Placeholder ) Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġreturn Ġnew Item . photo Ġ== Ġnull ĊĠĠĠ Ġ} Ċ } Ċ Ċ /** Ċ Ġ* ĠClass Ġthat Ġcan Ġbe Ġused Ġas Ġadapter Ġfor Ġphotos , Ġand Ġhas Ġa Ġplaceholder Ġthat Ġis Ġused Ġwhen Ġthe Ċ Ġ* Ġsubmitted Ġlist Ġis Ġempty Ċ Ġ*/ Ċ class ĠPet Photo Adapter Ġ: ĠList Adapter < Photo Wrapper , ĠPet Photo ViewHolder >( Pet Photo Diff ) Ġ{ ĊĠĠĠ Ġpublic Ġvar Ġplaceholder Photo : ĠDrawable ? Ġ= Ġnull ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ViewHolder ( parent : ĠViewGroup , Ġview Type : ĠInt ): ĠPet Photo ViewHolder Ġ= ĊĠĠĠĠĠĠĠ ĠPet Photo ViewHolder ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLayoutInflater . from ( parent . context ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. inflate ( R . layout . item _ detail _ photo _ page , Ġparent , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠ Ġoverride Ġfun Ġsubmit List ( list : ĠList < Photo Wrapper > ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ(! list . isNull OrEmpty ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsuper . submit List ( list ) ĊĠĠĠĠĠĠĠ Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsuper . submit List ( listOf ( Photo Wrapper ( placeholder Photo , Ġ 0 , Ġtrue ))) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠgetItem Count (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġcurrent List . size ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Bind ViewHolder ( holder : ĠPet Photo ViewHolder , Ġposition : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġwith ( current List [ position ]) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġholder . photo . setImage Drawable ( photo ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġholder . no _ images . visibility Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( is Placeholder ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠView . IN VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( photo Ġ!= Ġnull ) Ġholder . progress . visibility Ġ= ĠView . IN VISIBLE ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠgetItem Id ( position : ĠInt ): ĠLong Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġcurrent List [ position ]. id ĊĠĠĠ Ġ} Ċ }