ConfigWirelessInforActivity.java 源代码


package liteos.addCamera;

import activity.addCamera.DevScanQRActivity;
import activity.addCamera.PhoneWiFiListActivity;
import android.content.Context;
import android.content.Intent;
import android.graphics.drawable.ColorDrawable;
import android.net.wifi.ScanResult;
import android.net.wifi.WifiManager;
import android.os.Bundle;
import android.text.InputFilter;
import android.text.TextUtils;
import android.view.View;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.PopupWindow;
import android.widget.TextView;
import base.HiActivity;
import com.hichip.base.HiLog;
import com.hichip.campro.R;
import com.xiaomi.mipush.sdk.Constants;
import common.HiDataValue;
import common.PwdEditText;
import common.TitleView;
import java.util.Arrays;
import java.util.HashSet;
import java.util.Set;
import main.MainActivity;
import utils.EmojiFilter;
import utils.FullCharUnionFilter;
import utils.HiLogcatUtil;
import utils.HiTools;
import utils.MyToast;
import utils.SharePreUtils;
import utils.WifiUtils;

public class ConfigWirelessInforActivity extends HiActivity implements View.OnClickListener {
    private static final int MY_PERMISSION_REQUEST_CODE = 10029;
    ImageView iv_to_choice;
    private String mCurrentPhoneWiFi;
    private String mIP;
    PwdEditText psw_wifi_et;
    TitleView title;
    TextView tv_current_ip;
    TextView tv_hint;
    TextView tv_start_config;
    private String type;
    EditText wifi_ssid_et;
    private String encryptionType = "";
    private String mUid = "";

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

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

    private void getIntentData() {
        this.mCurrentPhoneWiFi = getIntent().getStringExtra("mCurrentPhoneWiFi");
        this.mUid = getIntent().getStringExtra(HiDataValue.EXTRAS_KEY_UID);
        this.type = getIntent().getStringExtra("type");
        if (TextUtils.isEmpty(this.mCurrentPhoneWiFi)) {
            this.mCurrentPhoneWiFi = WifiUtils.getCurrentWifiSSID(this, true);
        }
    }

    private void initViewAndData() {
        this.title.setTitle(getString(R.string.config_wifi_info_title));
        this.title.setButton(0);
        this.title.setRightTxtBack(R.mipmap.x_bule);
        this.title.setNavigationBarButtonListener(new TitleView.NavigationBarButtonListener() {
            @Override
            public final void OnNavigationButtonClick(int i) {
                ConfigWirelessInforActivity.this.lambda$initViewAndData$0$ConfigWirelessInforActivity(i);
            }
        });
        this.tv_hint.getPaint().setFlags(8);
        this.tv_hint.getPaint().setAntiAlias(true);
        this.mIP = HiTools.getIPAddress(this);
        this.tv_current_ip.setText("当前IP: " + this.mIP);
        String ssid = getSSID();
        if (!TextUtils.isEmpty(ssid) && !ssid.startsWith(HiDataValue.START_WITH_IPCAM)) {
            this.encryptionType = getSecurityType(ssid);
            this.wifi_ssid_et.setText(ssid);
        }
        Hi_GetUseWifi(this, "");
    }

    public void lambda$initViewAndData$0$ConfigWirelessInforActivity(int i) {
        if (i == 0) {
            finish();
        } else {
            if (i != 2) {
                return;
            }
            startActivity(new Intent(this, (Class<?>) MainActivity.class), true);
        }
    }

    private String getSSID() {
        return WifiUtils.getCurrentWifiSSID(this, true);
    }

    private String getSecurityType(String str) {
        WifiManager wifiManager = (WifiManager) getApplicationContext().getSystemService("wifi");
        if (wifiManager == null) {
            return "NONE";
        }
        wifiManager.startScan();
        for (ScanResult scanResult : wifiManager.getScanResults()) {
            if (scanResult.SSID.equals(str) && scanResult.capabilities.length() >= 5) {
                return scanResult.capabilities.substring(1, 4);
            }
        }
        return "NONE";
    }

    private void setListeners() {
        this.tv_hint.setOnClickListener(this);
        this.iv_to_choice.setOnClickListener(this);
        this.tv_start_config.setOnClickListener(this);
        this.wifi_ssid_et.setFilters(new InputFilter[]{new InputFilter.LengthFilter(31), new FullCharUnionFilter(this), new EmojiFilter()});
        this.psw_wifi_et.setFilters(new InputFilter[]{new InputFilter.LengthFilter(31), new FullCharUnionFilter(this), new EmojiFilter()});
    }

    @Override
    public void onClick(View view) {
        int id = view.getId();
        if (id == R.id.iv_to_choice) {
            handChoicePhoneWiFi();
        } else if (id == R.id.tv_hint) {
            handHint();
        } else {
            if (id != R.id.tv_start_config) {
                return;
            }
            handNext();
        }
    }

