package Ġcom . ared r uss . m ang at ana . view Ċ Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . Menu Ċ import Ġandroid . view . MenuItem Ċ import Ġandroidx . appcompat . app . AppCompatActivity Ċ import Ġandroidx . core . view . forEach Ċ import Ġandroidx . fragment . app . Fragment Ċ import Ġandroidx . fragment . app . FragmentManager Ċ import Ġandroidx . fragment . app . Fragment Transaction Ċ import Ġandroidx . lifecycle . lifecycle Scope Ċ import Ġby . kir ich 1 4 0 9 . view binding delegate . view Binding Ċ import Ġcom . ared r uss . m ang at ana . App Ċ import Ġcom . ared r uss . m ang at ana . R Ċ import Ġcom . ared r uss . m ang at ana . data . datastore . Settings DataStore Ċ import Ġcom . ared r uss . m ang at ana . databinding . Activity Main Binding Ċ import Ġcom . ared r uss . m ang at ana . mod o . Scre ens Ċ import Ġcom . ared r uss . m ang at ana . view . extensions . change Theme Ċ import Ġcom . github . ter r ak ok . mod o . android . App Screen Ċ import Ġcom . github . ter r ak ok . mod o . android . Mod o Render Ċ import Ġcom . github . ter r ak ok . mod o . android . init Ċ import Ġcom . github . ter r ak ok . mod o . back Ċ import Ġcom . github . ter r ak ok . mod o . forward Ċ import Ġcom . microsoft . app center . App Center Ċ import Ġcom . microsoft . app center . analytics . Analytics Ċ import Ġcom . microsoft . app center . cr ashes . Cr ashes Ċ import Ġkotlinx . coroutines . flow . first Ċ import Ġorg . k oin . android . ext . android . inject Ċ Ċ class ĠMainActivity Ġ: ĠAppCompatActivity ( R . layout . activity _ main ) Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġbinding : ĠActivity Main Binding Ġby Ġview Binding ( R . id . main _ cl ) ĊĠĠĠ Ġprivate Ġval Ġmodo Ġ= ĠApp . INSTANCE . mod o ĊĠĠĠ Ġprivate Ġval Ġdata Store : ĠSettings DataStore Ġby Ġinject () ĊĊĠĠĠ Ġvar Ġmenu : ĠMenu ? Ġ= Ġnull ĊĊĠĠĠ Ġprivate Ġval Ġmodo Render Ġby Ġlazy Ġ{ ĊĠĠĠĠĠĠĠ Ġobject Ġ: ĠMod o Render ( this @ MainActivity , ĠR . id . main _ host _ fr ) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġsetup Transaction ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfragment Manager : ĠFragment Manager , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtransaction : ĠFragment Transaction , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġscreen : ĠApp Screen , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnew Fragment : ĠFragment ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtransaction . set Custom Animations ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . anim . fragment _ fade _ enter , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . anim . fragment _ fade _ exit , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . anim . fragment _ fade _ enter , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . anim . fragment _ fade _ exit ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmenu ?. forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . isVisible Ġ= Ġscreen Ġ! is ĠS cre ens . About Ġ&& Ġscreen Ġ! is ĠS cre ens . Settings ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsuper . setup Transaction ( fragment Manager , Ġtransaction , Ġscreen , Ġnew Fragment ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġset Theme ( R . style . App Theme ) ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ Ġinit App ( savedInstanceState ) ĊĠĠĠĠĠĠĠ Ġsetup App Center () ĊĠĠĠĠĠĠĠ Ġbinding . apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠsetContentView ( root ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate Options Menu ( menu : ĠMenu ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . menu Ġ= Ġmenu ĊĠĠĠĠĠĠĠ Ġmenu Inflater . inflate ( R . menu . menu _ main , Ġmenu ) ĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Options ItemSelected ( item : ĠMenuItem ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġwhen Ġ( item . itemId ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . action _ about Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmodo . forward ( Scre ens . About ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . action _ settings Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmodo . forward ( Scre ens . Settings ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġsuper . on Options ItemSelected ( item ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Resume () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Resume () ĊĠĠĠĠĠĠĠ Ġmodo . render Ġ= Ġmodo Render ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Pause () Ġ{ ĊĠĠĠĠĠĠĠ Ġmodo . render Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġsuper . on Pause () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Back Pressed () Ġ{ ĊĠĠĠĠĠĠĠ Ġmodo . back () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Support Navigate Up (): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġmodo . back () ĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġinit App ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġlifecycle Scope . launch When Created Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġchange Theme ( data Store . get Ui Mode (). first ()) ĊĠĠĠĠĠĠĠ Ġ}. invoke On Completion Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmodo . init ( savedInstanceState , ĠS cre ens . Home ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġsetup App Center () Ġ{ ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġkey Ġ= Ġresources . getString ( R . string . app center _ key ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠApp Center . start ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġapplication , Ġkey , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAnalytics :: class . java , ĠC ras hes :: class . java ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠC ras hes . setEnabled ( true ) ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠC ras hes . track Error ( e ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