[Modify]优化首页逻辑
This commit is contained in:
@@ -0,0 +1,62 @@
|
||||
package com.yizhuan.xchat_android_library.common.util;
|
||||
|
||||
import java.util.Calendar;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 防快速点击工具类
|
||||
*/
|
||||
public class LimitClickUtils {
|
||||
private Map<String, OneClick> mClickMap = new HashMap<>();
|
||||
|
||||
public boolean check() {
|
||||
return this.check(null);
|
||||
}
|
||||
|
||||
public boolean check(Object object) {
|
||||
return this.checkForTime(object, OneClick.MIN_CLICK_DELAY_TIME);
|
||||
}
|
||||
|
||||
public boolean checkForTime(Object object, int limitTime) {
|
||||
String flag;
|
||||
if (object == null) {
|
||||
flag = Thread.currentThread().getStackTrace()[2].getMethodName();
|
||||
} else {
|
||||
flag = object.toString();
|
||||
}
|
||||
|
||||
if (this.mClickMap.get(flag) == null) {
|
||||
this.mClickMap.put(flag, new OneClick(limitTime));
|
||||
}
|
||||
return this.mClickMap.get(flag).check();
|
||||
}
|
||||
|
||||
public boolean checkForTime(int limitTime) {
|
||||
return this.checkForTime(null, limitTime);
|
||||
}
|
||||
|
||||
public void destroy() {
|
||||
this.mClickMap.clear();
|
||||
}
|
||||
|
||||
private static class OneClick {
|
||||
public static final int MIN_CLICK_DELAY_TIME = 1000;
|
||||
private long mLastClickTime = 0L;
|
||||
private int mLimitTime;
|
||||
|
||||
public OneClick(int limitTime) {
|
||||
this.mLimitTime = limitTime;
|
||||
}
|
||||
|
||||
public boolean check() {
|
||||
long currentTime = Calendar.getInstance().getTimeInMillis();
|
||||
if (currentTime - this.mLastClickTime > (long) this.mLimitTime) {
|
||||
this.mLastClickTime = currentTime;
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user