AddCameraActivity.java 源代码


package activity.addCamera;

import android.content.Intent;
import android.os.Build;
import android.os.Bundle;
import android.text.InputFilter;
import android.text.TextUtils;
import android.view.View;
import android.widget.EditText;
import android.widget.LinearLayout;
import android.widget.TextView;
import base.HiActivity;
import bean.MyCamera;
import com.hichip.base.HiLog;
import com.hichip.campro.R;
import com.hichip.sdk.HiChipSDK;
import com.hichip.tools.HiLitosSDK;
import com.xiaomi.mipush.sdk.Constants;
import common.A2bigA;
import common.Constant;
import common.HiDataValue;
import common.TitleView;
import main.MainActivity;
import main.NVR.adapter.NVRListBean;
import org.greenrobot.eventbus.EventBus;
import utils.DialogUtilsCamHiPro;
import utils.EmojiFilter;
import utils.FullCharUnionFilter;
import utils.HiLogcatUtil;
import utils.HiTools;
import utils.MyToast;
import utils.NotCopyAndPaste;
import utils.SharePreUtils;
import utils.SystemUtils;
import zbar.QRZXBScanActivity;

public class AddCameraActivity extends HiActivity implements View.OnClickListener {
    private static final int MY_PERMISSION_REQUEST_CODE = 10004;
    private static final int REQUESTCODE_LANSEARCHUID = 111;
    private static final int REQUESTCODE_SCANGETUID = 110;
    private static final int REQUEST_SCANNIN_GREQUEST_CODE = 1;
    private MyCamera camera;
    EditText et_add_camera_password;
    EditText et_add_camera_uid;
    EditText et_add_camera_username;
    LinearLayout ll_add_camera_password;
    LinearLayout ll_scan_getuid;
    LinearLayout ll_search_getuid;
    private String mUid;
    TitleView titleview;
    TextView tv_confirm_add;
    TextView tv_hint_get_uid;
    private int mType = 0;
    private boolean isApMode = false;
    private HiLitosSDK hiLitosSDK = null;

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

    @Override
    protected void init(Bundle bundle) {
        getIntentData();
        initView();
        setListerners();
    }

    private void getIntentData() {
        this.mType = getIntent().getIntExtra("type", 0);
        this.isApMode = getIntent().getBooleanExtra("isApMode", false);
        String stringExtra = getIntent().getStringExtra(HiDataValue.EXTRAS_KEY_UID);
        if (!TextUtils.isEmpty(stringExtra)) {
            this.et_add_camera_uid.setText(stringExtra);
        }
        Bundle extras = getIntent().getExtras();
        if (extras != null) {
            this.mUid = extras.getString(HiDataValue.EXTRAS_KEY_UID);
        }
    }

    private void setListerners() {
        this.ll_scan_getuid.setOnClickListener(this);
        this.ll_search_getuid.setOnClickListener(this);
        this.tv_confirm_add.setOnClickListener(this);
    }

    private void initView() {
        this.titleview.setButton(0);
        this.titleview.setRightTxtBack(R.mipmap.x_bule);
        this.titleview.setTitle(getString(R.string.add_device));
        this.titleview.setNavigationBarButtonListener(new TitleView.NavigationBarButtonListener() {
            @Override
            public void OnNavigationButtonClick(int i) {
                if (i == 0) {
                    AddCameraActivity.this.finish();
                } else {
                    if (i != 2) {
                        return;
                    }
                    AddCameraActivity.this.startActivity(new Intent(AddCameraActivity.this, (Class<?>) MainActivity.class), true);
                }
            }
        });
        this.et_add_camera_password.setCustomSelectionActionModeCallback(new NotCopyAndPaste());
        this.et_add_camera_password.setFilters(new InputFilter[]{new InputFilter.LengthFilter(63), new FullCharUnionFilter(this), new EmojiFilter()});
        this.et_add_camera_username.setCustomSelectionActionModeCallback(new NotCopyAndPaste());
        this.et_add_camera_username.setFilters(new InputFilter[]{new InputFilter.LengthFilter(63), new FullCharUnionFilter(this), new EmojiFilter()});
        this.et_add_camera_uid.setTransformationMethod(new A2bigA());
        if (!TextUtils.isEmpty(this.mUid)) {
            this.et_add_camera_uid.setText(this.mUid);
            this.et_add_camera_uid.setEnabled(false);
        }
        int i = this.mType;
        if (i == 1 || i == 2 || i == 4 || i == 400 || i == 8) {
            if (i != 400) {
                this.ll_scan_getuid.setVisibility(8);
                this.tv_hint_get_uid.setVisibility(8);
            }
            this.ll_search_getuid.setVisibility(8);
            this.ll_scan_getuid.setVisibility(8);
            this.tv_hint_get_uid.setVisibility(8);
        }
        if (this.mType == 101) {
            this.ll_add_camera_password.setVisibility(8);
        }
    }

