package Ġcom . hu awei . hack z ur ich Ċ Ċ import Ġandroid . content . Intent Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . Menu Ċ import Ġandroid . view . MenuItem Ċ import Ġandroidx . appcompat . app . AppCompatActivity Ċ import Ġkotlinx . android . synt hetic . main . activity _ main .* Ċ import Ġkotlinx . coroutines . Dispatch ers Ċ import Ġkotlinx . coroutines . with Context Ċ Ċ class ĠMainActivity Ġ: ĠAppCompatActivity () Ġ{ ĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ ĠsetContentView ( R . layout . activity _ main ) ĊĠĠĠĠĠĠĠ Ġ// ĠNote Ġthat Ġthe ĠToolbar Ġdefined Ġin Ġthe Ġlayout Ġhas Ġthe Ġid Ġ" my _ toolbar " ĊĠĠĠĠĠĠĠ Ġset Support ActionBar ( findViewById ( R . id . my _ toolbar )) Ċ Ċ /* ĊĠĠĠĠĠĠĠ Ġval Ġcheck Status TextView Ġ= ĠfindViewById < TextView >( R . id . main _ check ) ĊĊĠĠĠĠĠĠĠ Ġlifecycle . coroutine Scope . launch When Created Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdelay ( 1 0 0 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrun H ms Configuration Check () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcheck Status TextView . text Ġ= ĠgetString ( R . string . checking _ setup _ result _ ok ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( check Exception : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcheck Status TextView . text Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠgetString ( R . string . checking _ setup _ result _ fail , Ġcheck Exception . message ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ċ */ ĊĠĠĠĠĠĠĠ Ġbtn _ auto _ order . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity ( Intent ( this , ĠSw ipe Activity :: class . java )) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġbtn _ better _ me . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity ( Intent ( this , ĠPreference Activity :: class . java )) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġbtn _ show _ me . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity ( Intent ( this , ĠShow Me Activity :: class . java )) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġbtn _ co 2 . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity ( Intent ( this , ĠCO 2 Activity :: class . java )) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġbtn _ points . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity ( Intent ( this , ĠPoints Activity :: class . java )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate Options Menu ( menu : ĠMenu ?): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠInf late Ġthe Ġmenu ; Ġthis Ġadds Ġitems Ġto Ġthe Ġaction Ġbar Ġif Ġit Ġis Ġpresent . ĊĠĠĠĠĠĠĠ Ġmenu Inflater . inflate ( R . menu . menu _ main , Ġmenu ) ĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Options ItemSelected ( item : ĠMenuItem ) Ġ= Ġwhen Ġ( item . itemId ) Ġ{ ĊĠĠĠĠĠĠĠ ĠR . id . action _ settings Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠUser Ġchose Ġthe Ġ" Settings " Ġitem , Ġshow Ġthe Ġapp Ġsettings ĠUI ... ĊĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity ( Intent ( this , ĠPreference Activity :: class . java )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠIf Ġwe Ġgot Ġhere , Ġthe Ġuser 's Ġaction Ġwas Ġnot Ġrecognized . ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠInvoke Ġthe Ġsuperclass Ġto Ġhandle Ġit . ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsuper . on Options ItemSelected ( item ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġsuspend Ġfun Ġrun H ms Configuration Check () Ġ{ ĊĠĠĠĠĠĠĠ Ġtest H ms Core Presence () ĊĠĠĠĠĠĠĠ Ġtest Account By Request ing Push Notifications Token () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġsuspend Ġfun Ġtest Account By Request ing Push Notifications Token () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġpush Token Ġ= Ġwith Context ( Dispatch ers . IO ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠH ms Utils . get Push Notifications Token ( this @ MainActivity ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġcheck ( push Token . isNotEmpty ()) Ġ{ Ġ" Push Ġnotifications Ġtoken Ġretrieved , Ġbut Ġempty . ĠClear Ġapp Ġdata Ġand Ġtry Ġagain ." Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġtest H ms Core Presence () Ġ{ ĊĠĠĠĠĠĠĠ Ġcheck ( H ms Utils . is H ms Available ( this )) Ġ{ Ġ" Please Ġmake Ġsure Ġyou Ġhave ĠH MS ĠCore Ġinstalled Ġon Ġthe Ġtest Ġdevice ." Ġ} ĊĠĠĠ Ġ} Ċ } ĊĊ