package Ġcom . fs ck . k 9 . mail . store . imap Ċ Ċ class ĠTest Idle Refresh Manager Ġ: ĠId le Refresh Manager Ġ{ ĊĠĠĠ Ġprivate Ġval Ġtimers Ġ= Ġmutable ListOf < Test Idle Refresh Timer >() ĊĊĠĠĠ Ġ@ Synchron ized ĊĠĠĠ Ġoverride Ġfun Ġstart Timer ( timeout : ĠLong , Ġcallback : Ġ() Ġ-> ĠUnit ): ĠTest Idle Refresh Timer Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠTest Idle Refresh Timer ( timeout , Ġcallback ). also Ġ{ Ġtimer Ġ-> Ġtimers . add ( timer ) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Synchron ized ĊĠĠĠ Ġoverride Ġfun Ġreset Timers () Ġ{ ĊĠĠĠĠĠĠĠ Ġfor Ġ( timer Ġin Ġtimers ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtimer . trigger () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġtimers . clear () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Timeout Value (): ĠLong ? Ġ= Ġtimers . map Ġ{ Ġit . timeout Ġ}. min OrNull () Ċ } Ċ Ċ class ĠTest Idle Refresh Timer ( val Ġtimeout : ĠLong , Ġprivate Ġval Ġcallback : Ġ() Ġ-> ĠUnit ) Ġ: ĠId le Refresh Timer Ġ{ ĊĠĠĠ Ġoverride Ġvar Ġis Waiting : ĠBoolean Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġprivate Ġset ĊĊĠĠĠ Ġ@ Synchron ized ĊĠĠĠ Ġoverride Ġfun Ġcancel () Ġ{ ĊĠĠĠĠĠĠĠ Ġis Waiting Ġ= Ġfalse ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġtrigger () Ġ{ ĊĠĠĠĠĠĠĠ Ġis Waiting Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġcallback () ĊĠĠĠ Ġ} Ċ } Ċ