package Ġcom . money tree . app . common Ċ Ċ import Ġandroid . content . Intent Ċ import Ġandroid . view . MenuItem Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . view . WindowManager Ċ import Ġandroid . widget . ProgressBar Ċ import Ġandroid . widget . Relative Layout Ċ import Ġandroidx . appcompat . app . AppCompatActivity Ċ import Ġandroidx . core . content . Context Compat Ċ import Ġandroidx . fragment . app . Fragment Ċ import Ġcom . money tree . app . common . callbacks . NS Progress Callback Ċ import Ġcom . money tree . app . common . callbacks . NS Replace Fragment Callback Ċ import Ġcom . money tree . app . common . utils . switch Activity Ċ import Ġcom . money tree . app . ui . login . NS Login Activity Ċ import Ġorg . green robot . event bus . EventBus Ċ import Ġorg . green robot . event bus . Subscribe Ċ import Ġorg . green robot . event bus . Thread Mode Ċ Ċ /** Ċ Ġ* ĠThe Ġbase Ġclass Ġfor Ġall Ġactivities Ġwhich Ġholds Ġthe Ġmembers Ġand Ġmethods Ġcommon Ġto Ġall Ġactivities Ċ Ġ*/ Ċ open Ġclass ĠNS Activity Ġ: ĠAppCompatActivity (), ĠNS Replace Fragment Callback , ĠNS Progress Callback Ġ{ ĊĠĠĠ Ġprivate Ġval Ġtag : ĠString Ġ= ĠNS Activity :: class . java . simple Name ĊĠĠĠ Ġprivate Ġvar Ġis Progress Showing Ġ= Ġfalse ĊĠĠĠ Ġprivate Ġvar Ġallow Back Press Ġ= Ġtrue ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġrl Layout : ĠRelative Layout ĊĊĠĠĠ Ġoverride Ġfun ĠonStart () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onStart () ĊĠĠĠĠĠĠĠ ĠEvent Bus . getDefault (). register ( this ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Stop () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Stop () ĊĠĠĠĠĠĠĠ ĠEvent Bus . getDefault (). unregister ( this ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Options ItemSelected ( item : ĠMenuItem ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ( item . itemId ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġandroid . R . id . home Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsuper . on Back Pressed () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġsuper . on Options ItemSelected ( item ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠInv oked Ġwhen Ġthe Ġfragment Ġneeds Ġto Ġbe Ġreplaced ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġfragment To Replace ĠĠĠ ĠThe Ġfragment Ġwhich Ġshould Ġreplace Ġthe Ġcurrent Ġone ĊĠĠĠĠ Ġ* Ġ@ param Ġshould AddTo Back Stack ĠThe Ġboolean Ġspecifying Ġwhether Ġto Ġadd Ġthe Ġfragment Ġto Ġback stack Ġor Ġnot ĊĠĠĠĠ Ġ* Ġ@ param Ġcontainer Id ĠĠĠĠĠĠĠĠĠ ĠThe Ġid Ġof Ġthe Ġlayout Ġwhich Ġacts Ġas Ġa Ġcontainer Ġfor Ġthe Ġfragments ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoverride Ġfun Ġreplace Current Fragment ( ĊĠĠĠĠĠĠĠ Ġfragment To Replace : ĠFragment , Ġshould AddTo Back Stack : ĠBoolean , Ġcontainer Id : ĠInt ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġreplace Fragment ( fragment To Replace , Ġshould AddTo Back Stack , Ġcontainer Id ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠInv oked Ġwhen Ġthe Ġprogress Ġshould Ġbe Ġupdated ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġshould Show Progress ĠThe Ġboolean Ġto Ġdetermine Ġwhether Ġto Ġshow Ġor Ġhide Ġthe Ġprogress Ġbar ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoverride Ġfun Ġupdate Progress ( should Show Progress : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( should Show Progress ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġshow Progress () ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhide Progress () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠTo Ġreplace Ġthe Ġfragments ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġfragment To Replace ĠThe Ġfragment Ġto Ġreplace ĊĠĠĠĠ Ġ* Ġ@ param ĠaddTo Back Stack ĠĠĠ ĠWhether Ġto Ġadd Ġthe Ġfragment Ġto Ġback stack Ġor Ġnot ĊĠĠĠĠ Ġ* Ġ@ param Ġcontainer Id ĠĠĠĠĠĠ ĠThe Ġframe Ġlayout Ġcontaining Ġthe Ġfragment ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġreplace Fragment ( ĊĠĠĠĠĠĠĠ Ġfragment To Replace : ĠFragment , ĠaddTo Back Stack : ĠBoolean , Ġcontainer Id : ĠInt ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġfragment Transaction Ġ= Ġthis . support FragmentManager . beginTransaction () ĊĠĠĠĠĠĠĠ Ġfragment Transaction . replace ( container Id , Ġfragment To Replace ) ĊĠĠĠĠĠĠĠ Ġif Ġ( addTo Back Stack ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfragment Transaction . addTo Back Stack ( null ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġfragment Transaction . commit () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠTo Ġshow Ġthe Ġprogress Ġloading ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġopen Ġfun Ġshow Progress () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ(! is Progress Showing ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis Progress Showing Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġallow Back Press Ġ= Ġfalse Ġ// Ġhandling Ġthe Ġback Ġpress Ġwhile Ġshowing Ġand Ġdismiss Ġthe Ġprogress ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwindow ?. set Flags ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠWindow Manager . LayoutParams . FLAG _ NOT _ TO UCH ABLE , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠWindow Manager . LayoutParams . FLAG _ NOT _ TO UCH ABLE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrl Layout Ġ= ĠRelative Layout ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠprogressBar Ġ= ĠProgress Bar ( this ). apply Ġ{ Ġ// don 't Ġset Ġstyle Ġwith Ġmaterial Ġdesign ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠisIn determinate Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġparams For ProgressBar Ġ= ĠRelative Layout . LayoutParams ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠViewGroup . LayoutParams . WRAP _ CONTENT , ĠViewGroup . LayoutParams . WRAP _ CONTENT ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġparams For ProgressBar . add Rule ( Relative Layout . CENTER _ IN _ PARENT ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrl Layout . addView ( progress Bar , Ġparams For ProgressBar ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrl Layout . set BackgroundColor ( Context Compat . getColor ( this , Ġandroid . R . color . transparent )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġparams For Relative Layout Ġ= ĠRelative Layout . LayoutParams ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠViewGroup . LayoutParams . MATCH _ PARENT , ĠViewGroup . LayoutParams . MATCH _ PARENT ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd Rule ( Relative Layout . CENTER _ IN _ PARENT , ĠRelative Layout . TRUE ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd ContentView ( rl Layout , Ġparams For Relative Layout ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠTo Ġhide Ġthe Ġprogress Ġloading ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġopen Ġfun Ġhide Progress () Ġ{ ĊĠĠĠĠĠĠĠ Ġis Progress Showing Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġallow Back Press Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġwindow ?. clear Flags ( WindowManager . LayoutParams . FLAG _ NOT _ TO UCH ABLE ) ĊĠĠĠĠĠĠĠ Ġif Ġ(:: rl Layout . isInitialized ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġparent Ġ= Ġrl Layout . parent Ġas ĠViewGroup ? ĊĠĠĠĠĠĠĠĠĠĠĠ Ġparent ?. remove View ( rl Layout ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Subscribe ( thread Mode Ġ= ĠThread Mode . MAIN ) ĊĠĠĠ Ġfun Ġon Logout Event ( logout Event : ĠNS Logout Event ) Ġ{ ĊĠĠĠĠĠĠĠ ĠNS Log . d ( tag , Ġ" on Logout Event : Ġ$ logout Event ") ĊĠĠĠĠĠĠĠ Ġval Ġinstance Ġ= ĠNS Application . getInstance () ĊĠĠĠĠĠĠĠ Ġinstance . get Api Manager (). cancel All Requests () ĊĠĠĠĠĠĠĠ Ġinstance . get Prefs (). clear Pref Data () ĊĠĠĠĠĠĠĠ Ġswitch Activity ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠNS Login Activity :: class . java , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġflags Ġ= Ġint ArrayOf ( Intent . FLAG _ ACTIVITY _ NEW _ TASK Ġor ĠIntent . FLAG _ ACTIVITY _ CLEAR _ TASK ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} Ċ }