package Ġru . v dv . myapp . my readers di ary . ui . main Ċ Ċ import Ġandroid . os . Build Ċ import Ġandroidx . annotation . Requires Api Ċ import Ġandroidx . lifecycle . LiveData Ċ import Ġandroidx . lifecycle . Mutable LiveData Ċ import Ġru . v dv . myapp . my readers di ary . domain . CallBack Ċ import Ġru . v dv . myapp . my readers di ary . domain . User Ċ import Ġru . v dv . myapp . my readers di ary . ui . common . Base ViewModel Ċ import Ġru . v dv . myapp . my readers di ary . ui . common . interfaces . To Main List Ċ Ċ class ĠMain ViewModel Ġ: ĠBase ViewModel () Ġ{ ĊĊĠĠĠ Ġ// user ĊĠĠĠ Ġprivate Ġval Ġ_ currentUser Ġ= ĠMutable LiveData < User >(). apply Ġ{ ĊĠĠĠĠĠĠĠ Ġvalue Ġ= Ġnull ĊĠĠĠ Ġ} ĊĠĠĠ Ġval ĠcurrentUser : ĠLive Data < User > Ġ= Ġ_ currentUser ĊĊĠĠĠ Ġfun Ġfetch CurrentUser ( login : ĠString ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġlogin ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrepository . getUser Info ( it , Ġobject Ġ: ĠCall Back < User > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Result ( value : ĠUser ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ_ currentUser . value Ġ= Ġvalue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Failure ( t : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠTODO (" Not Ġyet Ġimplemented ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// events ĊĠĠĠ Ġprivate Ġval Ġ_ prepare Event List Ġ= ĠMutable LiveData < List < To Main List >> (). apply Ġ{ ĊĠĠĠĠĠĠĠ Ġrepository . get Events List ( 3 0 , Ġobject Ġ: ĠCall Back < List < To Main List >> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Requires Api ( Build . VERSION _ CODES . O ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Result ( result : ĠList < To Main List >) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvalue Ġ= Ġresult ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Failure ( t : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTODO (" Not Ġyet Ġimplemented ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} ĊĠĠĠ Ġval Ġprepare Event List : ĠLive Data < List < To Main List >> Ġ= Ġ_ prepare Event List Ċ }