package Ġz io x . ram iro . sa es . ui . screens Ċ Ċ import Ġandroid . content . Intent Ċ import Ġandroid . net . Uri Ċ import Ġandroid . os . Bundle Ċ import Ġandroidx . activity . compose . setContent Ċ import Ġandroidx . appcompat . app . AppCompatActivity Ċ import Ġandroidx . appcompat . app . AppCompat Delegate Ċ import Ġandroidx . compose . material . Sca ffold Ċ import Ġandroidx . lifecycle . ViewModel Provider Ċ import Ġcom . google . android . gms . ads . Mobile Ads Ċ import Ġcom . google . firebase . k tx . Firebase Ċ import Ġcom . google . firebase . remote config . k tx . remote Config Ċ import Ġcom . google . firebase . remote config . k tx . remote Config Settings Ċ import Ġz io x . ram iro . sa es . data . models . viewModel Factory Ċ import Ġz io x . ram iro . sa es . data . repositories . Auth WebView Repository Ċ import Ġz io x . ram iro . sa es . features . sa es . ui . screens . SA ES Activity Ċ import Ġz io x . ram iro . sa es . ui . components . Error Snackbar Ċ import Ġz io x . ram iro . sa es . ui . theme . SA ES Para Al umn os Theme Ċ import Ġz io x . ram iro . sa es . utils . Preference Keys Ċ import Ġz io x . ram iro . sa es . utils . User Preferences Ċ import Ġz io x . ram iro . sa es . utils . is Url Ċ import Ġz io x . ram iro . sa es . view _ models . Auth ViewModel Ċ Ċ class ĠMainActivity Ġ: ĠAppCompatActivity () Ġ{ ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġauth ViewModel : ĠAuth ViewModel ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ Ġinit Services () ĊĊĠĠĠĠĠĠĠ Ġval Ġuser Preferences Ġ= ĠUser Preferences . invoke ( this ) ĊĠĠĠĠĠĠĠ Ġhandle Intent ( user Preferences ) ĊĊĠĠĠĠĠĠĠ Ġuser Preferences . set Preference ( Preference Keys . Offline Mode , Ġfalse ) ĊĊĠĠĠĠĠĠĠ ĠAppCompat Delegate . setDefault Night Mode ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġuser Preferences . get Preference ( Preference Keys . Default Night Mode , Ġnull ) Ġ?: ĠAppCompat Delegate . MODE _ N IGHT _ FOLLOW _ SYSTEM ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġauth ViewModel Ġ= ĠViewModel Provider ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠviewModel Factory Ġ{ ĠAuth ViewModel ( Auth WebView Repository ( this )) Ġ} ĊĠĠĠĠĠĠĠ Ġ). get ( Auth ViewModel :: class . java ) ĊĊĠĠĠĠĠĠĠ Ġif ( user Preferences . get Preference ( Preference Keys . School Url , Ġnull ) Ġ== Ġnull ){ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity ( Intent ( this , ĠLogin Activity :: class . java )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfinish () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġset Content Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠS AES Para Al umn os Theme Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġauth ViewModel . is LoggedIn . value ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif ( it ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity ( Intent ( this @ MainActivity , ĠS AES Activity :: class . java )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} else { ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity ( Intent ( this @ MainActivity , ĠLogin Activity :: class . java )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfinish () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠScaffold Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSpl ash Screen () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠError Snackbar ( auth ViewModel . error ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġinit Services (){ ĊĠĠĠĠĠĠĠ ĠFirebase . remote Config . apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Config Settings Async ( remote Config Settings Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġminimum Fetch Interval InSeconds Ġ= Ġ 3 6 0 0 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġ}. fetch And Activate () ĊĠĠĠĠĠĠĠ ĠMobile Ads . initialize ( this ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġhandle Intent ( user Preferences : ĠUser Preferences ){ ĊĠĠĠĠĠĠĠ Ġif Ġ( intent . action Ġ== ĠIntent . ACTION _ VIEW ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( intent . data ?. host ?. matches ( Regex (" www \\. sa es \\ .[ a - z ]+ \\. ip n \\. mx ")) Ġ== Ġtrue ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġurl Ġ= Ġ"${ intent . data ?. scheme } ://${ intent . data ?. host }/ " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġuser Preferences . set Preference ( Preference Keys . School Url , Ġurl ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif ( intent . has Extra ( SA ES Activity . INT ENT _ EXTRA _ RE DIRECT )){ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif ( intent . getString Extra ( SA ES Activity . INT ENT _ EXTRA _ RE DIRECT ) !!. is Url ()){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠIntent ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠIntent . ACTION _ VIEW , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠUri . parse ( intent . getString Extra ( SA ES Activity . INT ENT _ EXTRA _ RE DIRECT )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } ĊĊĊ