package Ġorg . sky f aced . w opi . utils Ċ Ċ import Ġandroid . os . System Clock Ċ import Ġandroid . view . View Ċ import Ġjava . util .* Ċ import Ġkotlin . math . abs Ċ Ċ /** Ċ Ġ* ĠThanks Ġto Ġ@ g no e mes Ċ Ġ* Ġhttps :// github . com / g no e mes / Sh ik im ori - App - Rem aster ed / blob / dev / app / src / main / java / com / g no e mes / sh ik im ori / utils / widgets / De bounc ed OnClickListener . java Ċ Ġ*/ Ċ Ċ /** Ċ Ġ* ĠA ĠDe bounc ed ĠOn ClickListener Ċ Ġ* ĠReject s Ġclicks Ġthat Ġare Ġtoo Ġclose Ġtogether Ġin Ġtime . Ċ Ġ* ĠThis Ġclass Ġis Ġsafe Ġto Ġuse Ġas Ġan ĠOn ClickListener Ġfor Ġmultiple Ġviews , Ġand Ġwill Ġdebounce Ġeach Ġone Ġseparately . Ċ Ġ* Ċ Ġ* ĠThe Ġone Ġand Ġonly Ġconstructor Ċ Ġ* Ġ@ param Ġminimum Interval ĠThe Ġminimum Ġallowed Ġtime Ġbetween Ġclicks Ġ- Ġany Ġclick Ġsoon er Ġthan Ġthis Ġafter Ġa Ġprevious Ġclick Ġwill Ġbe Ġrejected Ċ Ġ*/ Ċ abstract Ġclass ĠDe bounc ed OnClickListener Ġconstructor ( private Ġval Ġminimum Interval : ĠLong ) Ġ: ĊĠĠĠ ĠView . OnClickListener Ġ{ ĊĠĠĠ Ġprivate Ġval Ġlast Click Map : ĠMutable Map < View , ĠLong > Ġ= ĠWeak HashMap () ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠImplement Ġthis Ġin Ġyour Ġsubclass Ġinstead Ġof ĠonClick ĊĠĠĠĠ Ġ* Ġ@ param Ġv ĠThe Ġview Ġthat Ġwas Ġclicked ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġabstract Ġfun Ġon De bounc ed Click ( v : ĠView ?) ĊĊĠĠĠ Ġoverride Ġfun ĠonClick ( clicked View : ĠView ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġprevious Click Timestamp Ġ= Ġlast Click Map [ clicked View ] ĊĠĠĠĠĠĠĠ Ġval Ġcurrent Timestamp Ġ= ĠSystem Clock . uptime Millis () ĊĊĠĠĠĠĠĠĠ Ġlast Click Map [ clicked View ] Ġ= Ġcurrent Timestamp ĊĠĠĠĠĠĠĠ Ġif Ġ( previous Click Timestamp Ġ== Ġnull Ġ|| Ġabs ( current Timestamp Ġ- Ġprevious Click Timestamp ) Ġ> Ġminimum Interval ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon De bounc ed Click ( clicked View ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }