package Ġcom . android . s aman . sample . android mv vm Ċ Ċ 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 . ViewModel Provider Ċ import Ġandroidx . navigation . fragment . find Nav Controller Ċ import Ġcom . android . s aman . sample . android mv vm . di . modules . Activity Module Ċ import Ġcom . android . s aman . sample . android mv vm . di . modules . Fragment Module Ċ import Ġcom . android . s aman . sample . android mv vm . utils . app Ċ import Ġcom . android . s aman . sample . android mv vm . view model . Base ViewModel Ċ import Ġio . reactivex . android . schedul ers . Android Schedulers Ċ import Ġio . reactivex . dis pos ables . Composite Disposable Ċ import Ġio . reactivex . schedul ers . Schedulers Ċ import Ġkotlinx . android . synt hetic . main . fragment _ first .* Ċ import Ġtim ber . log . Tim ber Ċ import Ġjavax . inject . Inject Ċ Ċ /** Ċ Ġ* ĠA Ġsimple Ġ[ Fragment ] Ġsubclass Ġas Ġthe Ġdefault Ġdestination Ġin Ġthe Ġnavigation . Ċ Ġ*/ Ċ class ĠFirst Fragment Ġ: ĠFragment () Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġcomponent Ġby Ġlazy Ġ{ Ġrequire Activity (). app . application Component (). plus ( Fragment Module ()) Ġ} ĊĠĠĠ Ġ@ Inject ĊĠĠĠ Ġlateinit Ġvar Ġfactory Ġ: ĠViewModel Provider . Factory ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġbase ViewModel : ĠBase ViewModel ĊĠĠĠ Ġprivate Ġvar Ġcomposite Disposable Ġ: ĠComposite Disposable Ġ= ĠComposite Disposable () ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinflater : ĠLayoutInflater , Ġcontainer : ĠViewGroup ?, ĊĠĠĠĠĠĠĠĠĠĠĠ ĠsavedInstanceState : ĠBundle ? ĊĠĠĠ Ġ): ĠView ? Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠInf late Ġthe Ġlayout Ġfor Ġthis Ġfragment ĊĠĠĠĠĠĠĠ Ġcomponent . inject ( this ) ĊĠĠĠĠĠĠĠ Ġbase ViewModel Ġ= ĠViewModel Provider ( this , factory )[ Base ViewModel :: class . java ] ĊĠĠĠĠĠĠĠ ĠTim ber . d (" ViewModel Ġis Ġworking Ġfine Ġand Ġthe Ġresult Ġis Ġ${ base ViewModel . return Test Value () }") ĊĊĠĠĠĠĠĠĠ Ġreturn Ġinflater . inflate ( R . layout . fragment _ first , Ġcontainer , Ġfalse ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon View Created ( view : ĠView , ĠsavedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on View Created ( view , ĠsavedInstanceState ) ĊĊĠĠĠĠĠĠĠ Ġcomposite Disposable . add ( base ViewModel . getAll Sample Data (). subscribe On ( Schedulers . io ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. observe On ( Android Schedulers . main Thread ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsample Entity Ġ= Ġ" First ĠName Ġ: Ġ" Ġ+ Ġit . firstName Ġ+ Ġ" ĠLast ĠName Ġ: Ġ" Ġ+ Ġit . lastName ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtext view _ first . text Ġ= Ġsample Entity ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġview . findViewById < Button >( R . id . button _ first ). setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfind Nav Controller (). navigate ( R . id . action _ First Fragment _ to _ Second Fragment ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Stop () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Stop () ĊĠĠĠĠĠĠĠ Ġcomposite Disposable . clear () ĊĠĠĠ Ġ} Ċ }