package Ġcom . gh 0 u 1 l 5 . wechat magic ian . backend . storage . cache Ċ Ċ import Ġde . rob v . android . x posed . X posed Helpers . getLong Field Ċ import Ġkotlin . concurrent . timer Ċ Ċ // ĠMessage Cache Ġrecords Ġthe Ġrecent Ġmessages Ġreceived Ġfrom Ġfriends . Ċ object ĠMessage Cache Ġ: ĠBase Cache < Long , ĠAny >() Ġ{ ĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠClean Ġcache Ġfor Ġevery Ġ 1 0 Ġminutes ĊĠĠĠĠĠĠĠ Ġtimer ( period Ġ= Ġ 1 0 Ġ* Ġ 6 0 Ġ* Ġ 1 0 0 0 ) Ġ{ Ġclear () Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// Ġclear Ġremoves Ġall Ġthe Ġmessages Ġreceived Ġmore Ġthan Ġ 2 Ġminutes Ġago . ĊĠĠĠ Ġ// ĠNOTE : ĠOne Ġcannot Ġrecall Ġthe Ġremoved Ġmessages Ġbecause ĠWe chat Ġhave ĊĠĠĠ Ġ// ĠĠĠĠĠĠ Ġtime Ġlimit Ġon Ġrecall ing Ġmessages . ĊĠĠĠ Ġprivate Ġfun Ġclear () Ġ{ ĊĠĠĠĠĠĠĠ Ġdata . forEach Ġ{ Ġentry Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠcreateTime Ġ= Ġget Long Field ( entry . value , Ġ" field _ create Time ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( System . currentTimeMillis () Ġ- ĠcreateTime Ġ> Ġ 1 2 0 0 0 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdata . remove ( entry . key ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