SelectUseOrNewDeviceActivity.java 源代码


package activity.addCamera;

import android.content.DialogInterface;
import android.content.Intent;
import android.os.Bundle;
import android.os.CountDownTimer;
import android.os.Handler;
import android.os.Message;
import android.text.TextUtils;
import android.view.View;
import android.widget.TextView;
import base.HiActivity;
import com.hichip.base.HiLog;
import com.hichip.campro.R;
import com.hichip.tools.HiLitosSDK;
import com.hichip.tools.HiSearchSDK;
import common.Constant;
import common.HiDataValue;
import common.TitleView;
import custom.dialog.NiftyDialogBuilder;
import liteos.addCamera.OSConfirmApDeviceActivity;
import main.MainActivity;
import org.json.JSONException;
import org.json.JSONObject;
import utils.HiLogcatUtil;
import utils.HiTools;
import utils.MyToast;
import utils.WifiAdmin;
import utils.WifiUtils;

public class SelectUseOrNewDeviceActivity extends HiActivity implements View.OnClickListener {
    private HiLitosSDK hiLitosSDK;
    private String mCurrentPhoneWiFi;
    private Handler mHandler = new Handler() {
        @Override
        public void handleMessage(Message message) {
            HiSearchSDK.HiSearchResult hiSearchResult;
            super.handleMessage(message);
            if (message.what != -1879048187 || (hiSearchResult = (HiSearchSDK.HiSearchResult) message.obj) == null || TextUtils.isEmpty(hiSearchResult.uid)) {
                return;
            }
            SelectUseOrNewDeviceActivity.this.dismissjuHuaDialog();
            SelectUseOrNewDeviceActivity.this.searchSDK.stop();
            if (SelectUseOrNewDeviceActivity.this.timer != null) {
                SelectUseOrNewDeviceActivity.this.timer.cancel();
            }
            Intent intent = new Intent(SelectUseOrNewDeviceActivity.this, (Class<?>) ConfirmApDeviceActivity.class);
            intent.putExtra(HiDataValue.EXTRAS_KEY_UID, hiSearchResult.uid);
            intent.putExtra("mCurrentPhoneWiFi", SelectUseOrNewDeviceActivity.this.mCurrentPhoneWiFi);
            SelectUseOrNewDeviceActivity.this.startActivity(intent);
        }
    };
    private String mSsid;
    private HiSearchSDK searchSDK;
    private CountDownTimer timer;
    TitleView titleview;
    TextView tv_current;
    TextView tv_new_device;
    TextView tv_useing_device;

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

    @Override
    protected void init(Bundle bundle) {
        String stringExtra = getIntent().getStringExtra("mCurrentPhoneWiFi");
        this.mCurrentPhoneWiFi = stringExtra;
        if (TextUtils.isEmpty(stringExtra)) {
            this.mCurrentPhoneWiFi = WifiUtils.getCurrentWifiSSID(this, false);
        }
        initView();
        setListeners();
    }

    private void setListeners() {
        this.tv_new_device.setOnClickListener(this);
        this.tv_useing_device.setOnClickListener(this);
    }

    private void initView() {
        this.titleview.setButton(0);
        this.titleview.setTitle(getString(R.string.add_device));
        this.titleview.setRightTxtBack(R.mipmap.x_bule);
        this.titleview.setNavigationBarButtonListener(new TitleView.NavigationBarButtonListener() {
            @Override
            public void OnNavigationButtonClick(int i) {
                if (i == 0) {
                    SelectUseOrNewDeviceActivity.this.finish();
                } else {
                    if (i != 2) {
                        return;
                    }
                    SelectUseOrNewDeviceActivity.this.startActivity(new Intent(SelectUseOrNewDeviceActivity.this, (Class<?>) MainActivity.class), true);
                }
            }
        });
    }

