package Ġsoftware . ting le . utils Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . SharedPreferences Ċ import Ġandroid . text . TextUtils Ċ import Ġandroid . text . format . Date Utils Ċ import Ġandroid . util . Log Ċ import Ġandroidx . preference . Preference Manager Ċ Ċ class ĠC aching Utils Ġ{ ĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĊĠĠĠĠĠĠĠ Ġprivate Ġval ĠTAG Ġ= ĠC aching Utils :: class . java . simple Name ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠP REF _ ACCESS _ TOKEN Ġ= Ġ" access _ token _" ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠP REF _ ACCESS _ TOKEN _ EXPI RY Ġ= Ġ" access _ token _ expiry _" ĊĊĠĠĠĠĠĠĠ Ġprivate Ġfun Ġget SharedPreferences ( context : ĠContext ): ĠSharedPreferences Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠPreference Manager . getDefault SharedPreferences ( context ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġprivate Ġfun Ġcreate Preferences Editor ( context : ĠContext ): ĠSharedPreferences . Editor Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġget SharedPreferences ( context ). edit () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĊĠĠĠĠĠĠĠ Ġfun Ġget AccessToken ( context : ĠContext ): ĠString ? Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsp Ġ= Ġget SharedPreferences ( context ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġsp . getString ( PRE F _ ACCESS _ TOKEN , Ġnull ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġset AccessToken ( context : ĠContext , ĠaccessToken : ĠString ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d ( TAG , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Access Ġtoken Ġof Ġlength Ġ${ if Ġ( TextUtils . isEmpty ( accessToken )) Ġ 0 Ġelse ĠaccessToken . length }" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġcreate Preferences Editor ( context ). putString ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠP REF _ ACCESS _ TOKEN , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠaccessToken ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ). commit () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġset AccessToken Expiry ( context : ĠContext , ĠaccessToken Expiry : ĠInt ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġexpires In _ ms Ġ= ĠaccessToken Expiry Ġ* ĠDate Utils . SECOND _ IN _ M ILL IS ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġexpires At Ġ= ĠSystem . currentTimeMillis () Ġ+ Ġexpires In _ ms Ġ- Ġ 1 0 Ġ* ĠDate Utils . SECOND _ IN _ M ILL IS ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . v ( TAG , Ġ" Access ĠToken ĠExp iry : Ġ$ expires At ") ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġcreate Preferences Editor ( context ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. put Long ( PRE F _ ACCESS _ TOKEN _ EXPI RY , Ġexpires At ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. commit () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġget AccessToken Expiry ( context : ĠContext ): ĠLong Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsp Ġ= Ġget SharedPreferences ( context ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġsp . getLong ( PRE F _ ACCESS _ TOKEN _ EXPI RY , Ġ 0 ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġhas AccessToken Expired ( context : ĠContext ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġnow Ġ= ĠSystem . currentTimeMillis () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġexpires Ġ= Ġget AccessToken Expiry ( context ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d ( TAG , Ġ" Expiry Ġcompared Ġbetween Ġnow =$ now Ġexpires =$ expires ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġnow Ġ>= Ġexpires ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }