package Ġcom . ud acity . sh o est ore Ċ Ċ import Ġandroid . graphics . Type face Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view .* Ċ import Ġandroid . widget . TextView Ċ import Ġandroidx . core . view . margin Bottom Ċ import Ġandroidx . core . view . margin Top Ċ import Ġandroidx . core . view . set Padding Ċ import Ġandroidx . databinding . Data Binding Util Ċ import Ġandroidx . fragment . app . Fragment Ċ import Ġandroidx . fragment . app . activity ViewModels Ċ import Ġandroidx . lifecycle . Observer Ċ import Ġandroidx . lifecycle . ViewModel Provider Ċ import Ġandroidx . navigation . Nav Controller Ċ import Ġandroidx . navigation . find Nav Controller Ċ import Ġandroidx . navigation . fragment . find Nav Controller Ċ import Ġandroidx . navigation . ui . Navigation UI Ċ import Ġcom . google . android . material . floating action button . Floating ActionButton Ċ import Ġcom . ud acity . sh o est ore . databinding . Fragment Sh oe List Binding Ċ import Ġcom . ud acity . sh o est ore . models . Sh oe Ċ Ċ class ĠSh oe List Fragment Ġ: ĠFragment () Ġ{ ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġbinding : ĠFragment Sh oe List Binding ĊĠĠĠ Ġprivate Ġval ĠviewModel Ġby Ġactivity ViewModels < Sh oe List ViewModel >() ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( ĊĠĠĠĠĠĠĠ Ġinflater : ĠLayoutInflater , Ġcontainer : ĠViewGroup ?, ĊĠĠĠĠĠĠĠ ĠsavedInstanceState : ĠBundle ? ĊĠĠĠ Ġ): ĠView ? Ġ{ ĊĊĠĠĠĠĠĠĠ Ġbinding Ġ= ĠData Binding Util . inflate ( in flater , ĠR . layout . fragment _ sh oe _ list , Ġcontainer , Ġfalse ) ĊĊĠĠĠĠĠĠĠ Ġ// ob serving Ġsh o elist Ġand Ġvisualize Ġevery Ġsh oe ĊĠĠĠĠĠĠĠ ĠviewModel . sh oe List . observe ( this , ĠObserver Ġ{ Ġsh oe List Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( sh oe Ġin Ġsh oe List ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlist Sh oe ( sh oe ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠ Ġbinding . go Details Button . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfind Nav Controller (). navigate ( Sh oe List Fragment Directions . action Sh oe List Fragment To Sh oe Detail Fragment ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// to Ġshow Ġthe Ġoptions menu ĊĠĠĠĠĠĠĠ Ġset Has Options Menu ( true ) ĊĊĠĠĠĠĠĠĠ Ġreturn Ġbinding . root ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// Ġto Ġvisualize Ġsh oes ĊĠĠĠ Ġfun Ġlist Sh oe ( sh oe : ĠSh oe ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġview Ġ= ĠTextView ( context , Ġnull , Ġ 0 , ĠR . style . sh oe _ list _ style ) ĊĠĠĠĠĠĠĠ Ġval Ġview 2 Ġ= ĠTextView ( context , Ġnull , Ġ 0 , ĠR . style . sh oe _ list _ style ) ĊĠĠĠĠĠĠĠ Ġview . setText ("${ sh oe . company } Ġ${ sh oe . name }\ n size : Ġ${ sh oe . size }") ĊĠĠĠĠĠĠĠ Ġview 2 . setText ("${ sh oe . description }") ĊĠĠĠĠĠĠĠ Ġview 2 . setType face ( Type face . DEFAULT , ĠType face . ITAL IC ) ĊĠĠĠĠĠĠĠ Ġview 2 . set Padding ( 0 , 0 , 0 , 6 0 ) ĊĊĠĠĠĠĠĠĠ Ġbinding . list LinearLayout . addView ( view ) ĊĠĠĠĠĠĠĠ Ġbinding . list LinearLayout . addView ( view 2 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// in fl ating Ġthe Ġlogout menu Ġin Ġthe Ġoptions menu ĊĠĠĠ Ġoverride Ġfun ĠonCreate Options Menu ( menu : ĠMenu , Ġinflater : ĠMenu Inflater ) Ġ{ ĊĠĠĠĠĠĠĠ Ġinflater . inflate ( R . menu . logout , Ġmenu ) ĊĠĠĠĠĠĠĠ Ġsuper . onCreate Options Menu ( menu , Ġinflater ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// handling Ġthe Ġnavigation Ġon Ġclick ĊĠĠĠ Ġoverride Ġfun Ġon Options ItemSelected ( item : ĠMenuItem ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠNavigation UI . on Nav Destination Selected ( item , Ġrequire View (). find Nav Controller ()) Ġ|| Ġsuper . on Options ItemSelected ( item ) ĊĠĠĠ Ġ} Ċ Ċ }