package Ġcom . example . my application . ui . main . fragment . photos . adapter Ċ Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . widget . Button Ċ import Ġandroid . widget . ProgressBar Ċ import Ġandroid . widget . TextView Ċ import Ġandroidx . core . view . isVisible Ċ import Ġandroidx . paging . Load State Ċ import Ġandroidx . paging . Load State Adapter Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġcom . example . my application . R Ċ Ċ class ĠPh otos Load State Adapter ( ĊĠĠĠ Ġprivate Ġval Ġretry : Ġ() Ġ-> ĠUnit Ċ ) Ġ: ĠLoad State Adapter < Photos Load State Adapter . Load State ViewHolder >() Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġon Bind ViewHolder ( holder : ĠLoad State ViewHolder , Ġload State : ĠLoad State ) Ġ{ ĊĊĠĠĠĠĠĠĠ Ġholder . bin Data ( load State , retry ) ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ViewHolder ( parent : ĠViewGroup , Ġload State : ĠLoad State ): ĠLoad State ViewHolder Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠLoad State ViewHolder ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLayoutInflater . from ( parent . context ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. inflate ( R . layout . load _ state _ layout , Ġparent , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġclass ĠLoad State ViewHolder ( view : ĠView ) Ġ: ĠRecyclerView . ViewHolder ( view ) Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġbin Data ( load State : ĠLoad State , Ġretry : Ġ() Ġ-> ĠUnit ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġprogress Ġ= ĠitemView . findViewById < ProgressBar >( R . id . load _ state _ progress ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbtn Retry Ġ= ĠitemView . findViewById < Button >( R . id . load _ state _ retry ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtxt ErrorMessage Ġ= ĠitemView . findViewById < TextView >( R . id . load _ state _ errorMessage ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġbtn Retry . isVisible Ġ= Ġload State Ġ! is ĠLoad State . Loading ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtxt ErrorMessage . isVisible Ġ= Ġload State Ġ! is ĠLoad State . Loading ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprogress . isVisible Ġ= Ġload State Ġis ĠLoad State . Loading ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( load State Ġis ĠLoad State . Error ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtxt ErrorMessage . text Ġ= Ġload State . error . localized Message ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġbtn Retry . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġretry . invoke () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }