package Ġru . ig la . tf profiler . utils Ċ Ċ import Ġandroid . os . Handler Ċ import Ġandroid . os . Looper Ċ Ċ object ĠClick Timeout Lock Ġ{ ĊĠĠĠ Ġprivate Ġconst Ġval ĠDEFAULT _ TIMEOUT Ġ= Ġ 2 0 0 L ĊĠĠĠ Ġprivate Ġconst Ġval ĠMSG _ LOCK Ġ= Ġ 0 ĊĊĠĠĠ Ġprivate Ġval Ġlock Handler : ĠHandler Ġby Ġlazy Ġ{ ĠHandler ( Looper . get Main Looper ()) Ġ} ĊĊĠĠĠ Ġ@ Synchron ized ĊĠĠĠ Ġfun Ġcan Pro ceed Click (): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( is Locked ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġlock () ĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ get : Synchron ized ĊĠĠĠ Ġval Ġis Locked : ĠBoolean ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġlock Handler . has Messages ( MSG _ LOCK ) ĊĊĠĠĠ Ġ@ Synchron ized ĊĠĠĠ Ġfun Ġlock () Ġ{ ĊĠĠĠĠĠĠĠ Ġlock ( DEFAULT _ TIMEOUT ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Synchron ized ĊĠĠĠ Ġfun Ġlock ( lock Time : ĠLong ) Ġ{ ĊĠĠĠĠĠĠĠ Ġlock Handler . send Empty Message Delayed ( MSG _ LOCK , Ġlock Time ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Synchron ized ĊĠĠĠ Ġfun Ġunlock () Ġ{ ĊĠĠĠĠĠĠĠ Ġlock Handler . remove Messages ( MSG _ LOCK ) ĊĠĠĠ Ġ} Ċ }