package Ġcom . ud acity . sh o est ore . screens . instruction Ċ Ċ import Ġandroid . os . Bundle Ċ import Ġandroidx . fragment . app . Fragment Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroidx . databinding . Data Binding Util Ċ import Ġandroidx . lifecycle . Observer Ċ import Ġandroidx . lifecycle . ViewModel Providers Ċ import Ġandroidx . navigation . fragment . find Nav Controller Ċ import Ġcom . ud acity . sh o est ore . R Ċ import Ġcom . ud acity . sh o est ore . databinding . Fragment Instruction Binding Ċ Ċ class ĠInstruction Fragment Ġ: ĠFragment () Ġ{ ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġbinding : ĠFragment Instruction Binding ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar ĠviewModel : ĠInstruction ViewModel ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( ĊĠĠĠĠĠĠĠ Ġinflater : ĠLayoutInflater , Ġcontainer : ĠViewGroup ?, ĊĠĠĠĠĠĠĠ ĠsavedInstanceState : ĠBundle ? ĊĠĠĠ Ġ): ĠView ? Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠSet Ġthe Ġfragment Ġbinding Ġand Ġreturn Ġthe Ġroot Ġlayout ĊĠĠĠĠĠĠĠ Ġbinding Ġ= ĠData Binding Util . inflate ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinflater , ĠR . layout . fragment _ instruction , Ġcontainer , Ġfalse ) ĊĊĠĠĠĠĠĠĠ ĠviewModel Ġ= ĠViewModel Providers . of ( this ). get ( Instruction ViewModel :: class . java ) ĊĊĠĠĠĠĠĠĠ Ġ// Ġattach Ġdata Ġbinding Ġto ĠviewModel ĊĠĠĠĠĠĠĠ Ġbinding . instruction ViewModel Ġ= ĠviewModel ĊĊĠĠĠĠĠĠĠ Ġ// Ġset Ġthe ĠviewModel Ġob servers ĊĠĠĠĠĠĠĠ Ġset ViewModel Observer s () ĊĊĠĠĠĠĠĠĠ Ġreturn Ġbinding . root ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġset ViewModel Observer s () Ġ= Ġwith ( viewModel ) Ġ{ ĊĠĠĠĠĠĠĠ Ġshould Navigate To Sh oe List Screen . observe ( view Lifecycle Owner , ĠObserver Ġ{ Ġshould Navigate Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( should Navigate ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfind Nav Controller (). navigate ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠInstruction Fragment Directions . action Instruction Fragment To Sh oe List Fragment ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} Ċ } Ċ