From b5b0bd260898f816f171aec59f20098fe67eaffe Mon Sep 17 00:00:00 2001
From: zuoxiao <470321431@qq.com>
Date: 星期三, 27 三月 2024 15:46:46 +0800
Subject: [PATCH] IP设置界面调整
---
app/src/main/java/com/dayu/recharge/net/SocketNet.java | 210 ++++++++++++++++++++++++++++++++++++----------------
1 files changed, 145 insertions(+), 65 deletions(-)
diff --git a/app/src/main/java/com/dayu/recharge/net/SocketNet.java b/app/src/main/java/com/dayu/recharge/net/SocketNet.java
index a75d37f..ebabc9d 100644
--- a/app/src/main/java/com/dayu/recharge/net/SocketNet.java
+++ b/app/src/main/java/com/dayu/recharge/net/SocketNet.java
@@ -1,22 +1,28 @@
package com.dayu.recharge.net;
+import android.app.Activity;
import android.content.Context;
-import android.os.Handler;
+import android.net.ConnectivityManager;
+import android.net.NetworkInfo;
+import android.os.Looper;
import android.text.TextUtils;
import android.util.Log;
+import com.dayu.recharge.MyApplication;
+import com.dayu.recharge.activity.HomeActivity;
import com.dayu.recharge.dao.BaseDaoSingleton;
import com.dayu.recharge.dbBean.AdminDataBean;
-import com.dayu.recharge.dbBean.IpBean;
import com.easysocket.EasySocket;
+import com.easysocket.callback.SimpleCallBack;
import com.easysocket.entity.OriginReadData;
import com.easysocket.entity.SocketAddress;
+import com.easysocket.exception.RequestTimeOutException;
import com.easysocket.interfaces.conn.ISocketActionListener;
import com.easysocket.interfaces.conn.SocketActionListener;
-import com.dayu.recharge.MyApplication;
-import com.dayu.recharge.utils.ToastUtil;
-import com.dayu.recharge.utils.WSHelper;
-import com.easysocket.utils.LogUtil;
+import com.easysocket.utils.HexUtil;
+import com.tencent.bugly.crashreport.CrashReport;
+
+import java.util.logging.Handler;
/**
@@ -28,17 +34,17 @@
public class SocketNet {
public static SocketNet socketNet;
SocketCallBack myCallBack;
- byte[] dataMessage;
+ // byte[] dataMessage;
boolean isTest = false;
Context mContext;
+
+ CallbackSender mSender;
public static SocketNet getInstance() {
if (socketNet == null) {
socketNet = new SocketNet();
- if (socketNet.socketActionListener != null) {
-
- }
}
+
return socketNet;
}
@@ -46,18 +52,62 @@
/**
* 鍙戦�佷竴涓殑娑堟伅锛�
*/
- public void sendTestMessage(byte[] dataMessage, SocketCallBack callBack) {
+ public void sendTestMessage(byte[] dataMessage, String AFN, SocketCallBack callBack) {
myCallBack = callBack;
isTest = false;
- // 鍙戦��
-// EasySocket.getInstance().upMessage(dataMessage);
- if (EasySocket.getInstance().getDefOptions().getSocketAddress() != null) {
- EasySocket.getInstance().disconnect(false);
- EasySocket.getInstance().connect();
- this.dataMessage = dataMessage;
+ mSender = new CallbackSender();
+ mSender.setAFN(AFN);
+ mSender.setData(dataMessage);
+ if (isNetworkAvailable(MyApplication.myApplication)) {
+ // 鍙戦��
+ if (EasySocket.getInstance().getDefconnection() != null) {
+// EasySocket.getInstance().upMessage(dataMessage);
+ EasySocket.getInstance().upCallbackMessage(mSender).onCallBack(new SimpleCallBack(AFN) {
+ @Override
+ public void onResponse(OriginReadData data) {
+
+ try {
+ mSender = null;
+ myCallBack = null;
+ Log.i("SocketActionListener", "SimpleCallBack鏀跺埌鏁版嵁-->" + HexUtil.bytesToHex(data.getBodyBytes()));
+ SocketData socketData = new SocketData();
+ socketData.setBodyData(data.getBodyBytes());
+ socketData.setHeaderData(data.getHeaderData());
+// dataMessage = null;
+ if (callBack != null) {
+ callBack.onSocketResponse(socketData);
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+
+ @Override
+ public void onError(Exception e) {
+ super.onError(e);
+ mSender = null;
+ myCallBack = null;
+ try {
+ if (e instanceof RequestTimeOutException) {
+ // 鍦ㄨ繖閲屾墽琛岄渶瑕佸湪涓荤嚎绋嬩腑鎵ц鐨勬搷浣�
+ callBack.onSocketError(-3, "璇锋眰瓒呮椂锛屾鍦ㄩ噸璇�");
+ //瓒呮椂鍚庨噸鏂拌繛鎺�
+ EasySocket.getInstance().disconnect(true);
+ }
+
+ } catch (Exception ex) {
+ throw new RuntimeException(ex);
+ }
+ }
+ });
+ } else {
+ callBack.onSocketError(-2, "涓庢湇鍔″櫒杩炴帴鏂紑锛岃妫�鏌ョ綉缁滅◢鍚庡啀璇�");
+ MyApplication.myApplication.initEasySocket(false, null);
+ }
} else {
- LogUtil.w("Socket鍦板潃涓虹┖");
+ callBack.onSocketError(-2, "璇锋鏌ョ綉缁滆繛鎺�");
}
+
}
@@ -71,8 +121,8 @@
isTest = true;
mContext = context;
if (EasySocket.getInstance().getDefOptions().getSocketAddress() != null && !MyApplication.myApplication.isDoInitMachine) {
- EasySocket.getInstance().disconnect(false);
- EasySocket.getInstance().connect();
+// EasySocket.getInstance().disconnect(false);
+// EasySocket.getInstance().connect();
} else {
// ToastUtil.show(mContext, "Socket鍦板潃涓虹┖");
}
@@ -95,31 +145,37 @@
*/
@Override
public void onSocketConnSuccess(SocketAddress socketAddress) {
- Log.i("SocketActionListener", "杩炴帴鎴愬姛");
- String initCode = WSHelper.getInstance(MyApplication.myApplication).get("initCode", "");
- if (TextUtils.isEmpty(initCode) && !MyApplication.myApplication.isDoInitMachine) {
- new Handler().postDelayed(new Runnable() {
- @Override
- public void run() {
- IpBean ipBean = BaseDaoSingleton.getInstance(MyApplication.myApplication).ipDao().findFirst();
- AdminDataBean adminData = BaseDaoSingleton.getInstance(MyApplication.myApplication).adminDao().findFirst();
- if (ipBean != null && adminData != null) {
- MyApplication.myApplication.initMachineRequestBean(ipBean.getIp(), ipBean.getPort(), adminData.getAddressCode());
+
+
+ Log.i("SocketActionListener1111", "杩炴帴鎴愬姛");
+ MyApplication.myApplication.isConncet = true;
+ try {
+ AdminDataBean adminData = BaseDaoSingleton.getInstance(MyApplication.myApplication).adminDao().findFirst();
+ Log.i("SocketActionListener1111", "isDoInitMachine==" + MyApplication.myApplication.isDoInitMachine + "");
+ //姣忔杩炴帴鎴愬姛娉ㄥ唽涓�娆¤澶�
+ if (!MyApplication.myApplication.isDoInitMachine) {
+ Log.i("SocketActionListener1111", "isDoInitMachine");
+ if (MyApplication.myApplication.ipBean != null && adminData != null) {
+ if (!TextUtils.isEmpty(adminData.getAddressCode()) && !MyApplication.myApplication.isCreate) {
+ Log.i("SocketActionListener1111", "initMachineRequestBean");
+ MyApplication.myApplication.initMachineRequestBean(MyApplication.myApplication.ipBean.getIp(), MyApplication.myApplication.ipBean.getPort(), adminData.getAddressCode());
+
}
}
- }, 2000);
+ }
+ try {
+ if (mSender != null) {
+ sendTestMessage(mSender.getData(), mSender.getAFN(), myCallBack);
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
- }
- if (dataMessage != null) {
- EasySocket.getInstance().upMessage(dataMessage);
- }
- if (isTest) {
- MyApplication.myApplication.isConncet = true;
- EasySocket.getInstance().disconnect(false);
- } else {
+ } catch (Exception e) {
+ CrashReport.postCatchedException(e);
}
-
+ rushState();
}
/**
@@ -129,15 +185,13 @@
*/
@Override
public void onSocketConnFail(SocketAddress socketAddress, boolean isNeedReconnect) {
-// isConnected = false;
+ MyApplication.myApplication.isConncet = false;
+ rushState();
Log.i("SocketActionListener", "socket杩炴帴澶辫触");
- if (isTest) {
- ToastUtil.show(mContext, "杩炴帴澶辫触,璇锋鏌ョ綉缁�");
- } else {
- if (myCallBack != null) {
- myCallBack.onSocketError(-1, "socket杩炴帴澶辫触,璇锋鏌ョ綉缁�");
- }
- }
+// if (myCallBack != null) {
+// myCallBack.onSocketError(-1, "杩炴帴鏁版嵁涓績澶辫触,璇锋鏌ョ綉缁�");
+// }
+// myCallBack = null;
}
/**
@@ -148,33 +202,59 @@
@Override
public void onSocketDisconnect(SocketAddress socketAddress, boolean isNeedReconnect) {
Log.i("SocketActionListener", "---> socket鏂紑杩炴帴锛屾槸鍚﹂渶瑕侀噸杩烇細" + isNeedReconnect);
-
+ MyApplication.myApplication.isConncet = false;
+ rushState();
+ try {
+ if (myCallBack != null) {
+ myCallBack.onSocketError(-2, "涓庢湇鍔″櫒杩炴帴鏂紑锛岃妫�鏌ョ綉缁�");
+ }
+ myCallBack = null;
+ } catch (Exception e) {
+ throw new RuntimeException(e);
+ }
}
+
/**
* socket鎺ユ敹鐨勬暟鎹�
* @param socketAddress
- * @param readData
+ * @param originReadData
*/
- @Override
- public void onSocketResponse(SocketAddress socketAddress, String readData) {
- Log.i("SocketActionListener", "SocketActionListener鏀跺埌鏁版嵁-->" + readData);
-
- }
-
@Override
public void onSocketResponse(SocketAddress socketAddress, OriginReadData originReadData) {
super.onSocketResponse(socketAddress, originReadData);
- Log.i("SocketActionListener", "SocketActionListener鏀跺埌鏁版嵁-->" + originReadData.getBodyString());
- SocketData socketData = new SocketData();
- socketData.setBodyData(originReadData.getBodyBytes());
- socketData.setHeaderData(originReadData.getHeaderData());
- dataMessage = null;
- if (myCallBack!=null){
- myCallBack.onSocketResponse(socketData);
- }
-
+ Log.i("SocketActionListener", "SocketActionListener鏀跺埌鏁版嵁-->" + HexUtil.bytesToHex(originReadData.getBodyBytes()));
+// SocketData socketData = new SocketData();
+// socketData.setBodyData(originReadData.getBodyBytes());
+// socketData.setHeaderData(originReadData.getHeaderData());
+//// dataMessage = null;
+// if (myCallBack != null) {
+// myCallBack.onSocketResponse(socketData);
+// }
+// myCallBack = null;
}
};
+ private void rushState() {
+ try {
+ if (HomeActivity.homeActivity != null) {
+ HomeActivity.homeActivity.rushState();
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+
+ // 妫�鏌ョ綉缁滆繛鎺ユ槸鍚﹀彲鐢�
+ public boolean isNetworkAvailable(Context context) {
+ if (context != null) {
+ ConnectivityManager connectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
+ if (connectivityManager != null) {
+ NetworkInfo activeNetworkInfo = connectivityManager.getActiveNetworkInfo();
+ return activeNetworkInfo != null && activeNetworkInfo.isConnected();
+ }
+ }
+ return false;
+ }
+
}
--
Gitblit v1.8.0