package Ġcom . example . city iny our po cket . user _ is _ logged _ activities Ċ Ċ import Ġandroid . content . Intent Ċ import Ġandroidx . appcompat . app . AppCompatActivity Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . View Ċ import Ġandroid . widget . Toast Ċ import Ġandroidx . core . widget . do On TextChanged Ċ import Ġandroidx . lifecycle . Observer Ċ import Ġcom . example . city iny our po cket . MainActivity Ċ import Ġcom . example . city iny our po cket . R Ċ import Ġcom . example . city iny our po cket . service . Event Service Ċ import Ġcom . example . city iny our po cket . service . Network Connection Service Ċ import Ġkotlinx . android . synt hetic . main . activity _ choose _ location .* Ċ import Ġkotlinx . coroutines . Dispatch ers Ċ import Ġkotlinx . coroutines . Global Scope Ċ import Ġkotlinx . coroutines . launch ĊĊ Ċ class ĠChoose Location Activity Ġ: ĠAppCompatActivity () Ġ{ ĊĠĠĠ Ġprivate Ġval Ġevent Service : ĠEvent Service Ġ= ĠEvent Service () ĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ ĠsetContentView ( R . layout . activity _ choose _ location ) ĊĠĠĠĠĠĠĠ Ġevent Service . db Init ( this @ Choose Location Activity ) ĊĠĠĠĠĠĠĠ Ġshow Events InThe City . visibility Ġ= ĠView . IN VISIBLE ; ĊĊĠĠĠĠĠĠĠ Ġval ĠuserName : ĠString ? Ġ= Ġintent . getString Extra (" USER _ NAME ") ĊĠĠĠĠĠĠĠ Ġwelcome Message User . text Ġ= Ġ" Hello , Ġ${ userName } !" ĊĠĠĠĠĠĠĠ Ġcity User Input . do On TextChanged Ġ{ Ġtext , Ġstart , Ġbefore , Ġcount Ġ-> ĊĠĠĠĠĠĠĠĠĠĠ Ġhandle City User Input () ĊĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠMainActivity . was Offline Ġ= Ġ! event Service . is Online (); ĊĠĠĠĠĠĠĠ Ġshow Events InThe City . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent ( this @ Choose Location Activity , ĠList With Events Main Page :: class . java ); ĊĠĠĠĠĠĠĠĠĠĠĠ Ġintent . putExtra (" USER _ NAME ", ĠuserName ); ĊĠĠĠĠĠĠĠĠĠĠĠ Ġintent . putExtra (" C ITY ", Ġcity User Input . text . toString ()); ĊĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity ( intent ); ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġnetwork Connection Ġ= ĠNetwork Connection Service ( application Context ); ĊĠĠĠĠĠĠĠ Ġnetwork Connection . observe ( this , ĠObserver Ġ{ Ġis Connected Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif ( isConnected ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif ( MainActivity . was Offline ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġevent Service . perform Server Updates (); ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMainActivity . was Offline Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. makeText ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Device Ġis Ġback Ġonline ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . LENGTH _ LONG ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. show () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse { ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMainActivity . was Offline Ġ= Ġtrue ; ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. makeText ( this , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Device Ġis Ġoffline . ĠSome Ġfeatures Ġwill Ġnot Ġbe Ġavailable ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . LENGTH _ LONG ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. show () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġhandle City User Input (){ ĊĠĠĠĠĠĠĠ Ġval Ġcity Ġ: String Ġ= Ġcity User Input . text . toString () ĊĠĠĠĠĠĠĠ ĠGlobal Scope . launch ( Dispatch ers . Main ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( event Service . city Has Events ( city )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis @ Choose Location Activity . show Events InThe City . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis @ Choose Location Activity . show Events InThe City . visibility Ġ= ĠView . IN VISIBLE ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }