SoundWavesWiFiOneKeySetActivity.java 源代码


package activity.addCamera;

import activity.addCamera.SoundWavesWiFiOneKeySetActivity;
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.LinearLayout;
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.A2bigA;
import common.HiDataValue;
import common.PwdEditText;
import common.TitleView;
import java.util.Arrays;
import java.util.HashSet;
import java.util.Set;
import liteos.addCamera.OSSoundWavesConfigActivity;
import main.MainActivity;
import utils.EmojiFilter;
import utils.FullCharFilter;
import utils.HiLogcatUtil;
import utils.HiTools;
import utils.MyToast;
import utils.NotCopyAndPaste;
import utils.SharePreUtils;
import utils.WifiUtils;

public class SoundWavesWiFiOneKeySetActivity extends HiActivity implements View.OnClickListener {
    private static final int MY_PERMISSION_REQUEST_CODE = 10014;
    ImageView iv_to_choice;
    LinearLayout ll_confirm_uid;
    private PwdEditText psw_wifi_et;
    private String ssid;
    TextView tv_hint;
    private TextView tv_start_config;
    TextView tv_uid;
    private String uid;
    private EditText wifi_ssid_et;
    private boolean mIsReset = false;
    private String encryptionType = "";

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

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

    private void getIntentData() {
        this.uid = getIntent().getStringExtra(HiDataValue.EXTRAS_KEY_UID);
        this.mIsReset = getIntent().getBooleanExtra("reset", false);
    }

    private void setListeners() {
        this.iv_to_choice.setOnClickListener(this);
        this.tv_hint.setOnClickListener(this);
    }

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

    private void initViewAndData() {
        TitleView titleView = (TitleView) findViewById(R.id.title_top);
        titleView.setTitle(getString(R.string.title_config_wifi));
        titleView.setButton(0);
        titleView.setRightTxtBack(R.mipmap.x_bule);
        titleView.setNavigationBarButtonListener(new TitleView.NavigationBarButtonListener() {
            @Override
            public void OnNavigationButtonClick(int i) {
                if (i == 0) {
                    SoundWavesWiFiOneKeySetActivity.this.finish();
                } else {
                    if (i != 2) {
                        return;
                    }
                    SoundWavesWiFiOneKeySetActivity.this.startActivity(new Intent(SoundWavesWiFiOneKeySetActivity.this, (Class<?>) MainActivity.class), true);
                }
            }
        });
        this.tv_hint.getPaint().setFlags(8);
        this.tv_hint.getPaint().setAntiAlias(true);
        this.tv_uid.setTransformationMethod(new A2bigA());
        if (!TextUtils.isEmpty(this.uid)) {
            this.tv_uid.setText(this.uid);
        }
        if (TextUtils.isEmpty(this.uid)) {
            this.ll_confirm_uid.setVisibility(8);
        }
        this.wifi_ssid_et = (EditText) findViewById(R.id.wifi_ssid_et);
        PwdEditText pwdEditText = (PwdEditText) findViewById(R.id.psw_wifi_et);
        this.psw_wifi_et = pwdEditText;
        pwdEditText.setFilters(new InputFilter[]{new InputFilter.LengthFilter(63), new FullCharFilter(this), new EmojiFilter()});
        this.psw_wifi_et.setCustomSelectionActionModeCallback(new NotCopyAndPaste());
        this.tv_start_config = (TextView) findViewById(R.id.tv_start_config);
        String ssid = getSSID();
        if (ssid != null) {
            this.encryptionType = getSecurityType(ssid);
            this.wifi_ssid_et.setText(ssid);
        }
        Hi_GetUseWifi(this, "");
        this.tv_start_config.setOnClickListener(new AnonymousClass2());
    }

    public class AnonymousClass2 implements View.OnClickListener {
        AnonymousClass2() {
        }

