ChooseDNSTypeActivity.java 源代码


package activity.setting;

import android.content.Intent;
import android.os.Bundle;
import android.text.TextUtils;
import android.view.View;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;
import android.widget.Toast;
import base.HiActivity;
import bean.MyCamera;
import com.hichip.campro.R;
import common.ConstantCommand;
import common.HiDataValue;
import common.TitleView;
import java.util.Iterator;
import main.MainActivity;
import utils.DialogUtilsCamHiPro;

public class ChooseDNSTypeActivity extends HiActivity implements View.OnClickListener {
    private String dns1;
    private String dns2;
    private int dns_type;
    EditText et_dns1;
    EditText et_dns2;
    ImageView iv_one;
    ImageView iv_two;
    LinearLayout ll_auto_dns;
    LinearLayout ll_auto_dns_input;
    LinearLayout ll_custom_dns;
    private MyCamera mCamera;
    private int set_dns_type;
    TitleView title;
    TextView tv_application;
    TextView tv_dns;

    @Override
    protected int setLayoutId() {
        return R.layout.activity_choose_dns_type;
    }

    @Override
    protected void init(Bundle bundle) {
        initTitle();
        getIntentData();
        initListener();
    }

    private void getIntentData() {
        Intent intent = getIntent();
        int intExtra = intent.getIntExtra("dns_type", 0);
        this.dns_type = intExtra;
        this.set_dns_type = intExtra;
        this.dns1 = intent.getStringExtra("dns1");
        this.dns2 = intent.getStringExtra("dns2");
        String stringExtra = intent.getStringExtra(HiDataValue.EXTRAS_KEY_UID);
        Iterator<MyCamera> it = HiDataValue.CameraList.iterator();
        while (true) {
            if (!it.hasNext()) {
                break;
            }
            MyCamera next = it.next();
            if (stringExtra != null && stringExtra.equals(next.getUid())) {
                this.mCamera = next;
                break;
            }
        }
        if (this.dns_type == 0) {
            this.iv_one.setVisibility(0);
            this.iv_two.setVisibility(8);
            this.ll_auto_dns_input.setVisibility(8);
            this.tv_dns.setText(this.dns1);
            return;
        }
        this.iv_one.setVisibility(8);
        this.iv_two.setVisibility(0);
        this.ll_auto_dns_input.setVisibility(0);
        this.et_dns1.setText(this.dns1);
        this.et_dns2.setText(this.dns2);
        this.tv_dns.setText(R.string.auto_get_dns);
    }

    private void initListener() {
        this.ll_auto_dns.setOnClickListener(this);
        this.ll_custom_dns.setOnClickListener(this);
        this.tv_application.setOnClickListener(this);
    }

    private void initTitle() {
        this.title.setTitle(getString(R.string.title_set_dns));
        this.title.setButton(0);
        this.title.setNavigationBarButtonListener(new TitleView.NavigationBarButtonListener() {
            @Override
            public final void OnNavigationButtonClick(int i) {
                ChooseDNSTypeActivity.this.lambda$initTitle$0$ChooseDNSTypeActivity(i);
            }
        });
    }

    public void lambda$initTitle$0$ChooseDNSTypeActivity(int i) {
        if (i == 0) {
            finish();
        }
    }

    @Override
    public void onClick(View view) {
        int id = view.getId();
        if (id == R.id.ll_auto_dns) {
            this.set_dns_type = 0;
            this.iv_one.setVisibility(0);
            this.iv_two.setVisibility(8);
            this.ll_auto_dns_input.setVisibility(8);
            return;
        }
        if (id == R.id.ll_custom_dns) {
            this.set_dns_type = 1;
            this.iv_one.setVisibility(8);
            this.iv_two.setVisibility(0);
            this.ll_auto_dns_input.setVisibility(0);
            return;
        }
        if (id != R.id.tv_application) {
            return;
        }
        if (this.set_dns_type == 0) {
            if (this.dns_type == 0) {
                Toast.makeText(this, getString(R.string.setting_success), 0).show();
                finish();
                return;
            } else {
                updateDNS(0, null, null);
                return;
            }
        }
        String trim = this.et_dns1.getText().toString().trim();
        String trim2 = this.et_dns2.getText().toString().trim();
        if ((TextUtils.isEmpty(trim) && TextUtils.isEmpty(trim2)) || ZeroDNS(trim, trim2)) {
            Toast.makeText(this, R.string.set_one_dns, 0).show();
            return;
        }
        if ((!TextUtils.isEmpty(trim) && isNotIp(trim)) || (!TextUtils.isEmpty(trim2) && isNotIp(trim2))) {
            Toast.makeText(this, R.string.dns_error, 0).show();
            return;
        }
        if (TextUtils.isEmpty(trim)) {
            trim = "0.0.0.0";
        }
        if (TextUtils.isEmpty(trim2)) {
            trim2 = "0.0.0.0";
        }
        if (this.dns_type == 1 && this.dns1.equals(trim) && this.dns2.equals(trim2)) {
            Toast.makeText(this, getString(R.string.setting_success), 0).show();
            finish();
        } else {
            updateDNS(1, trim, trim2);
        }
    }

    private boolean ZeroDNS(String str, String str2) {
        String[] split = !TextUtils.isEmpty(str) ? str.split("\\.") : null;
        String[] split2 = TextUtils.isEmpty(str2) ? null : str2.split("\\.");
        boolean z = split == null;
        boolean z2 = split2 == null;
        if (split != null && split.length == 4 && split[0] != null && !split[0].equals("") && Integer.parseInt(split[0]) == 0 && split[1] != null && !split[1].equals("") && Integer.parseInt(split[1]) == 0 && split[2] != null && !split[2].equals("") && Integer.parseInt(split[2]) == 0 && split[3] != null && !split[3].equals("") && Integer.parseInt(split[3]) == 0) {
            z = true;
        }
        if (split2 != null && split2.length == 4 && split2[0] != null && !split2[0].equals("") && Integer.parseInt(split2[0]) == 0 && split2[1] != null && !split2[1].equals("") && Integer.parseInt(split2[1]) == 0 && split2[2] != null && !split2[2].equals("") && Integer.parseInt(split2[2]) == 0 && split2[3] != null && !split2[3].equals("") && Integer.parseInt(split2[3]) == 0) {
            z2 = true;
        }
        return z && z2;
    }

    private void updateDNS(int i, final String str, final String str2) {
        if (i == 0) {
            new DialogUtilsCamHiPro(this).title(getString(R.string.tip_hint)).message(getString(R.string.liteos_modify_stream_restart)).cancelText(getString(R.string.cancel)).sureText(getString(R.string.sure)).setSureOnClickListener(new View.OnClickListener() {
                @Override
                public final void onClick(View view) {
                    ChooseDNSTypeActivity.this.lambda$updateDNS$1$ChooseDNSTypeActivity(str, str2, view);
                }
            }).build().show();
        } else {
            sendIOCtrl(1, str, str2);
        }
    }

    public void lambda$updateDNS$1$ChooseDNSTypeActivity(String str, String str2, View view) {
        sendIOCtrl(0, str, str2);
    }

    private void sendIOCtrl(int i, String str, String str2) {
        String str3 = str;
        String str4 = str2;
        if (str3 != null && !str3.equals("0.0.0.0")) {
            String[] split = str3.split("\\.");
            if (split.length == 4) {
                str3 = ((split[0] == null || split[0].equals("")) ? 0 : Integer.parseInt(split[0])) + "." + ((split[1] == null || split[1].equals("")) ? 0 : Integer.parseInt(split[1])) + "." + ((split[2] == null || split[2].equals("")) ? 0 : Integer.parseInt(split[2])) + "." + ((split[3] == null || split[3].equals("")) ? 0 : Integer.parseInt(split[3]));
            }
        }
        if (str4 != null && !str4.equals("0.0.0.0")) {
            String[] split2 = str4.split("\\.");
            if (split2.length == 4) {
                str4 = ((split2[0] == null || split2[0].equals("")) ? 0 : Integer.parseInt(split2[0])) + "." + ((split2[1] == null || split2[1].equals("")) ? 0 : Integer.parseInt(split2[1])) + "." + ((split2[2] == null || split2[2].equals("")) ? 0 : Integer.parseInt(split2[2])) + "." + ((split2[3] == null || split2[3].equals("")) ? 0 : Integer.parseInt(split2[3]));
            }
        }
        ConstantCommand.HI_P2P_S_DEV_DNS_PARAM hi_p2p_s_dev_dns_param = new ConstantCommand.HI_P2P_S_DEV_DNS_PARAM(new byte[68]);
        if (i == 0) {
            hi_p2p_s_dev_dns_param.u32DnsDynFlag = 0;
            this.mCamera.sendIOCtrl(ConstantCommand.HI_P2P_SET_DEV_DNS_PARAM, hi_p2p_s_dev_dns_param.parseContent());
            this.mCamera.isSystemState = 1;
            Toast.makeText(this, getString(R.string.setting_success), 0).show();
            startActivity(new Intent(this, (Class<?>) MainActivity.class));
        } else {
            hi_p2p_s_dev_dns_param.u32DnsDynFlag = 1;
            if (str3 != null && !TextUtils.isEmpty(str3)) {
                System.arraycopy(str3.getBytes(), 0, hi_p2p_s_dev_dns_param.str_F_DNS_IP, 0, str3.getBytes().length);
            }
            if (str4 != null && !TextUtils.isEmpty(str4)) {
                System.arraycopy(str4.getBytes(), 0, hi_p2p_s_dev_dns_param.str_S_DNS_IP, 0, str4.getBytes().length);
            }
            this.mCamera.sendIOCtrl(ConstantCommand.HI_P2P_SET_DEV_DNS_PARAM, hi_p2p_s_dev_dns_param.parseContent());
            Toast.makeText(this, getString(R.string.setting_success), 0).show();
            setResult(-1);
        }
        finish();
    }

    public boolean isNotIp(String str) {
        int parseInt;
        String[] split = str.split("\\.");
        if (split.length != 4) {
            return true;
        }
        for (String str2 : split) {
            if (str2 == null || TextUtils.isEmpty(str2) || !isNumeric(str2) || (parseInt = Integer.parseInt(str2)) < 0 || parseInt > 255) {
                return true;
            }
        }
        return false;
    }

    public static boolean isNumeric(String str) {
        char charAt;
        int length = str.length();
        do {
            length--;
            if (length < 0) {
                return true;
            }
            charAt = str.charAt(length);
            if (charAt < '0') {
                return false;
            }
        } while (charAt <= '9');
        return false;
    }
}