package Ġcom . el ig ust ilo . N udge Me . ui . contacts Ċ Ċ import Ġandroid . graphics . Color Ċ import Ġandroid . graphics . drawable . Color Drawable Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . util . Log Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . widget . ImageView Ċ import Ġandroid . widget . TextView Ċ import Ġandroidx . appcompat . app . AppCompatActivity Ċ import Ġandroidx . fragment . app . Fragment Ċ import Ġandroidx . lifecycle . Observer Ċ import Ġandroidx . lifecycle . ViewModel Providers Ċ import Ġandroidx . recyclerview . widget . Linear LayoutManager Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġcom . el ig ust ilo . N udge Me . DataManager Ċ import Ġcom . el ig ust ilo . N udge Me . R Ċ Ċ class ĠContact s Fragment Ġ: ĠFragment () Ġ{ ĊĠĠĠ Ġprivate Ġvar ĠTAG Ġ= Ġ" Contacts Fragment " ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġcontacts ViewModel : ĠContact s ViewModel ĊĠĠĠ Ġprivate Ġvar Ġcontacts Fragment Recycler Adapter : ĠContact s Fragment Re cy lc er Adapter ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġcontacts RecyclerView : ĠRecyclerView ĊĠĠĠ Ġlateinit Ġvar ĠuserID : ĠString ĊĠĠĠ Ġlateinit Ġvar ĠuserName : ĠString ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinflater : ĠLayoutInflater , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontainer : ĠViewGroup ?, ĊĠĠĠĠĠĠĠĠĠĠĠ ĠsavedInstanceState : ĠBundle ? ĊĠĠĠ Ġ): ĠView ? Ġ{ ĊĠĠĠĠĠĠĠ Ġ// in fl ating Ġview ĊĠĠĠĠĠĠĠ Ġcontacts ViewModel Ġ= ĠViewModel Providers . of ( this ). get ( Contacts ViewModel :: class . java ) ĊĠĠĠĠĠĠĠ Ġval Ġroot Ġ= Ġinflater . inflate ( R . layout . contacts _ fragment , Ġcontainer , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġcontacts RecyclerView Ġ= Ġroot . findViewById ( R . id . contacts _ recycler _ view ) ĊĊĠĠĠĠĠĠĠ Ġcontacts Fragment Recycler Adapter Ġ= Ġnull ĊĊĠĠĠĠĠĠĠ Ġ// de aling Ġwith ĠViewModel ĊĠĠĠĠĠĠĠ Ġcontacts ViewModel . mutable Contact Data . observe ( view Lifecycle Owner , ĠObserver Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġparsed Data Ġ= Ġit ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġincoming UserDetails Ġ= ĠData Manager . getUser Details () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( incoming UserDetails Ġ!= Ġnull ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠuserID Ġ= Ġincoming UserDetails . userId ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠuserName Ġ= Ġincoming UserDetails . userName ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d ( TAG , Ġ" data Ġgiven Ġto ĠContact s ViewModel Ġis : Ġ$ parsed Data ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// setting Ġthe Ġre cycler Ġadapter ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontacts RecyclerView . layout Manager Ġ= ĠLinearLayoutManager ( this . activity ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif ( Ġcontacts Fragment Recycler Adapter Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontacts Fragment Recycler Adapter Ġ= ĠContact s Fragment Re cy lc er Adapter ( parsed Data , Ġthis , Ġthis . require Context ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontacts RecyclerView . adapter Ġ= Ġcontacts Fragment Recycler Adapter ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontacts Fragment Recycler Adapter !!. notify DataSet Changed () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontacts Fragment Recycler Adapter !!. update Data ( parsed Data ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġreturn Ġroot ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon View Created ( view : ĠView , ĠsavedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on View Created ( view , ĠsavedInstanceState ) ĊĠĠĠĠĠĠĠ Ġ// This Ġcode Ġsets Ġthe Ġtop Ġaction Bar Ġon Ġthe ĠContact s ĠFragment ĊĠĠĠĠĠĠĠ Ġval Ġmain Activity Ġ= Ġactivity Ġas ĠAppCompatActivity ? ĊĠĠĠĠĠĠĠ Ġmain Activity ?. support ActionBar ?. set Custom View ( R . layout . action _ bar _ custom ) ĊĠĠĠĠĠĠĠ Ġval Ġaction Bar Title Ġ= Ġmain Activity ?. support ActionBar ?. custom View ?. findViewById < TextView >( R . id . action _ bar _ title ) ĊĠĠĠĠĠĠĠ Ġaction Bar Title ?. setText (" N udge Me ") ĊĠĠĠĠĠĠĠ Ġval Ġaction Bar Image Ġ= Ġmain Activity ?. support ActionBar ?. custom View ?. findViewById < ImageView >( R . id . action _ bar _ image ) ĊĠĠĠĠĠĠĠ Ġaction Bar Image ?. setImage Resource ( R . drawable . icon _ main _ blue ) ĊĠĠĠĠĠĠĠ Ġmain Activity ?. support ActionBar ?. set Display Show Custom Enabled ( true ) ĊĠĠĠĠĠĠĠ Ġval Ġcolor Drawable Ġ= ĠColor Drawable ( Color . parse Color ("# 0 f 8 1 c 7 ")) ĊĠĠĠĠĠĠĠ Ġmain Activity ?. support ActionBar ?. setBackground Drawable ( color Drawable ) ĊĠĠĠ Ġ} Ċ }