package Ġcom . com ic _ con . m use um . ar . experience . content . activity fragments Ċ Ċ import Ġandroid . arch . lifecycle . Observer Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . support . v 7 . app . AppCompatActivity Ċ import Ġandroid . support . v 7 . widget . Toolbar Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġcom . com ic _ con . m use um . ar . CC M Application Ċ import Ġcom . com ic _ con . m use um . ar . R Ċ import Ġcom . com ic _ con . m use um . ar . experience . Experience ViewModel Ċ import Ġcom . com ic _ con . m use um . ar . overview . Experience Model Ċ import Ġcom . com ic _ con . m use um . ar . views . Content Advanced ListView Ċ import Ġjavax . inject . Inject Ċ Ċ class ĠContent Listing Fragment : ĠContent Fragment (), ĠObserver < Experience Model > Ġ{ ĊĊĠĠĠ Ġprivate Ġvar Ġroot View : ĠView ? Ġ= Ġnull ĊĊĠĠĠ Ġ@ Inject ĊĠĠĠ Ġlateinit Ġvar Ġexperience ViewModel : ĠExperience ViewModel ĊĊĠĠĠ Ġoverride Ġfun ĠgetContent Tag (): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġ" Content Listing " ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ ĠC CM Application . getApplication (). injector Component . inject ( this ) ĊĊĠĠĠĠĠĠĠ Ġactivity ?. action Bar ?. hide () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( in flater : ĠLayoutInflater , Ġcontainer : ĠViewGroup ?, ĠsavedInstanceState : ĠBundle ?): ĠView ? Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġthis View Ġ= Ġinflater . inflate ( R . layout . fragment _ content _ listing , Ġcontainer , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġroot View Ġ= Ġthis View ĊĠĠĠĠĠĠĠ Ġreturn Ġthis View ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Resume () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Resume () ĊĠĠĠĠĠĠĠ Ġthis . activity ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġexperience ViewModel . experience Model LiveData . observe ( it , Ġthis ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// ĠSet Ġup Ġthe Ġaction Ġbar Ġfor Ġthis Ġfragment Ġand Ġactivity ĊĠĠĠĠĠĠĠ Ġ( activity Ġas ? ĠAppCompatActivity )?. let Ġ{ Ġthis Activity Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis Activity . support ActionBar ?. hide () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġnew Toolbar Ġ= Ġview ?. findViewById < Toolbar >( R . id . new _ toolbar ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis Activity . set Support ActionBar ( new Toolbar ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis Activity . support ActionBar ?. set Display Home As Up Enabled ( true ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Pause () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Pause () ĊĠĠĠĠĠĠĠ Ġexperience ViewModel . experience Model LiveData . remove Observer ( this ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonChanged ( model : ĠExperience Model ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġmodel Ġ?: Ġreturn ĊĊĠĠĠĠĠĠĠ Ġval Ġcontent List Ġ= Ġthis . root View ?. findViewById < Content Advanced ListView >( R . id . content _ list ) Ġ?: Ġreturn ĊĊĠĠĠĠĠĠĠ Ġval Ġthis Category Item Ġ= Ġmodel . category . categories . find Ġ{ Ġcategory Item Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcategory Item . id Ġ== Ġthis . content Id ĊĠĠĠĠĠĠĠ Ġ} Ġ?: Ġreturn ĊĊĠĠĠĠĠĠĠ Ġ// ĠSet Ġtitle ĊĠĠĠĠĠĠĠ Ġview ?. findViewById < Toolbar >( R . id . new _ toolbar )?. title Ġ= Ġthis Category Item . title ĊĊĠĠĠĠĠĠĠ Ġval Ġthis Sub Content Ġ= Ġmodel . category . categories . union ( model . content . content Items ). filter Ġ{ Ġcontent Item Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontent Item . categories ?. contains ( this . content Id ) Ġ?: Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġcontent List . setUp ( this Category Item , Ġthis Sub Content ) ĊĠĠĠ Ġ} Ċ }