/* Ċ Ġ* ĠCopyright Ġ( C ) Ġ 2 0 1 9 ĠLe on ard ĠD iz on . Ċ Ġ* Ċ Ġ* Ġ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 Ġcom . s nek byte . starter Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . databinding . Data Binding Util Ċ import Ġandroid . databinding . ViewData Binding Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . support . v 4 . app . Fragment Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ Ċ import Ġjavax . inject . Inject Ċ Ċ import Ġdagger . android . Android Injector Ċ import Ġdagger . android . Dispatch ing Android Injector Ċ import Ġdagger . android . support . Android Support Injection Ċ import Ġdagger . android . support . Has Support Fragment Injector Ċ import Ġio . reactivex . dis pos ables . Composite Disposable Ċ import Ġio . reactivex . dis pos ables . Disposable Ċ Ċ abstract Ġclass ĠBase Fragment < B Ġ: ĠView Data Binding , ĠVM Ġ: ĠBase ViewModel > Ġ: ĠFragment (), ĠHas Support Fragment Injector Ġ{ ĊĠ Ġvar Ġview Data Binding : ĠB ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġset ĊĠ Ġvar ĠviewModel : ĠVM ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġset ĊĊĠ Ġprivate Ġvar Ġcomposite Disposable : ĠComposite Disposable ? Ġ= Ġnull ĊĊĠ Ġprotected Ġabstract Ġval Ġlayout Resource : ĠInt ĊĊĠ Ġprotected Ġabstract Ġval Ġbinding Variable : ĠInt ĊĊĠ Ġ@ Inject ĊĠ Ġ@ Jvm Field ĊĠ Ġinternal Ġvar Ġinjector : ĠDispatch ing Android Injector < Fragment >? Ġ= Ġnull ĊĊĠ Ġprotected Ġabstract Ġfun Ġcreate ViewModel (): ĠVM ĊĊĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġon Attach ( context : ĠContext ?) Ġ{ ĊĠĠĠ ĠAndroid Support Injection . inject ( this ) ĊĠĠĠ Ġsuper . on Attach ( context ) ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun ĠonCreate View ( in flater : ĠLayoutInflater , Ġcontainer : ĠViewGroup ?, ĠsavedInstanceState : ĠBundle ?): ĠView ? Ġ{ ĊĠĠĠ Ġthis . view Data Binding Ġ= ĠData Binding Util . inflate ( in flater , Ġlayout Resource , Ġcontainer , Ġfalse ) ĊĠĠĠ Ġthis . viewModel Ġ= Ġcreate ViewModel () ĊĠĠĠ Ġreturn Ġthis . view Data Binding !!. root ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġon Destroy View () Ġ{ ĊĠĠĠ Ġsuper . on Destroy View () ĊĠĠĠ Ġif Ġ( this . composite Disposable Ġ!= Ġnull Ġ&& Ġ! this . composite Disposable !!. is Disposed ) Ġ{ ĊĠĠĠĠĠ Ġthis . composite Disposable !!. dispose () ĊĠĠĠĠĠ Ġthis . composite Disposable Ġ= Ġnull ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġon View Created ( view : ĠView , ĠsavedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠ Ġsuper . on View Created ( view , ĠsavedInstanceState ) ĊĠĠĠ Ġthis . view Data Binding !!. set Variable ( binding Variable , Ġthis . viewModel ) ĊĠĠĠ Ġlisten To Observable s () ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġon Destroy () Ġ{ ĊĠĠĠ Ġsuper . on Destroy () ĊĠĠĠ Ġif Ġ( this . composite Disposable Ġ!= Ġnull Ġ&& Ġ! this . composite Disposable !!. is Disposed ) Ġ{ ĊĠĠĠĠĠ Ġthis . composite Disposable !!. dispose () ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġsupport Fragment Injector (): ĠAndroid Injector < Fragment >? Ġ{ ĊĠĠĠ Ġreturn Ġthis . injector ĊĠ Ġ} ĊĊĠ Ġprotected Ġfun Ġlisten To Observable s () Ġ{} ĊĊĠ Ġprotected Ġfun Ġobserve ( dis posable : ĠDis posable ) Ġ{ ĊĠĠĠ Ġif Ġ( this . composite Disposable Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠ Ġthis . composite Disposable Ġ= ĠComposite Disposable () ĊĠĠĠ Ġ} ĊĠĠĠ Ġthis . composite Disposable !!. add ( dis posable ) ĊĠ Ġ} Ċ } Ċ