    @Override
    public void onClick(View view) {
        switch (view.getId()) {
            case R.id.ll_scan_getuid:
                if (HiTools.isCustomFastClick(500)) {
                    return;
                }
                Intent intent = new Intent(this, (Class<?>) QRZXBScanActivity.class);
                int i = this.mType;
                if (i == 400) {
                    intent.putExtra("category", 400);
                } else if (i == 101) {
                    intent.putExtra("category", 101);
                } else {
                    intent.putExtra("category", 3);
                }
                startActivityForResult(intent, 110);
                return;
            case R.id.ll_search_getuid:
                if (HiTools.isCustomFastClick(500)) {
                    return;
                }
                HiLog.e("" + HiDataValue.mHi_wifiConnect_Q);
                if (HiTools.isWifiConnected(this) || HiDataValue.mHi_wifiConnect_Q.length() > 0) {
                    Intent intent2 = new Intent(this, (Class<?>) LANSearchCameraActivity.class);
                    intent2.putExtra("type", 3);
                    int i2 = this.mType;
                    if (101 == i2) {
                        intent2.putExtra("type", i2);
                    }
                    startActivityForResult(intent2, 111);
                    return;
                }
                MyToast.showToast(this, getString(R.string.toast_connect_wifi));
                return;
            case R.id.tv_confirm_add:
                chickDone();
                return;
            default:
                return;
        }
    }

