package Ġcom . ro ome dia . d awn _ down _ alarm . presentation . main Ċ Ċ import Ġandroid . os . Build Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . provider . Settings Ċ import Ġandroidx . appcompat . app . AppCompatActivity Ċ import Ġandroidx . core . app . Notification Manager Compat Ċ import Ġcom . ro ome dia . d awn _ down _ alarm . databinding . Activity Main Binding Ċ import Ġcom . ro ome dia . d awn _ down _ alarm . prefs . Alarm Preference Ċ import Ġdagger . h ilt . android . Android EntryPoint Ċ Ċ @ Android EntryPoint Ċ class ĠMainActivity Ġ: ĠAppCompatActivity () Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġbinding Ġby Ġlazy Ġ{ ĠActivity Main Binding . inflate ( layout Inflater ) Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ Ġif Ġ( savedInstanceState Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġselect Fragment By ( is Listener Enabled (), Ġis Permission Granted ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠsetContentView ( binding . root ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonStart () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onStart () ĊĠĠĠĠĠĠĠ Ġval Ġprev IsEnabled Ġ= ĠAlarm Preference . isEnabled ĊĠĠĠĠĠĠĠ Ġval Ġprev Is Granted Ġ= ĠAlarm Preference . is Granted ĊĠĠĠĠĠĠĠ Ġval Ġcurrent IsEnabled Ġ= Ġis Listener Enabled () ĊĠĠĠĠĠĠĠ Ġval Ġcurrent Is Granted Ġ= Ġis Permission Granted () ĊĊĠĠĠĠĠĠĠ Ġif Ġ( prev IsEnabled Ġ== Ġcurrent IsEnabled Ġ&& Ġprev Is Granted Ġ== Ġcurrent Is Granted ) Ġreturn ĊĠĠĠĠĠĠĠ Ġselect Fragment By ( current IsEnabled , Ġcurrent Is Granted ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Pause () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Pause () ĊĠĠĠĠĠĠĠ ĠAlarm Preference . isEnabled Ġ= Ġis Listener Enabled () ĊĠĠĠĠĠĠĠ ĠAlarm Preference . is Granted Ġ= Ġis Permission Granted () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġselect Fragment By ( is Listener Enabled : ĠBoolean , Ġis Permission Granted : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġfragment Ġ= Ġwhen Ġ( is Listener Enabled Ġ&& Ġis Permission Granted ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtrue Ġ-> ĠNav Fragment () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfalse Ġ-> ĠGrant Fragment () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġsupport FragmentManager . beginTransaction (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Re ordering Allowed ( true ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreplace ( binding . fragment Container View . id , Ġfragment ) ĊĠĠĠĠĠĠĠ Ġ}. commit () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġis Listener Enabled (): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠNotification Manager Compat . get Enabled Listener Packages ( this ). contains ( packageName ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġis Permission Granted (): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠBuild . VERSION . SDK _ INT Ġ< ĠBuild . VERSION _ CODES . Q Ġ|| ĠSettings . can Draw Overlay s ( this ) ĊĠĠĠ Ġ} Ċ }