    @Override
    public void onClick(View view) {
        int id = view.getId();
        if (id == R.id.tv_new_device) {
            HiLog.e("" + HiDataValue.mHi_wifiConnect_Q);
            HiLog.e("mCurrentPhoneWiFi:::" + this.mCurrentPhoneWiFi);
            if (HiTools.isWifiConnected(this) || HiDataValue.mHi_wifiConnect_Q.length() > 0) {
                if (WifiUtils.getCurrentWifiSSID(this, false).startsWith(HiDataValue.START_WITH_IPCAM) || HiDataValue.mHi_wifiConnect_Q.startsWith(HiDataValue.START_WITH_IPCAM)) {
                    showLoadDialog(getString(R.string.searching_device), false, false);
                    startSearch();
                    startSearchLiteos();
                    return;
                } else {
                    Intent intent = new Intent(this, (Class<?>) ConfirmElectriActivity.class);
                    intent.putExtra("mCurrentPhoneWiFi", this.mCurrentPhoneWiFi);
                    intent.putExtra("type", 1);
                    startActivity(intent);
                    return;
                }
            }
            MyToast.showToast(this, getString(R.string.toast_connect_wifi));
            Hi_ToSysWifi();
            return;
        }
        if (id == R.id.tv_useing_device && !HiTools.isCustomFastClick(500)) {
            startActivity(new Intent(this, (Class<?>) AddCameraActivity.class));
        }
    }

