OSAPConnectActivity.java 源代码


package liteos.addCamera;

import android.app.ActionBar;
import android.app.Dialog;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.net.wifi.WifiConfiguration;
import android.net.wifi.WifiInfo;
import android.net.wifi.WifiManager;
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.view.Window;
import android.view.WindowManager;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import base.HiActivity;
import com.hichip.base.HiLog;
import com.hichip.campro.R;
import com.hichip.tools.HiLitosSDK;
import com.xiaomi.mipush.sdk.Constants;
import common.Constant;
import common.HiDataValue;
import common.TitleView;
import java.util.Objects;
import liteos.addCamera.OSAPConnectActivity;
import main.MainActivity;
import org.json.JSONException;
import org.json.JSONObject;
import utils.DialogUtilsCamHiPro;
import utils.HiLogcatUtil;
import utils.HiTools;
import utils.MyToast;
import utils.WifiAdmin;
import utils.WifiUtils;

public class OSAPConnectActivity extends HiActivity implements View.OnClickListener {
    private static final int MY_PERMISSION_REQUEST_CODE = 10030;
    Button but_connect;
    private CountDownTimer countDownTimer;
    EditText et_wifi_password;
    private HiLitosSDK hiLitosSDK;
    private String mCurrentPhoneWiFi;
    private String mIp;
    private ConnectionChangeReceiver mReceiver;
    private String ssid;
    private CountDownTimer timer;
    TitleView titleview;
    TextView tv_wifi_ssid;
    private Handler mHandler = new AnonymousClass4();
    private boolean mconnectwifi_Q_fail = false;
    private boolean isFlag = false;

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

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

    private void getIntentData() {
        this.ssid = getIntent().getStringExtra("ssid");
        String stringExtra = getIntent().getStringExtra("mCurrentPhoneWiFi");
        this.mCurrentPhoneWiFi = stringExtra;
        if (TextUtils.isEmpty(stringExtra)) {
            this.mCurrentPhoneWiFi = WifiUtils.getCurrentWifiSSID(this, true);
        }
    }

    private void registerRece() {
        IntentFilter intentFilter = new IntentFilter("android.net.conn.CONNECTIVITY_CHANGE");
        ConnectionChangeReceiver connectionChangeReceiver = new ConnectionChangeReceiver();
        this.mReceiver = connectionChangeReceiver;
        registerReceiver(connectionChangeReceiver, intentFilter);
    }

    private void setListeners() {
        this.but_connect.setOnClickListener(this);
    }

    private void initView() {
        this.titleview.setButton(0);
        this.titleview.setTitle(getString(R.string.title_find_device_spot));
        this.titleview.setRightTxtBack(R.mipmap.x_bule);
        this.titleview.setNavigationBarButtonListener(new TitleView.NavigationBarButtonListener() {
            @Override
            public void OnNavigationButtonClick(int i) {
                if (i == 0) {
                    HiLog.e("finish()");
                    OSAPConnectActivity.this.finish();
                } else {
                    if (i != 2) {
                        return;
                    }
                    OSAPConnectActivity.this.startActivity(new Intent(OSAPConnectActivity.this, (Class<?>) MainActivity.class));
                }
            }
        });
        this.tv_wifi_ssid.setText(this.ssid);
        this.et_wifi_password.setText("01234567");
        this.mIp = HiTools.getIPAddress(this);
    }

