NetCapture v2.1.82021972349版本的 MD5 值为:dfbd8054127041af5d65fa43eaf2e1d0

以下内容为反编译后的 ProxyConfig.java 源代码,内容仅作参考


package com.minhui.vpn;

import android.content.Context;
import com.minhui.vpn.greenDao.DaoSession;
import com.minhui.vpn.greenDao.SessionHelper;
import com.minhui.vpn.service.CaptureVpnService;
import com.minhui.vpn.upload.UpLoadConfig;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

public class ProxyConfig {
    public static final ProxyConfig Instance = new ProxyConfig();
    Boolean autoUpload;
    private String clientIP;
    private DaoSession mDaoSession;
    int mMtu;
    String mSessionName;
    private String pgName;
    private ArrayList<String> selectHosts;
    private ArrayList<String> selectIps;
    private String selectPG;
    private boolean sendToDesktop;
    UpLoadConfig upLoadConfig;
    private List<VpnStatusListener> mVpnStatusListeners = new ArrayList();
    private boolean autoMatchHost = true;
    private boolean isSaveUdp = false;
    private boolean mVerifyUID = true;
    private boolean mSaveData = true;
    private boolean mUseSSL = true;

    public interface VpnStatusListener {
        void onVpnEnd(Context context);

        void onVpnStart(Context context);
    }

    public boolean isSaveData() {
        return this.mSaveData;
    }

    public boolean isUseSSL() {
        return this.mUseSSL;
    }

    public void setClientIP(String str) {
        this.clientIP = str;
    }

    public String getClientIP() {
        return this.clientIP;
    }

    public void setSendToDesktop(boolean z) {
        this.sendToDesktop = z;
    }

    public boolean isSendToDesktop() {
        return this.sendToDesktop;
    }

    public void setUpLoadConfig(UpLoadConfig upLoadConfig) {
        this.upLoadConfig = upLoadConfig;
    }

    public UpLoadConfig getUpLoadConfig() {
        return this.upLoadConfig;
    }

    public Boolean getAutoUpload() {
        return this.autoUpload;
    }

    public void setAutoUpload(Boolean bool) {
        this.autoUpload = bool;
    }

    public List<String> getSelectIps() {
        ArrayList<String> arrayList = this.selectIps;
        if (arrayList == null) {
            return null;
        }
        return Collections.unmodifiableList(arrayList);
    }

    public List<String> getSelectHosts() {
        ArrayList<String> arrayList = this.selectHosts;
        if (arrayList == null) {
            return null;
        }
        return Collections.unmodifiableList(arrayList);
    }

    public String getSelectPG() {
        return this.selectPG;
    }

    public void setSelectIps(ArrayList<String> arrayList) {
        this.selectIps = arrayList;
    }

    public void setSelectHosts(ArrayList<String> arrayList) {
        this.selectHosts = arrayList;
    }

    public void setSelectPG(String str) {
        this.selectPG = str;
    }

    public void setVerifyUID(boolean z) {
        this.mVerifyUID = z;
    }

    private ProxyConfig() {
    }

    public String getSessionName() {
        if (this.mSessionName == null) {
            this.mSessionName = "Easy Firewall";
        }
        return this.mSessionName;
    }

    public int getMTU() {
        int i = this.mMtu;
        if (i <= 1400 || i > 20000) {
            return 20000;
        }
        return i;
    }

    public void registerVpnStatusListener(VpnStatusListener vpnStatusListener) {
        this.mVpnStatusListeners.add(vpnStatusListener);
    }

    public void unregisterVpnStatusListener(VpnStatusListener vpnStatusListener) {
        this.mVpnStatusListeners.remove(vpnStatusListener);
    }

    public void onVpnStart(Context context) {
        int size = this.mVpnStatusListeners.size();
        VpnStatusListener[] vpnStatusListenerArr = new VpnStatusListener[size];
        this.mVpnStatusListeners.toArray(vpnStatusListenerArr);
        for (int i = 0; i < size; i++) {
            vpnStatusListenerArr[i].onVpnStart(context);
        }
        this.mDaoSession = SessionHelper.getDaoSession(context, SessionHelper.getDbName(CaptureVpnService.lastVpnStartTimeFormat));
    }

    public DaoSession getCurrentDaoSession() {
        return this.mDaoSession;
    }

    public void onVpnEnd(Context context) {
        int size = this.mVpnStatusListeners.size();
        VpnStatusListener[] vpnStatusListenerArr = new VpnStatusListener[size];
        this.mVpnStatusListeners.toArray(vpnStatusListenerArr);
        for (int i = 0; i < size; i++) {
            vpnStatusListenerArr[i].onVpnEnd(context);
        }
    }

    public IPAddress getDefaultLocalIP() {
        return new IPAddress("10.8.0.2", 32);
    }

    public void setAutoMatchHost(boolean z) {
        this.autoMatchHost = z;
    }

    public boolean isAutoMatchHost() {
        return this.autoMatchHost;
    }

    public boolean isSaveUdp() {
        return this.isSaveUdp;
    }

    public void setSaveUdp(boolean z) {
        this.isSaveUdp = z;
    }

    public String getPGName() {
        if (this.pgName == null && VpnServiceHelper.getContext() != null) {
            this.pgName = VpnServiceHelper.getContext().getPackageName();
        }
        return this.pgName;
    }

    public boolean verifyUID() {
        return this.mVerifyUID;
    }

    public static class IPAddress {
        public final String Address;
        public final int PrefixLength;

        public IPAddress(String str, int i) {
            this.Address = str;
            this.PrefixLength = i;
        }

        public IPAddress(String str) {
            String[] split = str.split("/");
            String str2 = split[0];
            int parseInt = split.length > 1 ? Integer.parseInt(split[1]) : 32;
            this.Address = str2;
            this.PrefixLength = parseInt;
        }

        public boolean equals(Object obj) {
            if (obj == null || !(obj instanceof IPAddress)) {
                return false;
            }
            return toString().equals(obj.toString());
        }

        public String toString() {
            return String.format("%s/%d", this.Address, Integer.valueOf(this.PrefixLength));
        }
    }
}