package Ġcom . skill box . github . ui . current _ user Ċ Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . util . Log Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroidx . fragment . app . Fragment Ċ import Ġandroidx . fragment . app . view Models Ċ import Ġandroidx . lifecycle . observe Ċ import Ġcom . bump tech . glide . G lide Ċ import Ġcom . skill box . github . R Ċ import Ġcom . skill box . github . data . Singleton Ċ import Ġcom . skill box . github . databinding . CurrentUser Layout Binding Ċ import Ġcom . skill box . github . repository . Remote User Ċ import Ġcom . skill box . github . repository . User ViewModel Ċ Ċ class ĠCurrent User Fragment Ġ: ĠFragment ( R . layout . current _ user _ layout ) Ġ{ ĊĊĠĠĠ Ġprivate Ġval ĠviewModel : ĠUser ViewModel Ġby Ġview Models () ĊĊĠĠĠ Ġprivate Ġvar Ġ_ binding : ĠCurrent User Layout Binding ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġval Ġbinding : ĠCurrent User Layout Binding ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġ_ binding !! ĊĊĠĠĠ Ġoverride Ġfun Ġon View Created ( view : ĠView , ĠsavedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on View Created ( view , ĠsavedInstanceState ) ĊĠĠĠĠĠĠĠ Ġinit User () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġinit User () Ġ{ ĊĠĠĠĠĠĠĠ ĠviewModel . authenticated User () ĊĠĠĠĠĠĠĠ ĠviewModel . data . observe ( view Lifecycle Owner ) Ġ{} ĊĠĠĠĠĠĠĠ ĠviewModel . single User . observe ( view Lifecycle Owner ) Ġ{ Ġuser Ġ-> ĊĠĠĠĠĠĠĠĠĠĠ Ġ// ĠsetUser ( user ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠG lide . with ( require Context ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. as Drawable () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. load ( user . avatar ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. into ( binding . iv Avatar ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . tv Name . text Ġ= Ġuser . name ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . tv Id . text Ġ= Ġuser . id . toString () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . tv Company . text Ġ= Ġuser . company ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d (" Current _ User _ Fragment ", Ġ" List ĠSize Ġ- Ġ${ user . toString () }") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠsetUser ( new User : ĠRemote User ) Ġ{ ĊĠĠĠĠĠĠĠ ĠG lide . with ( require Context ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. as Drawable () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. load ( new User . avatar ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. into ( binding . iv Avatar ) ĊĠĠĠĠĠĠĠ Ġbinding . tv Name . text Ġ= Ġnew User . name ĊĠĠĠĠĠĠĠ Ġbinding . tv Id . text Ġ= Ġnew User . id . toString () ĊĠĠĠĠĠĠĠ Ġbinding . tv Company . text Ġ= Ġnew User . company ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( ĊĠĠĠĠĠĠĠ Ġinflater : ĠLayoutInflater , ĊĠĠĠĠĠĠĠ Ġcontainer : ĠViewGroup ?, ĊĠĠĠĠĠĠĠ ĠsavedInstanceState : ĠBundle ? ĊĠĠĠ Ġ): ĠView ? Ġ{ ĊĠĠĠĠĠĠĠ Ġ_ binding Ġ= ĠCurrent User Layout Binding . inflate ( in flater , Ġcontainer , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġreturn Ġbinding . root ĊĠĠĠ Ġ} Ċ Ċ }