    @Override
    public void onClick(View view) {
        if (view.getId() == R.id.but_connect && !HiTools.HiPermission(this, this, 4, MY_PERMISSION_REQUEST_CODE)) {
            if (HiDataValue.wifiAdmin == null) {
                HiDataValue.wifiAdmin = new WifiAdmin(getApplicationContext());
            }
            if (HiDataValue.wifiAdmin.mWifiManager.isWifiEnabled()) {
                this.mHandler.postDelayed(new Runnable() {
                    @Override
                    public void run() {
                        if (OSAPConnectActivity.this.mLoadDialoging == null || !OSAPConnectActivity.this.mLoadDialoging.isShowing() || OSAPConnectActivity.this.isFinishing()) {
                            return;
                        }
                        OSAPConnectActivity.this.dismissLoadDialog();
                        OSAPConnectActivity.this.dealWithTimeOut();
                        if (!HiDataValue.mHi_PhoneSys_Q || HiDataValue.wifiAdmin == null) {
                            return;
                        }
                        HiDataValue.wifiAdmin.removeNetwork_Q();
                    }
                }, 40000L);
                if (!HiDataValue.mHi_PhoneSys_Q) {
                    if (HiTools.isWifiConnected(this)) {
                        String currentWifiSSID = WifiUtils.getCurrentWifiSSID(this, true);
                        if (!TextUtils.isEmpty(currentWifiSSID) && currentWifiSSID.equals(this.ssid)) {
                            showLoadDialog(getString(R.string.searching_device), false, false);
                            HiLog.e("");
                            Hi_osSearch();
                            return;
                        }
                    }
                    if (this.mReceiver == null) {
                        registerRece();
                    }
                    showLoadDialog(getString(R.string.connecting), false, false);
                    CountDownTimer countDownTimer = new CountDownTimer(40000L, 4000L) {
                        @Override
                        public void onFinish() {
                        }

                        @Override
                        public void onTick(long j) {
                            HiLog.e("" + HiDataValue.mHi_wifiConnect_Q + "::" + OSAPConnectActivity.this.ssid);
                            OSAPConnectActivity.this.handConnect(HiDataValue.wifiAdmin);
                        }
                    };
                    this.countDownTimer = countDownTimer;
                    countDownTimer.start();
                    return;
                }
                this.mconnectwifi_Q_fail = false;
                String currentWifiSSID2 = WifiUtils.getCurrentWifiSSID(this, true);
                boolean isWifiConnected = HiTools.isWifiConnected(this);
                HiLog.e("" + HiDataValue.mHi_wifiConnect_Q);
                if (!TextUtils.isEmpty(this.ssid) && (!HiDataValue.mHi_wifiConnect_Q.equals(this.ssid) || !isWifiConnected || (!TextUtils.isEmpty(currentWifiSSID2) && !currentWifiSSID2.equals(this.ssid)))) {
                    HiDataValue.wifiAdmin.addNetwork1_Q(this.ssid, this.et_wifi_password.getText().toString(), this.mHandler);
                    return;
                }
                showLoadDialog(getString(R.string.searching_device), false, false);
                HiLog.e("");
                Hi_osSearch();
            }
        }
    }

    public void dealWithTimeOut() {
        final Dialog dialog = new Dialog(this, R.style.CustomDialog);
        View inflate = View.inflate(this, R.layout.dialog_deal_with_ap_connect_fail, null);
        Window window = dialog.getWindow();
        Objects.requireNonNull(window);
        WindowManager.LayoutParams attributes = window.getAttributes();
        attributes.width = (int) (getResources().getDisplayMetrics().widthPixels * 0.85d);
        ((TextView) inflate.findViewById(R.id.tv_content)).setText(getString(R.string.ap_connect_hint) + "\n" + getString(R.string.wireless_name) + "  " + this.ssid + "\n" + getString(R.string.wifi_password) + " 01234567");
        inflate.findViewById(R.id.tv_1).setOnClickListener(new View.OnClickListener() {
            @Override
            public final void onClick(View view) {
                OSAPConnectActivity.this.lambda$dealWithTimeOut$0$OSAPConnectActivity(dialog, view);
            }
        });
        inflate.findViewById(R.id.tv_2).setOnClickListener(new View.OnClickListener() {
            @Override
            public final void onClick(View view) {
                OSAPConnectActivity.this.lambda$dealWithTimeOut$1$OSAPConnectActivity(dialog, view);
            }
        });
        dialog.setCancelable(false);
        dialog.addContentView(inflate, new ActionBar.LayoutParams(-1, -2));
        dialog.getWindow().setAttributes(attributes);
        dialog.show();
    }

    public void lambda$dealWithTimeOut$0$OSAPConnectActivity(Dialog dialog, View view) {
        dialog.dismiss();
        HiLog.e("finish()");
        if (HiDataValue.mHi_PhoneSys_Q) {
            if (HiDataValue.wifiAdmin == null) {
                HiDataValue.wifiAdmin = new WifiAdmin(getApplicationContext());
            }
            if (HiDataValue.wifiAdmin != null) {
                HiDataValue.wifiAdmin.removeNetwork_Q();
            }
        }
        finish();
    }

    public void lambda$dealWithTimeOut$1$OSAPConnectActivity(Dialog dialog, View view) {
        dialog.dismiss();
        HiDataValue.isAPChooseWifi = true;
        if (HiDataValue.mHi_PhoneSys_Q) {
            if (HiDataValue.wifiAdmin == null) {
                HiDataValue.wifiAdmin = new WifiAdmin(getApplicationContext());
            }
            if (HiDataValue.wifiAdmin != null) {
                HiDataValue.wifiAdmin.removeNetwork_Q();
            }
        }
        Intent intent = new Intent("android.settings.WIFI_SETTINGS");
        intent.setFlags(268435456);
        startActivity(intent);
    }

