package Ġcom . dark rock stud ios . apps . fast track . data Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . preference . Preference Manager Ċ import Ġkotlinx . datetime . Clock Ċ import Ġkotlinx . datetime . Instant Ċ import Ġkotlin . time . Duration Ċ import Ġkotlin . time . Experimental Time Ċ Ċ class ĠFast Utils ( app Context : ĠContext ) Ċ { Ċ ĉ private Ġval Ġstorage Ġ= ĠPreference Manager . getDefault SharedPreferences ( app Context ) ĊĊ ĉ fun Ġis Fast ing (): ĠBoolean Ċ ĉ { Ċĉ ĉ val Ġfast Start Ġ= Ġstorage . getLong ( Data . KEY _ FAST _ START , Ġ- 1 ) Ċĉ ĉ val Ġfast End Ġ= Ġstorage . getLong ( Data . KEY _ FAST _ END , Ġ- 1 ) Ċĉ ĉ return Ġfast Start Ġ!= Ġ- 1 L Ġ&& Ġfast End Ġ== Ġ- 1 L Ċ ĉ } ĊĊ ĉ fun Ġget Fast Start (): ĠInstant ? Ċ ĉ { Ċĉ ĉ val Ġm ills Ġ= Ġstorage . getLong ( Data . KEY _ FAST _ START , Ġ- 1 ) Ċĉ ĉ return Ġif ( m ills Ġ> Ġ- 1 ) Ċĉ ĉ { Ċĉĉ ĉ Instant . from Epoch Milliseconds ( m ills ) Ċĉ ĉ } Ċĉ ĉ else Ċĉ ĉ { Ċĉĉ ĉ null Ċĉ ĉ } Ċ ĉ } ĊĊ ĉ fun Ġget Fast End (): ĠInstant ? Ċ ĉ { Ċĉ ĉ val Ġm ills Ġ= Ġstorage . getLong ( Data . KEY _ FAST _ END , Ġ- 1 ) Ċĉ ĉ return Ġif ( m ills Ġ> Ġ- 1 ) Ċĉ ĉ { Ċĉĉ ĉ Instant . from Epoch Milliseconds ( m ills ) Ċĉ ĉ } Ċĉ ĉ else Ċĉ ĉ { Ċĉĉ ĉ null Ċĉ ĉ } Ċ ĉ } ĊĊ ĉ @ Experimental Time Ċ ĉ fun Ġget Elapsed Fast Time (): ĠDuration Ċ ĉ { Ċĉ ĉ val Ġstart Ġ= Ġget Fast Start () Ċĉ ĉ val Ġend Ġ= Ġget Fast End () Ċĉ ĉ return Ġif ( start Ġ!= Ġnull ) Ċĉ ĉ { Ċĉĉ ĉ end ?. minus ( start ) Ġ?: ĠClock . System . now (). minus ( start ) Ċĉ ĉ } Ċĉ ĉ else Ċĉ ĉ { Ċĉĉ ĉ Duration . ZERO Ċĉ ĉ } Ċ ĉ } Ċ }