package Ġde . bos call ĊĊ Ċ import Ġandroid . app . Fragment Ċ import Ġandroid . arch . lifecycle . Observer Ċ import Ġandroid . arch . lifecycle . ViewModel Providers Ċ import Ġandroid . content . SharedPreferences Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . preference . Preference Manager Ċ import Ġandroid . support . v 4 . app . Fragment Activity Ċ import Ġandroid . support . v 7 . widget . Divider Item Decoration Ċ import Ġandroid . support . v 7 . widget . Linear LayoutManager Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġcom . google . gson . JsonObject Ċ import Ġde . bos call . constants . Service Configuration Ċ import Ġde . bos call . db Tasks . Update Dates Task Ċ import Ġde . bos call . dto . Date Ċ import Ġde . bos call . services . B os Call WebAPI Service Ċ import Ġkotlinx . android . synt hetic . main . fragment _ news .* Ċ import Ġretrofit 2 . Call Ċ import Ġretrofit 2 . Ret rofit Ċ import Ġretrofit 2 . converter . gson . Gson Converter Factory ĊĊ Ċ /** Ċ Ġ* ĠA Ġsimple Ġ[ Fragment ] Ġsubclass . Ċ Ġ*/ Ċ class ĠNews Fragment Ġ: ĠFragment () Ġ{ ĊĊĠĠĠ Ġprivate Ġval ĠSERVICE Ġ= ĠRet rofit . Builder (). baseUrl ( Service Configuration . API _ ADDRESS ). add Converter Factory ( Gson Converter Factory . create ()). build (). create ( B os Call WebAPI Service :: class . java ) ĊĠĠĠ Ġprivate Ġval Ġdate Adapter Ġ= ĠDate Adapter ( mutable ListOf ()) ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( in flater : ĠLayoutInflater ?, Ġcontainer : ĠViewGroup ?, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠsavedInstanceState : ĠBundle ?): ĠView ? Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠInf late Ġthe Ġlayout Ġfor Ġthis Ġfragment ĊĠĠĠĠĠĠĠ Ġreturn Ġinflater !!. inflate ( R . layout . fragment _ news , Ġcontainer , Ġfalse ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġinitialize () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġshared Pref : ĠSharedPreferences Ġ= ĠPreference Manager . getDefault SharedPreferences ( context ) ĊĠĠĠĠĠĠĠ Ġval ĠuserId Ġ= Ġshared Pref . getLong (" userId ", Ġ- 1 ) ĊĠĠĠĠĠĠĠ Ġval ĠapiKey Ġ= Ġshared Pref . getString (" apiKey ", Ġnull ) ĊĊĠĠĠĠĠĠĠ Ġif Ġ( userId Ġ> Ġ- 1 Ġ&& ĠapiKey Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresult : ĠCall < List < JsonObject >> Ġ= ĠSERVICE . update Dates ( userId , ĠapiKey ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠUpdate Dates Task ( activity ). execute ( result ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval ĠviewModel Ġ= ĠViewModel Providers . of ( activity Ġas ĠFragment Activity ). get ( Dates ViewModel :: class . java ) ĊĠĠĠĠĠĠĠ ĠviewModel . get Dates (). observe ( activity Ġas ĠFragment Activity , Ġobject Ġ: ĠObserver < Mutable List < Date >> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonChanged ( t : ĠMutable List < Date > ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdate Adapter . set Dates ( t !! ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġ// Add Dat ess To Adapter Task ( date Adapter , Ġactivity ). execute () ĊĊĠĠĠĠĠĠĠ Ġtermin List . addItem Decoration ( Divider Item Decoration ( activity , ĠDiv ider Item Decoration . VERTICAL )) ĊĠĠĠĠĠĠĠ Ġtermin List . layout Manager Ġ= ĠLinearLayoutManager ( activity ) ĊĠĠĠĠĠĠĠ Ġtermin List . adapter Ġ= Ġdate Adapter ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Activity Created ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Activity Created ( savedInstanceState ) ĊĠĠĠĠĠĠĠ Ġinitialize () ĊĠĠĠ Ġ} Ċ Ċ }// ĠRequired Ġempty Ġpublic Ġconstructor Ċ