package Ġcom . test . pix day . ui Ċ Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroidx . core . view . isVisible Ċ import Ġandroidx . paging . Load State Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġcom . test . pix day . R Ċ import Ġcom . test . pix day . databinding . Photos Load State Footer View Item Binding Ċ Ċ /** Ċ Ġ* ĠThe Ġ[ Photo Load State ViewHolder ] Ġis Ġresponsible Ġfor Ċ Ġ* Ġbinding Ġthe Ġview Ġitems Ġto Ġits Ġcorresponding Ġdata Ċ Ġ* Ġsuch Ġas Ġ[ Load State ]. Ċ Ġ*/ Ċ class ĠPhoto Load State ViewHolder ( ĊĠĠĠ Ġprivate Ġval Ġbinding : ĠPh otos Load State Footer View Item Binding , ĊĠĠĠ Ġretry : Ġ() Ġ-> ĠUnit Ċ ) Ġ: ĠRecyclerView . ViewHolder ( binding . root ) Ġ{ ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġbinding . retry Button . setOnClickListener Ġ{ Ġretry . invoke () Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġbind ( load State : ĠLoad State ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( load State Ġis ĠLoad State . Error ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . error Msg . text Ġ= Ġload State . error . localized Message ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġbinding . progress Bar . isVisible Ġ= Ġload State Ġis ĠLoad State . Loading ĊĠĠĠĠĠĠĠ Ġbinding . retry Button . isVisible Ġ= Ġload State Ġis ĠLoad State . Error ĊĠĠĠĠĠĠĠ Ġbinding . error Msg . isVisible Ġ= Ġload State Ġis ĠLoad State . Error ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġcreate ( parent : ĠViewGroup , Ġretry : Ġ() Ġ-> ĠUnit ): ĠPhoto Load State ViewHolder Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġview Ġ= ĠLayoutInflater . from ( parent . context ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. inflate ( R . layout . photos _ load _ state _ footer _ view _ item , Ġparent , Ġfalse ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbinding Ġ= ĠPh otos Load State Footer View Item Binding . bind ( view ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠPhoto Load State ViewHolder ( binding , Ġretry ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }