导航菜单

页面标题

页面副标题

КЛ£ v1.0.0 - NetWorkManager.java 源代码

正在查看: КЛ£ v1.0.0 应用的 NetWorkManager.java JAVA 源代码文件

本页面展示 JAVA 反编译生成的源代码文件,支持语法高亮显示。 仅供安全研究与技术分析使用,严禁用于任何非法用途。请遵守相关法律法规。


package im.pggrnmxjgs.network;

import android.util.Log;
import com.app.protect.AppProtectManager;
import com.csm.shield.FunctionPointer;
import com.csm.shield.GameShield;
import com.king.zxing.util.LogUtils;
import im.pggrnmxjgs.messenger.AndroidUtilities;
import im.pggrnmxjgs.messenger.ApplicationLoader;
import im.pggrnmxjgs.messenger.FileLog;
import im.pggrnmxjgs.messenger.NotificationCenter;
import im.pggrnmxjgs.messenger.UserConfig;
import im.pggrnmxjgs.network.DohNet;
import im.pggrnmxjgs.network.DotNet;
import im.pggrnmxjgs.network.NetWorkManager;
import im.pggrnmxjgs.network.OSSNet;
import im.pggrnmxjgs.tgnet.ConnectionsManager;
import im.pggrnmxjgs.tgnet.NetBean;
import im.pggrnmxjgs.ui.utils.AesUtils;
import java.util.ArrayList;

public class NetWorkManager {
    private static NetWorkManager instance;
    public ArrayList<NetBean> connInfos = new ArrayList<>();
    private DotNet dotNet = new DotNet();
    private DohNet dohNet = new DohNet();
    private OSSNet ossNet = new OSSNet();
    protected int currentAccount = UserConfig.selectedAccount;
    private String ymStr = "server 1";
    private boolean isInitB = false;
    private boolean isInitA = false;
    private int connectPort = NetworkConstant.APORT;
    private boolean isConnecting = false;
    private ArrayList<NetBean> dotList = new ArrayList<>();
    private boolean isGetDotIng = false;
    private ArrayList<NetBean> dohList = new ArrayList<>();
    private boolean isGetDohIng = false;
    private ArrayList<NetBean> ossList = new ArrayList<>();
    private boolean isGetOssIng = false;

    public static synchronized NetWorkManager getInstance() {
        NetWorkManager netWorkManager;
        synchronized (NetWorkManager.class) {
            if (instance == null) {
                instance = new NetWorkManager();
            }
            netWorkManager = instance;
        }
        return netWorkManager;
    }

    public void initNetWork() {
        Log.d("bond", "网络数据初始化");
        setServer2("server 0");
        connectsNet(this.currentAccount);
    }

    public void setServer2(final String str) {
        AndroidUtilities.runOnUIThread(new Runnable() {
            @Override
            public final void run() {
                NotificationCenter.getInstance(0).postNotificationName(NotificationCenter.getBackupIpStatus, str);
            }
        });
    }

    public void restartApplication() {
        this.isInitA = false;
        connectsNet(this.currentAccount);
    }

    private void connectsNet2(int currentAccount) {
        if (!this.isInitB) {
            GameShield.sdkInitEx(NetworkConstant.BKEY, new FunctionPointer() {
                public final void Run(int i) {
                    NetWorkManager.this.lambda$connectsNet2$1$NetWorkManager(i);
                }
            });
        }
        for (int i = 0; i < 3; i++) {
            ConnectionsManager.getInstance(i).setAddress(currentAccount, "127.0.0.1", getGameShieldConfig());
        }
    }

    public void lambda$connectsNet2$1$NetWorkManager(int status) {
        FileLog.d("游戏盾初始化 完成initExGame---> " + status);
        boolean z = status == 0;
        this.isInitB = z;
        setServer2(z ? "server 2" : "server 1");
        Log.d("bond", "游戏盾初始化 = " + status);
    }

    private int getGameShieldConfig() {
        int listenPort = GameShield.getListenPort(NetworkConstant.BPORT);
        Log.d("bond", "游戏盾端口 = " + listenPort);
        if (listenPort <= 0) {
            return NetworkConstant.BPORT;
        }
        return listenPort;
    }

    private void connectsNet(int currentAccount) {
        if (!this.isInitA) {
            String start = AppProtectManager.init(ApplicationLoader.applicationContext, NetworkConstant.AKEY, "Tsss", String.valueOf(NetworkConstant.APORT));
            String[] ports = start.split(",");
            this.isInitA = ports.length >= 2;
            if (ports.length > 0 && Integer.parseInt(ports[ports.length - 1]) > 1) {
                this.connectPort = Integer.parseInt(ports[ports.length - 1]);
            }
            setServer2(this.isInitA ? "server 2" : "server 1");
            Log.d("bond", "connectsNet = " + start);
        }
        for (int i = 0; i < 3; i++) {
            ConnectionsManager.getInstance(i).setAddress(currentAccount, "127.0.0.1", this.connectPort);
        }
    }

    public void reassignIP() {
        boolean isreass = AppProtectManager.reassignIP();
        if (!isreass) {
            int test = AppProtectManager.testActivity();
            if (test > 0) {
                restartApplication();
            }
        }
    }

