package Ġcom . it ach i 1 7 0 6 . dro ide g gs Ċ Ċ import Ġandroid . content . Intent Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . Menu Ċ import Ġandroid . view . MenuItem Ċ import Ġandroid . widget . Array Adapter Ċ import Ġandroidx . appcompat . app . AlertDialog Ċ import Ġandroidx . appcompat . app . AppCompatActivity Ċ import Ġcom . google . android . material . sn ackbar . Snackbar Ċ import Ġcom . google . firebase . analytics . Firebase Analytics Ċ import Ġcom . google . firebase . analytics . k tx . analytics Ċ import Ġcom . google . firebase . crash ly t ics . k tx . crash ly t ics Ċ import Ġcom . google . firebase . k tx . Firebase Ċ import Ġcom . it ach i 1 7 0 6 . app updater . App Update Initializer Ċ import Ġcom . it ach i 1 7 0 6 . app updater .` object `. CA Analytics Ċ import Ġcom . it ach i 1 7 0 6 . app updater . utils . Analytics Helper Ċ import Ġcom . it ach i 1 7 0 6 . helper lib . helpers . Pref Helper Ċ import Ġkotlinx . android . synt hetic . main . activity _ main _ screen .* Ċ Ċ class ĠMain Screen Ġ: ĠAppCompatActivity () Ġ{ ĊĊĠĠĠ Ġprivate Ġvar Ġpopulated List Ġ= ĠArrayList < Selector Object >() ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ ĠsetContentView ( R . layout . activity _ main _ screen ) ĊĊĠĠĠĠĠĠĠ ĠFirebase . crash ly t ics . set Crash ly t ics Collection Enabled (! Build Config . DEBUG ) ĊĊĠĠĠĠĠĠĠ Ġbtn Current . setOnClickListener Ġ{ Ġv Ġ-> Ġthis . startActivity For Result ( Intent ( v . context , ĠCurrent E gg :: class . java ), ĠRC _ CURRENT _ E GG ) Ġ} ĊĊĠĠĠĠĠĠĠ ĠApp Update Initializer ( this , ĠPref Helper . getDefault SharedPreferences ( application Context ), ĠR . mip map . ic _ launcher , ĠCommon Variables . BASE _ SERVER _ URL , Ġtrue ). set Only On Wifi Check ( true ). check For Update () ĊĊĠĠĠĠĠĠĠ Ġval Ġm Firebase Analytics Ġ= ĠFirebase . analytics ĊĠĠĠĠĠĠĠ Ġval Ġhelper Ġ= ĠAnalytics Helper ( this , Ġtrue ) ĊĠĠĠĠĠĠĠ ĠRunnable Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġanalytics Ġ= Ġhelper . data ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( analytics Ġ!= Ġnull ) Ġset Analytics Data ( true , Ġm Firebase Analytics , Ġanalytics ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġset Analytics Data ( false , Ġm Firebase Analytics , Ġnull ) ĊĠĠĠĠĠĠĠ Ġ}. run () ĊĠĠĠĠĠĠĠ Ġm Firebase Analytics . log Event ( Firebase Analytics . Event . APP _ OPEN , Ġnull ) ĊĊĠĠĠĠĠĠĠ ĠPref Helper . handle Default Theme Switch ( Pref Helper . getDefault SharedPreferences ( this ). getString (" app _ theme ", Ġ" battery default ") !! ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Resume () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Resume () ĊĊĠĠĠĠĠĠĠ Ġpopulated List Ġ= ĠArrayList () ĊĠĠĠĠĠĠĠ Ġpopulated List Ġ= ĠPopulate Selector . populate Selectors ( this ) ĊĊĠĠĠĠĠĠĠ Ġval Ġsp Ġ= ĠPref Helper . getDefault SharedPreferences ( this ) ĊĠĠĠĠĠĠĠ Ġval Ġnew Sel Ġ= Ġsp . getBoolean (" check _ version ", Ġfalse ) ĊĊĠĠĠĠĠĠĠ Ġval Ġtmp Adapter Ġ= Ġif Ġ( new Sel ) ĠArray Adapter ( this , Ġandroid . R . layout . simple _ list _ item _ 1 , Ġresources . getString Array ( R . array . legacy _ version _ with _ egg )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse ĠSelector Adapter ( this , ĠR . layout . list view _ selector , Ġpopulated List ) ĊĠĠĠĠĠĠĠ Ġlv E aster E gg Selection . adapter Ġ= Ġtmp Adapter ĊĠĠĠĠĠĠĠ Ġlv E aster E gg Selection . on ItemClickListener Ġ= ĠSelector OnClick ( this ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Activity Result ( request Code : ĠInt , ĠresultCode : ĠInt , Ġdata : ĠIntent ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( request Code Ġ== ĠRC _ CURRENT _ E GG ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( result Code Ġ== ĠRESULT _ C ANCE LED ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtype Ġ= Ġdata ?. getString Extra (" class ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtitle Ġ= Ġdata ?. getString Extra (" title ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbody Ġ= Ġdata ?. getString Extra (" body ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( type ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" no access " Ġ-> Ġunable To Access E aster E gg ( title ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" coming soon " Ġ-> Ġegg Com ing So on () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" we ird " Ġ-> Ġweird ( title , Ġbody ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġno E gg () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġsuper . on Activity Result ( request Code , ĠresultCode , Ġdata ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate Options Menu ( menu : ĠMenu ?): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġmenu Inflater . inflate ( R . menu . menu _ main _ screen , Ġmenu ) ĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Options ItemSelected ( item : ĠMenuItem ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġid Ġ= Ġitem . itemId ĊĠĠĠĠĠĠĠ Ġif Ġ( id Ġ== ĠR . id . action _ settings ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity ( Intent ( this , ĠMain Settings :: class . java )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġsuper . on Options ItemSelected ( item ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġset Analytics Data ( enabled : ĠBoolean , Ġfirebase Analytics : ĠFirebase Analytics , Ġanalytics : ĠCA Analytics ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġfirebase Analytics . setUser Property (" debug _ mode ", Ġif Ġ( enabled ) Ġanalytics ?. isDebug . toString () Ġ+ Ġ"" Ġelse Ġnull ) ĊĠĠĠĠĠĠĠ Ġfirebase Analytics . setUser Property (" device _ manufacturer ", Ġif Ġ( enabled ) Ġanalytics ?. get d Manufacturer () Ġelse Ġnull ) ĊĠĠĠĠĠĠĠ Ġfirebase Analytics . setUser Property (" device _ cod ename ", Ġif Ġ( enabled ) Ġanalytics ?. get d Cod ename () Ġelse Ġnull ) ĊĠĠĠĠĠĠĠ Ġfirebase Analytics . setUser Property (" device _ fingerprint ", Ġif Ġ( enabled ) Ġanalytics ?. get d Fingerprint () Ġelse Ġnull ) ĊĠĠĠĠĠĠĠ Ġfirebase Analytics . setUser Property (" device _ cpu _ abi ", Ġif Ġ( enabled ) Ġanalytics ?. get d CPU () Ġelse Ġnull ) ĊĠĠĠĠĠĠĠ Ġfirebase Analytics . setUser Property (" device _ tags ", Ġif Ġ( enabled ) Ġanalytics ?. get d Tags () Ġelse Ġnull ) ĊĠĠĠĠĠĠĠ Ġfirebase Analytics . setUser Property (" app _ version _ code ", Ġif Ġ( enabled ) Ġanalytics ?. app Ver Code . toString () Ġelse Ġnull ) ĊĠĠĠĠĠĠĠ Ġfirebase Analytics . setUser Property (" android _ sec _ patch ", Ġif Ġ( enabled ) Ġanalytics ?. sdk Patch Ġelse Ġnull ) ĊĠĠĠĠĠĠĠ Ġfirebase Analytics . setUser Property (" Android OS ", Ġif Ġ( enabled ) Ġanalytics ?. sdk ver . toString () Ġelse Ġnull ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġpresent Snackbar ( title : ĠString , Ġaction Text : ĠString , Ġaction Message : ĠString , Ġclose Text : ĠString , Ġhas Negative Btn : ĠBoolean Ġ= Ġfalse , Ġshow AppSettings : ĠBoolean Ġ= Ġfalse ) Ġ{ ĊĠĠĠĠĠĠĠ ĠSn ackbar . make ( findViewById ( android . R . id . content ), Ġtitle , ĠSn ackbar . LENGTH _ LONG ). setAction ( action Text ) Ġ{ Ġv Ġ-> Ġrun Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdialog Ġ= ĠAlertDialog . Builder ( v . context ). setMessage ( action Message ). set Positive Button ( close Text , Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( has Negative Btn ) Ġdialog . set Negative Button (" AW W Ġ: (", Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( show AppSettings ) Ġdialog . set Neutral Button (" App ĠSettings ") Ġ{ Ġ_, Ġ_ Ġ-> ĠstartActivity ( Intent ( this , ĠMain Settings :: class . java )) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdialog . show () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}. show () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġunable To Access E aster E gg ( SDK _ VERSION : ĠString ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġpresent Snackbar (" Unable Ġto Ġlaunch Ġ( INVALID ĠVERSION )", Ġ" W HY ?", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" We Ġare Ġunable Ġto Ġgive Ġyou Ġaccess Ġto Ġthis Ġe aster Ġegg Ġdue Ġto Ġincompatible ĠAndroid ĠVersion . ĠYou Ġrequire Ġat Ġleast ĠAndroid Ġ$ SDK _ VERSION Ġto Ġaccess Ġthis Ġactivity ", Ġ" AW W Ġ: (" ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġweird ( expected : ĠString ?, Ġactual : ĠString ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġpresent Snackbar (" Unable Ġto Ġlaunch Ġ( INVALID ĠVERSION ) "," WAIT ĠWHAT ?", Ġ" We Ġare Ġunable Ġto Ġgive Ġyou Ġaccess Ġto Ġthis Ġe aster Ġegg Ġdue Ġto Ġincompatible ĠAndroid ĠVersion . Ġ" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" You Ġrequire Ġat Ġleast ĠAndroid Ġ$ actual Ġto Ġaccess Ġthis Ġactivity Ġ\ n \ n ĠDev ĠNote : ĠInter esting ly ... Ġthis Ġe aster Ġegg Ġis Ġfor Ġ$ expected , Ġso ĠI 'm Ġconfused . ĠL OL ", Ġ" WAIT ĠW TF ? ĠO . o ", Ġtrue ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġno E gg () Ġ{ ĊĠĠĠĠĠĠĠ Ġpresent Snackbar (" No ĠE g gs Ġfor Ġyou ", Ġ" WAIT ĠWHAT ?", Ġ" E aster ĠE g gs Ġare Ġonly Ġpresent Ġin ĠAndroid Ġfrom ĠAndroid Ġ 2 . 3 ĠG inger bread . Ġ" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Your ĠAndroid ĠVersion Ġis Ġdo Ġnot Ġhave Ġan Ġe aster Ġegg Ġunfortunately Ġ: (", Ġ" AW W Ġ: (" ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġegg Com ing So on () Ġ{ ĊĠĠĠĠĠĠĠ ĠSn ackbar . make ( findViewById ( android . R . id . content ), Ġ" E aster ĠE gg ĠCom ing ĠSo on ", ĠSn ackbar . LENGTH _ SHORT ). setAction (" DIS MIS S ") {}. show () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġlimited Access To E gg ( SDK _ VERSION : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġpresent Snackbar (" Unable Ġto Ġaccess Ġegg Ġ( INVALID ĠVERSION )", Ġ" Get ĠAccess ", Ġ" At Ġyour Ġcurrent Ġversion Ġof ĠAndroid , Ġyou Ġare Ġnot Ġable Ġto Ġexperience Ġthe Ġfull Ġe aster Ġegg . Ġ" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" You Ġrequire ĠAndroid Ġ$ SDK _ VERSION Ġto Ġaccess Ġit Ġfully . Ġ\ n \ n However , Ġif Ġyou Ġwish Ġyou Ġare Ġable Ġto Ġaccess Ġa Ġlimited Ġversion Ġof Ġthe Ġegg Ġby Ġchecking Ġthe Ġ\" Access ĠPartial ĠE gg \" Ġsetting Ġin Ġthe Ġapp Ġsettings ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" AW W Ġ: (", Ġfalse , Ġshow AppSettings Ġ= Ġtrue ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠRC _ CURRENT _ E GG Ġ= Ġ 2 ĊĠĠĠ Ġ} Ċ Ċ }