package Ġcom . ja ime gc . agile mobile challenge . ui . presenter Ċ Ċ import Ġandroidx . lifecycle . Lifecycle . Event .* Ċ import Ġandroidx . lifecycle . Lifecycle Observer Ċ import Ġandroidx . lifecycle . On Lifecycle Event Ċ import Ġcom . ja ime gc . agile mobile challenge . common . extensions . weak Ċ import Ġcom . ja ime gc . agile mobile challenge . domain . model . GitHub Repo Ċ import Ġcom . ja ime gc . agile mobile challenge . ui . model . mapper . GitHub Repo To GitHub Repo ViewModel Mapper Ċ import Ġcom . ja ime gc . agile mobile challenge . ui . model . view model . Item ViewModel ĊĊ Ċ class ĠDetail Presenter ( ĊĠĠĠ Ġview : ĠView Ċ ) Ġ: ĠLifecycle Observer Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġview : ĠView ? Ġby Ġweak ( view ) ĊĠĠĠ Ġprivate Ġvar Ġitems : ĠList < GitHub Repo >? Ġ= Ġnull ĊĊĠĠĠ Ġfun Ġset Items ( items : ĠList < GitHub Repo >) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . items Ġ= Ġitems ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ On Lifecycle Event ( ON _ RE SU ME ) ĊĠĠĠ Ġfun Ġupdate () Ġ{ ĊĠĠĠĠĠĠĠ Ġview ?. show Loading () ĊĊĠĠĠĠĠĠĠ Ġitems ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview ?. show Items ( GitHub Repo To GitHub Repo ViewModel Mapper ()( it )) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġview ?. hide Loading () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinterface ĠView Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġshow Items ( items : ĠList < Item ViewModel >) ĊĠĠĠĠĠĠĠ Ġfun Ġshow Loading () ĊĠĠĠĠĠĠĠ Ġfun Ġhide Loading () ĊĠĠĠ Ġ} Ċ }