    public void conenctNetWork(ArrayList<NetBean> list) {
        Log.d("bond", "网络节点连接");
        this.connInfos.addAll(list);
        if (this.isConnecting) {
            return;
        }
        applyDatacenterAddress(this.currentAccount, false);
    }

    public void applyDatacenterAddress(int currentAccount, boolean isDel) {
        connectsNet(currentAccount);
    }

    private void initDot() {
        Log.d("bond", "初始化dot  isGetDotIng = " + this.isGetDotIng);
        if (this.isGetDotIng) {
            return;
        }
        this.isGetDotIng = true;
        this.dotNet.sendDoTRequest(new AnonymousClass1());
    }

    class AnonymousClass1 implements DotNet.DotCallback {
        AnonymousClass1() {
        }

        @Override
        public void onSuccess(final ArrayList<NetBean> data) {
            AndroidUtilities.runOnUIThread(new Runnable() {
                @Override
                public final void run() {
                    NetWorkManager.AnonymousClass1.this.lambda$onSuccess$0$NetWorkManager$1(data);
                }
            });
            NetWorkManager.this.isGetDotIng = false;
        }

        public void lambda$onSuccess$0$NetWorkManager$1(ArrayList data) {
            NetWorkManager.this.dotList.clear();
            NetWorkManager.this.dotList.addAll(data);
            NetWorkManager.this.setServer2(NetWorkManager.this.ymStr + "+dot");
            NetWorkManager netWorkManager = NetWorkManager.this;
            netWorkManager.conenctNetWork(netWorkManager.dotList);
        }

        @Override
        public void onFail(String msg) {
            NetWorkManager.this.isGetDotIng = false;
        }
    }

    private void initDOH() {
        Log.d("bond", "初始化doh  isGetDohIng = " + this.isGetDohIng);
        if (this.isGetDohIng) {
            return;
        }
        this.isGetDohIng = true;
        this.dohNet.sendDohRequest(new AnonymousClass2());
    }

    class AnonymousClass2 implements DohNet.DohCallback {
        AnonymousClass2() {
        }

        @Override
        public void onSuccess(final DOHBean bean) {
            AndroidUtilities.runOnUIThread(new Runnable() {
                @Override
                public final void run() {
                    NetWorkManager.AnonymousClass2.this.lambda$onSuccess$0$NetWorkManager$2(bean);
                }
            });
            NetWorkManager.this.isGetDohIng = false;
        }

        public void lambda$onSuccess$0$NetWorkManager$2(DOHBean bean) {
            NetWorkManager.this.dohList.clear();
            if (bean != null && bean.getAnswer() != null) {
                for (int i = 0; i < bean.getAnswer().size(); i++) {
                    String ipAddress = bean.getAnswer().get(i).getData();
                    NetBean netBean = new NetBean(null, ipAddress, NetworkConstant.PORT);
                    NetWorkManager.this.dohList.add(netBean);
                    Log.d("bond", "doh IP====" + i + "====" + ipAddress);
                }
                NetWorkManager.this.setServer2(NetWorkManager.this.ymStr + "+doh");
                NetWorkManager netWorkManager = NetWorkManager.this;
                netWorkManager.conenctNetWork(netWorkManager.dohList);
            }
        }

        @Override
        public void onFail() {
            NetWorkManager.this.isGetDohIng = false;
        }
    }

    private void initOss() {
        Log.d("bond", "初始化oss  isGetOssIng = " + this.isGetOssIng);
        if (this.isGetOssIng) {
            return;
        }
        this.ossNet.initOssNet(new AnonymousClass3());
    }

    class AnonymousClass3 implements OSSNet.OSSCallback {
        AnonymousClass3() {
        }

        @Override
        public void onSuccess(final String text) {
            AndroidUtilities.runOnUIThread(new Runnable() {
                @Override
                public final void run() {
                    NetWorkManager.AnonymousClass3.this.lambda$onSuccess$0$NetWorkManager$3(text);
                }
            });
            NetWorkManager.this.isGetOssIng = false;
        }

        public void lambda$onSuccess$0$NetWorkManager$3(String text) {
            NetWorkManager.this.ossList.clear();
            try {
                byte[] rets = AesUtils.decryptYunceng(text);
                String retStr = new String(rets);
                LogUtils.e("oss获取成功====" + retStr);
                Log.d("bond", "oss获取成功====" + retStr);
                String[] arrConn = retStr.split(",", 3);
                for (int i = 0; i < arrConn.length; i++) {
                    String connInfo = arrConn[i];
                    if (i != arrConn.length - 1) {
                        String[] split = connInfo.split(":", 2);
                        NetBean netBean = new NetBean(null, split[0], split[1]);
                        NetWorkManager.this.ossList.add(netBean);
                    } else {
                        String[] split2 = connInfo.split("#", 3);
                        NetBean netBean2 = new NetBean(split2[0], split2[1], split2[2]);
                        NetWorkManager.this.ossList.add(netBean2);
                    }
                }
                NetWorkManager.this.setServer2(NetWorkManager.this.ymStr + "+oss");
                NetWorkManager.this.conenctNetWork(NetWorkManager.this.ossList);
            } catch (Exception e) {
                Log.d("bond", "oss解密失败====");
            }
        }

        @Override
        public void onFail() {
            NetWorkManager.this.isGetOssIng = false;
        }
    }
}