@ file : Suppress (" NOTH ING _ TO _ INLINE ", Ġ" unused ") Ċ package Ġb rig it te Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . View Ċ import Ġandroid . webkit . WebView Ċ import Ġandroidx . databinding . ViewData Binding Ċ import Ġandroidx . fragment . app . Fragment Ċ import Ġandroidx . lifecycle . ViewModel Ċ import Ġandroidx . lifecycle . ViewModel Provider Ċ import Ġb rig it te . di . d agger . module . D agger ViewModel Providers Ċ import Ġb rig it te . widget . free Ċ import Ġb rig it te . widget . pause Ċ import Ġb rig it te . widget . resume Ċ import Ġdagger . android . Android Injection Ċ import Ġdagger . android . Dispatch ing Android Injector Ċ import Ġdagger . android . support .* Ċ import Ġio . reactivex . dis pos ables . Composite Disposable Ċ import Ġorg . slf 4 j . LoggerFactory Ċ import Ġjavax . inject . Inject Ċ import Ġkotlin . reflect . K Class Ċ Ċ /** Ċ Ġ* ĠCreated Ġby Ġ< a Ġhref =" mailto : auc d 2 9 @ gmail . com "> Bur ke ĠCh oi </ a > Ġon Ġ 2 0 1 8 . Ġ 1 2 . Ġ 1 9 . Ġ< p /> Ċ Ġ* Ċ Ġ* ĠFramework ĠFragment ĠëĬ Ķ Ġdeprecated ĠëĲĺ ìĸ´ ĠìĤ Ń ìłľ Ġ[ auc d 2 9 ][ 2 0 1 9 - 0 8 - 2 1 ] Ċ Ġ* ĠViewModel Providers ĠìĿ´ Ġdeprecated ĠëĲĺ ìĸ´ ĠìĤ Ń ìłľ Ġ[ auc d 2 9 ][ 2 0 1 9 - 0 8 - 2 2 ] Ċ Ġ*/ Ċ Ċ //////////////////////////////////////////////////////////////////////////////// //// Ċ // Ċ // ĠBase D agger Activity Ċ // Ċ //////////////////////////////////////////////////////////////////////////////// //// Ċ Ċ /** Ċ Ġ* Ġdagger Ġë ¥ ¼ Ġê¸°ë³¸ ìłģìľ¼ë¡ľ ĠìĿ´ìļ© íķĺë©´ ìĦľ ĠMV VM ĠìķĦ íĤ¤ íħ į ì²ĺ ë¥¼ Ġê°Ģì§Ģ ëĬĶ ĠActivity Ċ Ġ*/ Ċ Ċ abstract Ġclass ĠBase D agger Activity < T : ĠView Data Binding , ĠM : ĠViewModel > Ġconstructor ( Ċ ) Ġ: ĠBase Activity < T , ĠM >(), ĠHas Support Fragment Injector Ġ{ ĊĊĠĠĠ Ġ@ Inject Ġlateinit Ġvar Ġm Global Disposable : ĠComposite Disposable ĊĠĠĠ Ġ@ Inject Ġlateinit Ġvar Ġm ViewModel Providers : ĠD agger ViewModel Providers ĊĠĠĠ Ġ@ Inject Ġlateinit Ġvar Ġm Support Fragment Injector : ĠDispatch ing Android Injector < Fragment > ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġview Ġmodel Ġì²ĺë¦¬ , Ġê¸°ë³¸ ĠìĿ´ë ² ¤íĬ¸ Ġì²ĺë¦¬ ë¥¼ ĠìľĦ íķľ Ġaware ĠìĻ Ģ Ġview Ġbinding , Ġview Ġmodel ĠìĿ Ħ Ġíĺ¸ì¶ľ Ġíķľëĭ¤ . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ ĠAndroid Injection . inject ( this ) ĊĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Destroy () Ġ{ ĊĠĠĠĠĠĠĠ Ġm Global Disposable . clear () ĊĊĠĠĠĠĠĠĠ Ġsuper . on Destroy () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġsupport Fragment Injector () Ġ= ĊĠĠĠĠĠĠĠ Ġm Support Fragment Injector ĊĊĠĠĠ Ġoverride Ġfun Ġinit ViewModel () Ġ= ĊĠĠĠĠĠĠĠ Ġm ViewModel Providers . get ( this , Ġm ViewModel Class ) ĊĊĠĠĠ Ġprotected Ġinline Ġfun Ġ< re ified ĠT Ġ: ĠViewModel > Ġinject () Ġ= ĊĠĠĠĠĠĠĠ Ġlazy ( Lazy Thread Safety Mode . NONE ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm ViewModel Providers . get ( this , ĠT :: class . java ) ĊĠĠĠĠĠĠĠ Ġ} Ċ } Ċ Ċ //////////////////////////////////////////////////////////////////////////////// //// Ċ // Ċ // ĠBase D agger Fragment Ċ // Ċ //////////////////////////////////////////////////////////////////////////////// //// Ċ Ċ abstract Ġclass ĠBase D agger Fragment < T : ĠView Data Binding , ĠM : ĠViewModel > ĊĠĠĠ Ġ: ĠBase Fragment < T , ĠM >(), ĠHas Support Fragment Injector Ġ{ ĊĊĠĠĠ Ġ@ Inject Ġlateinit Ġvar Ġm ViewModel Providers : ĠD agger ViewModel Providers ĊĠĠĠ Ġ@ Inject Ġlateinit Ġvar Ġchild Fragment Injector : ĠDispatch ing Android Injector < Fragment > ĊĊĠĠĠ Ġoverride Ġfun Ġon Attach ( context : ĠContext ) Ġ{ ĊĠĠĠĠĠĠĠ ĠAndroid Support Injection . inject ( this ) ĊĊĠĠĠĠĠĠĠ Ġsuper . on Attach ( context ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġsupport Fragment Injector () Ġ= ĊĠĠĠĠĠĠĠ Ġchild Fragment Injector ĊĊĠĠĠ Ġoverride Ġfun Ġinit ViewModel (): ĠM Ġ= Ġm ViewModel Providers . let Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( m ViewModel Scope Ġ== ĠSCO PE _ ACTIVITY ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . get ( activity (), Ġm ViewModel Class ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . get ( this , Ġm ViewModel Class ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprotected Ġinline Ġfun Ġ< re ified ĠVM Ġ: ĠViewModel > Ġinject () Ġ= ĊĠĠĠĠĠĠĠ Ġlazy ( Lazy Thread Safety Mode . NONE ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm ViewModel Providers . get ( this , ĠVM :: class . java ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġprotected Ġinline Ġfun Ġ< re ified ĠVM Ġ: ĠViewModel > Ġactivity Inject () Ġ= ĊĠĠĠĠĠĠĠ Ġlazy ( Lazy Thread Safety Mode . NONE ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm ViewModel Providers . get ( require Activity (), ĠVM :: class . java ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġprotected Ġinline Ġfun Ġ< re ified ĠVM : ĠViewModel > Ġstate Inject ( no inline Ġfactory : Ġ() Ġ-> ĠViewModel Provider . Factory ) Ġ= ĊĠĠĠĠĠĠĠ Ġlazy ( Lazy Thread Safety Mode . NONE ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm ViewModel Providers . get ( this , Ġfactory (), ĠVM :: class . java ) ĊĠĠĠĠĠĠĠ Ġ} Ċ } Ċ Ċ //////////////////////////////////////////////////////////////////////////////// //// Ċ // Ċ // ĠBase D agger Dialog Fragment Ċ // Ċ //////////////////////////////////////////////////////////////////////////////// //// Ċ Ċ abstract Ġclass ĠBase D agger Dialog Fragment < T : ĠView Data Binding , ĠM : ĠViewModel > Ġconstructor () ĊĠĠĠ Ġ: ĠBase Dialog Fragment < T , ĠM >(), ĠHas Support Fragment Injector Ġ{ ĊĊĠĠĠ Ġ@ Inject Ġlateinit Ġvar Ġm ViewModel Providers : ĠD agger ViewModel Providers ĊĠĠĠ Ġ@ Inject Ġlateinit Ġvar Ġchild Fragment Injector : ĠDispatch ing Android Injector < Fragment > ĊĊĠĠĠ Ġoverride Ġfun Ġon Attach ( context : ĠContext ) Ġ{ ĊĠĠĠĠĠĠĠ ĠAndroid Support Injection . inject ( this ) ĊĊĠĠĠĠĠĠĠ Ġsuper . on Attach ( context ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġsupport Fragment Injector () Ġ= ĊĠĠĠĠĠĠĠ Ġchild Fragment Injector ĊĊĠĠĠ Ġoverride Ġfun Ġinit ViewModel (): ĠM Ġ= Ġm ViewModel Providers . let Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( m ViewModel Scope Ġ== ĠSCO PE _ ACTIVITY ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . get ( require Activity (), Ġm ViewModel Class ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . get ( this @ Base D agger Dialog Fragment , Ġm ViewModel Class ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprotected Ġinline Ġfun Ġ< re ified ĠVM Ġ: ĠViewModel > Ġinject () Ġ= ĊĠĠĠĠĠĠĠ Ġlazy ( Lazy Thread Safety Mode . NONE ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm ViewModel Providers . get ( this , ĠVM :: class . java ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġprotected Ġinline Ġfun Ġ< re ified ĠVM Ġ: ĠViewModel > Ġactivity Inject () Ġ= ĊĠĠĠĠĠĠĠ Ġlazy ( Lazy Thread Safety Mode . NONE ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm ViewModel Providers . get ( require Activity (), ĠVM :: class . java ) ĊĠĠĠĠĠĠĠ Ġ} Ċ } Ċ Ċ //////////////////////////////////////////////////////////////////////////////// //// Ċ // Ċ // ĠBase D agger Bottom Sheet Dialog Fragment Ċ // Ċ //////////////////////////////////////////////////////////////////////////////// //// Ċ Ċ abstract Ġclass ĠBase D agger Bottom Sheet Dialog Fragment < T : ĠView Data Binding , ĠM : ĠViewModel > Ġconstructor () ĊĠĠĠ Ġ: ĠBase Bottom Sheet Dialog Fragment < T , ĠM >(), ĠHas Support Fragment Injector Ġ{ ĊĊĠĠĠ Ġ@ Inject Ġlateinit Ġvar Ġm ViewModel Providers : ĠD agger ViewModel Providers ĊĠĠĠ Ġ@ Inject Ġlateinit Ġvar Ġchild Fragment Injector : ĠDispatch ing Android Injector < Fragment > ĊĊĠĠĠ Ġoverride Ġfun Ġon Attach ( context : ĠContext ) Ġ{ ĊĠĠĠĠĠĠĠ ĠAndroid Support Injection . inject ( this ) ĊĊĠĠĠĠĠĠĠ Ġsuper . on Attach ( context ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġsupport Fragment Injector () Ġ= ĊĠĠĠĠĠĠĠ Ġchild Fragment Injector ĊĊĠĠĠ Ġoverride Ġfun Ġinit ViewModel (): ĠM Ġ= Ġm ViewModel Providers . let Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( m ViewModel Scope Ġ== ĠSCO PE _ ACTIVITY ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . get ( require Activity (), Ġm ViewModel Class ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . get ( this @ Base D agger Bottom Sheet Dialog Fragment , Ġm ViewModel Class ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprotected Ġinline Ġfun Ġ< re ified ĠVM Ġ: ĠViewModel > Ġinject () Ġ= ĊĠĠĠĠĠĠĠ Ġlazy ( Lazy Thread Safety Mode . NONE ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm ViewModel Providers . get ( this , ĠVM :: class . java ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġprotected Ġinline Ġfun Ġ< re ified ĠVM Ġ: ĠViewModel > Ġactivity Inject () Ġ= ĊĠĠĠĠĠĠĠ Ġlazy ( Lazy Thread Safety Mode . NONE ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm ViewModel Providers . get ( require Activity (), ĠVM :: class . java ) ĊĠĠĠĠĠĠĠ Ġ} Ċ } Ċ Ċ //////////////////////////////////////////////////////////////////////////////// //// Ċ // Ċ // ĠBase D agger WebView Fragment Ċ // Ċ //////////////////////////////////////////////////////////////////////////////// //// Ċ Ċ abstract Ġclass ĠBase D agger WebView Fragment < T : ĠView Data Binding , ĠM : ĠViewModel > Ġconstructor ( Ċ ): ĠBase D agger Fragment < T , ĠM >() Ġ{ ĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġm Log Ġ= ĠLoggerFactory . getLogger ( Base D agger WebView Fragment :: class . java ) ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠK _ URL Ġ= Ġ" url " ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprotected Ġval Ġm Url : ĠString ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġarguments ?. getString ( K _ URL ) Ġ?: Ġ"" ĊĊĠĠĠ Ġabstract Ġval Ġweb view : ĠWebView ĊĊĠĠĠ Ġoverride Ġfun Ġon View Created ( view : ĠView , ĠsavedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on View Created ( view , ĠsavedInstanceState ) ĊĊĠĠĠĠĠĠĠ Ġif Ġ( savedInstanceState Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġweb view . restore State ( savedInstanceState ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Save InstanceState ( out State : ĠBundle ) Ġ{ ĊĠĠĠĠĠĠĠ Ġweb view . save State ( out State ) ĊĠĠĠĠĠĠĠ Ġsuper . on Save InstanceState ( out State ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Pause () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Pause () ĊĊĠĠĠĠĠĠĠ Ġweb view . apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstop Loading () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpause () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Resume () Ġ{ ĊĠĠĠĠĠĠĠ Ġweb view . apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresume () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( url . isNull OrEmpty () Ġ|| Ġurl . contains ( m Url )) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( m Log . isDebugEnabled ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Log . debug (" RE SU ME ĠLOAD ĠURL Ġ: Ġ$ m Url ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġload Url ( m Url ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġsuper . on Resume () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Destroy View () Ġ{ ĊĠĠĠĠĠĠĠ Ġweb view . free () ĊĠĠĠĠĠĠĠ Ġsuper . on Destroy View () ĊĠĠĠ Ġ} Ċ } Ċ