package Ġcom . ably . tracking . common Ċ Ċ import Ġcom . ably . tracking . Accuracy Ċ import Ġcom . ably . tracking . Enhanced Location Update Ċ import Ġcom . ably . tracking . Location Update Type Ċ import Ġcom . ably . tracking . Resolution Ċ import Ġcom . google . gson . Gson Ċ import Ġio . ably . lib . types . Message Ċ import Ġio . ably . lib . types . Presence Message Ċ Ċ fun ĠPres ence Message . get Presence Data ( gson : ĠGson ): ĠPres ence Data Ġ= ĊĠĠĠ Ġgson . fromJson ( data Ġas ĠString , ĠPres ence Data Message :: class . java ). to Tracking () Ċ Ċ fun ĠPres ence Data Message . to Tracking (): ĠPres ence Data Ġ= ĊĠĠĠ ĠPres ence Data ( type , Ġresolution ?. to Tracking ()) Ċ Ċ fun ĠPres ence Data . to Message (): ĠPres ence Data Message Ġ= ĊĠĠĠ ĠPres ence Data Message ( type , Ġresolution ?. to Message ()) Ċ Ċ fun ĠResolution Message . to Tracking (): ĠResolution Ġ= ĊĠĠĠ ĠResolution ( accuracy . to Tracking (), Ġdesired Interval , Ġminimum Dis placement ) Ċ Ċ fun ĠResolution . to Message (): ĠResolution Message Ġ= ĊĠĠĠ ĠResolution Message ( accuracy . to Message (), Ġdesired Interval , Ġminimum Dis placement ) Ċ Ċ fun ĠAccuracy Message . to Tracking (): ĠAccuracy Ġ= Ġwhen Ġ( this ) Ġ{ ĊĠĠĠ ĠAccuracy Message . MIN IMUM Ġ-> ĠAccuracy . MIN IMUM ĊĠĠĠ ĠAccuracy Message . LOW Ġ-> ĠAccuracy . LOW ĊĠĠĠ ĠAccuracy Message . BAL ANCED Ġ-> ĠAccuracy . BAL ANCED ĊĠĠĠ ĠAccuracy Message . HIGH Ġ-> ĠAccuracy . HIGH ĊĠĠĠ ĠAccuracy Message . MAXIMUM Ġ-> ĠAccuracy . MAXIMUM Ċ } Ċ Ċ fun ĠAccuracy . to Message (): ĠAccuracy Message Ġ= Ġwhen Ġ( this ) Ġ{ ĊĠĠĠ ĠAccuracy . MIN IMUM Ġ-> ĠAccuracy Message . MIN IMUM ĊĠĠĠ ĠAccuracy . LOW Ġ-> ĠAccuracy Message . LOW ĊĠĠĠ ĠAccuracy . BAL ANCED Ġ-> ĠAccuracy Message . BAL ANCED ĊĠĠĠ ĠAccuracy . HIGH Ġ-> ĠAccuracy Message . HIGH ĊĠĠĠ ĠAccuracy . MAXIMUM Ġ-> ĠAccuracy Message . MAXIMUM Ċ } Ċ Ċ fun ĠEn hanced Location Update . toJson ( gson : ĠGson ): ĠString Ġ= ĊĠĠĠ Ġgson . toJson ( ĊĠĠĠĠĠĠĠ ĠEn hanced Location Update Message ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlocation . to Geo Json (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbattery Level , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġskipped Locations . map Ġ{ Ġit . to Geo Json () Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġintermediate Locations . map Ġ{ Ġit . to Geo Json () Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtype . to Message () ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ) Ċ Ċ fun ĠMessage . get Enhanced Location Update ( gson : ĠGson ): ĠEn hanced Location Update Ġ= ĊĠĠĠ Ġgson . fromJson ( data Ġas ĠString , ĠEn hanced Location Update Message :: class . java ) ĊĠĠĠĠĠĠĠ Ġ. let Ġ{ Ġmessage Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ ĠEn hanced Location Update ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmessage . location . to Location (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmessage . battery Level , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmessage . skipped Locations . map Ġ{ Ġit . to Location () Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmessage . intermediate Locations . map Ġ{ Ġit . to Location () Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmessage . type . to Tracking () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} Ċ Ċ fun ĠLocation Update Type Message . to Tracking (): ĠLocation Update Type Ġ= ĊĠĠĠ Ġwhen Ġ( this ) Ġ{ ĊĠĠĠĠĠĠĠ ĠLocation Update Type Message . PRE DICT ED Ġ-> ĠLocation Update Type . PRE DICT ED ĊĠĠĠĠĠĠĠ ĠLocation Update Type Message . ACT UAL Ġ-> ĠLocation Update Type . ACT UAL ĊĠĠĠ Ġ} Ċ Ċ fun ĠLocation Update Type . to Message (): ĠLocation Update Type Message Ġ= ĊĠĠĠ Ġwhen Ġ( this ) Ġ{ ĊĠĠĠĠĠĠĠ ĠLocation Update Type . PRE DICT ED Ġ-> ĠLocation Update Type Message . PRE DICT ED ĊĠĠĠĠĠĠĠ ĠLocation Update Type . ACT UAL Ġ-> ĠLocation Update Type Message . ACT UAL ĊĠĠĠ Ġ} Ċ