package Ġvill al ob os . die go . x 3 d park Ċ Ċ import Ġandroid . content . Intent Ċ import Ġandroid . support . v 7 . app . AppCompatActivity Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . util . Log Ċ import Ġandroid . view . View Ċ import Ġandroid . widget . Toast Ċ import Ġcom . bump tech . glide . G lide Ċ import Ġcom . github . kit tin un f . fuel . http Get Ċ Ċ import Ġcom . google . android . gms . maps . Camera Update Factory Ċ import Ġcom . google . android . gms . maps . Google Map Ċ import Ġcom . google . android . gms . maps . On Map Ready Callback Ċ import Ġcom . google . android . gms . maps . Support Map Fragment Ċ import Ġcom . google . android . gms . maps . model . LatLng Ċ import Ġcom . google . android . gms . maps . model . Marker Options Ċ import Ġkotlinx . android . synt hetic . main . activity _ spot s _ detail .* Ċ import Ġnl . d ion se gi jn . step per touch . On Step Callback Ċ import Ġnl . d ion se gi jn . step per touch . Step per Touch Ċ import Ġvill al ob os . die go . x 3 d park . Data . Spot Ċ import Ġvill al ob os . die go . x 3 d park . Data . User Ċ Ċ class ĠSpot Detail Activity Ġ: ĠAppCompatActivity (), ĠOn Map Ready Callback Ġ{ ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġm Map : ĠGoogle Map ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġspot : ĠSpot ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġuser : ĠUser ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġestimated Cost : String ĊĠĠĠ Ġprivate Ġvar Ġhours Ġ= Ġ 1 ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ ĠsetContentView ( R . layout . activity _ spot s _ detail ) ĊĠĠĠĠĠĠĠ Ġ// ĠObtain Ġthe ĠSupport Map Fragment Ġand Ġget Ġnotified Ġwhen Ġthe Ġmap Ġis Ġready Ġto Ġbe Ġused . ĊĠĠĠĠĠĠĠ Ġval Ġmap Fragment Ġ= Ġsupport FragmentManager ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. find Fragment ById ( R . id . map ) Ġas ĠSupport Map Fragment ĊĠĠĠĠĠĠĠ Ġmap Fragment . getMap Async ( this ) ĊĊĠĠĠĠĠĠĠ Ġspot Ġ= Ġintent . get Serializable Extra (" spot ") Ġas ĠSpot ĊĠĠĠĠĠĠĠ Ġuser Ġ= Ġintent . get Serializable Extra (" user ") Ġas ĠUser ĊĊĠĠĠĠĠĠĠ Ġbind () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġbind (){ ĊĠĠĠĠĠĠĠ Ġval Ġaddress Ġ= Ġspot . address ĊĠĠĠĠĠĠĠ Ġval Ġfa res Ġ= Ġspot . fa res ĊĠĠĠĠĠĠĠ Ġval Ġaddress S Ġ= Ġ"${ address . street } Ġ${ address . number }" ĊĠĠĠĠĠĠĠ Ġval Ġaddress S Full Ġ= Ġ"$ address S , Ġ${ address . locality }, Ġ${ address . city }" ĊĠĠĠĠĠĠĠ Ġval Ġdistance Ġ= Ġspot . directions . route . leg . distance ĊĠĠĠĠĠĠĠ Ġval Ġduration Ġ= Ġspot . directions . route . leg . duration ĊĠĠĠĠĠĠĠ Ġval Ġdistance S Ġ= Ġ"${ duration . text } Ġ/ Ġ${ distance . text }" ĊĠĠĠĠĠĠĠ Ġval Ġcurrent F are Ġ= Ġ"${ fa res . current } Ġ${ fa res . currency } Ġ/ Ġ${ fa res . rate }" ĊĠĠĠĠĠĠĠ Ġval Ġday F are Ġ= Ġ"${ fa res . day } Ġ${ fa res . currency } Ġ/ Ġ${ fa res . rate }" ĊĠĠĠĠĠĠĠ Ġval Ġaf tern oon F are Ġ= Ġ"${ fa res . af tern oon } Ġ${ fa res . currency } Ġ/ Ġ${ fa res . rate }" ĊĠĠĠĠĠĠĠ Ġval Ġnight F are Ġ= Ġ"${ fa res . night } Ġ${ fa res . currency } Ġ/ Ġ${ fa res . rate }" ĊĊĠĠĠĠĠĠĠ Ġsp ots _ detail _ text _ address _ street . text Ġ= Ġaddress S ĊĠĠĠĠĠĠĠ Ġsp ots _ detail _ text _ address _ full . text Ġ= Ġaddress S Full ĊĠĠĠĠĠĠĠ Ġsp ots _ detail _ text _ score . text Ġ= Ġspot . score ĊĠĠĠĠĠĠĠ Ġsp ots _ detail _ text _ distance . text Ġ= Ġdistance S ĊĠĠĠĠĠĠĠ Ġsp ots _ detail _ text _ f are _ current . text Ġ= Ġcurrent F are ĊĠĠĠĠĠĠĠ Ġsp ots _ detail _ text _ f are _ day . text Ġ= Ġday F are ĊĠĠĠĠĠĠĠ Ġsp ots _ detail _ text _ f are _ af tern oon . text Ġ= Ġaf tern oon F are ĊĠĠĠĠĠĠĠ Ġsp ots _ detail _ text _ f are _ night . text Ġ= Ġnight F are ĊĊĠĠĠĠĠĠĠ ĠG lide . with ( this ). load ( spot . photo ). into ( spot s _ detail _ image _ large ) ĊĠĠĠĠĠĠĠ ĠG lide . with ( this ). load ( spot . photo ). into ( spot s _ detail _ image _ small ) ĊĊĠĠĠĠĠĠĠ Ġestimated Cost Ġ= Ġ"${ getString ( R . string . estimated Cost )} Ġ${ spot . fa res . current } Ġ${ spot . fa res . currency }" ĊĠĠĠĠĠĠĠ Ġreserve _ text _ cost . text Ġ= Ġestimated Cost ĊĊĠĠĠĠĠĠĠ ĠfindViewById < Step per Touch >( R . id . reserve _ step per _ hours ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstep per . set Min ( 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstep per . setValue ( 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstep per . setMax ( 1 6 8 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstep per . add Step Callback ( object Ġ: ĠOn Step Callback Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Step ( value : ĠInt , Ġpositive : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhours Ġ= Ġvalue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġestimated Cost Ġ= Ġ"${ getString ( R . string . estimated Cost )} Ġ${ spot . fa res . current Ġ* Ġvalue } Ġ${ spot . fa res . currency }" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreserve _ text _ cost . text Ġ= Ġestimated Cost ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġ} Ġas ĠStep per Touch ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġoverride Ġfun Ġon Map Ready ( google Map : ĠGoogle Map ) Ġ{ ĊĠĠĠĠĠĠĠ Ġm Map Ġ= Ġgoogle Map ĊĊĠĠĠĠĠĠĠ Ġ// ĠAdd Ġa Ġmarker Ġin ĠSy dn ey Ġand Ġmove Ġthe Ġcamera ĊĠĠĠĠĠĠĠ Ġval Ġmarker Ġ= ĠLat Lng ( spot . coordinates ._ latitude , spot . coordinates ._ longitude ) ĊĠĠĠĠĠĠĠ Ġval Ġaddress Ġ= Ġspot . address ĊĊĠĠĠĠĠĠĠ Ġval Ġmarker Options Ġ= ĠMarker Options () ĊĠĠĠĠĠĠĠ Ġmarker Options . position ( marker ) ĊĠĠĠĠĠĠĠ Ġmarker Options . title ("${ address . street } Ġ${ address . number } Ġ") ĊĊĠĠĠĠĠĠĠ Ġval Ġlocation marker Ġ= Ġm Map . add Marker ( marker Options ) ĊĠĠĠĠĠĠĠ Ġm Map . move Camera ( Camera Update Factory . new LatLng Zoom ( marker , 1 5 f )) ĊĊĠĠĠĠĠĠĠ Ġ// location marker . show Info Window () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġen large Photo ( v : ĠView ){ ĊĠĠĠĠĠĠĠ Ġreserve _ scroll _ reservation . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠ Ġif ( spot s _ detail _ layout _ image . visibility Ġ== ĠView . VISIBLE ){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsp ots _ detail _ layout _ image . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠ Ġ} else { ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsp ots _ detail _ layout _ image . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġon Reserve Spot ( v : View ){ ĊĠĠĠĠĠĠĠ Ġsp ots _ detail _ image _ large . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠ Ġreserve _ scroll _ reservation . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠ Ġsp ots _ detail _ layout _ image . visibility Ġ= ĠView . VISIBLE ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġreserve Spot ( v : ĠView ){ ĊĠĠĠĠĠĠĠ Ġreserve _ button _ reserve . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠ Ġreserve _ progress _ re serving . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠ Ġval Ġurl Ġ= ĠgetString ( R . string . API _ URL ) Ġ+ ĠgetString ( R . string . API _ POST S _ POST _ RESER VE _ SP OT ) ĊĠĠĠĠĠĠĠ Ġurl . http Get ( listOf (" spot " Ġto Ġspot . id ," hours " Ġto Ġhours )). header ( Pair (" authorization ", user . id Token )). response Ġ{ Ġrequest , Ġresponse , Ġresult Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreserve _ progress _ re serving . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreserve _ button _ reserve . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d (" RESER VE ĠRES ", response . toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d (" RESER VE ĠRES U ", result . toString ()) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen ( response . statusCode ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 2 0 0 Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( this ," Reser v ado ", ĠToast . LENGTH _ LONG ). show () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreserve _ fab _ reserve . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent ( this , History Activity :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġintent . putExtra (" user ", user ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity ( intent ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( this ," No Ġse Ġp udo Ġre ser var ", ĠToast . LENGTH _ LONG ). show () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