package Ġcom . ain sign e . travel app demo . ui ĊĊ Ċ import Ġandroid . os . Bundle Ċ import Ġandroidx . fragment . app . Fragment Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroidx . fragment . app . view Models Ċ import Ġandroidx . lifecycle . observe Ċ import Ġcom . ain sign e . travel app demo . MainActivity Ċ import Ġcom . ain sign e . travel app demo . adapters . Venue F aves Adapter Ċ import Ġcom . ain sign e . travel app demo . data . Venue F avorites Repository Ċ import Ġcom . ain sign e . travel app demo . data . Venue Items Repository Ċ import Ġcom . ain sign e . travel app demo . databinding . Fragment Venue F avorites Binding Ċ import Ġcom . ain sign e . travel app demo . utils . Injector Utils Ċ import Ġcom . ain sign e . travel app demo . view models . Venue F avorites ViewModel Ċ import Ġjavax . inject . Inject Ċ import Ġjavax . inject . Named Ċ Ċ /** Ċ Ġ* ĠA Ġsimple Ġ[ Fragment ] Ġsubclass . Ċ Ġ*/ Ċ class ĠV en ue F avorites Fragment Ġ: ĠFragment () Ġ{ ĊĊĊ Ġ@ Inject Ġlateinit Ġvar Ġven ue F aves ViewModel Ġ: ĠV en ue F avorites ViewModel Ċ Ċ // ĠĠĠ Ġprivate Ġval Ġven ue F aves ViewModel : ĠV en ue F avorites ViewModel Ġby Ġview Models Ġ{ Ċ // ĠĠĠĠĠĠĠ ĠInject or Utils . provide Venue F avorites ViewModel Factory ( require Context ()) Ċ // ĠĠĠ Ġ} ĊĊĠĠĠ Ġ//@ field :[ Inject ĠNamed (" Venue F aves Repo ")] Ġlateinit Ġvar Ġrepo Ġ: ĠV en ue F avorites Repository ĊĊĠĠĠ Ġ//@ field :[ Inject ĠNamed (" Fake Venue F aves Repo ")] Ġlateinit Ġvar Ġrepo Ġ: ĠFake Venue F avorites Repository ĊĊ Ċ // ĠĠĠ Ġ@ field :[ Inject ĠNamed (" Venue F avorites ")] Ċ // ĠĠĠ Ġlateinit Ġvar Ġven ue F aves ViewModel Ġ: ĠV en ue F avorites ViewModel ĊĊĊĊĊ Ċ // ĠĠĠ Ġ@ field :[ Inject ĠNamed (" Fake Venue F avorites ")] Ċ // ĠĠĠ Ġlateinit Ġvar Ġven ue F aves ViewModel Ġ: ĠV en ue F avorites ViewModel ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( ĊĠĠĠĠĠĠĠ Ġinflater : ĠLayoutInflater , Ġcontainer : ĠViewGroup ?, ĊĠĠĠĠĠĠĠ ĠsavedInstanceState : ĠBundle ? ĊĠĠĠ Ġ): ĠView ? Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠInf late Ġthe Ġlayout Ġfor Ġthis Ġfragment ĊĠĠĠĠĠĠĠ Ġval Ġbinding Ġ= ĠFragment Venue F avorites Binding . inflate ( in flater , Ġcontainer , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġ( context Ġas ĠMainActivity ). activity Component . inject ( this ) ĊĠĠĠĠĠĠĠ Ġ// Ġven ue F aves ViewModel Ġ= ĠFactory Injector (). provide Venue F avorites ViewModel Factory (). create ( Venue F avorites ViewModel :: class . java ) ĊĠĠĠĠĠĠĠ Ġval Ġadapter Ġ= ĠV en ue F aves Adapter () ĊĠĠĠĠĠĠĠ Ġbinding . f ave List . adapter Ġ= Ġadapter ĊĠĠĠĠĠĠĠ Ġsubscribe Ui ( adapter , Ġbinding ) ĊĠĠĠĠĠĠĠ Ġreturn Ġbinding . root ĊĠĠĠ Ġ} ĊĠĠĠ Ġprivate Ġfun Ġsubscribe Ui ( adapter : ĠV en ue F aves Adapter , Ġbinding : ĠFragment Venue F avorites Binding ) Ġ{ ĊĠĠĠĠĠĠĠ Ġven ue F aves ViewModel . venue F avorites . observe ( view Lifecycle Owner ){ Ġven ue F aves Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . has Vis ited Ġ= Ġ! venue F aves . isNull OrEmpty () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġven ue F aves ViewModel . venue And F avorites . observe ( view Lifecycle Owner ) Ġ{ Ġresult Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! result . isNull OrEmpty ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadapter . submit List ( result ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊ Ċ } Ċ