/*** Ċ Ġ* ĠCopyright Ġ 2 0 1 9 ĠH adi ĠL ash k ari ĠG hou chan i Ċ Ġ* Ċ Ġ* Ġ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 . github . had il q . presentation common Ċ Ċ import Ġandroid . view . View Ċ import Ġandroidx . core . content . Context Compat Ċ import Ġandroidx . lifecycle . ViewModel Ċ import Ġandroidx . lifecycle . ViewModel Provider Ċ import Ġandroidx . lifecycle . ViewModel Providers Ċ import Ġcom . google . android . material . sn ackbar . Snackbar Ċ import Ġdagger . android . support . D agger AppCompatActivity Ċ import Ġio . reactivex . Flow able Ċ import Ġio . reactivex . dis pos ables . Composite Disposable Ċ import Ġio . reactivex . dis pos ables . Disposable Ċ Ċ abstract Ġclass ĠBase Activity Ġ: ĠD agger AppCompatActivity () Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġdis pos ables Ġ= ĠComposite Disposable () ĊĠĠĠ Ġprivate Ġvar Ġsn ackbar : ĠSn ackbar ? Ġ= Ġnull ĊĊĠĠĠ Ġprotected Ġfun ĠDis posable . track () Ġ= Ġdis pos ables . add ( this ) ĊĊĠĠĠ Ġprotected Ġfun Ġ< T > ĠFlow able < T >. observe ( o : Ġ( T ) Ġ-> ĠUnit ) Ġ{ ĊĠĠĠĠĠĠĠ ĠRx Lifecycle Handler ( this @ Base Activity , Ġthis , Ġo ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinline Ġfun Ġ< re ified ĠT Ġ: ĠViewModel > ĠviewModel ( factory : ĠViewModel Provider . Factory , Ġbody : ĠT . () Ġ-> ĠUnit ): ĠT Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġvm Ġ= ĠViewModel Providers . of ( this , Ġfactory )[ T :: class . java ] ĊĠĠĠĠĠĠĠ Ġvm . body () ĊĠĠĠĠĠĠĠ Ġreturn Ġvm ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprotected Ġfun Ġshow Failure ( view : ĠView , ĠerrorMessage : ĠInt , Ġretry : Ġ() Ġ-> ĠUnit ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( sn ackbar ?. is Shown Ġ== Ġtrue ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsn ackbar !!. dismiss () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġsn ackbar Ġ= ĠSn ackbar . make ( view , ĠerrorMessage , ĠSn ackbar . LENGTH _ IN DEFIN ITE ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. setAction TextColor ( Context Compat . getColor ( this , ĠR . color . white )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. setAction ( R . string . retry ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsn ackbar Ġ= Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġretry () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġsn ackbar !!. show () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Destroy () Ġ{ ĊĠĠĠĠĠĠĠ Ġdis pos ables . clear () ĊĠĠĠĠĠĠĠ Ġsuper . on Destroy () ĊĠĠĠ Ġ} Ċ }