package Ġcom . cd hir aj 4 0 . leet d roid . ui . base Ċ Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . Menu Ċ import Ġandroid . view . MenuItem Ċ import Ġandroid . view . View Ċ import Ġandroidx . appcompat . app . AppCompatActivity Ċ import Ġandroidx . drawer layout . widget . Drawer Layout Ċ import Ġandroidx . navigation . Nav Controller Ċ import Ġandroidx . navigation . Navigation Ċ import Ġandroidx . navigation . find Nav Controller Ċ import Ġandroidx . navigation . ui . AppBar Configuration Ċ import Ġandroidx . navigation . ui . Navigation UI Ċ import Ġandroidx . navigation . ui . setup With Nav Controller Ċ import Ġcom . cd hir aj 4 0 . leet d roid . R Ċ import Ġcom . cd hir aj 4 0 . leet d roid . utils . Common Functions . Logout . show Log Out Dialog Ċ import Ġcom . cd hir aj 4 0 . leet d roid . utils . Common Utils . compose Email Ċ import Ġcom . cd hir aj 4 0 . leet d roid . utils . Common Utils . create Email Body Ċ import Ġcom . cd hir aj 4 0 . leet d roid . utils . Common Utils . open Link Ċ import Ġcom . cd hir aj 4 0 . leet d roid . utils . dialog . AlertDialog Sh ower Ċ import Ġcom . cd hir aj 4 0 . leet d roid . utils . dialog . App Dialog s Ċ import Ġcom . cd hir aj 4 0 . leet d roid . utils . hide Soft Keyboard Ċ import Ġcom . google . android . material . bottomnavigation . Bottom Navigation View Ċ import Ġcom . google . android . material . navigation . Navigation View ĊĊ Ċ // ĠTODO : Ġhide Ġkeyboard Ġwhen Ġclicked Ġon Ġbottom Ġnavigation Ġitems , Ċ class ĠMainActivity Ġ: ĠAppCompatActivity () Ġ{ ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġbottom Nav : ĠBottom Navigation View ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġnav Controller : ĠNav Controller ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġdrawer Layout : ĠDraw er Layout ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġnavigation View : ĠNavigation View ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġnavigation Host Fragment : ĠView ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġapp Bar Configuration : ĠApp Bar Configuration ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ ĠsetContentView ( R . layout . activity _ main ) ĊĠĠĠĠĠĠĠ Ġbottom Nav Ġ= ĠfindViewById ( R . id . bottom _ navigation ) ĊĊĠĠĠĠĠĠĠ Ġnav Controller Ġ= Ġfind Nav Controller ( R . id . host Fragment ) ĊĠĠĠĠĠĠĠ Ġsetup Bottom Navigation () ĊĊĠĠĠĠĠĠĠ Ġdrawer Layout Ġ= ĠfindViewById ( R . id . drawer _ layout ) ĊĊĠĠĠĠĠĠĠ Ġnavigation View Ġ= ĠfindViewById ( R . id . navigation _ view ) ĊĊĠĠĠĠĠĠĠ Ġapp Bar Configuration Ġ= ĠApp Bar Configuration ( nav Controller . graph , Ġdrawer Layout ) ĊĠĠĠĠĠĠĠ ĠNavigation UI . setup ActionBar With Nav Controller ( this , Ġnav Controller , Ġdrawer Layout ) ĊĊĠĠĠĠĠĠĠ ĠNavigation UI . setup With Nav Controller ( navigation View , Ġnav Controller ) ĊĊĠĠĠĠĠĠĠ Ġnavigation View . set Navigation ItemSelected Listener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( it . itemId ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . home Fragment Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠNavigation . find Nav Controller ( findViewById ( R . id . host Fragment )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. navigate ( R . id . home Fragment ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdrawer Layout . close Draw ers () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . general Dis cussion Fragment Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠNavigation . find Nav Controller ( findViewById ( R . id . host Fragment )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. navigate ( R . id . general Dis cussion Fragment ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdrawer Layout . close Draw ers () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . problems Fragment Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠNavigation . find Nav Controller ( findViewById ( R . id . host Fragment )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. navigate ( R . id . problems Fragment ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdrawer Layout . close Draw ers () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . my Profile Fragment Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠNavigation . find Nav Controller ( findViewById ( R . id . host Fragment )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. navigate ( R . id . my Profile Fragment ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdrawer Layout . close Draw ers () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . report Bug Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAlertDialog Sh ower ( this ). show ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠApp Dialog s . Report Bug , Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġopen Link ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontext Ġ= Ġthis , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" https :// github . com / cd hir aj 4 0 / Le et Droid / issues / new " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}, Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}, Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcompose Email ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontext Ġ= Ġthis , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" ch au hand hir aj 4 0 @ gmail . com ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsubject Ġ= Ġ" Le et Droid ĠBug ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbody Ġ= Ġcreate Email Body ( context Ġ= Ġthis ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdrawer Layout . close Draw ers () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . github Project Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġopen Link ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontext Ġ= Ġthis , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" https :// github . com / cd hir aj 4 0 / Le et Droid " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdrawer Layout . close Draw ers () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠTODO Ġadd Ġlink Ġonce Ġadding Ġto Ġplay Ġstore . Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . rate Us Ġ-> Ġ{ Ċ // Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . about Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠNavigation . find Nav Controller ( findViewById ( R . id . host Fragment )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. navigate ( R . id . about ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdrawer Layout . close Draw ers () ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠNavigation UI . on Nav Destination Selected ( it , Ġnav Controller ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate Options Menu ( menu : ĠMenu ?): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġinflater Ġ= Ġmenu Inflater ĊĠĠĠĠĠĠĠ Ġinflater . inflate ( R . menu . main _ activity _ menu , Ġmenu ) ĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Options ItemSelected ( item : ĠMenuItem ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ( item . itemId ) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . logout Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġlog Ġout Ġfrom Ġapp ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshow Log Out Dialog ( activity Ġ= Ġthis , Ġcontext Ġ= Ġthis ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠTODO Ġdelete Ġall Ġdatabases Ġand Ġshared Ġpreferences Ġafter Ġlogging Ġout Ġto Ġavoid Ġany Ġproblems Ġwith Ġa Ġnew Ġuser Ġor Ġold ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġsuper . on Options ItemSelected ( item ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġsetup Bottom Navigation () Ġ{ ĊĠĠĠĠĠĠĠ Ġbottom Nav . setup With Nav Controller ( nav Controller ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Support Navigate Up (): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġhide Soft Keyboard ( this ) ĊĠĠĠĠĠĠĠ Ġreturn ĠNavigation UI . navigate Up ( nav Controller , Ġapp Bar Configuration ) ĊĠĠĠ Ġ} Ċ Ċ }