package Ġapp . base Ċ Ċ import Ġandroid . app . Dialog Ċ import Ġandroidx . databinding . Data Binding Util Ċ import Ġandroidx . databinding . ViewData Binding Ċ import Ġandroid . os . Build Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . util . Log Ċ import Ġandroidx . annotation . Call Super Ċ import Ġandroidx . fragment . app . Fragment Ċ import Ġandroidx . appcompat . app . AppCompat Dialog Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . widget . ProgressBar Ċ import Ġandroidx . fragment . app . Dialog Fragment Ċ import Ġapp . base . di . I Build Comp Ċ import Ġapp . base . di . component . Activity Comp Ċ import Ġapp . base . di . component . D agger Fragment Comp Ċ import Ġapp . base . di . component . Fragment Comp Ċ import Ġapp . base . mv vm . repository . I Repository Ċ import Ġapp . base . mv vm . view . I View Ċ import Ġapp . base . mv vm . vm . Base VM Ċ import Ġapp . base . widget . No Bg Dialog Ċ import Ġcom . h jq . toast . Toast Utils Ċ import Ġjava . lang . Exception Ċ Ċ /** Ċ Ġ* ĠCreated Ġby Ġdan iel Ġon Ġ 1 8 - 1 - 2 6 . Ċ Ġ*/ Ċ abstract Ġclass ĠBase Fragment Ġ: ĠFragment (), ĠI Build Comp , ĠI Base View Ġ{ ĊĊĠĠĠ Ġval ĠTAG Ġ= Ġ" Base Fragment " ĊĠĠĠ Ġprivate Ġvar Ġloading Dialog : ĠAppCompat Dialog ? Ġ= Ġnull ĊĠĠĠ Ġlateinit Ġvar Ġm Fragment Comp : ĠFragment Comp ĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ Ġbuild Comp () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprotected Ġfun Ġ< B Ġ: ĠView Data Binding , ĠP Ġ: ĠI Repository , ĠV Ġ: ĠI View > Ġbind ViewModel ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlayout Inflater : ĠLayoutInflater , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontainer : ĠViewGroup ?, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlayout Res Id : ĠInt , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠviewModel : ĠBase VM < P , ĠV >): ĠB Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġbinding Ġ= ĠData Binding Util . inflate < B >( layout Inflater , Ġlayout Res Id , Ġcontainer , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġbinding . set Variable ( BR . vm , ĠviewModel ) ĊĠĠĠĠĠĠĠ Ġif Ġ( ViewData Binding . get Build Sdk Int () Ġ< ĠBuild . VERSION _ CODES . KIT K AT ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . execute Pending Bindings () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġbinding ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġfragment Comp (): ĠFragment Comp Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ(! :: m Fragment Comp . isInitialized ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Fragment Comp Ġ= ĠD agger Fragment Comp . builder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. activity Comp ( activity Comp ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠ Ġreturn Ġm Fragment Comp ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġactivity Comp (): ĠActivity Comp Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtmp Ġ= Ġactivity Ġas ĠBase Activity ĊĠĠĠĠĠĠĠ Ġif (! tmp . isInitialized ()){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtmp . init DI () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġtmp . activity Comp ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Call Super ĊĠĠĠ Ġoverride Ġfun Ġdismiss Loading () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġshowing Ġ= Ġloading Dialog ?. is Showing ?: false ĊĠĠĠĠĠĠĠ Ġif ( show ing ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġloading Dialog ?. dismiss () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} catch Ġ( e : Exception ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . w ( TAG ," dis s miss Loading Ġ${ e . message }") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġloading Dialog Ġ= Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Call Super ĊĠĠĠ Ġoverride Ġfun Ġshow Loading () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( loading Dialog Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġloading Dialog Ġ= ĠonCreate Loading Dialog () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġcan Show Ġ= Ġ Ġ(! is Removing Ġ&& Ġis Res umed ) ĊĠĠĠĠĠĠĠ Ġif ( can Show ){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġloading Dialog ?. show () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} catch Ġ( e : Exception ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . w ( TAG ," show Loading Ġ${ e . message }") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġloading Dialog Ġ= Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate Loading Dialog (): ĠAppCompat Dialog ? Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtmp Ġ Ġ= Ġcontext ; ĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( tmp Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġloading Dialog Ġ= ĠNo Bg Dialog ( tmp ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġloading Dialog . set ContentView ( ProgressBar ( tmp )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġloading Dialog . set Canceled On Touch Outside ( false ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġloading Dialog ĊĠĠĠĠĠĠĠ Ġ} else { ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnull ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġshow Toast ( msg : String ){ ĊĠĠĠĠĠĠĠ ĠToast Utils . show ( msg ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġshow Toast ( msg Id : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ ĠToast Utils . show ( msg Id ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġshow Dialog ( dialog : Any ? ){ ĊĠĠĠĠĠĠĠ Ġval Ġfm Ġ= Ġfragment Manager ĊĠĠĠĠĠĠĠ Ġif ( isVisible Ġ&& Ġ Ġ! is Detached Ġ Ġ&& Ġ! is Removing Ġ&& Ġfm != Ġnull ){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen ( dialog ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠDialog Ġ-> { Ġdialog . show () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠDialog Fragment Ġ-> Ġ{ dialog . show ( fm ," $ dialog ")} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> { ĠLog . w ( TAG ," Ġcannot Ġshow Ġdialog Ġtype Ġerror :$ dialog ") Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} catch Ġ( e : Exception ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . w ( TAG ," cannot Ġshow Ġdialog : Ġ${ e . message }") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} else { ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . w ( TAG ," cannot Ġshow Ġdialog : Ġstatus Ġerror Ġ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }