ConnectApActivity.java 源代码


package liteos.addCamera;

import activity.addCamera.ConfirmApDeviceActivity;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.graphics.drawable.ColorDrawable;
import android.net.NetworkInfo;
import android.os.Bundle;
import android.os.CountDownTimer;
import android.os.Handler;
import android.os.Message;
import android.support.v4.view.ViewPager;
import android.text.TextUtils;
import android.util.Log;
import android.view.View;
import android.view.ViewGroup;
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.hichip.tools.HiLitosSDK;
import com.hichip.tools.HiSearchSDK;
import common.Constant;
import common.HiDataValue;
import common.TitleView;
import liteos.adapter.ApSetPagerAdapter;
import liteos.adapter.ScaleAlphaPageTransformer;
import main.MainActivity;
import org.json.JSONException;
import org.json.JSONObject;
import utils.HiTools;
import utils.MyToast;
import utils.WifiAdmin;
import utils.WifiUtils;

public class ConnectApActivity extends HiActivity implements View.OnClickListener {
    private HiLitosSDK hiLitosSDK;
    private boolean isGoWiFi;
    private boolean isLiteOs;
    LinearLayout linear;
    private String mCurrentPhoneWiFi;
    private String oldSsid;

    private NetBroadcastReceiver f1030receiver;
    private HiSearchSDK searchSDK;
    private CountDownTimer timer;
    TitleView title;
    TextView tv_ap_tips;
    TextView tv_sys_wifi;
    ViewPager vp_ap_set;
    private int[] mPics = {R.mipmap.ap1, R.mipmap.ap2, R.mipmap.ap3, R.mipmap.ap4};
    private int mCurrentItem = 0;
    String ssid = "";
    private Handler mHandler = new Handler() {
        @Override
        public void handleMessage(Message message) {
            HiSearchSDK.HiSearchResult hiSearchResult;
            String str;
            super.handleMessage(message);
            if (message.what == -1879048187 && (hiSearchResult = (HiSearchSDK.HiSearchResult) message.obj) != null && !TextUtils.isEmpty(hiSearchResult.uid) && HiTools.checkIsUid(hiSearchResult.uid)) {
                ConnectApActivity.this.isSuccess = true;
                ConnectApActivity.this.dismissjuHuaDialog();
                ConnectApActivity.this.searchSDK.stop();
                if (ConnectApActivity.this.timer != null) {
                    ConnectApActivity.this.timer.cancel();
                }
                Intent intent = new Intent(ConnectApActivity.this, (Class<?>) ConfirmApDeviceActivity.class);
                if (HiTools.isWifiConnected(ConnectApActivity.this)) {
                    str = WifiUtils.getCurrentWifiSSID(ConnectApActivity.this, true);
                } else {
                    str = HiDataValue.mHi_wifiConnect_Q.length() > 0 ? HiDataValue.mHi_wifiConnect_Q : "";
                }
                intent.putExtra(HiDataValue.EXTRAS_KEY_UID, hiSearchResult.uid);
                intent.putExtra("ssid", str);
                intent.putExtra("mCurrentPhoneWiFi", ConnectApActivity.this.mCurrentPhoneWiFi);
                ConnectApActivity.this.startActivity(intent);
                ConnectApActivity.this.finish();
            }
        }
    };
    private boolean isSuccess = false;

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

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

    private void getIntentData() {
        this.isLiteOs = getIntent().getBooleanExtra("liteos", false);
        String stringExtra = getIntent().getStringExtra("mCurrentPhoneWiFi");
        this.mCurrentPhoneWiFi = stringExtra;
        if (TextUtils.isEmpty(stringExtra)) {
            String currentWifiSSID = WifiUtils.getCurrentWifiSSID(this, true);
            this.mCurrentPhoneWiFi = currentWifiSSID;
            this.mCurrentPhoneWiFi = currentWifiSSID;
        }
        HiLog.e(this.isLiteOs + ":::" + this.mCurrentPhoneWiFi);
        StringBuilder sb = new StringBuilder();
        sb.append("mCurrentPhoneWiFi:::");
        sb.append(this.mCurrentPhoneWiFi);
        HiLog.e(sb.toString());
    }

    private void initViewAndData() {
        this.title.setTitle(getString(R.string.add_camera_way));
        this.title.setButton(0);
        this.title.setRightTxtBack(R.mipmap.x_bule);
        this.title.setNavigationBarButtonListener(new TitleView.NavigationBarButtonListener() {
            @Override
            public final void OnNavigationButtonClick(int i) {
                ConnectApActivity.this.lambda$initViewAndData$0$ConnectApActivity(i);
            }
        });
    }

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

    private void setListeners() {
        this.tv_sys_wifi.setOnClickListener(this);
        int i = (int) ((getResources().getDisplayMetrics().widthPixels * 7.0f) / 10.0f);
        this.vp_ap_set.measure(0, 0);
        ViewGroup.LayoutParams layoutParams = this.vp_ap_set.getLayoutParams();
        if (layoutParams == null) {
            layoutParams = new ViewGroup.LayoutParams(i, -1);
        } else {
            layoutParams.width = i;
        }
        this.vp_ap_set.setLayoutParams(layoutParams);
        this.vp_ap_set.setAdapter(new ApSetPagerAdapter(this.mPics));
        setIndicator();
        this.vp_ap_set.setPageMargin(10);
        this.vp_ap_set.setOffscreenPageLimit(this.mPics.length);
        this.vp_ap_set.setPageTransformer(true, new ScaleAlphaPageTransformer());
        this.vp_ap_set.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
            @Override
            public void onPageScrollStateChanged(int i2) {
            }

            @Override
            public void onPageScrolled(int i2, float f, int i3) {
            }

            @Override
            public void onPageSelected(int i2) {
                ConnectApActivity.this.linear.getChildAt(ConnectApActivity.this.mCurrentItem).setEnabled(false);
                ConnectApActivity.this.linear.getChildAt(i2).setEnabled(true);
                if (i2 == 0) {
                    ConnectApActivity.this.tv_ap_tips.setText(ConnectApActivity.this.getString(R.string.ap_tip1));
                } else if (i2 == 1) {
                    ConnectApActivity.this.tv_ap_tips.setText(ConnectApActivity.this.getString(R.string.ap_tip2));
                } else if (i2 == 2) {
                    ConnectApActivity.this.tv_ap_tips.setText(ConnectApActivity.this.getString(R.string.ap_tip3));
                } else if (i2 == 3) {
                    ConnectApActivity.this.tv_ap_tips.setText(ConnectApActivity.this.getString(R.string.ap_tip4));
                }
                ConnectApActivity.this.mCurrentItem = i2;
            }
        });
    }

    private void setIndicator() {
        for (int i = 0; i < this.mPics.length; i++) {
            View view = new View(this);
            view.setBackgroundResource(R.drawable.selector_indicator);
            view.setEnabled(false);
            LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(20, 20);
            if (i != 0) {
                layoutParams.leftMargin = 30;
            }
            view.setLayoutParams(layoutParams);
            this.linear.addView(view);
        }
        this.linear.getChildAt(0).setEnabled(true);
    }

    @Override
    public void onClick(View view) {
        if (view.getId() != R.id.tv_sys_wifi) {
            return;
        }
        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);
        this.isGoWiFi = true;
        HiDataValue.isAPChooseWifi = true;
    }

    private void registerBroadcastReceiver() {
        if (this.f1030receiver == null) {
            this.f1030receiver = new NetBroadcastReceiver();
            IntentFilter intentFilter = new IntentFilter();
            intentFilter.addAction("android.net.conn.CONNECTIVITY_CHANGE");
            registerReceiver(this.f1030receiver, intentFilter);
        }
    }

    private void unRegisterBroadcastReceiver() {
        NetBroadcastReceiver netBroadcastReceiver = this.f1030receiver;
        if (netBroadcastReceiver != null) {
            unregisterReceiver(netBroadcastReceiver);
        }
    }

    @Override
    public void onResume() {
        super.onResume();
        HiDataValue.isAPChooseWifi = false;
        if (HiTools.isWifiConnected(this)) {
            this.ssid = WifiUtils.getCurrentWifiSSID(this, true);
        } else if (HiDataValue.mHi_wifiConnect_Q.length() > 0) {
            this.ssid = HiDataValue.mHi_wifiConnect_Q;
        }
        if (this.isGoWiFi) {
            String currentWifiSSID = WifiUtils.getCurrentWifiSSID(this, true);
            if (!TextUtils.isEmpty(this.mCurrentPhoneWiFi) && !TextUtils.isEmpty(currentWifiSSID) && currentWifiSSID.startsWith(HiDataValue.START_WITH_IPCAM)) {
                if (this.mCurrentPhoneWiFi.equals(currentWifiSSID)) {
                    return;
                }
                startSearch();
                startSearchLiteos(currentWifiSSID);
                return;
            }
            if (TextUtils.isEmpty(this.mCurrentPhoneWiFi) || !this.mCurrentPhoneWiFi.equals(currentWifiSSID)) {
                MyToast.showToast(this, getString(R.string.not_found_device));
            }
        }
    }

    private void startSearch() {
        String currentWifiSSID = WifiUtils.getCurrentWifiSSID(this, true);
        HiLog.e("mCurrentPhoneWiFi:::" + this.mCurrentPhoneWiFi + ":::" + currentWifiSSID);
        if (this.mCurrentPhoneWiFi.equals(currentWifiSSID)) {
            return;
        }
        this.isGoWiFi = false;
        showLoadDialog(getString(R.string.searching_device), false, false);
        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 = ConnectApActivity.this.mHandler.obtainMessage();
                obtainMessage.obj = hiSearchResult;
                obtainMessage.what = HiDataValue.HANDLE_MESSAGE_SCAN_RESULT;
                ConnectApActivity.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() {
                ConnectApActivity.this.dismissLoadDialog();
                ConnectApActivity connectApActivity = ConnectApActivity.this;
                MyToast.showToast(connectApActivity, connectApActivity.getString(R.string.not_search_device));
                View inflate = View.inflate(ConnectApActivity.this, R.layout.pup_ipcam_search_fail, 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();
                    }
                });
            }
        }.start();
    }

    private void startSearchLiteos(String str) {
        this.isGoWiFi = false;
        HiLitosSDK hiLitosSDK = new HiLitosSDK(new HiLitosSDK.ILitosResult() {
            @Override
            public void onReceiveLitosResult(String str2, int i, int i2, int i3) {
                if (!TextUtils.isEmpty(str2) && str2.split("\r\n").length > 3) {
                    String[] split = str2.split("\r\n");
                    String str3 = split[split.length - 1];
                    try {
                        ConnectApActivity.this.isSuccess = true;
                        JSONObject jSONObject = new JSONObject(str3).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(ConnectApActivity.this, (Class<?>) OSConfirmApDeviceActivity.class);
                        intent.putExtra(HiDataValue.EXTRAS_KEY_UID, string);
                        intent.putExtra("ssid", ConnectApActivity.this.ssid);
                        intent.putExtra("type", 2);
                        intent.putExtra("mCurrentPhoneWiFi", ConnectApActivity.this.mCurrentPhoneWiFi);
                        intent.putExtra("isAP", true);
                        intent.putExtra(Constant.MAC, string2);
                        intent.putExtra(Constant.IP_STR, HiTools.getIPAddress(ConnectApActivity.this));
                        intent.putExtra(Constant.MODE, string3);
                        ConnectApActivity.this.startActivity(intent);
                        ConnectApActivity.this.finish();
                        return;
                    } catch (JSONException e) {
                        e.printStackTrace();
                        return;
                    }
                }
                new Handler().post(new Runnable() {
                    @Override
                    public void run() {
                        ConnectApActivity.this.dismissLoadDialog();
                        if (ConnectApActivity.this.isSuccess) {
                            return;
                        }
                        MyToast.showToast(ConnectApActivity.this, ConnectApActivity.this.getString(R.string.netword_abnormal));
                    }
                });
            }
        });
        this.hiLitosSDK = hiLitosSDK;
        hiLitosSDK.HttpRequest("192.168.55.1", 15555, "/liteos/param.cgi?cmd=getdevinfo", 5, 6);
    }

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

        @Override
        public void onReceive(Context context, Intent intent) {
            NetworkInfo networkInfo;
            if (!"android.net.conn.CONNECTIVITY_CHANGE".equals(intent.getAction()) || (networkInfo = (NetworkInfo) intent.getParcelableExtra("networkInfo")) == null) {
                return;
            }
            if (NetworkInfo.State.CONNECTED == networkInfo.getState() && networkInfo.isAvailable()) {
                if (networkInfo.getType() == 1 || networkInfo.getType() == 0) {
                    Log.i("TAG", "连上::" + WifiUtils.getCurrentWifiSSID(ConnectApActivity.this, true));
                    return;
                }
                return;
            }
            Log.i("TAG", "断开");
        }
    }

    @Override
    public void onDestroy() {
        super.onDestroy();
        CountDownTimer countDownTimer = this.timer;
        if (countDownTimer != null) {
            countDownTimer.cancel();
            this.timer = null;
        }
        HiLitosSDK hiLitosSDK = this.hiLitosSDK;
        if (hiLitosSDK != null) {
            hiLitosSDK.litosstopServerSocket();
        }
        unRegisterBroadcastReceiver();
    }
}