    private void chickDone() {
        String upperCase = this.et_add_camera_uid.getText().toString().trim().toUpperCase();
        String obj = this.et_add_camera_username.getText().toString();
        String trim = this.et_add_camera_password.getText().toString().trim();
        for (int i = 0; i < HiDataValue.zifu.length; i++) {
            if (upperCase.contains(HiDataValue.zifu[i])) {
                MyToast.showToast(this, getString(R.string.tips_invalid_uid));
                return;
            }
        }
        if (TextUtils.isEmpty(upperCase)) {
            showAlert(getText(R.string.tips_null_uid));
            return;
        }
        String handUid = HiTools.handUid(upperCase);
        if (handUid == null) {
            MyToast.showToast(this, getString(R.string.tips_invalid_uid));
            return;
        }
        if (obj.length() == 0) {
            MyToast.showToast(this, getString(R.string.tips_null_username));
            return;
        }
        if (obj.getBytes().length > 64) {
            MyToast.showToast(this, getString(R.string.tips_username_tolong));
            return;
        }
        if (trim.getBytes().length > 64) {
            MyToast.showToast(this, getString(R.string.tips_password_tolong));
            return;
        }
        if (HiDataValue.CameraList != null && HiDataValue.CameraList.size() >= 64) {
            MyToast.showToast(this, getString(R.string.tips_limit_add_camera));
            return;
        }
        if (this.mType == 400) {
            if (HiTools.isOtherLiteosDev(handUid)) {
                new DialogUtilsCamHiPro(this).title(getText(R.string.tip_reminder)).message(getText(R.string.tips_choose_battery_wifi_type)).cancelText(getString(R.string.got_it)).setCancelable(false).setCanceledOnTouchOutside(false).setCancelOnClickListener(new View.OnClickListener() {
                    @Override
                    public final void onClick(View view) {
                        AddCameraActivity.this.lambda$chickDone$0$AddCameraActivity(view);
                    }
                }).build().show();
                return;
            } else if (HiTools.isNVRDev(handUid)) {
                new DialogUtilsCamHiPro(this).title(getText(R.string.tip_reminder)).message(getText(R.string.tips_choose_nvr_type)).cancelText(getString(R.string.got_it)).setCancelable(false).setCanceledOnTouchOutside(false).setCancelOnClickListener(new View.OnClickListener() {
                    @Override
                    public final void onClick(View view) {
                        AddCameraActivity.this.lambda$chickDone$1$AddCameraActivity(view);
                    }
                }).build().show();
                return;
            }
        }
        for (int i2 = 0; i2 < HiDataValue.CameraList.size(); i2++) {
            MyCamera myCamera = HiDataValue.CameraList.get(i2);
            if (handUid.equalsIgnoreCase(myCamera.getUid())) {
                if (this.ll_scan_getuid.getVisibility() == 8 && this.mType != 400) {
                    myCamera.disconnect(1);
                    HiDataValue.CameraList.remove(myCamera);
                } else {
                    showAlert(getText(R.string.device_is_already_exists));
                    return;
                }
            }
        }
        if (HiTools.isNVRDev(handUid)) {
            this.camera = new MyCamera(getApplicationContext(), getString(R.string.nvradd_web_camext), handUid, obj, trim);
        } else {
            this.camera = new MyCamera(getApplicationContext(), getString(R.string.title_camera_fragment), handUid, obj, trim);
        }
        boolean z = SharePreUtils.getBoolean(HiDataValue.CACHE, this, Constant.DEV_IsVivoMedia, false);
        if (SystemUtils.isVIVOMobile(this) && Build.VERSION.SDK_INT > 29 && !z) {
            this.camera.SetDecodeViVoVideoType(0);
        } else {
            this.camera.SetDecodeViVoVideoType(1);
        }
        this.camera.isFirstAdd = true;
        if (this.mType == 400 && HiTools.is4GLiteOSDev(this.camera.getUid())) {
            this.camera.setmIs_4G(true);
            this.camera.setMacAddress(Constant.get4G_MAC());
            this.camera.setIsLiteOs(true);
        }
        if (HiTools.isOtherLiteosDev(handUid)) {
            this.camera.setMacAddress(Constant.get4G_MAC().trim());
            this.camera.setIsLiteOs(true);
        }
        if (HiTools.is4GLiteOSDev(this.camera.getUid())) {
            this.camera.setmIs_4G(true);
            this.camera.setMacAddress(Constant.get4G_MAC());
            this.camera.setIsLiteOs(true);
        }
        if (this.isApMode) {
            setDevRunMode();
        }
        if (HiTools.isNVRDev(this.camera.getUid())) {
            this.mType = 101;
            SharePreUtils.putBoolean(HiDataValue.CACHE, this, this.camera.getUid() + "mIsDevNVR", true);
            this.camera.setIsDevNVR(true);
            this.camera.mIsReceived_4179 = true;
            this.camera.Hi_SetNvrAccount(obj, trim, "account");
            this.camera.Hi_SetNvrAccount("account", "ad1m2in3", "account");
            this.camera.Hi_SetNvrAccount("account", "ad1m2in3", HiDataValue.userAccount);
            this.camera.isNvrLoginType = true;
        }
        this.camera.setCameraLevel(1);
        this.camera.setNeedUpServer(true);
        this.camera.saveInDatabase(this);
        this.camera.saveInCameraList();
        if (HiTools.isOtherLiteosDev(handUid) || HiTools.is4GLiteOSDev(handUid)) {
            MyCamera myCamera2 = this.camera;
            if (myCamera2 != null && myCamera2.getConnectState() == 4) {
                this.camera.disconnect(1);
            }
            EventBus.getDefault().post(this.camera);
        } else {
            MyCamera myCamera3 = this.camera;
            if (myCamera3 != null) {
                myCamera3.disconnect(1);
            }
        }
        MyCamera myCamera4 = this.camera;
        new NVRListBean(myCamera4, 0, HiTools.isNVRDev(myCamera4.getUid())).saveInCameraList();
        Intent intent = new Intent();
        intent.putExtra("mIsAdd", true);
        intent.setAction(HiDataValue.ACTION_CAMERA_INIT_END);
        sendBroadcast(intent);
        if (this.mType == 400 && HiTools.is4GLiteOSDev(this.camera.getUid())) {
            MyCamera myCamera5 = this.camera;
            if (myCamera5 != null && myCamera5.getConnectState() == 4) {
                this.camera.disconnect(1);
            }
            EventBus.getDefault().post(this.camera);
        }
        MyToast.showToast(this, getString(R.string.add_success));
        Intent intent2 = new Intent(this, (Class<?>) TakeNameToCamActivity.class);
        intent2.putExtra(HiDataValue.EXTRAS_KEY_UID, this.camera.getUid());
        startActivity(intent2);
    }

