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