package Ġdal ian . raz van . c ucer . github android repos . screens . repos List Ċ Ċ import Ġandroidx . lifecycle . viewModel Scope Ċ import Ġdal ian . raz van . c ucer . github android repos . core . network . Result Ċ import Ġdal ian . raz van . c ucer . github android repos . R Ċ import Ġdal ian . raz van . c ucer . github android repos . core . base Classes . Base ViewModel Ċ import Ġdal ian . raz van . c ucer . github android repos . core . base Classes . RecyclerView ItemClickListener Ċ import Ġdal ian . raz van . c ucer . github android repos . core . repository . Repos Repository Ċ import Ġdal ian . raz van . c ucer . github android repos . models . Repo Ċ import Ġkotlinx . coroutines . launch Ċ Ċ class ĠRe pos List ViewModel ( private Ġval Ġrepository : ĠRe pos Repository ): ĠBase ViewModel () Ġ{ ĊĊĠĠĠ Ġfun Ġget Repos Item Click ( fragment : ĠRe pos List Fragment View ): ĠRecyclerView ItemClickListener < Repo > Ġ Ġ= Ġobject : ĠRecyclerView ItemClickListener < Repo > Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Item Click ( item : ĠRepo ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrepository . setSelected Repo ( item ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfragment . goTo Details () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġload ( fragment : ĠRe pos List Fragment View ) Ġ{ ĊĠĠĠĠĠĠĠ ĠviewModel Scope . launch Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen ( val Ġresponse Ġ= Ġrepository . load Repos ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠResult . Success Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrepos Response Ġ= Ġresponse . value ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrepos Response ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( it . total Count Ġ> Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( it . repos . size Ġ== Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfragment . show Popup ( R . string . no _ more _ repos ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrepository . set Repos ( it . repos ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfragment . set List ( it . repos ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfragment . show Popup ( R . string . repos _ not _ loaded ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfragment . show Popup ( R . string . loading _ repos _ failed ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }