FOTA v.0.9.2.7版本的 MD5 值为:2305fdf4520259063967289da5df0dc6

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


package com.incall.apps.softmanager.mvvm.view;

import android.widget.Toast;
import com.incall.apps.softmanager.R;
import com.incall.apps.softmanager.base.BaseFragment;
import com.incall.apps.softmanager.base.DataBindingConfig;
import com.incall.apps.softmanager.util.AppExecutors;
import com.incall.apps.softmanager.util.log.LogUtil;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
public class FactoryConnectFragment extends BaseFragment {
    private static final String TAG = "FactoryConnectFragment";

    public static class IPDefine {
        public static final String C2_M_MCU = "172.16.13.28";
        public static final String C2_M_OS = "172.16.13.26";
        public static final String EDC_MCU = "172.16.13.53";
        public static final String EDC_QNX = "172.16.13.51";
        public static final String TBOX = "172.16.13.54";
        public static final String VIU_FL = "172.16.13.22";
        public static final String VIU_FR = "172.16.13.21";
        public static final String VIU_R = "172.16.13.23";
    }

    @Override
    protected void initViewModel() {
    }

    @Override
    protected DataBindingConfig getDataBindingConfig() {
        return new DataBindingConfig(R.layout.fragment_factory_connect, null).addBindingParam(3, new ClickProxy());
    }

    public class ClickProxy {
        public ClickProxy() {
        }

        public void pingIp(final String ip) {
            AppExecutors.getInstance().io().execute(new Runnable() {
                @Override
                public void run() {
                    LogUtil.i(FactoryConnectFragment.TAG, "pingIp: ip = " + ip);
                    final boolean success = FactoryConnectFragment.isNetworkOnline(ip);
                    AppExecutors.getInstance().main().execute(new Runnable() {
                        @Override
                        public void run() {
                            if (success) {
                                Toast.makeText(FactoryConnectFragment.this.mActivity, ip + "可以ping通", 0).show();
                            } else {
                                Toast.makeText(FactoryConnectFragment.this.mActivity, ip + "无法ping通", 0).show();
                            }
                        }
                    });
                }
            });
        }
    }

    public static boolean isNetworkOnline(String ip) {
        Runtime runtime = Runtime.getRuntime();
        Process ipProcess = null;
        try {
            try {
                ipProcess = runtime.exec("ping -c 1 -w 4 " + ip);
                InputStream input = ipProcess.getInputStream();
                BufferedReader in = new BufferedReader(new InputStreamReader(input));
                StringBuffer stringBuffer = new StringBuffer();
                while (true) {
                    String content = in.readLine();
                    if (content == null) {
                        break;
                    }
                    stringBuffer.append(content);
                }
                int exitValue = ipProcess.waitFor();
                if (exitValue == 0) {
                    if (ipProcess != null) {
                        ipProcess.destroy();
                    }
                    runtime.gc();
                    return true;
                } else if (stringBuffer.indexOf("100% packet loss") != -1) {
                    if (ipProcess != null) {
                        ipProcess.destroy();
                    }
                    runtime.gc();
                    return false;
                } else {
                    if (ipProcess != null) {
                        ipProcess.destroy();
                    }
                    runtime.gc();
                    return true;
                }
            } catch (IOException | InterruptedException e) {
                e.printStackTrace();
                if (ipProcess != null) {
                    ipProcess.destroy();
                }
                runtime.gc();
                return false;
            }
        } catch (Throwable th) {
            if (ipProcess != null) {
                ipProcess.destroy();
            }
            runtime.gc();
            throw th;
        }
    }
}