package Ġcom . ga ur av . f ret el lo . data . remote Ċ Ċ import Ġokhttp 3 . ResponseBody Ċ Ċ /** Ċ Ġ* ĠA Ġgeneric Ġclass Ġthat Ġholds Ġa Ġvalue Ġwith Ġits Ġloading Ġstatus . Ċ Ġ* Ċ Ġ* ĠApiResponse Handler Ġis Ġusually Ġused Ġin Ġthe ĠRepository Ġclasses Ġwhere Ġthey Ġreturn Ċ Ġ* Ġ` LiveData < Result < T >> ` Ġto Ġpass Ġback Ġthe Ġlatest Ġdata Ġto Ġthe ĠUI Ġwith Ġits Ġfetch Ġstatus . Ċ Ġ*/ Ċ Ċ sealed Ġclass ĠApiResponse Handler < out ĠT > Ġ{ ĊĊĠĠĠ Ġdata Ġclass ĠSuccess < out ĠT >( val Ġdata : ĠT ?) Ġ: ĠApiResponse Handler < T >() ĊĊĠĠĠ Ġdata Ġclass ĠError ( ĊĠĠĠĠĠĠĠ Ġval Ġis Network Error : ĠBoolean , ĊĠĠĠĠĠĠĠ Ġval Ġmessage : ĠString ?, ĊĠĠĠĠĠĠĠ Ġval Ġdata : ĠResponse Body ? ĊĠĠĠ Ġ) Ġ: ĠApiResponse Handler < Nothing >() ĊĊĠĠĠ Ġdata Ġclass ĠLoading < out ĠT >( val Ġdata : ĠT ?) Ġ: ĠApiResponse Handler < T >() ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġ< T > Ġloading ( value : ĠT ?): ĠApiResponse Handler < T > Ġ= ĠLoading ( value ) ĊĊĠĠĠĠĠĠĠ Ġfun Ġ< T > Ġsuccess ( value : ĠT ): ĠApiResponse Handler < T > Ġ= ĠSuccess ( value ) ĊĊĠĠĠĠĠĠĠ Ġfun Ġ< T > Ġerror ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis Network Error : ĠBoolean , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠerrorMessage : ĠString , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdata : ĠResponse Body ? ĊĠĠĠĠĠĠĠ Ġ): ĠApiResponse Handler < T > Ġ= ĠError ( is Network Error , ĠerrorMessage , Ġdata ) ĊĠĠĠ Ġ} Ċ }