package Ġcom . sel jab ali . core . m vi Ċ Ċ import Ġandroid . os . Bundle Ċ import Ġandroidx . annotation . Call Super Ċ import Ġcom . or h ano but . logger . Logger Ċ import Ġcom . sel jab ali . core . activity fragment . n ont ool bar . Base Fragment Ċ import Ġcom . sel jab ali . core . modules . Rx Provider Ċ import Ġio . reactivex . dis pos ables . Composite Disposable Ċ import Ġorg . k oin . android . ext . android . inject Ċ import Ġorg . k oin . core . context . load K oin Modules Ċ import Ġorg . k oin . core . context . unload K oin Modules Ċ import Ġorg . k oin . core . error . Definition Override Exception Ċ import Ġorg . k oin . core . module . Module Ċ Ċ abstract Ġclass ĠBase M vi Fragment < View Event : ĠBase View Event , ĠView State Ġ: ĠBase ViewState , ĠSide Effect : ĠBase Side Effect >( ĊĠĠĠ Ġprivate Ġval Ġmodule : ĠModule ? Ġ= Ġnull Ċ ) Ġ: ĠBase Fragment () Ġ{ ĊĊĠĠĠ Ġprotected Ġval Ġrx Provider : ĠRx Provider Ġby Ġinject () ĊĠĠĠ Ġprotected Ġabstract Ġval ĠviewModel : ĠBase ViewModel < View Event , ĠView State , ĠSide Effect > ĊĠĠĠ Ġprivate Ġval Ġm vi Composite Disposable Ġ= ĠComposite Disposable () ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmodule ?. let Ġ{ Ġload K oin Modules ( it ) Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠDefinition Override Exception ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLogger . e ( e , Ġe . message ?: Ġ"") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Call Super ĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ Ġsubscribe To ViewModel () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Call Super ĊĠĠĠ Ġoverride Ġfun Ġon Destroy () Ġ{ ĊĠĠĠĠĠĠĠ Ġmodule ?. let Ġ{ Ġun load K oin Modules ( it ) Ġ} ĊĠĠĠĠĠĠĠ Ġm vi Composite Disposable . clear () ĊĠĠĠĠĠĠĠ Ġsuper . on Destroy () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Call Super ĊĠĠĠ Ġprotected Ġopen Ġfun Ġsubscribe To ViewModel () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġview State Disposable Ġ= ĠviewModel . view State Events ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. observe On ( rx Provider . ui Scheduler ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe ({ Ġon ViewState Event ( it ) Ġ}, Ġ{ ĠLogger . e ( it , Ġit . message Ġ?: Ġ"") Ġ}) ĊĠĠĠĠĠĠĠ Ġm vi Composite Disposable . add ( view State Disposable ) ĊĊĠĠĠĠĠĠĠ Ġval Ġside Effect Disposable Ġ= ĠviewModel . side Effects ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. observe On ( rx Provider . ui Scheduler ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe ({ Ġon Side Effect Event ( it ) Ġ}, Ġ{ ĠLogger . e ( it , Ġit . message Ġ?: Ġ"") Ġ}) ĊĠĠĠĠĠĠĠ Ġm vi Composite Disposable . add ( side Effect Disposable ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprotected Ġabstract Ġfun Ġon ViewState Event ( view State : ĠView State ) ĊĊĠĠĠ Ġprotected Ġabstract Ġfun Ġon Side Effect Event ( side Effect : ĠSide Effect ) Ċ Ċ } Ċ