[Modify]优化首页逻辑

This commit is contained in:
wushaocheng
2022-12-29 17:34:37 +08:00
parent 4152086e29
commit c64bb4d249
8 changed files with 228 additions and 42 deletions

View File

@@ -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;
}
}
}