/* Ċ Ġ* ĠCopyright Ġ( C ) Ġ 2 0 1 8 ĠThe ĠAndroid ĠOpen ĠSource ĠProject Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* ĠĠĠĠĠ Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ Ċ package Ġpl . mb ach ors ki . po zn an for parents . home Ċ Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . widget . Button Ċ import Ġandroidx . fragment . app . Fragment Ċ import Ġandroidx . lifecycle . Observer Ċ import Ġandroidx . lifecycle . ViewModel Providers Ċ import Ġandroidx . navigation . fragment . Fragment Navigator Extras Ċ import Ġandroidx . navigation . fragment . find Nav Controller Ċ import Ġkotlinx . android . synt hetic . main . home _ fragment .* Ċ import Ġorg . k oin . android . ext . android . inject Ċ import Ġpl . mb ach ors ki . po zn an for parents . R Ċ import Ġpl . mb ach ors ki . po zn an for parents . Temp Di Ċ import Ġpl . mb ach ors ki . po zn an for parents . databinding . Home Fragment Binding Ċ Ċ /** Ċ Ġ* ĠFragment Ġused Ġto Ġshow Ġhow Ġto Ġnavigate Ġto Ġanother Ġdestination Ċ Ġ*/ Ċ class ĠHome Fragment Ġ: ĠFragment () Ġ{ ĊĊĠ Ġprivate Ġlateinit Ġvar ĠviewModel : ĠArticle List ViewModel ĊĊĠ Ġ// ĠLazy Ġinjected ĠMy Simple Presenter ĊĠ Ġval Ġhello Presenter : ĠMy Hello Presenter Ġby Ġinject () ĊĊĠ Ġoverride Ġfun ĠonCreate View ( ĊĠĠĠ Ġinflater : ĠLayoutInflater , ĊĠĠĠ Ġcontainer : ĠViewGroup ?, ĊĠĠĠ ĠsavedInstanceState : ĠBundle ? ĊĠ Ġ): ĠView ? Ġ{ ĊĠĠĠ Ġval Ġbinding Ġ= ĠHome Fragment Binding . inflate ( in flater , Ġcontainer , Ġfalse ) ĊĠĠĠ Ġval Ġcontext Ġ= Ġcontext Ġ?: Ġreturn Ġbinding . root ĊĊĠĠĠ Ġval Ġfactory Ġ= ĠTemp Di . provide Article List ViewModel Factory ( context ) ĊĠĠĠ ĠviewModel Ġ= ĠViewModel Providers . of ( this , Ġfactory ). get ( Article List ViewModel :: class . java ) ĊĊĠĠĠ Ġval Ġadapter Ġ= ĠArticle Adapter () ĊĠĠĠ Ġbinding . article List . adapter Ġ= Ġadapter ĊĠĠĠ Ġsubscribe Ui ( adapter ) ĊĊĠĠĠ Ġset Has Options Menu ( true ) ĊĠĠĠ Ġreturn Ġbinding . root ĊĠ Ġ} ĊĊĠ Ġprivate Ġfun Ġsubscribe Ui ( adapter : ĠArticle Adapter ) Ġ{ ĊĠĠĠ ĠviewModel . get Articles (). observe ( view Lifecycle Owner , ĠObserver Ġ{ Ġarticles Ġ-> ĊĠĠĠĠĠ Ġif Ġ( articles Ġ!= Ġnull ) Ġadapter . submit List ( articles ) ĊĠĠĠ Ġ}) ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġon View Created ( view : ĠView , ĠsavedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠ Ġsuper . on View Created ( view , ĠsavedInstanceState ) ĊĊĠĠĠ Ġview . findViewById < Button >( R . id . navigate _ action _ button )?. setOnClickListener Ġ{ ĊĠĠĠĠĠ Ġval Ġextras Ġ= ĠFragment Navigator Extras ( home _ small _ image Ġto Ġ" h awai i ") ĊĠĠĠĠĠ Ġval Ġaction Ġ= ĠHome Fragment Directions . next Action () ĊĠĠĠĠĠ Ġaction . flow Step Number Ġ= Ġ 1 ĊĠĠĠĠĠ Ġfind Nav Controller (). navigate ( action , Ġextras ) ĊĠĠĠ Ġ} ĊĠ Ġ} Ċ } Ċ