package Ġcom . ray w ender lich . android . run tracking Ċ Ċ import Ġandroid . location . Location Ċ import Ġandroidx . room . Column Info Ċ import Ġandroidx . room . Entity Ċ import Ġandroidx . room . PrimaryKey Ċ import Ġcom . google . android . gms . maps . model . LatLng Ċ import Ġkotlin . math . pow Ċ import Ġkotlin . math . sqrt Ċ Ċ @ Entity Ċ data Ġclass ĠTracking Entity ( ĊĠĠĠ Ġ@ PrimaryKey Ġval Ġtimestamp : ĠLong , ĊĠĠĠ Ġ@ Column Info Ġval Ġlatitude : ĠDouble , ĊĠĠĠ Ġ@ Column Info Ġval Ġlongitude : ĠDouble Ċ ) Ġ{ ĊĠĠĠ Ġ// Ġ 4 . ĠThe Ġdistance Ġin Ġmeter Ġbetween Ġthe Ġcurrent ĠTracking ĠEntity Ġand Ġthe Ġprevious Ġone Ġin Ġthe ĠRoom Ġdatabase ĊĠĠĠ Ġ@ Column Info Ġvar Ġdistance Travel led Ġ= Ġ 0 f ĊĊĠĠĠ Ġ// Ġ 5 ĊĠĠĠ Ġfun Ġas LatLng () Ġ= ĠLat Lng ( latitude , Ġlongitude ) ĊĊĠĠĠ Ġ// Ġ 6 ĊĠĠĠ Ġfun Ġdistance To ( new Tracking Entity : ĠTracking Entity ): ĠFloat Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġlocation A Ġ= ĠLocation (" Previous ĠLocation ") ĊĠĠĠĠĠĠĠ Ġlocation A . latitude Ġ= Ġlatitude ĊĠĠĠĠĠĠĠ Ġlocation A . longitude Ġ= Ġlongitude ĊĊĠĠĠĠĠĠĠ Ġval Ġlocation B Ġ= ĠLocation (" New ĠLocation ") ĊĠĠĠĠĠĠĠ Ġlocation B . latitude Ġ= Ġnew Tracking Entity . latitude ĊĠĠĠĠĠĠĠ Ġlocation B . longitude Ġ= Ġnew Tracking Entity . longitude ĊĊĠĠĠĠĠĠĠ Ġval Ġdistance In Meter Ġ= Ġlocation A . distance To ( location B ) ĊĠĠĠĠĠĠĠ Ġreturn Ġdistance In Meter ĊĠĠĠ Ġ} Ċ } Ċ