package Ġorg . mt g . screen . stand ings Ċ Ċ import Ġkotlinx . coroutines . flow . map Ċ import Ġkotlinx . coroutines . rx 2 . as Observable Ċ import Ġorg . mt g . arch . Item ViewState Ċ import Ġorg . mt g . domain . Current League UseCase Ċ import Ġorg . mt g . model . Stand ing Ċ import Ġorg . mt g . repository . Stand ing Remote Repository Ċ import Ġorg . mt g . view model . Magic ViewModel Ċ Ċ class ĠStand ings ViewModel ( ĊĠĠĠ Ġprivate Ġval Ġcurrent League UseCase : ĠCurrent League UseCase , ĊĠĠĠ Ġprivate Ġval Ġstand ing Repository : ĠStand ing Remote Repository Ċ ) Ġ: ĠMagic ViewModel () Ġ{ ĊĠĠĠ Ġsealed Ġclass ĠStand ings ViewState Ġ{ ĊĠĠĠĠĠĠĠ Ġobject ĠIn Progress Ġ: ĠStand ings ViewState () ĊĠĠĠĠĠĠĠ Ġdata Ġclass ĠSuccess ( val Ġitems : ĠList < Item ViewState >) Ġ: ĠStand ings ViewState () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġstand ings () Ġ= ĊĠĠĠĠĠĠĠ Ġcurrent League UseCase . get () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. switch Map < Stand ings ViewState > Ġ{ Ġle ague Result Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstand ing Repository ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. stand ings For League ( league Result . league Id ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Ġ{ Ġstand ings Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠStand ings ViewState . Success ( stand ings . map Ġ{ Ġcreate Stand ing Item ( it ) Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. as Observable () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. start With ( Stand ings ViewState . InProgress ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. to LiveData () ĊĊĊĠĠĠ Ġprivate Ġfun Ġcreate Stand ing Item ( standing : ĠStand ing ) Ġ= ĊĠĠĠĠĠĠĠ ĠStand ing View Item ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverall Record Ġ= Ġstand ing . overall Record , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrank Ġ= Ġstand ing . ranking , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġname Ġ= Ġ"${ standing . firstName } Ġ${ standing . lastName }", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlocation Ġ= Ġstand ing . office , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġweek One Record Ġ= Ġstand ing . week 1 Record , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġweek Two Record Ġ= Ġstand ing . week 2 Record , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġweek Three Record Ġ= Ġstand ing . week 3 Record , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġweek Four Record Ġ= Ġstand ing . week 4 Record ĊĠĠĠĠĠĠĠ Ġ) Ċ } Ċ