package Ġcom . core Ċ Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . View Ċ import Ġandroidx . annotation . Layout Res Ċ import Ġandroidx . appcompat . app . AlertDialog Ċ import Ġandroidx . appcompat . app . AppCompatActivity Ċ import Ġandroidx . databinding . Data Binding Util Ċ import Ġandroidx . databinding . ViewData Binding Ċ import Ġandroidx . fragment . app . Fragment Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġcom . utils . Dispose Bag Ċ import Ġcom . utils . Keyboard Utils Ċ import Ġcom . widget . Bo ast Ċ import Ġio . reactivex . rx java 3 . dis pos ables . Disposable Ċ Ċ abstract Ġclass ĠBase Activity < V Ġ: ĠView Data Binding > Ġ: ĠAppCompatActivity () Ġ{ ĊĊĠĠĠ Ġlateinit Ġvar Ġloading : ĠAlertDialog ĊĠĠĠ Ġlateinit Ġvar Ġloading 2 : ĠAlertDialog ĊĊĠĠĠ Ġlateinit Ġvar Ġbinding : ĠV ĊĊĠĠĠ Ġprivate Ġvar Ġis Cancel able Ġ= Ġfalse ĊĠĠĠ Ġprivate Ġvar Ġis Cancel able 2 Ġ= Ġfalse ĊĊĠĠĠ Ġprotected Ġval Ġbag Ġby Ġlazy Ġ{ ĠDispose Bag . create () Ġ} ĊĊĠĠĠ Ġ@ Layout Res ĊĠĠĠ Ġprotected Ġabstract Ġfun Ġget Layout Id (): ĠInt ĊĊĠĠĠ Ġ@ Layout Res ĊĠĠĠ Ġopen Ġfun Ġget Layout Id Loading (): ĠInt Ġ= Ġ- 1 ĊĊĠĠĠ Ġopen Ġfun Ġget The m Res Id (): ĠInt Ġ= Ġ- 1 ĊĊĠĠĠ Ġoverride Ġfun Ġon Destroy () Ġ{ ĊĠĠĠĠĠĠĠ Ġbag . dispose () ĊĠĠĠĠĠĠĠ Ġsuper . on Destroy () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ Ġbinding Ġ= ĠData Binding Util . set ContentView ( this , Ġget Layout Id ()) ĊĠĠĠĠĠĠĠ Ġinit Dialog () ĊĠĠĠĠĠĠĠ Ġinit Dialog 2 () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġadd Dispose ( var arg Ġdis pos ables : ĠDis posable ) Ġ{ ĊĠĠĠĠĠĠĠ Ġbag . add (* dis pos ables ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Throws ĊĠĠĠ Ġopen Ġfun Ġopen Fragment ( res Id : ĠInt , Ġfragment Clazz : ĠClass <* >, Ġargs : ĠBundle ?, Ġadd Back Stack : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtag Ġ= Ġfragment Clazz . simple Name ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġis Exist ed Ġ= Ġsupport FragmentManager . pop Back Stack Immediate ( tag , Ġ 0 ) ĠĠĠ Ġ// ĠIllegalStateException ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! is Exist ed ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfragment : ĠFragment ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfragment Ġ= Ġ( fragment Clazz . as Subclass ( Fragment :: class . java )). newInstance (). apply Ġ{ Ġarguments Ġ= Ġargs Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtransaction Ġ= Ġsupport FragmentManager . beginTransaction () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtransaction . add ( res Id , Ġfragment , Ġtag ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( add Back Stack ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtransaction . addTo Back Stack ( tag ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtransaction . commit Allow ing State Loss () ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠInstanti ation Exception ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġe . printStackTrace () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠIllegal AccessException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġe . printStackTrace () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġe . printStackTrace () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Throws ĊĠĠĠ Ġopen Ġfun Ġopen Fragment ( ĊĠĠĠĠĠĠĠ Ġres Id : ĠInt , Ġfragment Clazz : ĠClass <* >, Ġargs : ĠBundle ?, Ġadd Back Stack : ĠBoolean , ĊĠĠĠĠĠĠĠ Ġvar arg Ġan i Int : ĠInt , ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtag Ġ= Ġfragment Clazz . simple Name ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġis Exist ed Ġ= Ġsupport FragmentManager . pop Back Stack Immediate ( tag , Ġ 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! is Exist ed ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfragment : ĠFragment ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfragment Ġ= Ġ( fragment Clazz . as Subclass ( Fragment :: class . java )). newInstance (). apply Ġ{ Ġarguments Ġ= Ġargs Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtransaction Ġ= Ġsupport FragmentManager . beginTransaction () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtransaction . set Custom Animations ( ani Int [ 0 ], Ġan i Int [ 1 ], Ġan i Int [ 2 ], Ġan i Int [ 3 ]) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtransaction . add ( res Id , Ġfragment , Ġtag ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( add Back Stack ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtransaction . addTo Back Stack ( tag ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtransaction . commit Allow ing State Loss () ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠInstanti ation Exception ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġe . printStackTrace () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠIllegal AccessException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġe . printStackTrace () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġe . printStackTrace () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġadd Fragment ( fragment Clazz : ĠClass <* >, Ġargs : ĠBundle ? Ġ= Ġnull , Ġadd Back Stack : ĠBoolean Ġ= Ġtrue , Ġres Id : ĠInt Ġ= ĠR . id . container _ main ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtag Ġ= Ġfragment Clazz . canonical Name Ġ?: Ġfragment Clazz . simple Name ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġis Exist ed Ġ= Ġsupport FragmentManager . pop Back Stack Immediate ( tag , Ġ 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! is Exist ed ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfragment : ĠFragment ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfragment Ġ= Ġ( fragment Clazz . as Subclass ( Fragment :: class . java )). newInstance (). apply Ġ{ Ġarguments Ġ= Ġargs Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtransaction Ġ= Ġsupport FragmentManager . beginTransaction () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtransaction . add ( res Id , Ġfragment , Ġtag ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( add Back Stack ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtransaction . addTo Back Stack ( tag ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtransaction . commit Allow ing State Loss () ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠInstanti ation Exception ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġe . printStackTrace () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠIllegal AccessException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġe . printStackTrace () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġe . printStackTrace () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġadd Fragment ( fragment : ĠFragment , Ġargs : ĠBundle ? Ġ= Ġnull , Ġadd Back Stack : ĠBoolean Ġ= Ġtrue , Ġres Id : ĠInt Ġ= ĠR . id . container _ main ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtag Ġ= Ġfragment :: class . java . canonical Name Ġ?: Ġfragment :: class . java . simple Name ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġis Exist ed Ġ= Ġsupport FragmentManager . pop Back Stack Immediate ( tag , Ġ 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! is Exist ed ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfragment . apply Ġ{ Ġarguments Ġ= Ġargs Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtransaction Ġ= Ġsupport FragmentManager . beginTransaction () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtransaction . add ( res Id , Ġfragment , Ġtag ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( add Back Stack ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtransaction . addTo Back Stack ( tag ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtransaction . commit Allow ing State Loss () ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠInstanti ation Exception ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġe . printStackTrace () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠIllegal AccessException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġe . printStackTrace () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġe . printStackTrace () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġreplace Fragment ( fragment Clazz : ĠClass <* >, Ġargs : ĠBundle ? Ġ= Ġnull , Ġadd Back Stack : ĠBoolean Ġ= Ġtrue , Ġres Id : ĠInt Ġ= ĠR . id . container _ main ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtag Ġ= Ġfragment Clazz . canonical Name Ġ?: Ġfragment Clazz . simple Name ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġis Exist ed Ġ= Ġsupport FragmentManager . pop Back Stack Immediate ( tag , Ġ 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! is Exist ed ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfragment : ĠFragment ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfragment Ġ= Ġ( fragment Clazz . as Subclass ( Fragment :: class . java )). newInstance (). apply Ġ{ Ġarguments Ġ= Ġargs Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtransaction Ġ= Ġsupport FragmentManager . beginTransaction () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtransaction . replace ( res Id , Ġfragment , Ġtag ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( add Back Stack ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtransaction . addTo Back Stack ( tag ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtransaction . commit Allow ing State Loss () ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠInstanti ation Exception ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġe . printStackTrace () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠIllegal AccessException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġe . printStackTrace () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġe . printStackTrace () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġreplace Fragment ( fragment : ĠFragment , Ġargs : ĠBundle ? Ġ= Ġnull , Ġadd Back Stack : ĠBoolean Ġ= Ġtrue , Ġres Id : ĠInt Ġ= ĠR . id . container _ main ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtag Ġ= Ġfragment :: class . java . canonical Name Ġ?: Ġfragment :: class . java . simple Name ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġis Exist ed Ġ= Ġsupport FragmentManager . pop Back Stack Immediate ( tag , Ġ 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! is Exist ed ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfragment . apply Ġ{ Ġarguments Ġ= Ġargs Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtransaction Ġ= Ġsupport FragmentManager . beginTransaction () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtransaction . replace ( res Id , Ġfragment , Ġtag ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( add Back Stack ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtransaction . addTo Back Stack ( tag ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtransaction . commit Allow ing State Loss () ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠInstanti ation Exception ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġe . printStackTrace () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠIllegal AccessException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġe . printStackTrace () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġe . printStackTrace () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠShow Ġtoast ĊĠĠĠĠ Ġ* Ġ@ param Ġmsg ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġtoast ( msg : ĠString ) Ġ= ĠBo ast . makeText ( this , Ġmsg ). show () ĊĊĠĠĠ Ġfun Ġtoast ( msg : ĠString , Ġduration : ĠInt , Ġcancel Current : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ ĠBo ast . makeText ( this , Ġmsg , Ġduration ). show ( cancel Current ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠInit Ġdialog Ġloading ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġinit Dialog () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġbuilder : ĠAlertDialog . Builder Ġ= Ġif Ġ( get The m Res Id () Ġ!= Ġ- 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAlertDialog . Builder ( this , Ġget The m Res Id ()) Ġelse ĠAlertDialog . Builder ( this ) ĊĊĠĠĠĠĠĠĠ Ġbuilder . set Cancel able ( is Cancel able ) ĊĠĠĠĠĠĠĠ Ġbuilder . setView ( if Ġ( get Layout Id Loading () Ġ== Ġ- 1 ) ĠR . layout . layout _ loading _ dialog _ default Ġelse Ġget Layout Id Loading ()) ĊĠĠĠĠĠĠĠ Ġloading Ġ= Ġbuilder . create () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠInit Ġdialog Ġloading Ġ 2 ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġinit Dialog 2 () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġbuilder : ĠAlertDialog . Builder Ġ= Ġif Ġ( get The m Res Id () Ġ!= Ġ- 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAlertDialog . Builder ( this , Ġget The m Res Id ()) Ġelse ĠAlertDialog . Builder ( this ) ĊĊĠĠĠĠĠĠĠ Ġbuilder . set Cancel able ( is Cancel able 2 ) ĊĠĠĠĠĠĠĠ Ġbuilder . setView ( if Ġ( get Layout Id Loading () Ġ== Ġ- 1 ) ĠR . layout . layout _ loading _ dialog _ default Ġelse Ġget Layout Id Loading ()) ĊĠĠĠĠĠĠĠ Ġloading 2 Ġ= Ġbuilder . create () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠShow Ġdialog Ġloading ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġopen Ġfun Ġshow Dialog () Ġ{ ĊĠĠĠĠĠĠĠ Ġrun On Ui Thread Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! loading . is Showing ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġloading . show () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠShow Ġdialog Ġloading Ġ 2 ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġopen Ġfun Ġshow Dialog 2 () Ġ{ ĊĠĠĠĠĠĠĠ Ġrun On Ui Thread Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! loading 2 . is Showing ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġloading 2 . show () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠHide Ġdialog Ġloading Ġ 2 ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġopen Ġfun Ġhide Dialog 2 () Ġ{ ĊĠĠĠĠĠĠĠ Ġrun On Ui Thread Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( loading 2 . is Showing ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġloading 2 . dismiss () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠHide Ġdialog Ġloading ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġopen Ġfun Ġhide Dialog () Ġ{ ĊĠĠĠĠĠĠĠ Ġrun On Ui Thread Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( loading . is Showing ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġloading . dismiss () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠSet Ġcancel able Ġdialog ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġset Cancel able Dialog ( is Cancel able : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . is Cancel able Ġ= Ġis Cancel able ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠSet Ġcancel able Ġdialog Ġ 2 ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġset Cancel able Dialog 2 ( is Cancel able : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . is Cancel able 2 Ġ= Ġis Cancel able ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġhide Keyboard () Ġ{ ĊĠĠĠĠĠĠĠ ĠKeyboard Utils . hide Keyboard ( this ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġhide Keyboard Out Side ( view : ĠView ) Ġ{ ĊĠĠĠĠĠĠĠ ĠKeyboard Utils . hide Key Board When Click Out Side ( view , Ġthis ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġhide Keyboard Out Side Text ( view : ĠView ) Ġ{ ĊĠĠĠĠĠĠĠ ĠKeyboard Utils . hide Key Board When Click Out Side Text ( view , Ġthis ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġoverride Pending Transition Enter () Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Pending Transition ( R . anim . slide _ from _ right , ĠR . anim . slide _ to _ left ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġoverride Pending Transition Exit () Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Pending Transition ( R . anim . slide _ from _ left , ĠR . anim . slide _ to _ right ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġ< VH Ġ: ĠRecyclerView . ViewHolder > ĠsetUp R cv ( rcv : ĠRecyclerView , Ġadapter : ĠRecyclerView . Adapter < VH >) Ġ{ ĊĠĠĠĠĠĠĠ Ġr cv . set Has Fixed Size ( true ) ĊĠĠĠĠĠĠĠ Ġr cv . layout Manager Ġ= Ġandroidx . recyclerview . widget . Linear LayoutManager ( this ) ĊĠĠĠĠĠĠĠ Ġr cv . adapter Ġ= Ġadapter ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġ< VH Ġ: ĠRecyclerView . ViewHolder > ĠsetUp R cv ( ĊĠĠĠĠĠĠĠ Ġr cv : ĠRecyclerView , ĊĠĠĠĠĠĠĠ Ġadapter : ĊĠĠĠĠĠĠĠ ĠRecyclerView . Adapter < VH >, ĊĠĠĠĠĠĠĠ Ġis Has Fixed Size : ĠBoolean , ĊĠĠĠĠĠĠĠ Ġis Nested Scrolling Enabled : ĠBoolean , ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġr cv . set Has Fixed Size ( is Has Fixed Size ) ĊĠĠĠĠĠĠĠ Ġr cv . layout Manager Ġ= Ġandroidx . recyclerview . widget . Linear LayoutManager ( this ) ĊĠĠĠĠĠĠĠ Ġr cv . adapter Ġ= Ġadapter ĊĠĠĠĠĠĠĠ Ġr cv . is Nested Scrolling Enabled Ġ= Ġis Nested Scrolling Enabled ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġ< VH Ġ: ĠRecyclerView . ViewHolder > ĠsetUp R cv ( ĊĠĠĠĠĠĠĠ Ġr cv : ĠRecyclerView , ĊĠĠĠĠĠĠĠ Ġadapter : ĊĠĠĠĠĠĠĠ ĠRecyclerView . Adapter < VH >, ĊĠĠĠĠĠĠĠ Ġis Nested Scrolling Enabled : ĠBoolean , ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġr cv . set Has Fixed Size ( true ) ĊĠĠĠĠĠĠĠ Ġr cv . layout Manager Ġ= Ġandroidx . recyclerview . widget . Linear LayoutManager ( this ) ĊĠĠĠĠĠĠĠ Ġr cv . adapter Ġ= Ġadapter ĊĠĠĠĠĠĠĠ Ġr cv . is Nested Scrolling Enabled Ġ= Ġis Nested Scrolling Enabled ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġopen Ġfun Ġclear All Back Stack () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġfm Ġ= Ġsupport FragmentManager ĊĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġ 0 Ġuntil Ġfm . back Stack Entry Count ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfm . pop Back Stack () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ Ċ // ĠĠĠ Ġfun ĠSubject < String >. receive Text Changes From ( edit Text : ĠEditText ) Ġ{ Ċ // ĠĠĠĠĠĠĠ ĠRx TextView . text Changes ( edit Text ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe Ġ{ Ġnew Text Ġ-> Ġthis . onNext ( new Text . toString ()) Ġ} Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. dis posed By ( bag ) Ċ // ĠĠĠ Ġ} Ċ // Ċ // ĠĠĠ Ġfun ĠSubject < Unit >. receive Click s From ( view : ĠView ) Ġ{ Ċ // ĠĠĠĠĠĠĠ ĠRx View . click s ( view ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe Ġ{ Ġthis . onNext ( Unit ) Ġ} Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. dis posed By ( bag ) Ċ // ĠĠĠ Ġ} ĊĊĠĠĠ Ġprotected Ġfun Ġis Current Fragment ( java : ĠClass <* >, Ġcontainer Id : ĠInt ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcurr Ġ= Ġsupport FragmentManager . find Fragment ById ( container Id ) Ġ?: Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġreturn Ġcurr :: class . java Ġ== Ġjava ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprotected Ġfun Ġis Current Fragment ( java : ĠClass <* >, Ġtag Z : ĠString Ġ= Ġ"", Ġcontainer Id : ĠInt ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcurr Ġ= Ġif Ġ( tag Z . isEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsupport FragmentManager . find Fragment ById ( container Id ) Ġ?: Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsupport FragmentManager . find Fragment By Tag ( java :: class . java . simple Name Ġ+ Ġtag Z ) Ġ?: Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġcurr :: class . java Ġ== Ġjava ĊĠĠĠ Ġ} Ċ }