package Ġcom . smart . journal . module . weather ĊĊ Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroidx . fragment . app . Fragment Ċ import Ġandroidx . lifecycle . Observer Ċ import Ġandroidx . lifecycle . ViewModel Providers Ċ import Ġcom . smart . journal . R Ċ import Ġcom . smart . journal . adapter . Weather Adapter Ċ import Ġcom . smart . journal . base . Base Fragment Ċ import Ġcom . smart . journal . module . weather . view model . Weather ViewModel Ċ import Ġcom . smart . journal . tools . Snackbar Tools Ċ import Ġkotlinx . android . synt hetic . main . fragment _ weather .* Ċ Ċ /** Ċ Ġ* ĠA Ġsimple Ġ[ Fragment ] Ġsubclass . Ċ Ġ* ĠUse Ġthe Ġ[ Weather Fragment . newInstance ] Ġfactory Ġmethod Ġto Ċ Ġ* Ġcreate Ġan Ġinstance Ġof Ġthis Ġfragment . Ċ Ġ*/ Ċ class ĠWeather Fragment Ġ: ĠBase Fragment () Ġ{ ĊĠĠĠ Ġoverride Ġfun ĠgetData () Ġ{ ĊĠĠĠĠĠĠĠ Ġinit () ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġ// ĠTODO : ĠRename Ġand Ġchange Ġtypes Ġof Ġparameters ĊĠĠĠ Ġprivate Ġvar Ġm Param 1 : ĠString ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġm Param 2 : ĠString ? Ġ= Ġnull ĊĊĠĠĠ Ġprivate Ġvar Ġweather ViewModel : ĠWeather ViewModel ? Ġ= Ġnull ĊĊĠĠĠ Ġprivate Ġvar Ġweather Adapter : ĠWeather Adapter ? Ġ= Ġnull ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ Ġif Ġ( arguments Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Param 1 Ġ= Ġarguments !!. getString ( ARG _ PARAM 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Param 2 Ġ= Ġarguments !!. getString ( ARG _ PARAM 2 ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( in flater : ĠLayoutInflater , Ġcontainer : ĠViewGroup ?, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠsavedInstanceState : ĠBundle ?): ĠView ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġinflater . inflate ( R . layout . fragment _ weather , Ġcontainer , Ġfalse ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Activity Created ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Activity Created ( savedInstanceState ) ĊĊĠĠĠĠĠĠĠ Ġweather ViewModel Ġ= ĠViewModel Providers . of ( this ). get ( Weather ViewModel :: class . java ) ĊĠĠĠĠĠĠĠ Ġweather ViewModel !!. get Weather LiveData (). observe ( this , Ġandroidx . lifecycle . Observer Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġtoday Weather Bean Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġweather Adapter !!. notify DataSet Changed () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġswipe Refresh Layout . is Refresh ing Ġ= Ġfalse ĊĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġweather ViewModel !!. onError (). observe ( this , ĠObserver Ġ{ Ġcall Back Bean Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSn ackbar Tools . show Simple Snackbar ( context , Ġcall Back Bean !!. error Me g ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġswipe Refresh Layout . is Refresh ing Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġinit View () Ġ{ ĊĠĠĠĠĠĠĠ Ġweather Adapter Ġ= ĠWeather Adapter ( R . layout . item _ weather , Ġweather ViewModel !!. get Today Weather Data ()) ĊĠĠĠĠĠĠĠ Ġre cycle View !!. layout Manager Ġ= Ġandroidx . recyclerview . widget . Linear LayoutManager ( context ) ĊĠĠĠĠĠĠĠ Ġre cycle View !!. adapter Ġ= Ġweather Adapter ĊĠĠĠĠĠĠĠ Ġweather Adapter !!. animation Enable Ġ= Ġtrue ĊĊĠĠĠĠĠĠĠ Ġswipe Refresh Layout . setOn Refresh Listener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinit Data () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġinit Data () Ġ{ ĊĠĠĠĠĠĠĠ Ġswipe Refresh Layout . is Refresh ing Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġweather ViewModel !!. get Weather LiveData () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġval ĠARG _ PARAM 1 Ġ= Ġ" param 1 " ĊĠĠĠĠĠĠĠ Ġprivate Ġval ĠARG _ PARAM 2 Ġ= Ġ" param 2 " ĊĊĊĠĠĠĠĠĠĠ Ġfun Ġnew Instance (): ĠWeather Fragment Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfragment Ġ= ĠWeather Fragment () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġargs Ġ= ĠBundle () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġargs . putString ( ARG _ PARAM 1 , Ġ"") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġargs . putString ( ARG _ PARAM 2 , Ġ"") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfragment . arguments Ġ= Ġargs ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġfragment ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }// ĠRequired Ġempty Ġpublic Ġconstructor Ċ