    private void Hi_ToSysWifi() {
        final NiftyDialogBuilder niftyDialogBuilder = NiftyDialogBuilder.getInstance(this);
        niftyDialogBuilder.withMessageLayoutHWrapW(HiTools.dip2px(this, 280.0f));
        niftyDialogBuilder.withTitle(getString(R.string.tip_hint)).withMessage(getString(R.string.toast_connect_wifi));
        niftyDialogBuilder.withButton1Text(getString(R.string.cancel)).withButton2Text(getString(R.string.sure));
        niftyDialogBuilder.setButton1Click(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                niftyDialogBuilder.dismiss();
            }
        });
        niftyDialogBuilder.setButton2Click(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                niftyDialogBuilder.dismiss();
                if (HiDataValue.mHi_PhoneSys_Q) {
                    if (HiDataValue.wifiAdmin == null) {
                        HiDataValue.wifiAdmin = new WifiAdmin(SelectUseOrNewDeviceActivity.this.getApplicationContext());
                    }
                    if (HiDataValue.wifiAdmin != null) {
                        HiDataValue.wifiAdmin.removeNetwork_Q();
                    }
                }
                Intent intent = new Intent("android.settings.WIFI_SETTINGS");
                intent.setFlags(268435456);
                SelectUseOrNewDeviceActivity.this.startActivity(intent);
            }
        });
        niftyDialogBuilder.isCancelableOnTouchOutside(false);
        niftyDialogBuilder.show();
    }

    @Override
    public void onResume() {
        super.onResume();
        if (HiTools.isWifiConnected(this) || HiDataValue.mHi_wifiConnect_Q.length() > 0) {
            String currentWifiSSID = WifiUtils.getCurrentWifiSSID(this, false);
            this.mSsid = currentWifiSSID;
            if (TextUtils.isEmpty(currentWifiSSID) || WifiUtils.WIFISSID_UNKNOW.equalsIgnoreCase(this.mSsid.trim())) {
                this.tv_current.setVisibility(8);
            } else {
                this.tv_current.setVisibility(0);
            }
            this.tv_current.setText(getString(R.string.current_network) + " " + this.mSsid);
            return;
        }
        this.tv_current.setVisibility(8);
    }

    @Override
    public void onPause() {
        super.onPause();
        dismissLoadDialog();
        CountDownTimer countDownTimer = this.timer;
        if (countDownTimer != null) {
            countDownTimer.cancel();
            this.timer = null;
        }
        HiSearchSDK hiSearchSDK = this.searchSDK;
        if (hiSearchSDK != null) {
            hiSearchSDK.stop();
            this.searchSDK = null;
        }
        HiLitosSDK hiLitosSDK = this.hiLitosSDK;
        if (hiLitosSDK != null) {
            hiLitosSDK.litosstopServerSocket();
        }
        Handler handler = this.mHandler;
        if (handler != null) {
            handler.removeCallbacksAndMessages(null);
        }
    }

    private void startSearch() {
        CountDownTimer countDownTimer = this.timer;
        if (countDownTimer != null) {
            countDownTimer.cancel();
            this.timer = null;
        }
        HiSearchSDK hiSearchSDK = new HiSearchSDK(new HiSearchSDK.ISearchResult() {
            @Override
            public void onReceiveSearchResult(HiSearchSDK.HiSearchResult hiSearchResult) {
                if (TextUtils.isEmpty(hiSearchResult.uid.substring(0, 4))) {
                    return;
                }
                Message obtainMessage = SelectUseOrNewDeviceActivity.this.mHandler.obtainMessage();
                obtainMessage.obj = hiSearchResult;
                obtainMessage.what = HiDataValue.HANDLE_MESSAGE_SCAN_RESULT;
                SelectUseOrNewDeviceActivity.this.mHandler.sendMessage(obtainMessage);
            }
        });
        this.searchSDK = hiSearchSDK;
        hiSearchSDK.search2();
        this.timer = new CountDownTimer(15000, 1000L) {
            @Override
            public void onTick(long j) {
            }

            @Override
            public void onFinish() {
                SelectUseOrNewDeviceActivity.this.dismissLoadDialog();
                SelectUseOrNewDeviceActivity selectUseOrNewDeviceActivity = SelectUseOrNewDeviceActivity.this;
                MyToast.showToast(selectUseOrNewDeviceActivity, selectUseOrNewDeviceActivity.getString(R.string.not_found_device));
            }
        }.start();
    }

    private void startSearchLiteos() {
        this.mHandler.postDelayed(new Runnable() {
            @Override
            public final void run() {
                SelectUseOrNewDeviceActivity.this.lambda$startSearchLiteos$0$SelectUseOrNewDeviceActivity();
            }
        }, 20000L);
        this.mLoadDialoging.setOnDismissListener(new DialogInterface.OnDismissListener() {
            @Override
            public final void onDismiss(DialogInterface dialogInterface) {
                SelectUseOrNewDeviceActivity.this.lambda$startSearchLiteos$1$SelectUseOrNewDeviceActivity(dialogInterface);
            }
        });
        HiLitosSDK hiLitosSDK = new HiLitosSDK(new HiLitosSDK.ILitosResult() {
            @Override
            public final void onReceiveLitosResult(String str, int i, int i2, int i3) {
                SelectUseOrNewDeviceActivity.this.lambda$startSearchLiteos$2$SelectUseOrNewDeviceActivity(str, i, i2, i3);
            }
        });
        this.hiLitosSDK = hiLitosSDK;
        hiLitosSDK.HttpRequest("192.168.55.1", 15555, "/liteos/param.cgi?cmd=getdevinfo", 5, 6);
    }

    public void lambda$startSearchLiteos$0$SelectUseOrNewDeviceActivity() {
        if (this.mLoadDialoging == null || !this.mLoadDialoging.isShowing()) {
            return;
        }
        dismissLoadDialog();
        MyToast.showToast(this, getString(R.string.not_found_device));
    }

    public void lambda$startSearchLiteos$1$SelectUseOrNewDeviceActivity(DialogInterface dialogInterface) {
        this.mHandler.removeCallbacksAndMessages(null);
    }

    public void lambda$startSearchLiteos$2$SelectUseOrNewDeviceActivity(String str, int i, int i2, int i3) {
        if (!TextUtils.isEmpty(str) && str.split("\r\n").length > 3) {
            String[] split = str.split("\r\n");
            try {
                JSONObject jSONObject = new JSONObject(split[split.length - 1]).getJSONObject("devinfo");
                String string = jSONObject.getString(HiDataValue.EXTRAS_KEY_UID);
                String string2 = jSONObject.getString("mac");
                String string3 = jSONObject.getString(Constant.MODE);
                Intent intent = new Intent(this, (Class<?>) OSConfirmApDeviceActivity.class);
                intent.putExtra(HiDataValue.EXTRAS_KEY_UID, string);
                intent.putExtra("ssid", this.mCurrentPhoneWiFi);
                intent.putExtra("type", 2);
                intent.putExtra("mCurrentPhoneWiFi", this.mCurrentPhoneWiFi);
                intent.putExtra("isAP", true);
                intent.putExtra(Constant.MAC, string2);
                intent.putExtra(Constant.IP_STR, HiTools.getIPAddress(this));
                intent.putExtra(Constant.MODE, string3);
                startActivity(intent);
                return;
            } catch (JSONException e) {
                e.printStackTrace();
                return;
            }
        }
        HiLogcatUtil.e("get_dev_info error");
    }
}