package Ġcom . dou glas . github auth . module . repository List Ċ Ċ import Ġandroid . arch . lifecycle . Observer Ċ import Ġandroid . arch . lifecycle . ViewModel Providers Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . View Ċ import Ġcom . dou glas . github auth . Application Ċ import Ġcom . dou glas . github auth . R Ċ import Ġcom . dou glas . github auth . domain . model . Repository Ċ import Ġcom . dou glas . github auth . module . base . Base Fragment Ċ import Ġcom . dou glas . github auth . module . base . Base ViewModel Ċ import Ġcom . dou glas . github auth . module . login . Login Fragment Ċ import Ġkotlinx . android . synt hetic . main . fragment _ repository _ list .* Ċ Ċ class ĠRepository List Fragment Ġ: ĠBase Fragment ( R . layout . fragment _ repository _ list ) Ġ{ ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar ĠviewModel : ĠRepository List ViewModel ĊĠĠĠ Ġprivate Ġval Ġadapter Ġ= ĠRepository Adapter () ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĊĠĠĠĠĠĠĠ Ġinit Depend ence () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon View Created ( view : ĠView , ĠsavedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on View Created ( view , ĠsavedInstanceState ) ĊĊĠĠĠĠĠĠĠ Ġinit View () ĊĠĠĠĠĠĠĠ ĠviewModel . load Profile () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġinit Depend ence () Ġ{ ĊĊĠĠĠĠĠĠĠ ĠApplication . component . inject ( this ) ĊĠĠĠĠĠĠĠ ĠviewModel Ġ= Ġget ViewModel () ĊĠĠĠĠĠĠĠ Ġsubscribe ViewModel () ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġinit View () Ġ{ ĊĠĠĠĠĠĠĠ Ġrepositories RecyclerView . adapter Ġ= Ġadapter ĊĠĠĠĠĠĠĠ Ġlogout Button . setOnClickListener Ġ{ ĠviewModel . logout () Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġget ViewModel () Ġ: ĠRepository List ViewModel Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠViewModel Providers ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. of ( this , ĠviewModel Factory ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. get ( Repository List ViewModel :: class . java ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget View Mode (): ĠBase ViewModel Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠviewModel ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġsubscribe ViewModel () Ġ{ ĊĠĠĠĠĠĠĠ ĠviewModel . view State . observe ( this , ĠObserver Ġ{ Ġview State Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġupdate View ( view State ) ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġupdate View ( view State : ĠRepository List ViewModel . ViewState ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġwhen ( view State ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠRepository List ViewModel . ViewState . Go To Login Screen Ġ-> Ġgo To Login Screen () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠRepository List ViewModel . ViewState . Show Repositories Ġ-> Ġshow Repositories ( view State . repositories ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġshow Repositories ( repositories : ĠList < Repository >) Ġ{ ĊĠĠĠĠĠĠĠ Ġadapter . repositories Ġ= Ġrepositories ĊĠĠĠĠĠĠĠ Ġadapter . notify DataSet Changed () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġgo To Login Screen () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġlogin Fragment Ġ= ĠLogin Fragment () ĊĊĠĠĠĠĠĠĠ Ġactivity ?. support FragmentManager ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ? . beginTransaction () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ? . replace ( R . id . content , Ġlogin Fragment ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ? . commit () ĊĠĠĠ Ġ} Ċ } Ċ