package Ġme . j sche ah . ch rist s meal . booking Ċ Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . support . v 4 . app . Fragment Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . widget . Toast Ċ import Ġme . j sche ah . ch rist s meal . R Ċ import Ġme . j sche ah . ch rist s meal . data . models . Booking Ċ import Ġkotlinx . android . synt hetic . main . fragment _ booking _ info .* Ċ import Ġkotlinx . coroutines . experimental . Job Ċ import Ġkotlinx . coroutines . experimental . android . UI Ċ import Ġkotlinx . coroutines . experimental . launch Ċ import Ġme . j sche ah . ch rist s meal . data . Network Ċ import Ġkotlin . properties . Deleg ates Ċ Ċ class ĠBook ing Detail Fragment Ġ: ĠFragment () Ġ{ ĊĊĠĠĠ Ġprivate Ġvar Ġm Booking Ġby ĠDeleg ates . notNull < Booking >() ĊĠĠĠ Ġprivate Ġvar Ġrefresh Job : ĠJob ?= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġmenu Text : ĠString ? Ġ= Ġnull ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( in flater : ĠLayoutInflater , Ġcontainer : ĠViewGroup ?, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠsavedInstanceState : ĠBundle ?): ĠView ? Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġroot View Ġ= Ġinflater . inflate ( R . layout . fragment _ booking _ info , Ġcontainer , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġm Booking Ġ= Ġarguments . get Parcelable ( ARG _ DATA ) ĊĠĠĠĠĠĠĠ Ġreturn Ġroot View ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon View Created ( view : ĠView ?, ĠsavedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on View Created ( view , ĠsavedInstanceState ) ĊĠĠĠĠĠĠĠ Ġif Ġ( savedInstanceState Ġ!= Ġnull Ġ&& ĠsavedInstanceState . containsKey ( STATE _ MENU )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbooking _ menu . text Ġ= ĠsavedInstanceState . getString ( STATE _ MENU ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġwith ( m Booking ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbooking _ book ed . text Ġ= Ġbook ed ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbooking _ event . text Ġ= Ġdesc ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( message . isNotBlank ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbooking _ message . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbooking _ message . text Ġ= Ġmessage ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbooking _ spaces . text Ġ= Ġ"$ spaces Ġ($ guest s ĠGuest s ĠAllowed )" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbooking _ time . text Ġ= Ġif Ġ( raw Time . isBlank ()) Ġ" Not ĠSpec ified " Ġelse Ġraw Time ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Activity Created ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Activity Created ( savedInstanceState ) ĊĠĠĠĠĠĠĠ Ġif Ġ( savedInstanceState Ġ== Ġnull Ġ|| ĠsavedInstanceState . containsKey ( STATE _ MENU )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrefresh Data () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Destroy () Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠCancel Ġrefresh Ġjob Ġif Ġit 's Ġrunning ĊĠĠĠĠĠĠĠ Ġif Ġ( refresh Job Ġ!= Ġnull Ġ&& Ġrefresh Job !!. isActive ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrefresh Job !!. cancel () ĊĠĠĠĠĠĠĠ Ġsuper . on Destroy () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Save InstanceState ( out State : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Save InstanceState ( out State ) ĊĠĠĠĠĠĠĠ Ġif Ġ( menu Text Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġout State ?. putString ( STATE _ MENU , Ġmenu Text ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġrefresh Data () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( refresh Job Ġ!= Ġnull Ġ&& Ġrefresh Job !!. isActive ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġrefresh Job Ġ= Ġlaunch ( UI ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmenu Ġ= ĠNetwork . get Menu ( m Booking . id ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmenu Text Ġ= Ġmenu ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbooking _ menu . text Ġ= Ġmenu ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( e ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠNetwork . Login FailedException , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠNetwork . Network ErrorException Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( this @ Booking Detail Fragment . context , ĠR . string . network _ fail , ĠToast . LENGTH _ SHORT ). show () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn @ launch ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġthrow Ġe ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġval ĠSTATE _ MENU Ġ= Ġ" state : menu " ĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠThe Ġfragment Ġargument Ġrepresenting Ġthe Ġbooking Ġdata Ġfor Ġthis Ġfragment ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġprivate Ġval ĠARG _ DATA Ġ= Ġ" booking _ data " ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠReturns Ġa Ġnew Ġinstance Ġof Ġthis Ġfragment Ġfor Ġthe Ġgiven Ġsection ĊĠĠĠĠĠĠĠĠ Ġ* Ġnumber . ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġfun Ġnew Instance ( data : ĠBook ing ): ĠBook ing Detail Fragment Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfragment Ġ= ĠBook ing Detail Fragment () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġargs Ġ= ĠBundle () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġargs . put Parcelable ( ARG _ DATA , Ġdata ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfragment . arguments Ġ= Ġargs ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġfragment ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }