package Ġcom . example . quick match . content . match čĊč Ċ import Ġandroid . text . Editable č Ċ import Ġandroidx . lifecycle . LiveData č Ċ import Ġandroidx . lifecycle . Mutable LiveData č Ċ import Ġandroidx . lifecycle . ViewModel č Ċ import Ġcom . example . quick match . content . club . Request Status č Ċ import Ġcom . example . quick match . content . player č Ċ import Ġcom . example . quick match . network .* č Ċ import Ġcom . example . quick match . utils . Format Utils č Ċ import Ġcom . example . quick match . utils . Format Utils . toString Day č Ċ import Ġkotlinx . coroutines . Coroutine Scope č Ċ import Ġkotlinx . coroutines . Dispatch ers č Ċ import Ġkotlinx . coroutines . Job č Ċ import Ġkotlinx . coroutines . launch č Ċ import Ġtim ber . log . Tim ber č Ċ import Ġjava . sql . Timestamp č Ċ import Ġjava . text . SimpleDateFormat č Ċ import Ġjava . util .* čĊč Ċ class ĠMatch Creation Fragment ViewModel Ġ: ĠViewModel () Ġ{ čĊčĊĠĠĠ Ġ/* Ġcounts Ġfor Ġme ets Ġand Ġslots Ġto Ġknow Ġprogress Ġof Ġthe Ġprocess Ġ*/ čĊčĊĠĠĠ Ġprivate Ġval Ġ_ count Me ets Ġ= ĠMutable LiveData ( 0 ) čĊĠĠĠ Ġval Ġcount Me ets Ġ: ĠLive Data < Int > čĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġ_ count Me ets čĊčĊĠĠĠ Ġprivate Ġval Ġ_ count Slots Ġ= ĠMutable LiveData ( 0 ) čĊĠĠĠ Ġval Ġcount Slots Ġ: ĠLive Data < Int > čĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġ_ count Slots čĊčĊĠĠĠ Ġprivate Ġval Ġ_ count Finished Processes Ġ= ĠMutable LiveData ( 0 ) čĊĠĠĠ Ġval Ġcount Finished Processes Ġ: ĠLive Data < Int > čĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġ_ count Finished Processes čĊčĊĠĠĠ Ġprivate Ġval Ġ_ count Inv itations Ġ= ĠMutable LiveData ( 0 ) čĊĠĠĠ Ġval Ġcount Inv itations Ġ: ĠLive Data < Int > čĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġ_ count Inv itations čĊčĊĠĠĠ Ġ/* ĠLive Ġdatas Ġstoring Ġdatabase Ġdatas Ġas Ġobjects Ġ*/ čĊčĊĠĠĠ Ġprivate Ġval Ġ_ club s Ġ= ĠMutable LiveData < List < Club And Player Bel ong Club Object >>() čĊĠĠĠ Ġval Ġclub s Ġ: ĠLive Data < List < Club And Player Bel ong Club Object >> čĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġ_ club s čĊčĊĠĠĠ Ġprivate Ġval Ġ_ club s Names Ġ= ĠMutable LiveData < List < String >>() čĊĠĠĠ Ġval Ġclub s Names Ġ: ĠLive Data < List < String >> čĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġ_ club s Names čĊčĊĠĠĠ Ġprivate Ġval Ġ_ slots Ġ= ĠMutable LiveData < Mutable List < Slot Object >>( mutable ListOf ()) čĊĠĠĠ Ġval Ġslots Ġ: ĠLive Data < Mutable List < Slot Object >> čĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġ_ slots čĊčĊĠĠĠ Ġprivate Ġval Ġ_ new Matches Ġ= ĠMutable LiveData < Mutable List < Me et Object >>( mutable ListOf ()) čĊĠĠĠ Ġval Ġnew Matches Ġ: ĠLive Data < Mutable List < Me et Object >> čĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġ_ new Matches čĊčĊĠĠĠ Ġprivate Ġval Ġ_ players Ġ= ĠMutable LiveData < List < Player And Player Bel ong Club Object >>( listOf ()) čĊĠĠĠ Ġval Ġplayers Ġ: ĠLive Data < List < Player And Player Bel ong Club Object >> čĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġ_ players čĊčĊĠĠĠ Ġval Ġcurrent Day For Slot Ġ= ĠMutable LiveData < String >() čĊčĊĠĠĠ Ġ/* ĠStat uses Ġfor Ġvarious Ġrequests Ġof Ġthis Ġview Ġmodel Ġ*/ čĊčĊĠĠĠ Ġprivate Ġval Ġ_ get Slot Status Ġ= ĠMutable LiveData < Request Status >() čĊĠĠĠ Ġval Ġget Slot Status Ġ: ĠLive Data < Request Status > čĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġ_ get Slot Status čĊčĊĠĠĠ Ġprivate Ġval Ġ_ create Slot Status Ġ= ĠMutable LiveData < Request Status >() čĊĠĠĠ Ġval Ġcreate Slot Status Ġ: ĠLive Data < Request Status > čĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġ_ create Slot Status čĊčĊĠĠĠ Ġprivate Ġval Ġ_ get Club s Status Ġ= ĠMutable LiveData < Request Status >() čĊĠĠĠ Ġval Ġget Club s Status Ġ: ĠLive Data < Request Status > čĊĠĠĠĠĠĠĠ Ġget () Ġ= _ get Club s Status čĊčĊĠĠĠ Ġprivate Ġval Ġ_ get Club s Names Status Ġ= ĠMutable LiveData < Request Status >() čĊĠĠĠ Ġval Ġget Club s Names Status Ġ: ĠLive Data < Request Status > čĊĠĠĠĠĠĠĠ Ġget () Ġ= _ get Club s Names Status čĊčĊĠĠĠ Ġprivate Ġval Ġ_ match Creation Status Ġ= ĠMutable LiveData < Request Status >() čĊĠĠĠ Ġval Ġmatch Creation Status Ġ: ĠLive Data < Request Status > čĊĠĠĠ Ġget () Ġ= Ġ_ match Creation Status čĊčĊĠĠĠ Ġprivate Ġval Ġ_ inv itation Creation Status Ġ= ĠMutable LiveData < Request Status >() čĊĠĠĠ Ġval Ġinv itation Creation Status Ġ: ĠLive Data < Request Status > čĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġ_ inv itation Creation Status čĊčĊĠĠĠ Ġprivate Ġval Ġ_ get Club Players Status Ġ= ĠMutable LiveData < Request Status >() čĊĠĠĠ Ġval Ġget Club Players Status Ġ: ĠLive Data < Request Status > čĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġ_ get Club Players Status čĊčĊĠĠĠ Ġ// ĠCreate Ġcoroutine Ġjob Ġand Ġscope čĊĠĠĠ Ġprivate Ġvar ĠviewModel Job Ġ= ĠJob () čĊčĊĠĠĠ Ġ// ĠUses Ġmain Ġthread Ġco z Ġretrofit Ġworks Ġitself Ġon Ġbackground Ġthreads čĊĠĠĠ Ġprivate Ġval Ġcoroutine Scope Ġ= ĠCor outine Scope ( viewModel Job Ġ+ ĠDispatch ers . Main ) čĊčĊĠĠĠ Ġinit Ġ{ čĊĠĠĠĠĠĠĠ Ġget Possible Club s Names () čĊĠĠĠ Ġ} čĊčĊčĊĠĠĠ Ġfun Ġget Selected Club Players ( club Name : ĠString ) Ġ{ čĊčĊĠĠĠĠĠĠĠ Ġval Ġid Club Ġ= Ġ_ club s . value !!. find Ġ{ Ġclub Ġ-> Ġclub . name Ġ== Ġclub Name Ġ} !!. id Club čĊčĊĠĠĠĠĠĠĠ Ġ_ get Club Players Status . value Ġ= ĠRequest Status . LOADING čĊčĊĠĠĠĠĠĠĠ Ġcoroutine Scope . launch Ġ{ čĊčĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ čĊčĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ_ players . value Ġ= ĠDatabase Api . ret rofit Service . get Club Players ( id Club ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ_ get Club Players Status . value Ġ= ĠRequest Status . DONE čĊčĊč ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( t : ĠThrowable ) Ġ{ čĊčĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTim ber . i ( t . message Ġ+ Ġ" Ġ/ Ġget Selected Club Players () ") čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ_ get Club Players Status . value Ġ= ĠRequest Status . ERROR čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠ Ġ} čĊčĊčĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġ/* Ġget Ġthe Ġplayers ' Ġclub s Ġfrom Ġdatabase Ġ( only Ġthe Ġnames ) Ġ*/ čĊĠĠĠ Ġprivate Ġfun Ġget Possible Club s Names () Ġ{ čĊčĊĠĠĠĠĠĠĠ Ġ_ get Club s Names Status . value Ġ= ĠRequest Status . LOADING čĊĠĠĠĠĠĠĠ Ġcoroutine Scope . launch Ġ{ čĊčĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ čĊčĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ_ club s . value Ġ= ĠDatabase Api . ret rofit Service . getPlayer Club s ( player . id !! ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ_ club s Names . value Ġ= ĠDatabase Api . ret rofit Service . getPlayer Club s ( player . id !! ). map Ġ{ Ġclub Ġ-> Ġclub . name Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ_ get Club s Names Status . value Ġ= ĠRequest Status . DONE čĊčĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch ( t : ĠThrowable ) Ġ{ čĊčĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTim ber . i ( t . message Ġ+ Ġ" Ġ/ Ġget Possible Club s Names () ") čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ_ get Club s Names Status . value Ġ= ĠRequest Status . ERROR čĊčĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠ Ġ} čĊčĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġ/* Ġprocedure Ġcreating Ġmatches Ġfor Ġeach Ġrepet ition Ġday Ġand Ġfor Ġeach Ġrepet ition Ġ*/ čĊĠĠĠ Ġfun Ġprocess Match Creation ( date : ĠCalendar , Ġstart Hour : ĠString , Ġend Hour : ĠString , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmin Size : ĠInt , ĠmaxSize : ĠInt , Ġlocation : ĠString , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrepeat Days : ĠList < Boolean >, Ġrepet itions : ĠInt ) Ġ{ čĊč ĊĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġ 1 .. repeat Days . size ) Ġ{ Ġ// ĠFor Ġeach Ġday Ġof Ġthe Ġweek čĊčĊĠĠĠĠĠĠĠĠĠĠĠ Ġif ( repeat Days [ i - 1 ]) Ġ{ Ġ// ĠIf Ġthe Ġuser Ġwants Ġto Ġrepeat Ġthe Ġmatch čĊčĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( r Ġin Ġ 0 .. re pet itions ) Ġ{ Ġ// ĠRe pe ats Ġit Ġuntil Ġnumber Ġof Ġrepet itions čĊčĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrepet ition Date Ġ= Ġdate . clone () Ġas ĠCalendar čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrepet ition Date . add ( Calendar . DAY _ OF _ YEAR , Ġr Ġ* Ġ 7 Ġ+ Ġi Ġ- Ġdate . get ( Calendar . DAY _ OF _ WEEK )) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcreate Match ( location , Ġrepet ition Date , Ġmin Size , ĠmaxSize ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠ Ġ} čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġ/* Ġprocedure Ġlaunch ing Ġslot Ġcheck Ġfor Ġeach Ġrepeat Ġday Ġ*/ čĊĠĠĠ Ġfun Ġprocess Check Slots ( start Hour : ĠString , Ġend Hour : ĠString , Ġrepeat Days : ĠList < Boolean >) Ġ{ čĊčĊĠĠĠĠĠĠĠ Ġfor ( i Ġin Ġ 1 .. repeat Days . size ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġif ( repeat Days [ i - 1 ]) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcheck Slot ( start Hour , Ġend Hour , ĠtoString Day ( i )) čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠ Ġ} čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġ/* Ġcheck Ġif Ġthe Ġslot Ġwith Ġgiven Ġinformations Ġexists Ġ*/ čĊĠĠĠ Ġprivate Ġfun Ġcheck Slot ( start Hour : ĠString , Ġend Hour : ĠString , Ġday : ĠString ) Ġ{ čĊčĊĠĠĠĠĠĠĠ Ġ_ get Slot Status . value Ġ= ĠRequest Status . LOADING čĊčĊĠĠĠĠĠĠĠ Ġcoroutine Scope . launch Ġ{ čĊčĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ čĊčĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresult Ġ= ĠDatabase Api . ret rofit Service . get Unique Slot ( start Hour , Ġend Hour , Ġday ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ_ slots . value ?. add ( result ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ_ count Slots . value Ġ= Ġ_ count Slots . value ?. plus ( 1 ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ_ get Slot Status . value Ġ= ĠRequest Status . DONE čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTim ber . i (_ slots . value . toString ()) čĊčĊč ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( t : ĠThrowable ) Ġ{ čĊčĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTim ber . i ("% s Ġ/ Ġcheck Slot ()", Ġt . message ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcurrent Day For Slot . value Ġ= Ġday čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ_ get Slot Status . value Ġ= ĠRequest Status . ERROR čĊčĊč ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠ Ġ} čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġ/* Ġcreates Ġ 1 Ġmeet Ġin Ġthe Ġdatabase Ġ*/ čĊĠĠĠ Ġprivate Ġfun Ġcreate Match ( location : ĠString , Ġdate : ĠCalendar , Ġmin Size : ĠInt , ĠmaxSize : ĠInt ) Ġ{ čĊčĊĠĠĠĠĠĠĠ Ġval Ġformatted Date Ġ= ĠTimestamp ( date . time In Millis ). toString () čĊĠĠĠĠĠĠĠ Ġval Ġnew Match Ġ= ĠMe et Object ( 0 , Ġlocation , Ġformatted Date , Ġmin Size , ĠmaxSize , Ġnull , Ġfalse ) čĊčĊĠĠĠĠĠĠĠ Ġ_ match Creation Status . value Ġ= ĠRequest Status . LOADING čĊčĊĠĠĠĠĠĠĠ Ġcoroutine Scope . launch Ġ{ čĊčĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ čĊčĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresult Ġ= ĠDatabase Api . ret rofit Service . create Me et ( new Match ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ_ new Matches . value ?. add ( result ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ_ count Me ets . value Ġ= Ġ_ count Me ets . value ?. plus ( 1 ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ_ match Creation Status . value Ġ= ĠRequest Status . DONE čĊčĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( t : ĠThrowable ) Ġ{ čĊčĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ_ match Creation Status . value Ġ= ĠRequest Status . ERROR čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTim ber . i ("% s Ġ/ Ġcreate Match ()", Ġt . message ) čĊčĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠ Ġ} čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġ/* Ġcreates Ġa Ġnew Ġslot Ġin Ġthe Ġdatabase Ġwith Ġgiven Ġinformations Ġ*/ čĊĠĠĠ Ġfun Ġcreate Slot ( start Hour : ĠString , Ġend Hour : ĠString , Ġday : ĠString ) Ġ{ čĊčĊĠĠĠĠĠĠĠ Ġval Ġnew Slot Ġ= ĠSlot Object ( 0 , Ġstart Hour , Ġend Hour , Ġday ) čĊčĊĠĠĠĠĠĠĠ Ġ_ create Slot Status . value Ġ= ĠRequest Status . LOADING čĊčĊĠĠĠĠĠĠĠ Ġcoroutine Scope . launch Ġ{ čĊčĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ čĊčĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresult Ġ= ĠDatabase Api . ret rofit Service . create Slot ( new Slot ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ_ slots . value ?. add ( result ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ_ count Slots . value Ġ= Ġ_ count Slots . value ?. plus ( 1 ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ_ create Slot Status . value Ġ= ĠRequest Status . DONE čĊčĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( t : ĠThrowable ) Ġ{ čĊčĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTim ber . i ("% s Ġ/ Ġcreate Slot ()", Ġt . message ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ_ create Slot Status . value Ġ= ĠRequest Status . ERROR čĊčĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠ Ġ} čĊčĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġfun Ġsend Inv itations () Ġ{ čĊčĊĠĠĠĠĠĠĠ Ġfor ( player Ġin Ġ_ players . value !! ) Ġ{ čĊčĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( meet Ġin Ġ_ new Matches . value !! ) Ġ{ čĊčĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ/* Ġget Ġthe Ġday Ġof Ġthe Ġweek Ġfor Ġthe Ġmeet Ġday Ġin Ġorder Ġto Ġget Ġthe Ġright Ġslot Ġ*/ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcalendar Date Ġ= ĠCalendar . getInstance () čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdate Formatter Ġ= ĠSimpleDateFormat ( Format Utils . DATE _ FORMAT ) čĊčĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTim ber . i ( meet . date ) čĊčĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġparse able Date Ġ= Ġmeet . date !!. replace (" T ", Ġ" Ġ") čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġparse able Date Ġ= Ġparse able Date . replace (" Z ", Ġ"") čĊčĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ čĊčĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcalendar Date . time Ġ= Ġdate Formatter . parse ( parse able Date ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġday String Ġ= ĠtoString Day ( calendar Date . get ( Calendar . DAY _ OF _ WEEK )) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġslot Ġ= Ġ_ slots . value !!. find Ġ{ Ġslot Ġ-> Ġslot . day Ġ== Ġday String Ġ} čĊčĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcreate Invitation ( slot !!. id , Ġplayer . id Player , Ġmeet . id ) čĊčĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( t : ĠThrowable ) Ġ{ čĊčĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTim ber . i ("% s Ġ/ Ġparse Ġmeet Ġdate ", Ġt . message ) čĊčĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠ Ġ} čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġ/* Ġfunction Ġcreating Ġ 1 Ġinv itation Ġ*/ čĊĠĠĠ Ġprivate Ġfun Ġcreate Invitation ( id Slot : ĠInt , Ġid Player : ĠInt , Ġid Me et : ĠInt ) Ġ{ čĊčĊĠĠĠĠĠĠĠ Ġval Ġnew Invitation Ġ= ĠInv itation Object ( 0 , Ġid Slot , Ġid Player , Ġid Me et , Ġnull , Ġ" Match ") čĊčĊĠĠĠĠĠĠĠ Ġ_ inv itation Creation Status . value Ġ= ĠRequest Status . LOADING čĊčĊĠĠĠĠĠĠĠ Ġcoroutine Scope . launch Ġ{ čĊčĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ čĊčĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDatabase Api . ret rofit Service . create Invitation ( new Invitation ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ_ inv itation Creation Status . value Ġ= ĠRequest Status . DONE čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ_ count Inv itations . value Ġ= Ġcount Inv itations . value ?. plus ( 1 ) čĊčĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( t : ĠThrowable ) Ġ{ čĊčĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTim ber . i ("% s Ġ/ Ġcreate Invitation ()", Ġt . message ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ_ inv itation Creation Status . value Ġ= ĠRequest Status . ERROR čĊčĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠ Ġ} čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġ/* ĠIncrement Ġnumber Ġof Ġfinished Ġpor cesses Ġ*/ čĊčĊĠĠĠ Ġfun Ġfinish A Process () Ġ{ čĊĠĠĠĠĠĠĠ Ġ_ count Finished Processes . value Ġ= Ġ_ count Finished Processes . value ?. plus ( 1 ) čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġ/* Ġreset Ġfunctions Ġfor Ġrequests Ġstatus Ġ*/ čĊčĊĠĠĠ Ġfun Ġreset Get Slot Status () Ġ{ čĊĠĠĠĠĠĠĠ Ġ_ get Slot Status . value Ġ= Ġnull čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġfun Ġreset Create Match Status () Ġ{ čĊĠĠĠĠĠĠĠ Ġ_ match Creation Status . value Ġ= Ġnull čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġfun Ġreset Create Slot Status () Ġ{ čĊĠĠĠĠĠĠĠ Ġ_ create Slot Status . value Ġ= Ġnull čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġfun Ġreset Get Players Status () Ġ{ čĊĠĠĠĠĠĠĠ Ġ_ get Club Players Status . value Ġ= Ġnull čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġfun Ġreset Create Invitation Status () Ġ{ čĊĠĠĠĠĠĠĠ Ġ_ inv itation Creation Status . value Ġ= Ġnull čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġfun Ġreset Counts () Ġ{ čĊĠĠĠĠĠĠĠ Ġ_ count Me ets . value Ġ= Ġ 0 čĊĠĠĠĠĠĠĠ Ġ_ count Slots . value Ġ= Ġ 0 čĊĠĠĠĠĠĠĠ Ġ_ count Finished Processes . value Ġ= Ġ 0 čĊĠĠĠĠĠĠĠ Ġ_ count Inv itations . value Ġ= Ġ 0 čĊĠĠĠ Ġ} čĊčĊč Ċ } čĊ