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