    private void handNext() {
        String obj = this.wifi_ssid_et.getText().toString();
        String obj2 = this.psw_wifi_et.getText().toString();
        if (TextUtils.isEmpty(obj)) {
            MyToast.showToast(this, getString(R.string.ssid_not_empty));
            return;
        }
        if ((this.encryptionType.equals("WPA") || this.encryptionType.equals("PSK")) && obj2.length() < 8) {
            MyToast.showToast(this, getString(R.string.psw_too_short));
            return;
        }
        if (HiTools.isMaxLength(obj, 31)) {
            MyToast.showToast(this, getString(R.string.toast_ssid_tolong));
            return;
        }
        if (!obj.equals(obj.trim()) || TextUtils.isEmpty(obj2) || !obj2.equals(obj2.trim())) {
            MyToast.showToast(this, getString(R.string.toast_no_space));
            return;
        }
        if (obj.startsWith(HiDataValue.START_WITH_IPCAM)) {
            MyToast.showToast(this, getString(R.string.config_wifi_info_hint2));
            return;
        }
        if (!TextUtils.isEmpty(this.type) && this.type.equals("dev_scan_qrcode")) {
            Hi_Save_UseWifi(this);
            String iPAddress = HiTools.getIPAddress(this);
            Intent intent = new Intent(this, (Class<?>) DevScanQRActivity.class);
            String stringExtra = getIntent().getStringExtra("mCurrentPhoneWiFi");
            this.mCurrentPhoneWiFi = stringExtra;
            if (TextUtils.isEmpty(stringExtra)) {
                this.mCurrentPhoneWiFi = WifiUtils.getCurrentWifiSSID(this, true);
            }
            intent.putExtra(HiDataValue.EXTRAS_KEY_UID, this.mUid);
            intent.putExtra("ssid", obj);
            intent.putExtra("psw", obj2);
            intent.putExtra("ip", iPAddress);
            startActivity(intent);
            return;
        }
        View inflate = View.inflate(this, R.layout.pup_phone_near_device, null);
        final PopupWindow popupWindow = new PopupWindow(inflate);
        popupWindow.setBackgroundDrawable(new ColorDrawable(0));
        popupWindow.setFocusable(true);
        popupWindow.setWidth(-1);
        popupWindow.setHeight(-1);
        popupWindow.showAtLocation(inflate, 17, 0, 0);
        ((TextView) inflate.findViewById(R.id.tv_ready)).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                ConfigWirelessInforActivity configWirelessInforActivity = ConfigWirelessInforActivity.this;
                configWirelessInforActivity.Hi_Save_UseWifi(configWirelessInforActivity);
                popupWindow.dismiss();
                Intent intent2 = new Intent(ConfigWirelessInforActivity.this, (Class<?>) OSSoundWavesConfigActivity.class);
                String obj3 = ConfigWirelessInforActivity.this.wifi_ssid_et.getText().toString();
                String obj4 = ConfigWirelessInforActivity.this.psw_wifi_et.getText().toString();
                intent2.putExtra("ssid", obj3);
                intent2.putExtra("psw", obj4);
                ConfigWirelessInforActivity.this.startActivity(intent2);
            }
        });
    }

    private void handHint() {
        View inflate = View.inflate(this, R.layout.pup_wifi_require, null);
        final PopupWindow popupWindow = new PopupWindow(inflate);
        popupWindow.setBackgroundDrawable(new ColorDrawable(0));
        popupWindow.setWidth(-1);
        popupWindow.setHeight(-1);
        popupWindow.setFocusable(true);
        popupWindow.showAtLocation(inflate, 17, 0, 0);
        ((TextView) inflate.findViewById(R.id.tv_know)).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                popupWindow.dismiss();
            }
        });
    }

    private void handChoicePhoneWiFi() {
        startActivityForResult(new Intent(this, (Class<?>) PhoneWiFiListActivity.class), 110);
    }

    @Override
    public void onActivityResult(int i, int i2, Intent intent) {
        super.onActivityResult(i, i2, intent);
        if (i != 110) {
            if (i == 1315 && HiTools.isLocServiceEnable(this)) {
                startActivityForResult(new Intent(this, (Class<?>) PhoneWiFiListActivity.class), 110);
                return;
            }
            return;
        }
        if (i2 == -1) {
            this.encryptionType = intent.getStringExtra("encryptionType");
            String stringExtra = intent.getStringExtra("configssid");
            if (TextUtils.isEmpty(stringExtra)) {
                return;
            }
            this.wifi_ssid_et.setText(stringExtra);
            Hi_GetUseWifi(this, stringExtra);
        }
    }

    public void Hi_Save_UseWifi(Context context) {
        Context context2;
        Set<String> set;
        boolean z;
        Context context3 = context;
        String trim = this.psw_wifi_et.getText().toString().trim();
        String trim2 = this.wifi_ssid_et.getText().toString().trim();
        Set<String> stringSet = SharePreUtils.getStringSet(HiDataValue.CACHE, context3, HiDataValue.use_SSIDList);
        if (stringSet != null) {
            if (stringSet.size() > 0) {
                String[] strArr = (String[]) stringSet.toArray(new String[stringSet.size()]);
                Arrays.sort(strArr);
                for (int i = 0; i < strArr.length; i++) {
                    HiLog.e(stringSet.size() + Constants.COLON_SEPARATOR + i + Constants.COLON_SEPARATOR + strArr[i]);
                }
                int i2 = 0;
                while (i2 < strArr.length) {
                    HiLog.e(stringSet.size() + Constants.COLON_SEPARATOR + i2 + Constants.COLON_SEPARATOR + strArr[i2].substring(3));
                    if (i2 % 2 == 0 && trim2.equals(strArr[i2].substring(3))) {
                        StringBuilder sb = new StringBuilder();
                        sb.append(stringSet.size());
                        sb.append(Constants.COLON_SEPARATOR);
                        sb.append(i2);
                        sb.append("::");
                        sb.append(strArr[i2].substring(3));
                        sb.append(Constants.COLON_SEPARATOR);
                        int i3 = i2 + 1;
                        sb.append(strArr[i3].substring(3));
                        HiLog.e(sb.toString());
                        if (!trim.equals(strArr[i3].substring(3)) || i2 + 2 < strArr.length) {
                            stringSet.remove(strArr[i2]);
                            stringSet.remove(strArr[i3]);
                            HiLog.e(stringSet.size() + Constants.COLON_SEPARATOR + i2 + Constants.COLON_SEPARATOR + strArr[i2].substring(3));
                            int size = stringSet.size() + 100;
                            int i4 = size + 1;
                            HashSet hashSet = new HashSet();
                            int i5 = 0;
                            while (i5 < i2) {
                                hashSet.add("" + (i5 + 100) + strArr[i5].substring(3));
                                i5++;
                                stringSet = stringSet;
                            }
                            set = stringSet;
                            for (int i6 = i2 + 2; i6 < strArr.length; i6++) {
                                hashSet.add("" + ((i6 - 2) + 100) + strArr[i6].substring(3));
                            }
                            hashSet.add("" + size + trim2);
                            hashSet.add("" + i4 + trim);
                            HiLog.e(hashSet.size() + "::" + size + Constants.COLON_SEPARATOR + trim2 + Constants.COLON_SEPARATOR + trim);
                            context2 = context;
                            SharePreUtils.putStringSet(HiDataValue.CACHE, context2, HiDataValue.use_SSIDList, hashSet);
                        } else {
                            context2 = context3;
                            set = stringSet;
                        }
                        z = true;
                        if (z) {
                            int size2 = set.size() + 100;
                            HiLog.e(set.size() + "::" + size2 + Constants.COLON_SEPARATOR + trim2 + Constants.COLON_SEPARATOR + trim);
                            HashSet hashSet2 = new HashSet();
                            hashSet2.addAll(set);
                            StringBuilder sb2 = new StringBuilder();
                            sb2.append("");
                            sb2.append(size2);
                            sb2.append(trim2);
                            hashSet2.add(sb2.toString());
                            hashSet2.add("" + (size2 + 1) + trim);
                            HiLog.e(hashSet2.size() + "::" + size2 + Constants.COLON_SEPARATOR + trim2 + Constants.COLON_SEPARATOR + trim);
                            SharePreUtils.putStringSet(HiDataValue.CACHE, context2, HiDataValue.use_SSIDList, hashSet2);
                            return;
                        }
                        return;
                    }
                    i2++;
                    context3 = context3;
                    stringSet = stringSet;
                }
            }
            context2 = context3;
            set = stringSet;
            z = false;
            if (z) {
            }
        } else {
            HashSet hashSet3 = new HashSet();
            hashSet3.add("100" + trim2);
            hashSet3.add("101" + trim);
            SharePreUtils.putStringSet(HiDataValue.CACHE, context3, HiDataValue.use_SSIDList, hashSet3);
        }
    }

    private void Hi_GetUseWifi(Context context, String str) {
        Set<String> stringSet;
        if (str == null || (stringSet = SharePreUtils.getStringSet(HiDataValue.CACHE, context, HiDataValue.use_SSIDList)) == null || stringSet.size() <= 0) {
            return;
        }
        String[] strArr = (String[]) stringSet.toArray(new String[stringSet.size()]);
        Arrays.sort(strArr);
        boolean z = false;
        int i = 0;
        while (true) {
            if (i >= strArr.length) {
                break;
            }
            HiLog.e(i + Constants.COLON_SEPARATOR + strArr[i].substring(3));
            if (i % 2 == 0 && str.equals(strArr[i].substring(3))) {
                this.psw_wifi_et.setText(strArr[i + 1].substring(3));
                z = true;
                break;
            }
            i++;
        }
        if (!z && stringSet.size() > 1 && str.length() < 1) {
            this.wifi_ssid_et.setText(strArr[stringSet.size() - 2].substring(3));
            this.psw_wifi_et.setText(strArr[stringSet.size() - 1].substring(3));
        } else {
            if (z) {
                return;
            }
            this.psw_wifi_et.setText("");
        }
    }

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