    public void lambda$chickDone$0$AddCameraActivity(View view) {
        startActivity(new Intent(this, (Class<?>) MainActivity.class));
        finish();
    }

    public void lambda$chickDone$1$AddCameraActivity(View view) {
        startActivity(new Intent(this, (Class<?>) MainActivity.class));
        finish();
    }

    private void setDevRunMode() {
        HiLitosSDK hiLitosSDK = new HiLitosSDK(new HiLitosSDK.ILitosResult() {
            @Override
            public void onReceiveLitosResult(String str, int i, int i2, int i3) {
                if (!TextUtils.isEmpty(str) && str.split("\r\n").length > 3) {
                    AddCameraActivity.this.camera.setIsAPRunMode(true);
                } else {
                    AddCameraActivity addCameraActivity = AddCameraActivity.this;
                    MyToast.showToast(addCameraActivity, addCameraActivity.getString(R.string.netword_abnormal));
                }
            }
        });
        this.hiLitosSDK = hiLitosSDK;
        hiLitosSDK.HttpRequest("192.168.55.1", 15555, "/liteos/param.cgi?cmd=setsysmode&-mode=1&", 5, 5);
    }

    @Override
    public void onActivityResult(int i, int i2, Intent intent) {
        Bundle extras;
        super.onActivityResult(i, i2, intent);
        if (i2 == -1) {
            if (i != 110) {
                if (i == 111 && (extras = intent.getExtras()) != null) {
                    this.mUid = extras.getString(HiDataValue.EXTRAS_KEY_UID);
                    this.mType = intent.getIntExtra("type", 0);
                    this.et_add_camera_uid.setEnabled(false);
                    this.et_add_camera_uid.setText(this.mUid);
                    if (intent != null) {
                        this.isApMode = intent.getBooleanExtra("isApMode", false);
                        return;
                    }
                    return;
                }
                return;
            }
            String trim = intent.getExtras().getString(HiDataValue.EXTRAS_KEY_UID).trim();
            if (TextUtils.isEmpty(trim) || trim.length() <= 8) {
                return;
            }
            if (trim.substring(0, 8).equalsIgnoreCase(getString(R.string.app_name) + "_AC")) {
                byte[] bytes = trim.getBytes();
                HiChipSDK.Aes_Decrypt(bytes, bytes.length);
            } else {
                this.et_add_camera_uid.setEnabled(false);
                this.et_add_camera_uid.setText(trim.toUpperCase());
            }
        }
    }

    @Override
    public void onRequestPermissionsResult(int i, String[] strArr, int[] iArr) {
        super.onRequestPermissionsResult(i, strArr, iArr);
        boolean z = true;
        HiLogcatUtil.e("" + i);
        int length = strArr.length;
        for (int i2 = 0; i2 < length; i2++) {
            HiLogcatUtil.e(strArr.length + Constants.COLON_SEPARATOR + strArr[i2]);
        }
        for (int i3 : iArr) {
            HiLogcatUtil.e(iArr.length + Constants.COLON_SEPARATOR + i3);
        }
        if (i == 10004) {
            int length2 = iArr.length;
            int i4 = 0;
            while (true) {
                if (i4 >= length2) {
                    break;
                }
                if (iArr[i4] != 0) {
                    z = false;
                    break;
                }
                i4++;
            }
            if (z) {
                return;
            }
            HiTools.Hi_GoToSetting(strArr, this, this);
        }
    }
}