package Ġcom . ttp sc . dynamics 3 6 5 field Service . views Ċ Ċ import Ġandroid . content . Intent Ċ import Ġandroid . net . Uri Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . util . Log Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . webkit . Cookie Manager Ċ import Ġandroid . webkit . Cookie Sync Manager Ċ import Ġandroidx . fragment . app . Fragment Ċ import Ġandroidx . lifecycle . ViewModel Provider Ċ import Ġandroidx . navigation . fragment . find Nav Controller Ċ import Ġcom . ttp sc . dynamics 3 6 5 field Service . Android Application Ċ import Ġcom . ttp sc . dynamics 3 6 5 field Service . Build Config Ċ import Ġcom . ttp sc . dynamics 3 6 5 field Service . R Ċ import Ġcom . ttp sc . dynamics 3 6 5 field Service . helpers . extensions . plus Assign Ċ import Ġcom . ttp sc . dynamics 3 6 5 field Service . view models . Main ViewModel Ċ import Ġcom . ttp sc . dynamics 3 6 5 field Service . views . activities . MainActivity Ċ import Ġcom . ttp sc . dynamics 3 6 5 field Service . views . extensions . click s Ċ import Ġcom . ttp sc . dynamics 3 6 5 field Service . views . extensions . viewModel Ċ import Ġio . reactivex . rx java 3 . dis pos ables . Composite Disposable Ċ import Ġio . reactivex . rx java 3 . schedul ers . Schedulers Ċ import Ġkotlinx . android . synt hetic . main . fragment _ main _ menu .* Ċ import Ġjavax . inject . Inject ĊĊ Ċ class ĠMain Menu Fragment Ġ: ĠFragment () Ġ{ ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġdispose Bag : ĠComposite Disposable ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġmain ViewModel : ĠMain ViewModel ĊĊĠĠĠ Ġ@ Inject ĊĠĠĠ Ġlateinit Ġvar ĠviewModel Factory : ĠViewModel Provider . Factory ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ ĠAndroid Application . comp anion App Component ?. inject ( this ) ĊĊĠĠĠĠĠĠĠ Ġmain ViewModel Ġ= ĠviewModel ( viewModel Factory ) Ġ{} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( ĊĠĠĠĠĠĠĠ Ġinflater : ĠLayoutInflater , Ġcontainer : ĠViewGroup ?, ĊĠĠĠĠĠĠĠ ĠsavedInstanceState : ĠBundle ? ĊĠĠĠ Ġ): ĠView ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġinflater . inflate ( R . layout . fragment _ main _ menu , Ġcontainer , Ġfalse ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon View Created ( view : ĠView , ĠsavedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on View Created ( view , ĠsavedInstanceState ) ĊĠĠĠĠĠĠĠ Ġdispose Bag Ġ= ĠComposite Disposable () ĊĊĠĠĠĠĠĠĠ Ġif Ġ( main ViewModel . has UserInfo () Ġ== Ġfalse ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( activity Ġas ĠMainActivity ). show Loading Indicator () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmain ViewModel . set UserInfo () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe ({ userInfo Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠuserData TextView . text Ġ= Ġmain ViewModel . getUser FullName () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( activity Ġas ĠMainActivity ). hide Loading Indicator () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ{ Ġex Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( activity Ġas ĠMainActivity ). hide Loading Indicator () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . e (" USER ĠINFO ĠERROR ", Ġex . message ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠuserData TextView . text Ġ= Ġmain ViewModel . getUser FullName () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġversion . text Ġ= ĠgetString ( R . string . version , ĠBuild Config . VERSION _ NAME ) ĊĊĠĠĠĠĠĠĠ Ġdispose Bag Ġ+= Ġbook ings Button . click s (). subscribe Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfind Nav Controller (). navigate ( R . id . action _ main Menu Fragment _ to _ guides List Fragment ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġdispose Bag Ġ+= Ġopen Icon ics Button . click s (). subscribe Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠTODO ĠThis Ġshould Ġwork Ġand Ġwould Ġbe Ġbetter Ġbut Ġcurrently Ġwe Ġhave Ġno Ġproper ĠICON ICS Ġapp Ġwhich Ġrecogn izes Ġthese Ġdeep Ġlinks Ċ // ĠĠĠĠĠĠĠĠĠĠĠ ĠIntent ( Intent . ACTION _ VIEW ). apply Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdata Ġ= ĠUri . parse (" icon ics app :// icon ics /") Ġ// Ġicon ics app :// icon ics /${ this . props . last Url } Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity ( this ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity ( require Activity (). package Manager . get Launch Intent For Package (" com . icon ics . Android App Hub ")) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . e (" CONTACT ĠEX PER T ", Ġ" Failed Ġto Ġopen ĠICON ICS !", Ġe ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġdispose Bag Ġ+= Ġopen Teams Button . click s (). subscribe Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠTODO ĠThis Ġshould Ġwork Ġand Ġwould Ġbe Ġbetter Ġbut Ġcurrently ĠTeams Ġapp Ġrun Ġthis Ġway Ġcrashes Ċ // ĠĠĠĠĠĠĠĠĠĠĠ ĠIntent ( Intent . ACTION _ VIEW ). apply Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdata Ġ= ĠUri . parse (" m ste ams :// teams . microsoft . com / l /") Ġ// Ġm ste ams :// teams . microsoft . com / l / chat / 0 / 0 ? users = username @ email . com Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity ( this ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity ( require Activity (). package Manager . get Launch Intent For Package (" com . microsoft . teams ")) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . e (" CONTACT ĠEX PER T ", Ġ" Failed Ġto Ġopen ĠMS ĠTeams !", Ġe ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġdispose Bag Ġ+= Ġlogout Button . click s () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. observe On ( Schedulers . io ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmain ViewModel . authorization Manager . sign Out () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCookie Sync Manager . create Instance ( require Context ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcookie Manager : ĠCookie Manager Ġ= ĠCookie Manager . getInstance () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcookie Manager . removeAll Cookie () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfind Nav Controller (). navigate ( R . id . action _ main Menu Fragment _ to _ login Fragment ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Destroy View () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Destroy View () ĊĠĠĠĠĠĠĠ Ġdispose Bag . dispose () ĊĠĠĠ Ġ} Ċ } Ċ