    public void handConnect(WifiAdmin wifiAdmin) {
        wifiAdmin.disconnectWifi(wifiAdmin.mWifiInfo.getNetworkId());
        WifiConfiguration IsExsits = wifiAdmin.IsExsits(this.ssid);
        WifiConnect(wifiAdmin);
        if (IsExsits == null) {
            wifiAdmin.addNetwork(wifiAdmin.CreateWifiInfo(this.ssid, this.et_wifi_password.getText().toString(), 3));
        }
    }

    private void WifiConnect(WifiAdmin wifiAdmin) {
        WifiManager wifiManager = wifiAdmin.mWifiManager;
        String str = this.ssid;
        String obj = this.et_wifi_password.getText().toString();
        WifiConfiguration IsExsits = wifiAdmin.IsExsits(str);
        if (IsExsits == null) {
            wifiManager.enableNetwork(wifiManager.addNetwork(wifiAdmin.CreateWifiInfo(str, obj, 3)), true);
        } else {
            wifiManager.enableNetwork(IsExsits.networkId, true);
        }
    }

    public class AnonymousClass4 extends Handler {
        AnonymousClass4() {
        }

        @Override
        public void handleMessage(Message message) {
            super.handleMessage(message);
            int i = message.what;
            if (i == 110) {
                OSAPConnectActivity.this.dismissLoadDialog();
                OSAPConnectActivity oSAPConnectActivity = OSAPConnectActivity.this;
                oSAPConnectActivity.showLoadDialog(oSAPConnectActivity.getString(R.string.searching_device), false, false);
                HiLog.e("");
                OSAPConnectActivity.this.Hi_osSearch();
                return;
            }
            if (i == 111) {
                HiLog.e("");
                OSAPConnectActivity.this.dismissLoadDialog();
                return;
            }
            switch (i) {
                case 119:
                    OSAPConnectActivity.this.dismissLoadDialog();
                    HiLog.e("");
                    OSAPConnectActivity.this.mHandler.removeCallbacksAndMessages(null);
                    OSAPConnectActivity.this.mconnectwifi_Q_fail = true;
                    if (HiDataValue.wifiAdmin == null) {
                        HiDataValue.wifiAdmin = new WifiAdmin(OSAPConnectActivity.this.getApplicationContext());
                    }
                    HiDataValue.wifiAdmin.removeNetwork_Q();
                    new DialogUtilsCamHiPro(OSAPConnectActivity.this).title(OSAPConnectActivity.this.getText(R.string.tips_warning)).message("" + ((Object) OSAPConnectActivity.this.getText(R.string.srl_header_failed)) + ((Object) OSAPConnectActivity.this.getText(R.string.AP_connect_Qtryadd))).cancelText(OSAPConnectActivity.this.getString(R.string.got_it)).setCancelable(false).setCanceledOnTouchOutside(false).setCancelOnClickListener(new View.OnClickListener() {
                        @Override
                        public final void onClick(View view) {
                            OSAPConnectActivity.AnonymousClass4.this.lambda$handleMessage$0$OSAPConnectActivity$4(view);
                        }
                    }).build().show();
                    return;
                case 120:
                    HiLog.e("");
                    OSAPConnectActivity.this.mHandler.removeCallbacksAndMessages(null);
                    OSAPConnectActivity.this.mconnectwifi_Q_fail = true;
                    return;
                case 121:
                    HiLog.e("");
                    OSAPConnectActivity.this.mHandler.postDelayed(new Runnable() {
                        @Override
                        public void run() {
                            if (OSAPConnectActivity.this.mconnectwifi_Q_fail) {
                                return;
                            }
                            OSAPConnectActivity.this.dismissLoadDialog();
                            OSAPConnectActivity.this.showLoadDialog(OSAPConnectActivity.this.getString(R.string.searching_device), false, false);
                            HiLog.e("");
                            OSAPConnectActivity.this.Hi_osSearch();
                        }
                    }, 1000L);
                    return;
                default:
                    return;
            }
        }

        public void lambda$handleMessage$0$OSAPConnectActivity$4(View view) {
            HiDataValue.mwifiConnect_QLiteError = true;
            Intent intent = new Intent(OSAPConnectActivity.this, (Class<?>) ChoiceSoundWaveOrAPActivity.class);
            intent.putExtra("mCurrentPhoneWiFi", OSAPConnectActivity.this.mCurrentPhoneWiFi);
            OSAPConnectActivity.this.startActivity(intent);
            OSAPConnectActivity.this.finish();
        }
    }

    @Override
    public void onResume() {
        super.onResume();
        HiDataValue.isAPChooseWifi = false;
    }

