package Ġcom . cr az ie . android . activity Ċ Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . os . Handler Ċ import Ġandroid . os . Looper Ċ import Ġandroid . view . View Ċ import Ġandroid . widget . Toast Ċ import Ġandroidx . appcompat . app . AppCompatActivity Ċ import Ġandroidx . fragment . app . Fragment Ċ import Ġcom . cr az ie . android . R Ċ import Ġcom . cr az ie . android . bottom sheet . Post Bottom sheet Ċ import Ġcom . cr az ie . android . fragment . Account Fragment Ċ import Ġcom . cr az ie . android . fragment . Activity Fragment Ċ import Ġcom . cr az ie . android . fragment . Explore Fragment Ċ import Ġcom . cr az ie . android . fragment . Home Fragment Ċ import Ġcom . cr az ie . android . utils . toast Ċ import Ġcom . google . android . material . bottomnavigation . Bottom Navigation View Ċ import Ġcom . google . android . material . floating action button . Floating ActionButton Ċ import Ġcom . google . firebase . auth . Firebase Auth ĊĊ Ċ class ĠMainActivity Ġ: ĠAppCompatActivity () Ġ, ĠView . OnClickListener { ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġbottom Navigation View : ĠBottom Navigation View ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġfab Post : ĠFloating ActionButton ĊĊĠĠĠ Ġprivate Ġvar Ġtap Count Ġ= Ġ 0 ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ ĠsetContentView ( R . layout . activity _ main ) ĊĊĠĠĠĠĠĠĠ Ġload Fragment ( Home Fragment ()) ĊĊĠĠĠĠĠĠĠ Ġbind Views () ĊĊĠĠĠĠĠĠĠ Ġclick Listeners () ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġclick Listeners () Ġ{ ĊĠĠĠĠĠĠĠ Ġfab Post . setOnClickListener ( this ) ĊĊĠĠĠĠĠĠĠ Ġbottom Navigation View . setOn Navigation ItemSelected Listener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen ( it . itemId ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . action _ home Ġ-> Ġ{ Ġload Fragment ( Home Fragment ()) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . action _ explore Ġ-> Ġ{ Ġload Fragment ( Explore Fragment ()) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . action _ activity Ġ-> Ġ{ Ġload Fragment ( Activity Fragment ()) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . action _ account Ġ-> Ġ{ Ġload Fragment ( Account Fragment ( Firebase Auth . getInstance (). currentUser !!. uid )) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġbottom Navigation View . setOn Navigation Item Re selected Listener Ġ{} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġbind Views () Ġ{ ĊĠĠĠĠĠĠĠ Ġbottom Navigation View Ġ= ĠfindViewById ( R . id . bottom Nav ) ĊĠĠĠĠĠĠĠ Ġfab Post Ġ= ĠfindViewById ( R . id . fab _ post ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonClick ( v : View ){ ĊĠĠĠĠĠĠĠ Ġwhen ( v . id ){ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . fab _ post Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPost Bottom sheet (). show ( support FragmentManager ," Post Bottom Sheet ")} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġprivate Ġfun Ġload Fragment ( fragment : ĠFragment ): Boolean { ĊĊĠĠĠĠĠĠĠ Ġsupport FragmentManager ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. beginTransaction () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Custom Animations ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . anim . slide _ out , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . anim . fade _ out , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . anim . slide _ in , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . anim . fade _ in ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. replace ( R . id . fragment _ container , fragment ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. addTo Back Stack ( null ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. commit () ĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Back Pressed () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( R . id . action _ home Ġ!= Ġbottom Navigation View . selected ItemId ){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Home Item ( this ) ĊĠĠĠĠĠĠĠ Ġ} else Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( tap Count Ġ< Ġ 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtap Count ++ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtoast (" Tap Ġagain Ġto Ġexit ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠHandler ( Looper . get Main Looper ()). post Delayed ({ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtap Count Ġ= Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}, Ġ 1 0 0 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsuper . on Back Pressed () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġset Home Item ( main Activity : ĠMainActivity ) Ġ{ ĊĠĠĠĠĠĠĠ Ġmain Activity . bottom Navigation View . selected ItemId Ġ= ĠR . id . action _ home ĊĠĠĠ Ġ} ĊĊĊ Ċ }