@ file : Suppress (" Forbidden Comment ") Ċ Ċ package Ġcom . ak ou fat z is . cool weather . presentation . weather Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . os . Bundle Ċ 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 . Observer Ċ import Ġcom . ak ou fat z is . cool weather . R Ċ import Ġcom . ak ou fat z is . cool weather . databinding . Fragment Weather Binding Ċ import Ġcom . google . android . material . sn ackbar . Snackbar Ċ import Ġdagger . h ilt . android . Android EntryPoint Ċ Ċ const Ġval ĠPL ACE _ NAME _ KEY Ġ= Ġ" PLACE _ NAME _ KEY " Ċ Ċ @ Android EntryPoint Ċ class ĠWeather Fragment Ġ: ĠFragment () Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġweather ViewModel : ĠWeather ViewModel Ġby Ġview Models () ĊĊĠĠĠ Ġlateinit Ġvar Ġbinding : ĠFragment Weather Binding ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġplace Name : ĠString ĊĊĠĠĠ Ġoverride Ġfun Ġon Attach ( context : ĠContext ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Attach ( context ) ĊĠĠĠĠĠĠĠ Ġarguments ?. getString ( PLACE _ NAME _ KEY )?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġplace Name Ġ= Ġit ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( ĊĠĠĠĠĠĠĠ Ġinflater : ĠLayoutInflater , ĊĠĠĠĠĠĠĠ Ġcontainer : ĠViewGroup ?, ĊĠĠĠĠĠĠĠ ĠsavedInstanceState : ĠBundle ? ĊĠĠĠ Ġ): ĠView ? Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠInf late Ġthe Ġlayout Ġfor Ġthis Ġfragment ĊĠĠĠĠĠĠĠ Ġbinding Ġ= ĠFragment Weather Binding . inflate ( in flater , Ġcontainer , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġreturn Ġbinding . root ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon View Created ( view : ĠView , ĠsavedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġweather ViewModel . view State . observe ( view Lifecycle Owner , ĠObserver Ġ{ Ġstate Ġ-> ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( state . error Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠTODO : ĠEnable Ġreload Ġhere ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSn ackbar . make ( binding . root , ĠR . string . something _ w ent _ wrong , ĠSn ackbar . LENGTH _ SHORT ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. show () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( state . data Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . iv Weather . setImage Resource ( state . data . icon Res ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . tv City Name . text Ġ= Ġstate . data . place ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . tv Degrees . text Ġ= Ġget Degrees Representation ( context !! , Ġstate . data . temp Data ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonStart () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onStart () ĊĠĠĠĠĠĠĠ Ġweather ViewModel . show Weather ( place Name ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠTODO : ĠUse ĠFragment Factory Ġand Ġconstructor Ġinjection Ġinstead ĊĠĠĠĠĠĠĠ Ġ@ Jvm Static ĊĠĠĠĠĠĠĠ Ġfun Ġnew Instance ( place Name : ĠString ) Ġ= ĠWeather Fragment (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġarguments Ġ= ĠBundle (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġput String ( PLACE _ NAME _ KEY , Ġplace Name ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