    @Override
    public void onPause() {
        super.onPause();
        Handler handler = this.mHandler;
        if (handler != null) {
            handler.removeCallbacksAndMessages(null);
        }
        CountDownTimer countDownTimer = this.timer;
        if (countDownTimer != null) {
            countDownTimer.cancel();
            this.timer = null;
        }
        CountDownTimer countDownTimer2 = this.countDownTimer;
        if (countDownTimer2 != null) {
            countDownTimer2.cancel();
            this.countDownTimer = null;
        }
        HiLitosSDK hiLitosSDK = this.hiLitosSDK;
        if (hiLitosSDK != null) {
            hiLitosSDK.litosstopServerSocket();
        }
        ConnectionChangeReceiver connectionChangeReceiver = this.mReceiver;
        if (connectionChangeReceiver != null) {
            unregisterReceiver(connectionChangeReceiver);
            this.mReceiver = null;
        }
        dismissLoadDialog();
    }

    public class ConnectionChangeReceiver extends BroadcastReceiver {
        public ConnectionChangeReceiver() {
        }

        @Override
        public void onReceive(Context context, Intent intent) {
            NetworkInfo networkInfo = ((ConnectivityManager) OSAPConnectActivity.this.getSystemService("connectivity")).getNetworkInfo(1);
            if (networkInfo != null && networkInfo.isAvailable() && networkInfo.isConnected()) {
                WifiInfo connectionInfo = ((WifiManager) OSAPConnectActivity.this.getApplicationContext().getSystemService("wifi")).getConnectionInfo();
                if (TextUtils.isEmpty(OSAPConnectActivity.this.ssid) || !connectionInfo.getSSID().contains(OSAPConnectActivity.this.ssid)) {
                    return;
                }
                OSAPConnectActivity.this.mHandler.sendEmptyMessage(110);
            }
        }
    }

    public void Hi_osSearch() {
        if (this.isFlag) {
            return;
        }
        this.isFlag = true;
        if (HiTools.HiPermission(this, this, 4, MY_PERMISSION_REQUEST_CODE)) {
            return;
        }
        this.mHandler.postDelayed(new Runnable() {
            @Override
            public final void run() {
                OSAPConnectActivity.this.lambda$Hi_osSearch$2$OSAPConnectActivity();
            }
        }, 20000L);
        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) {
                    OSAPConnectActivity.this.isFlag = false;
                    OSAPConnectActivity.this.dismissLoadDialog();
                    return;
                }
                String[] split = str.split("\r\n");
                String str2 = split[split.length - 1];
                try {
                    OSAPConnectActivity.this.dismissLoadDialog();
                    JSONObject jSONObject = new JSONObject(str2).getJSONObject("devinfo");
                    String string = jSONObject.getString(HiDataValue.EXTRAS_KEY_UID);
                    String string2 = jSONObject.getString("mac");
                    String string3 = jSONObject.getString(Constant.MODE);
                    if (OSAPConnectActivity.this.mconnectwifi_Q_fail) {
                        return;
                    }
                    Intent intent = new Intent(OSAPConnectActivity.this, (Class<?>) OSAddAndConfigWiFiActivity.class);
                    intent.putExtra(HiDataValue.EXTRAS_KEY_UID, string);
                    intent.putExtra("ssid", OSAPConnectActivity.this.ssid);
                    intent.putExtra("type", 2);
                    intent.putExtra("mCurrentPhoneWiFi", OSAPConnectActivity.this.mCurrentPhoneWiFi);
                    intent.putExtra("isAP", true);
                    intent.putExtra(Constant.MAC, string2);
                    intent.putExtra(Constant.IP_STR, OSAPConnectActivity.this.mIp);
                    intent.putExtra(Constant.MODE, string3);
                    OSAPConnectActivity.this.startActivity(intent);
                    HiLog.e("finish()");
                    OSAPConnectActivity.this.finish();
                } catch (JSONException e) {
                    OSAPConnectActivity.this.dismissLoadDialog();
                    e.printStackTrace();
                }
            }
        });
        this.hiLitosSDK = hiLitosSDK;
        hiLitosSDK.HttpRequest("192.168.55.1", 15555, "/liteos/param.cgi?cmd=getdevinfo", 5, 6);
    }

    public void lambda$Hi_osSearch$2$OSAPConnectActivity() {
        if (this.mLoadDialoging == null || !this.mLoadDialoging.isShowing()) {
            return;
        }
        dismissLoadDialog();
        HiLog.e("");
        if (this.mconnectwifi_Q_fail) {
            return;
        }
        HiLog.e("finish()");
        MyToast.showToast(this, getString(R.string.not_found_device));
        finish();
    }

    @Override
    public void onDestroy() {
        super.onDestroy();
        ConnectionChangeReceiver connectionChangeReceiver = this.mReceiver;
        if (connectionChangeReceiver != null) {
            unregisterReceiver(connectionChangeReceiver);
        }
    }

    @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 == MY_PERMISSION_REQUEST_CODE) {
            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);
        }
    }
}