        @Override
        public void onClick(View view) {
            String upperCase = SoundWavesWiFiOneKeySetActivity.this.tv_uid.getText().toString().toUpperCase();
            if (TextUtils.isEmpty(upperCase) || HiTools.checkIsUid(upperCase)) {
                final String obj = SoundWavesWiFiOneKeySetActivity.this.psw_wifi_et.getText().toString();
                final String obj2 = SoundWavesWiFiOneKeySetActivity.this.wifi_ssid_et.getText().toString();
                if (!TextUtils.isEmpty(obj2)) {
                    if ((SoundWavesWiFiOneKeySetActivity.this.encryptionType.equals("WPA") || SoundWavesWiFiOneKeySetActivity.this.encryptionType.equals("PSK")) && obj.length() < 8) {
                        SoundWavesWiFiOneKeySetActivity soundWavesWiFiOneKeySetActivity = SoundWavesWiFiOneKeySetActivity.this;
                        MyToast.showToast(soundWavesWiFiOneKeySetActivity, soundWavesWiFiOneKeySetActivity.getString(R.string.psw_too_short));
                        return;
                    }
                    if (HiTools.isMaxLength(obj2, 63)) {
                        SoundWavesWiFiOneKeySetActivity soundWavesWiFiOneKeySetActivity2 = SoundWavesWiFiOneKeySetActivity.this;
                        MyToast.showToast(soundWavesWiFiOneKeySetActivity2, soundWavesWiFiOneKeySetActivity2.getString(R.string.toast_ssid_tolong));
                        return;
                    }
                    if (!obj2.equals(obj2.trim()) || TextUtils.isEmpty(obj) || !obj.equals(obj.trim())) {
                        SoundWavesWiFiOneKeySetActivity soundWavesWiFiOneKeySetActivity3 = SoundWavesWiFiOneKeySetActivity.this;
                        MyToast.showToast(soundWavesWiFiOneKeySetActivity3, soundWavesWiFiOneKeySetActivity3.getString(R.string.toast_no_space));
                        return;
                    }
                    View inflate = View.inflate(SoundWavesWiFiOneKeySetActivity.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 final void onClick(View view2) {
                            SoundWavesWiFiOneKeySetActivity.AnonymousClass2.this.lambda$onClick$0$SoundWavesWiFiOneKeySetActivity$2(popupWindow, obj2, obj, view2);
                        }
                    });
                    return;
                }
                SoundWavesWiFiOneKeySetActivity soundWavesWiFiOneKeySetActivity4 = SoundWavesWiFiOneKeySetActivity.this;
                MyToast.showToast(soundWavesWiFiOneKeySetActivity4, soundWavesWiFiOneKeySetActivity4.getString(R.string.ssid_not_empty));
                return;
            }
            SoundWavesWiFiOneKeySetActivity soundWavesWiFiOneKeySetActivity5 = SoundWavesWiFiOneKeySetActivity.this;
            MyToast.showToast(soundWavesWiFiOneKeySetActivity5, soundWavesWiFiOneKeySetActivity5.getString(R.string.input_uid_format_error));
        }

        public void lambda$onClick$0$SoundWavesWiFiOneKeySetActivity$2(PopupWindow popupWindow, String str, String str2, View view) {
            Intent intent;
            SoundWavesWiFiOneKeySetActivity soundWavesWiFiOneKeySetActivity = SoundWavesWiFiOneKeySetActivity.this;
            soundWavesWiFiOneKeySetActivity.Hi_Save_UseWifi(soundWavesWiFiOneKeySetActivity);
            popupWindow.dismiss();
            String upperCase = SoundWavesWiFiOneKeySetActivity.this.tv_uid.getText().toString().toUpperCase();
            if (!HiTools.isOtherLiteosDev(upperCase) && !HiTools.is4GLiteOSDev(upperCase) && !TextUtils.isEmpty(upperCase)) {
                intent = new Intent(SoundWavesWiFiOneKeySetActivity.this, (Class<?>) SoundWavesConfigActivity.class);
            } else {
                intent = new Intent(SoundWavesWiFiOneKeySetActivity.this, (Class<?>) OSSoundWavesConfigActivity.class);
            }
            intent.putExtra(HiDataValue.EXTRAS_KEY_UID, upperCase);
            intent.putExtra("ssid", str);
            intent.putExtra("psw", str2);
            intent.putExtra("reset", SoundWavesWiFiOneKeySetActivity.this.mIsReset);
            SoundWavesWiFiOneKeySetActivity.this.startActivity(intent);
        }
    }

    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.SSID.length() > 4) {
                return scanResult.capabilities.substring(1, 4);
            }
        }
        return "NONE";
    }

    @Override
    public void onClick(View view) {
        int id = view.getId();
        if (id == R.id.iv_to_choice) {
            startActivityForResult(new Intent(this, (Class<?>) PhoneWiFiListActivity.class), 110);
            return;
        }
        if (id != R.id.tv_hint) {
            return;
        }
        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 view2) {
                popupWindow.dismiss();
            }
        });
    }

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

    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]);
            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 == 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);
        }
    }
}