/* Ċ Ġ* ĠDateTime Helper . kt Ċ Ġ* ĠImplements Ġthe ĠDateTime Helper Ġobject Ċ Ġ* ĠA ĠDateTime Helper Ġprovides Ġhelper Ġmethods Ġfor Ġconverting ĠDate Ġand ĠTime Ġobjects Ċ Ġ* Ċ Ġ* ĠThis Ġfile Ġis Ġpart Ġof Ċ Ġ* ĠTR ACK BOOK Ġ- ĠMovement ĠRec order Ġfor ĠAndroid Ċ Ġ* Ċ Ġ* ĠCopyright Ġ( c ) Ġ 2 0 1 6 - 2 0 Ġ- ĠY 2 0 K . org Ċ Ġ* ĠLicensed Ġunder Ġthe ĠMIT - License Ċ Ġ* Ġhttp :// opensource . org / licenses / MIT Ċ Ġ* Ċ Ġ* ĠTrack book Ġuses Ġos md roid Ġ- ĠOpen Street Map - Tools Ġfor ĠAndroid Ċ Ġ* Ġhttps :// github . com / os md roid / os md roid Ċ Ġ*/ ĊĊ Ċ package Ġorg . y 2 0 k . track book . helpers Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . location . Location Ċ import Ġorg . y 2 0 k . track book . Keys Ċ import Ġorg . y 2 0 k . track book . R Ċ import Ġjava . text . DateFormat Ċ import Ġjava . text . SimpleDateFormat Ċ import Ġjava . util .* Ċ import Ġjava . util . concurrent . TimeUnit ĊĊ Ċ /* Ċ Ġ* ĠDateTime Helper Ġobject Ċ Ġ*/ Ċ object ĠDateTime Helper Ġ{ ĊĊĠĠĠ Ġ/* ĠConverts Ġmilliseconds Ġto Ġmm : ss Ġor Ġhh : mm : ss Ġ*/ ĊĠĠĠ Ġfun ĠconvertTo Readable Time ( context : ĠContext , Ġmilliseconds : ĠLong ): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtime String : ĠString ĊĠĠĠĠĠĠĠ Ġval Ġhours : ĠLong Ġ= ĠTimeUnit . MILLISECONDS . to Hours ( milliseconds ) ĊĠĠĠĠĠĠĠ Ġval Ġminutes : ĠLong Ġ= ĠTimeUnit . MILLISECONDS . to Minutes ( milliseconds ) Ġ% ĠTimeUnit . HOUR S . to Minutes ( 1 ) ĊĠĠĠĠĠĠĠ Ġval Ġseconds : ĠLong Ġ= ĠTimeUnit . MILLISECONDS . to Seconds ( milliseconds ) Ġ% ĠTimeUnit . MIN UTES . to Seconds ( 1 ) ĊĠĠĠĠĠĠĠ Ġval Ġh : ĠString Ġ= Ġcontext . getString ( R . string . abbre viation _ hours ) ĊĠĠĠĠĠĠĠ Ġval Ġm : ĠString Ġ= Ġcontext . getString ( R . string . abbre viation _ minutes ) ĊĠĠĠĠĠĠĠ Ġval Ġs : ĠString Ġ= Ġcontext . getString ( R . string . abbre viation _ seconds ) ĊĊĠĠĠĠĠĠĠ Ġwhen Ġ( milliseconds Ġ>= ĠKeys . ONE _ HOUR _ IN _ MILLISECONDS ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠCASE : Ġformat Ġhh : mm : ss ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtrue Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtime String Ġ= Ġ"$ hours Ġ$ h Ġ$ minutes Ġ$ m Ġ$ seconds Ġ$ s " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠCASE : Ġformat Ġmm : ss ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfalse Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtime String Ġ= Ġ"$ minutes Ġ$ m Ġ$ seconds Ġ$ s " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġtime String ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġ/* ĠCreate Ġsortable Ġstring Ġfor Ġdate Ġ- Ġused Ġfor Ġfilenames Ġ Ġ*/ ĊĠĠĠ Ġfun ĠconvertTo Sortable DateString ( date : ĠDate ): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġval ĠdateFormat : ĠSimpleDateFormat Ġ= ĠSimpleDateFormat (" yyyy - MM - dd - HH - mm - ss - SS S ", ĠLocale . US ) ĊĠĠĠĠĠĠĠ Ġreturn ĠdateFormat . format ( date ) ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġ/* ĠCreates Ġa Ġreadable Ġstring Ġfor Ġdate Ġ- Ġused Ġin Ġthe ĠUI Ġ*/ ĊĠĠĠ Ġfun ĠconvertTo Readable Date ( date : ĠDate , Ġdate Style : ĠInt Ġ= ĠDate Format . LONG ): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠDate Format . getDate Instance ( date Style , ĠLocale . getDefault ()). format ( date ) ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġ/* ĠCreates Ġa Ġreadable Ġstring Ġdate Ġand Ġtime Ġ- Ġused Ġin Ġthe ĠUI Ġ*/ ĊĠĠĠ Ġfun ĠconvertTo Readable Date And Time ( date : ĠDate , Ġdate Style : ĠInt Ġ= ĠDate Format . SHORT , Ġtime Style : ĠInt Ġ= ĠDate Format . SHORT ): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġ"${ DateFormat . getDate Instance ( date Style , ĠLocale . getDefault ()). format ( date )} Ġ${ DateFormat . getTime Instance ( time Style , ĠLocale . getDefault ()). format ( date )}" ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġ/* ĠCalculates Ġtime Ġdifference Ġbetween Ġtwo Ġlocations Ġ*/ ĊĠĠĠ Ġfun Ġcalculate Time Distance ( previous Location : ĠLocation ?, Ġlocation : ĠLocation ): ĠLong Ġ Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġtime Difference : ĠLong Ġ= Ġ 0 L ĊĠĠĠĠĠĠĠ Ġ// Ġtwo Ġdata Ġpoints Ġneeded Ġto Ġcalculate Ġtime Ġdifference ĊĠĠĠĠĠĠĠ Ġif Ġ( previous Location Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġget Ġtime Ġdifference ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtime Difference Ġ= Ġlocation . time Ġ- Ġprevious Location . time ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġtime Difference ĊĠĠĠ Ġ} ĊĊ Ċ }