From 230957b73105811d54974b938854b5fc69753ad3 Mon Sep 17 00:00:00 2001 From: pppscn <35696959@qq.com> Date: Thu, 28 Jul 2022 18:00:56 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=EF=BC=9A`=E4=B8=BB=E5=8A=A8?= =?UTF-8?q?=E6=8E=A7=E5=88=B6`=E5=A2=9E=E5=8A=A0`=E8=BF=9C=E7=A8=8BWOL`?= =?UTF-8?q?=E5=8A=9F=E8=83=BD=EF=BC=88=E7=94=A8=E4=BA=8E=E8=BF=9C=E7=A8=8B?= =?UTF-8?q?=E5=94=A4=E9=86=92=E5=90=8C=E4=B8=80=E4=B8=AA=E5=B1=80=E5=9F=9F?= =?UTF-8?q?=E7=BD=91=E5=85=B6=E4=BB=96=E8=AE=BE=E5=A4=87=EF=BC=89=20#190?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../fragment/client/WolSendFragment.kt | 16 +++++++-------- .../server/controller/WolController.kt | 9 +++++++-- .../sms/forwarder/server/model/WolData.kt | 4 ++-- .../res/layout/fragment_client_wol_send.xml | 20 +++++++++---------- 4 files changed, 27 insertions(+), 22 deletions(-) diff --git a/app/src/main/java/com/idormy/sms/forwarder/fragment/client/WolSendFragment.kt b/app/src/main/java/com/idormy/sms/forwarder/fragment/client/WolSendFragment.kt index e0c58f9e..fa23fcda 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/fragment/client/WolSendFragment.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/fragment/client/WolSendFragment.kt @@ -114,13 +114,6 @@ class WolSendFragment : BaseFragment(), View.OnCl msgMap["sign"] = HttpServerUtils.calcSign(timestamp.toString(), clientSignKey.toString()) } - val ip = binding!!.etIp.text.toString() - val ipRegex = getString(R.string.ip_regex).toRegex() - if (!ipRegex.matches(ip)) { - XToastUtils.error(ResUtils.getString(R.string.ip_error)) - return - } - val mac = binding!!.etMac.text.toString() val macRegex = getString(R.string.mac_regex).toRegex() if (!macRegex.matches(mac)) { @@ -128,6 +121,13 @@ class WolSendFragment : BaseFragment(), View.OnCl return } + val ip = binding!!.etIp.text.toString() + val ipRegex = getString(R.string.ip_regex).toRegex() + if (!TextUtils.isEmpty(ip) && !ipRegex.matches(ip)) { + XToastUtils.error(ResUtils.getString(R.string.ip_error)) + return + } + val dataMap: MutableMap = mutableMapOf() dataMap["ip"] = ip dataMap["mac"] = mac @@ -156,7 +156,7 @@ class WolSendFragment : BaseFragment(), View.OnCl if (resp.code == 200) { XToastUtils.success(ResUtils.getString(R.string.request_succeeded)) //添加到历史记录 - wolHistory[ip] = mac + wolHistory[mac] = ip HttpServerUtils.wolHistory = Gson().toJson(wolHistory) } else { XToastUtils.error(ResUtils.getString(R.string.request_failed) + resp.msg) diff --git a/app/src/main/java/com/idormy/sms/forwarder/server/controller/WolController.kt b/app/src/main/java/com/idormy/sms/forwarder/server/controller/WolController.kt index 418bf711..c35291d1 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/server/controller/WolController.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/server/controller/WolController.kt @@ -5,6 +5,7 @@ import android.os.StrictMode.ThreadPolicy import android.util.Log import com.idormy.sms.forwarder.server.model.BaseRequest import com.idormy.sms.forwarder.server.model.WolData +import com.xuexiang.xrouter.utils.TextUtils import com.yanzhenjie.andserver.annotation.* import java.net.DatagramPacket import java.net.DatagramSocket @@ -38,8 +39,12 @@ class WolController { System.arraycopy(macBytes, 0, bytes, i, macBytes.size) i += macBytes.size } - val address: InetAddress = InetAddress.getByName(wolData.ip) - val packet = DatagramPacket(bytes, bytes.size, address, 9) + val packet = if (TextUtils.isEmpty(wolData.ip)) { + val address: InetAddress = InetAddress.getByName(wolData.ip) + DatagramPacket(bytes, bytes.size, address, 9) + } else { + DatagramPacket(bytes, bytes.size) + } socket.send(packet) Log.d(TAG, "Wake-on-LAN packet sent.") } catch (e: Exception) { diff --git a/app/src/main/java/com/idormy/sms/forwarder/server/model/WolData.kt b/app/src/main/java/com/idormy/sms/forwarder/server/model/WolData.kt index c1aac3db..f46abca9 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/server/model/WolData.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/server/model/WolData.kt @@ -4,8 +4,8 @@ import com.google.gson.annotations.SerializedName import java.io.Serializable data class WolData( - @SerializedName("ip") - var ip: String, @SerializedName("mac") var mac: String, + @SerializedName("ip") + var ip: String = "", ) : Serializable \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_client_wol_send.xml b/app/src/main/res/layout/fragment_client_wol_send.xml index d2dcb13f..2a0bd5f5 100644 --- a/app/src/main/res/layout/fragment_client_wol_send.xml +++ b/app/src/main/res/layout/fragment_client_wol_send.xml @@ -36,17 +36,17 @@ + android:text="@string/mac" /> @@ -60,17 +60,17 @@ + android:text="@string/ip" />