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