All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.sunyuan.click.debounce.utils.ConfigUtil Maven / Gradle / Ivy

package com.sunyuan.click.debounce.utils;

import com.sunyuan.click.debounce.entity.MethodEntity;

import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
import java.util.Set;

/**
 * author : Sy007
 * date   : 2020/11/29
 * desc   :
 * version: 1.0
 */
public class ConfigUtil {
    /**
     * 配置插桩的方法信息
     */
    public static final Map sConfigHookMethods = new HashMap<>();

    /**
     * 用于判断当前扫描的类是否是插桩接口的直接或间接子类
     */
    public static final Set sInterfaceSet = new HashSet<>();

    static {
        sConfigHookMethods.put("onClick(Landroid/view/View;)V", new MethodEntity(
                "onClick",
                "(Landroid/view/View;)V",
                "android/view/View$OnClickListener"));
    }


    //其他实例方法插入的字节码
    public static final String sOwner = "com/sunyuan/debounce/lib/DebounceCheck";
    public static final String sInitName = "";
    public static final String sInitDesc = "()V";
    public static final String sFieldName = "$$debounceCheck";
    public static final String sFieldDesc = "Lcom/sunyuan/debounce/lib/DebounceCheck;";
    public static final String sMethodName = "isDebounce";
    public static final String sMethodDesc = "()Z";

    //静态Lambda方法插入的字节码
    public static final String sStaticLambdaOwner = "com/sunyuan/debounce/lib/DebounceCheck";
    public static final String sStaticLambdaName = "DEBOUNCE_CHECK_INSTANCE";
    public static final String sStaticLambdaDesc = "Lcom/sunyuan/debounce/lib/DebounceCheck;";

    //用于在ASM访问类信息时判断是否需要修改类中指定变量的值
    //这里修改的是DebounceCheck#IS_DEBUG和DebounceCheckCHECK_TIME
    //具体修改的值由build.gradle中配置指定
    public static final String sIsDebugFieldName = "sDebug";
    public static final String sDebounceCheckTimeFieldName = "sCheckTime";

    //根据build.gradle中配置的参数,动态修改DebounceCheck中IS_DEBUG和CHECK_TIME的值
    public static Boolean sDebug = false;
    public static Long sDebounceCheckTime = 1000L;
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy