package Ġcom . example . my application ĊĊ Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . Intent Ċ import Ġandroid . content . SharedPreferences Ċ import Ġandroid . content . res . Configuration Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . MenuItem Ċ import Ġandroid . view . View Ċ import Ġandroid . widget . Compound Button Ċ import Ġandroid . widget . Frame Layout Ċ import Ġandroid . widget . Toast Ċ import Ġandroidx . appcompat . app . ActionBar Drawer Toggle Ċ import Ġandroidx . appcompat . app . AppCompatActivity Ċ import Ġandroidx . appcompat . app . AppCompat Delegate Ċ import Ġandroidx . appcompat . widget . Switch Compat Ċ import Ġandroidx . core . content . Context Compat Ċ import Ġandroidx . drawer layout . widget . Drawer Layout Ċ import Ġcom . example . my application . about us . About Us Activity Ċ import Ġcom . example . my application . firebase . Login Activity Ċ import Ġcom . google . android . material . navigation . Navigation View ĊĊ Ċ open Ġclass ĠBase Activity Ġ: ĠAppCompatActivity () Ġ{ ĊĠĠĠ Ġ// var Ġtoolbar : ĠToolbar ? Ġ= Ġnull ĊĠĠĠ Ġvar Ġdrawer Layout : ĠDraw er Layout ? Ġ= Ġnull ĊĠĠĠ Ġvar Ġdrawer Toggle : ĠAction Bar Drawer Toggle ? Ġ= Ġnull ĊĠĠĠ Ġvar Ġnavigation View : ĠNavigation View ? Ġ= Ġnull ĊĠĠĠ Ġvar ĠmContext : ĠContext ? Ġ= Ġnull ĊĠĠĠ Ġvar Ġdark Mode Switch : ĠSwitch Compat ? Ġ= Ġnull ĊĠĠĠ Ġvar Ġshared Preferences : ĠSharedPreferences ? Ġ= Ġnull ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ ĠmContext Ġ= Ġthis @ Base Activity ĊĠĠĠĠĠĠĠ ĠsetContentView ( R . layout . base _ activity ) ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠsetContentView ( layout Res ID : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġfull View Ġ= Ġlayout Inflater . inflate ( R . layout . base _ activity , Ġnull ) Ġas ĠDraw er Layout ĊĠĠĠĠĠĠĠ Ġval Ġactivity Container Ġ= Ġfull View . findViewById < View >( R . id . activity _ content ) Ġas ĠFrame Layout ĊĠĠĠĠĠĠĠ Ġlayout Inflater . inflate ( layout Res ID , Ġactivity Container , Ġtrue ) ĊĠĠĠĠĠĠĠ Ġsuper . set ContentView ( full View ) ĊĠĠĠ Ġ} ĊĊĊĊĠĠĠ Ġprivate Ġfun ĠsetUp Nav () Ġ{ ĊĠĠĠĠĠĠĠ Ġdrawer Layout Ġ= ĠfindViewById < View >( R . id . drawer _ layout ) Ġas ĠDraw er Layout ĊĠĠĠĠĠĠĠ Ġdrawer Toggle Ġ= ĠAction Bar Drawer Toggle ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis @ Base Activity , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdrawer Layout , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . string . app _ name , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . string . app _ name ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġdrawer Layout !!. add Drawer Listener ( drawer Toggle !! ) ĊĠĠĠĠĠĠĠ Ġsupport ActionBar !!. set Home Button Enabled ( true ) ĊĠĠĠĠĠĠĠ Ġsupport ActionBar !!. set Display Home As Up Enabled ( true ) ĊĠĠĠĠĠĠĠ Ġnavigation View Ġ= ĠfindViewById < View >( R . id . navigation _ view ) Ġas ĠNavigation View ĊĊĠĠĠĠĠĠĠ Ġshared Preferences Ġ= Ġget SharedPreferences (" shared Prefs ", ĠMODE _ PRIVATE ) ĊĠĠĠĠĠĠĠ Ġval Ġeditor Ġ= Ġshared Preferences !!. edit () ĊĠĠĠĠĠĠĠ Ġval Ġis Dark Mode On Ġ= Ġshared Preferences !!. getBoolean (" is Dark Mode On ", Ġfalse ) ĊĠĠĠĠĠĠĠ Ġ// ĠSetting ĠNavigation ĠView ĠItem ĠSelected ĠListener Ġto Ġhandle Ġthe Ġitem ĊĠĠĠĠĠĠĠ Ġdark Mode Switch Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnavigation View !!. menu . find Item ( R . id . nav _ dark mode _ id ). action View Ġas ĠSwitch Compat ĊĠĠĠĠĠĠĠ Ġdark Mode Switch !!. isChecked = is Dark Mode On ĊĠĠĠĠĠĠĠ Ġif ( is Dark Mode On ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAppCompat Delegate . setDefault Night Mode ( AppCompat Delegate . MODE _ N IGHT _ YES ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnavigation View !!. menu . find Item ( R . id . nav _ dark mode _ id ). icon Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠContext Compat . get Drawable ( this , ĠR . drawable . ic _ night ); ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAppCompat Delegate . setDefault Night Mode ( AppCompat Delegate . MODE _ N IGHT _ NO ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnavigation View !!. menu . find Item ( R . id . nav _ dark mode _ id ). title Ġ= Ġ" Day ĠMode " ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġdark Mode Switch !!. setOn Checked ChangeListener ( Compound Button . On Checked ChangeListener Ġ{ Ġ_, Ġis Checked Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// your Ġaction ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! isChecked ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠSwitch Ġis Ġunchecked Ġ- ĠDAY ĠMODE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAppCompat Delegate . setDefault Night Mode ( AppCompat Delegate . MODE _ N IGHT _ NO ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnavigation View !!. menu . find Item ( R . id . nav _ dark mode _ id ). icon Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠContext Compat . get Drawable ( this , ĠR . drawable . ic _ light ); ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnavigation View !!. menu . find Item ( R . id . nav _ dark mode _ id ). title Ġ=" Day ĠMode " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġeditor . put Boolean ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" is Dark Mode On ", Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ); ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġeditor . apply (); ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠSwitch Ġis Ġchecked Ġ- ĠN IGHT ĠMODE ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAppCompat Delegate . setDefault Night Mode ( AppCompat Delegate . MODE _ N IGHT _ YES ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnavigation View !!. menu . find Item ( R . id . nav _ dark mode _ id ). icon Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠContext Compat . get Drawable ( this , ĠR . drawable . ic _ night ); ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnavigation View !!. menu . find Item ( R . id . nav _ dark mode _ id ). title Ġ=" Dark ĠMode " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġeditor . put Boolean ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" is Dark Mode On ", Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ); ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġeditor . apply (); ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠ Ġ// Ġclick Ġof Ġthe Ġnavigation Ġmenu ĊĠĠĠĠĠĠĠ Ġnavigation View !!. set Navigation ItemSelected Listener ( Navigation View . On Navigation ItemSelected Listener Ġ{ Ġmenu Item Ġ-> Ġ// ĠChecking Ġif Ġthe Ġitem Ġis Ġin Ġchecked Ġstate Ġor Ġnot , Ġif Ġnot Ġmake ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġit Ġin Ġchecked Ġstate ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmenu Item . isChecked Ġ= Ġ! menuItem . isChecked ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠClosing Ġdrawer Ġon Ġitem Ġclick ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdrawer Layout !!. close Draw ers () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠCheck Ġto Ġsee Ġwhich Ġitem Ġwas Ġbeing Ġclicked Ġand Ġperform ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġappropriate Ġaction ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġintent _ calendar Ġ= ĠIntent ( this , ĠCalendar Activity :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġintent _ calendar . flags Ġ= ĠIntent . FLAG _ ACTIVITY _ CLEAR _ TOP Ġor ĠIntent . FLAG _ ACTIVITY _ NEW _ TASK ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġintent _ add _ note Ġ= ĠIntent ( this , ĠAdd Activity :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġintent _ add _ note . flags Ġ= ĠIntent . FLAG _ ACTIVITY _ CLEAR _ TOP Ġor ĠIntent . FLAG _ ACTIVITY _ NEW _ TASK ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġintent _ note Ġ= ĠIntent ( this , ĠMainActivity :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġintent _ note . flags Ġ= ĠIntent . FLAG _ ACTIVITY _ CLEAR _ TOP Ġor ĠIntent . FLAG _ ACTIVITY _ NEW _ TASK ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġintent _ login Ġ= ĠIntent ( this , ĠLogin Activity :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġintent _ login . flags Ġ= ĠIntent . FLAG _ ACTIVITY _ CLEAR _ TOP Ġor ĠIntent . FLAG _ ACTIVITY _ NEW _ TASK ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġintent _ about us Ġ= ĠIntent ( this , ĠAbout Us Activity :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġintent _ about us . flags Ġ= ĠIntent . FLAG _ ACTIVITY _ CLEAR _ TOP Ġor ĠIntent . FLAG _ ACTIVITY _ NEW _ TASK ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġintent _ trash = ĠIntent ( this , ĠTr ash Activity :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġintent _ about us . flags Ġ= ĠIntent . FLAG _ ACTIVITY _ CLEAR _ TOP Ġor ĠIntent . FLAG _ ACTIVITY _ NEW _ TASK ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( menuItem . itemId ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . nav _ note Ġ-> Ġthis . startActivity ( intent _ note ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . nav _ calendar Ġ-> Ġthis . startActivity ( intent _ calendar ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . nav _ trash Ġ-> Ġthis . startActivity ( intent _ trash ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . nav _ add _ note Ġ-> Ġthis . startActivity ( intent _ add _ note ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . nav _ sync Ġ-> Ġthis . startActivity ( intent _ login ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . nav _ About Us Ġ-> Ġthis . startActivity ( intent _ about us ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . nav _ trash Ġ-> Ġthis . startActivity ( intent _ trash ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġreturn @ On Navigation ItemSelected Listener Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfalse ĊĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠ Ġ// Ġcalling Ġsync Ġstate Ġis Ġnecess ay Ġor Ġelse Ġyour Ġh amburger Ġicon Ġw ont Ġshow ĊĠĠĠĠĠĠĠ Ġ// Ġup ĊĠĠĠĠĠĠĠ Ġdrawer Toggle !!. sync State () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġpublic Ġoverride Ġfun Ġon Post Create ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Post Create ( savedInstanceState ) ĊĠĠĠĠĠĠĠ ĠsetUp Nav () ĊĠĠĠĠĠĠĠ Ġdrawer Toggle !!. sync State () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Configuration Changed ( new Config : ĠConfiguration ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( new Config Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsuper . on Configuration Changed ( new Config ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġdrawer Toggle !!. on Configuration Changed ( new Config ) ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġoverride Ġfun Ġon Options ItemSelected ( item : ĠMenuItem ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( drawer Toggle ?. on Options ItemSelected ( item ) Ġ== Ġtrue ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtrue ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġsuper . on Options ItemSelected ( item ) ĊĠĠĠ Ġ} Ċ }