From b3b51a74cebbbd0b8ef84c0fd335ac3ab505f990 Mon Sep 17 00:00:00 2001 From: pppscn <35696959@qq.com> Date: Mon, 27 Jun 2022 17:12:43 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=EF=BC=9A=E6=B5=8B=E8=AF=95?= =?UTF-8?q?=E5=8F=91=E9=80=81=E9=80=9A=E9=81=93/=E8=BD=AC=E5=8F=91?= =?UTF-8?q?=E8=A7=84=E5=88=99=E6=97=B6=E5=88=9B=E5=BB=BA=E5=AD=90=E7=BA=BF?= =?UTF-8?q?=E7=A8=8B=E8=BF=90=E8=A1=8C=20&=20=E5=BC=82=E5=B8=B8=E6=8D=95?= =?UTF-8?q?=E8=8E=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../forwarder/fragment/RulesEditFragment.kt | 12 +- .../fragment/senders/BarkFragment.kt | 18 ++- .../fragment/senders/DingtalkFragment.kt | 18 ++- .../fragment/senders/EmailFragment.kt | 18 ++- .../fragment/senders/FeishuFragment.kt | 18 ++- .../fragment/senders/GotifyFragment.kt | 18 ++- .../fragment/senders/PushplusFragment.kt | 18 ++- .../fragment/senders/ServerchanFragment.kt | 18 ++- .../forwarder/fragment/senders/SmsFragment.kt | 18 ++- .../fragment/senders/WebhookFragment.kt | 18 ++- .../fragment/senders/WeworkAgentFragment.kt | 18 ++- .../fragment/senders/WeworkRobotFragment.kt | 18 ++- .../idormy/sms/forwarder/utils/SendUtils.kt | 109 ++++++++++-------- .../forwarder/utils/sender/WebhookUtils.kt | 6 +- .../sms/forwarder/workers/SendWorker.kt | 1 + 15 files changed, 228 insertions(+), 98 deletions(-) diff --git a/app/src/main/java/com/idormy/sms/forwarder/fragment/RulesEditFragment.kt b/app/src/main/java/com/idormy/sms/forwarder/fragment/RulesEditFragment.kt index 37de0bf3..3d4a42b7 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/fragment/RulesEditFragment.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/fragment/RulesEditFragment.kt @@ -1,5 +1,6 @@ package com.idormy.sms.forwarder.fragment +import android.os.Looper import android.util.Log import android.view.LayoutInflater import android.view.View @@ -627,7 +628,16 @@ class RulesEditFragment : BaseFragment(), View.OnClic } override fun onSuccess(sender: Sender) { - SendUtils.sendMsgSender(msgInfo, rule, sender, 0L) + Thread { + try { + SendUtils.sendMsgSender(msgInfo, rule, sender, 0L) + } catch (e: Exception) { + e.printStackTrace() + if (Looper.myLooper() == null) Looper.prepare() + XToastUtils.error(e.message.toString()) + Looper.loop() + } + }.start() } }) diff --git a/app/src/main/java/com/idormy/sms/forwarder/fragment/senders/BarkFragment.kt b/app/src/main/java/com/idormy/sms/forwarder/fragment/senders/BarkFragment.kt index a0b7fe5c..fe27c603 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/fragment/senders/BarkFragment.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/fragment/senders/BarkFragment.kt @@ -1,5 +1,6 @@ package com.idormy.sms.forwarder.fragment.senders +import android.os.Looper import android.text.TextUtils import android.util.Log import android.view.LayoutInflater @@ -183,10 +184,19 @@ class BarkFragment : BaseFragment(), View.OnClickLi } R.id.btn_test -> { mCountDownHelper?.start() - val settingVo = checkSetting() - Log.d(TAG, settingVo.toString()) - val msgInfo = MsgInfo("sms", getString(R.string.test_phone_num), getString(R.string.test_sender_sms), Date(), getString(R.string.test_sim_info)) - BarkUtils.sendMsg(settingVo, msgInfo) + Thread { + try { + val settingVo = checkSetting() + Log.d(TAG, settingVo.toString()) + val msgInfo = MsgInfo("sms", getString(R.string.test_phone_num), getString(R.string.test_sender_sms), Date(), getString(R.string.test_sim_info)) + BarkUtils.sendMsg(settingVo, msgInfo) + } catch (e: Exception) { + e.printStackTrace() + if (Looper.myLooper() == null) Looper.prepare() + XToastUtils.error(e.message.toString()) + Looper.loop() + } + }.start() return } R.id.btn_del -> { diff --git a/app/src/main/java/com/idormy/sms/forwarder/fragment/senders/DingtalkFragment.kt b/app/src/main/java/com/idormy/sms/forwarder/fragment/senders/DingtalkFragment.kt index 31f7f699..a0d2b121 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/fragment/senders/DingtalkFragment.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/fragment/senders/DingtalkFragment.kt @@ -1,5 +1,6 @@ package com.idormy.sms.forwarder.fragment.senders +import android.os.Looper import android.text.TextUtils import android.util.Log import android.view.LayoutInflater @@ -158,10 +159,19 @@ class DingtalkFragment : BaseFragment(), View.O when (v.id) { R.id.btn_test -> { mCountDownHelper?.start() - val settingVo = checkSetting() - Log.d(TAG, settingVo.toString()) - val msgInfo = MsgInfo("sms", getString(R.string.test_phone_num), getString(R.string.test_sender_sms), Date(), getString(R.string.test_sim_info)) - DingtalkUtils.sendMsg(settingVo, msgInfo) + Thread { + try { + val settingVo = checkSetting() + Log.d(TAG, settingVo.toString()) + val msgInfo = MsgInfo("sms", getString(R.string.test_phone_num), getString(R.string.test_sender_sms), Date(), getString(R.string.test_sim_info)) + DingtalkUtils.sendMsg(settingVo, msgInfo) + } catch (e: Exception) { + e.printStackTrace() + if (Looper.myLooper() == null) Looper.prepare() + XToastUtils.error(e.message.toString()) + Looper.loop() + } + }.start() return } R.id.btn_del -> { diff --git a/app/src/main/java/com/idormy/sms/forwarder/fragment/senders/EmailFragment.kt b/app/src/main/java/com/idormy/sms/forwarder/fragment/senders/EmailFragment.kt index 64f38739..cfd79a18 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/fragment/senders/EmailFragment.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/fragment/senders/EmailFragment.kt @@ -1,5 +1,6 @@ package com.idormy.sms.forwarder.fragment.senders +import android.os.Looper import android.text.TextUtils import android.util.Log import android.view.LayoutInflater @@ -212,10 +213,19 @@ class EmailFragment : BaseFragment(), View.OnClick } R.id.btn_test -> { mCountDownHelper?.start() - val settingVo = checkSetting() - Log.d(TAG, settingVo.toString()) - val msgInfo = MsgInfo("sms", getString(R.string.test_phone_num), getString(R.string.test_sender_sms), Date(), getString(R.string.test_sim_info)) - EmailUtils.sendMsg(settingVo, msgInfo) + Thread { + try { + val settingVo = checkSetting() + Log.d(TAG, settingVo.toString()) + val msgInfo = MsgInfo("sms", getString(R.string.test_phone_num), getString(R.string.test_sender_sms), Date(), getString(R.string.test_sim_info)) + EmailUtils.sendMsg(settingVo, msgInfo) + } catch (e: Exception) { + e.printStackTrace() + if (Looper.myLooper() == null) Looper.prepare() + XToastUtils.error(e.message.toString()) + Looper.loop() + } + }.start() return } R.id.btn_del -> { diff --git a/app/src/main/java/com/idormy/sms/forwarder/fragment/senders/FeishuFragment.kt b/app/src/main/java/com/idormy/sms/forwarder/fragment/senders/FeishuFragment.kt index b066f3ad..d950a093 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/fragment/senders/FeishuFragment.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/fragment/senders/FeishuFragment.kt @@ -1,5 +1,6 @@ package com.idormy.sms.forwarder.fragment.senders +import android.os.Looper import android.text.TextUtils import android.util.Log import android.view.LayoutInflater @@ -157,10 +158,19 @@ class FeishuFragment : BaseFragment(), View.OnCli } R.id.btn_test -> { mCountDownHelper?.start() - val settingVo = checkSetting() - Log.d(TAG, settingVo.toString()) - val msgInfo = MsgInfo("sms", getString(R.string.test_phone_num), getString(R.string.test_sender_sms), Date(), getString(R.string.test_sim_info)) - FeishuUtils.sendMsg(settingVo, msgInfo) + Thread { + try { + val settingVo = checkSetting() + Log.d(TAG, settingVo.toString()) + val msgInfo = MsgInfo("sms", getString(R.string.test_phone_num), getString(R.string.test_sender_sms), Date(), getString(R.string.test_sim_info)) + FeishuUtils.sendMsg(settingVo, msgInfo) + } catch (e: Exception) { + e.printStackTrace() + if (Looper.myLooper() == null) Looper.prepare() + XToastUtils.error(e.message.toString()) + Looper.loop() + } + }.start() return } R.id.btn_del -> { diff --git a/app/src/main/java/com/idormy/sms/forwarder/fragment/senders/GotifyFragment.kt b/app/src/main/java/com/idormy/sms/forwarder/fragment/senders/GotifyFragment.kt index 0f2af4a0..76f2f07b 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/fragment/senders/GotifyFragment.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/fragment/senders/GotifyFragment.kt @@ -1,5 +1,6 @@ package com.idormy.sms.forwarder.fragment.senders +import android.os.Looper import android.text.TextUtils import android.util.Log import android.view.LayoutInflater @@ -156,10 +157,19 @@ class GotifyFragment : BaseFragment(), View.OnCli } R.id.btn_test -> { mCountDownHelper?.start() - val settingVo = checkSetting() - Log.d(TAG, settingVo.toString()) - val msgInfo = MsgInfo("sms", getString(R.string.test_phone_num), getString(R.string.test_sender_sms), Date(), getString(R.string.test_sim_info)) - GotifyUtils.sendMsg(settingVo, msgInfo) + Thread { + try { + val settingVo = checkSetting() + Log.d(TAG, settingVo.toString()) + val msgInfo = MsgInfo("sms", getString(R.string.test_phone_num), getString(R.string.test_sender_sms), Date(), getString(R.string.test_sim_info)) + GotifyUtils.sendMsg(settingVo, msgInfo) + } catch (e: Exception) { + e.printStackTrace() + if (Looper.myLooper() == null) Looper.prepare() + XToastUtils.error(e.message.toString()) + Looper.loop() + } + }.start() return } R.id.btn_del -> { diff --git a/app/src/main/java/com/idormy/sms/forwarder/fragment/senders/PushplusFragment.kt b/app/src/main/java/com/idormy/sms/forwarder/fragment/senders/PushplusFragment.kt index b6fc62b9..40cff2a6 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/fragment/senders/PushplusFragment.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/fragment/senders/PushplusFragment.kt @@ -1,5 +1,6 @@ package com.idormy.sms.forwarder.fragment.senders +import android.os.Looper import android.text.TextUtils import android.util.Log import android.view.LayoutInflater @@ -176,10 +177,19 @@ class PushplusFragment : BaseFragment(), View.O } R.id.btn_test -> { mCountDownHelper?.start() - val settingVo = checkSetting() - Log.d(TAG, settingVo.toString()) - val msgInfo = MsgInfo("sms", getString(R.string.test_phone_num), getString(R.string.test_sender_sms), Date(), getString(R.string.test_sim_info)) - PushplusUtils.sendMsg(settingVo, msgInfo) + Thread { + try { + val settingVo = checkSetting() + Log.d(TAG, settingVo.toString()) + val msgInfo = MsgInfo("sms", getString(R.string.test_phone_num), getString(R.string.test_sender_sms), Date(), getString(R.string.test_sim_info)) + PushplusUtils.sendMsg(settingVo, msgInfo) + } catch (e: Exception) { + e.printStackTrace() + if (Looper.myLooper() == null) Looper.prepare() + XToastUtils.error(e.message.toString()) + Looper.loop() + } + }.start() return } R.id.btn_del -> { diff --git a/app/src/main/java/com/idormy/sms/forwarder/fragment/senders/ServerchanFragment.kt b/app/src/main/java/com/idormy/sms/forwarder/fragment/senders/ServerchanFragment.kt index 3a96daa5..92217f83 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/fragment/senders/ServerchanFragment.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/fragment/senders/ServerchanFragment.kt @@ -1,5 +1,6 @@ package com.idormy.sms.forwarder.fragment.senders +import android.os.Looper import android.text.TextUtils import android.util.Log import android.view.LayoutInflater @@ -138,10 +139,19 @@ class ServerchanFragment : BaseFragment(), Vi when (v.id) { R.id.btn_test -> { mCountDownHelper?.start() - val settingVo = checkSetting() - Log.d(TAG, settingVo.toString()) - val msgInfo = MsgInfo("sms", getString(R.string.test_phone_num), getString(R.string.test_sender_sms), Date(), getString(R.string.test_sim_info)) - ServerchanUtils.sendMsg(settingVo, msgInfo) + Thread { + try { + val settingVo = checkSetting() + Log.d(TAG, settingVo.toString()) + val msgInfo = MsgInfo("sms", getString(R.string.test_phone_num), getString(R.string.test_sender_sms), Date(), getString(R.string.test_sim_info)) + ServerchanUtils.sendMsg(settingVo, msgInfo) + } catch (e: Exception) { + e.printStackTrace() + if (Looper.myLooper() == null) Looper.prepare() + XToastUtils.error(e.message.toString()) + Looper.loop() + } + }.start() return } R.id.btn_del -> { diff --git a/app/src/main/java/com/idormy/sms/forwarder/fragment/senders/SmsFragment.kt b/app/src/main/java/com/idormy/sms/forwarder/fragment/senders/SmsFragment.kt index 741b08dd..5f6f9613 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/fragment/senders/SmsFragment.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/fragment/senders/SmsFragment.kt @@ -1,5 +1,6 @@ package com.idormy.sms.forwarder.fragment.senders +import android.os.Looper import android.text.TextUtils import android.util.Log import android.view.LayoutInflater @@ -164,10 +165,19 @@ class SmsFragment : BaseFragment(), View.OnClickList when (v.id) { R.id.btn_test -> { mCountDownHelper?.start() - val settingVo = checkSetting() - Log.d(TAG, settingVo.toString()) - val msgInfo = MsgInfo("sms", getString(R.string.test_phone_num), getString(R.string.test_sender_sms), Date(), getString(R.string.test_sim_info)) - SmsUtils.sendMsg(settingVo, msgInfo) + Thread { + try { + val settingVo = checkSetting() + Log.d(TAG, settingVo.toString()) + val msgInfo = MsgInfo("sms", getString(R.string.test_phone_num), getString(R.string.test_sender_sms), Date(), getString(R.string.test_sim_info)) + SmsUtils.sendMsg(settingVo, msgInfo) + } catch (e: Exception) { + e.printStackTrace() + if (Looper.myLooper() == null) Looper.prepare() + XToastUtils.error(e.message.toString()) + Looper.loop() + } + }.start() return } R.id.btn_del -> { diff --git a/app/src/main/java/com/idormy/sms/forwarder/fragment/senders/WebhookFragment.kt b/app/src/main/java/com/idormy/sms/forwarder/fragment/senders/WebhookFragment.kt index 66cb3551..50570314 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/fragment/senders/WebhookFragment.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/fragment/senders/WebhookFragment.kt @@ -1,5 +1,6 @@ package com.idormy.sms.forwarder.fragment.senders +import android.os.Looper import android.text.TextUtils import android.util.Log import android.view.LayoutInflater @@ -150,10 +151,19 @@ class WebhookFragment : BaseFragment(), View.OnC when (v.id) { R.id.btn_test -> { mCountDownHelper?.start() - val settingVo = checkSetting() - Log.d(TAG, settingVo.toString()) - val msgInfo = MsgInfo("sms", getString(R.string.test_phone_num), getString(R.string.test_sender_sms), Date(), getString(R.string.test_sim_info)) - WebhookUtils.sendMsg(settingVo, msgInfo) + Thread { + try { + val settingVo = checkSetting() + Log.d(TAG, settingVo.toString()) + val msgInfo = MsgInfo("sms", getString(R.string.test_phone_num), getString(R.string.test_sender_sms), Date(), getString(R.string.test_sim_info)) + WebhookUtils.sendMsg(settingVo, msgInfo) + } catch (e: Exception) { + e.printStackTrace() + if (Looper.myLooper() == null) Looper.prepare() + XToastUtils.error(e.message.toString()) + Looper.loop() + } + }.start() return } R.id.btn_del -> { diff --git a/app/src/main/java/com/idormy/sms/forwarder/fragment/senders/WeworkAgentFragment.kt b/app/src/main/java/com/idormy/sms/forwarder/fragment/senders/WeworkAgentFragment.kt index 2cdc1b61..aca5a119 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/fragment/senders/WeworkAgentFragment.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/fragment/senders/WeworkAgentFragment.kt @@ -1,6 +1,7 @@ package com.idormy.sms.forwarder.fragment.senders import android.annotation.SuppressLint +import android.os.Looper import android.text.TextUtils import android.util.Log import android.view.LayoutInflater @@ -155,10 +156,19 @@ class WeworkAgentFragment : BaseFragment(), when (v.id) { R.id.btn_test -> { mCountDownHelper?.start() - val settingVo = checkSetting() - Log.d(TAG, settingVo.toString()) - val msgInfo = MsgInfo("sms", getString(R.string.test_phone_num), getString(R.string.test_sender_sms), Date(), getString(R.string.test_sim_info)) - WeworkAgentUtils.sendMsg(settingVo, msgInfo) + Thread { + try { + val settingVo = checkSetting() + Log.d(TAG, settingVo.toString()) + val msgInfo = MsgInfo("sms", getString(R.string.test_phone_num), getString(R.string.test_sender_sms), Date(), getString(R.string.test_sim_info)) + WeworkAgentUtils.sendMsg(settingVo, msgInfo) + } catch (e: Exception) { + e.printStackTrace() + if (Looper.myLooper() == null) Looper.prepare() + XToastUtils.error(e.message.toString()) + Looper.loop() + } + }.start() return } R.id.btn_del -> { diff --git a/app/src/main/java/com/idormy/sms/forwarder/fragment/senders/WeworkRobotFragment.kt b/app/src/main/java/com/idormy/sms/forwarder/fragment/senders/WeworkRobotFragment.kt index 8b778cfa..659a5cc1 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/fragment/senders/WeworkRobotFragment.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/fragment/senders/WeworkRobotFragment.kt @@ -1,5 +1,6 @@ package com.idormy.sms.forwarder.fragment.senders +import android.os.Looper import android.text.TextUtils import android.util.Log import android.view.LayoutInflater @@ -136,10 +137,19 @@ class WeworkRobotFragment : BaseFragment(), when (v.id) { R.id.btn_test -> { mCountDownHelper?.start() - val settingVo = checkSetting() - Log.d(TAG, settingVo.toString()) - val msgInfo = MsgInfo("sms", getString(R.string.test_phone_num), getString(R.string.test_sender_sms), Date(), getString(R.string.test_sim_info)) - WeworkRobotUtils.sendMsg(settingVo, msgInfo) + Thread { + try { + val settingVo = checkSetting() + Log.d(TAG, settingVo.toString()) + val msgInfo = MsgInfo("sms", getString(R.string.test_phone_num), getString(R.string.test_sender_sms), Date(), getString(R.string.test_sim_info)) + WeworkRobotUtils.sendMsg(settingVo, msgInfo) + } catch (e: Exception) { + e.printStackTrace() + if (Looper.myLooper() == null) Looper.prepare() + XToastUtils.error(e.message.toString()) + Looper.loop() + } + }.start() return } R.id.btn_del -> { diff --git a/app/src/main/java/com/idormy/sms/forwarder/utils/SendUtils.kt b/app/src/main/java/com/idormy/sms/forwarder/utils/SendUtils.kt index 010d38f3..4d60a113 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/utils/SendUtils.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/utils/SendUtils.kt @@ -1,5 +1,6 @@ package com.idormy.sms.forwarder.utils +import android.os.Looper import android.util.Log import androidx.work.OneTimeWorkRequestBuilder import androidx.work.WorkManager @@ -68,68 +69,76 @@ object SendUtils { //匹配发送通道发送消息 fun sendMsgSender(msgInfo: MsgInfo, rule: Rule, sender: Sender, logId: Long) { - when (sender.type) { - TYPE_DINGDING -> { - val settingVo = Gson().fromJson(sender.jsonSetting, DingtalkSetting::class.java) - DingtalkUtils.sendMsg(settingVo, msgInfo, rule, logId) + try { + when (sender.type) { + TYPE_DINGDING -> { + val settingVo = Gson().fromJson(sender.jsonSetting, DingtalkSetting::class.java) + DingtalkUtils.sendMsg(settingVo, msgInfo, rule, logId) + } + TYPE_EMAIL -> { + val settingVo = Gson().fromJson(sender.jsonSetting, EmailSetting::class.java) + EmailUtils.sendMsg(settingVo, msgInfo, rule, logId) + } + TYPE_BARK -> { + val settingVo = Gson().fromJson(sender.jsonSetting, BarkSetting::class.java) + BarkUtils.sendMsg(settingVo, msgInfo, rule, logId) + } + TYPE_WEBHOOK -> { + val settingVo = Gson().fromJson(sender.jsonSetting, WebhookSetting::class.java) + WebhookUtils.sendMsg(settingVo, msgInfo, rule, logId) + } + TYPE_WEWORK_ROBOT -> { + val settingVo = Gson().fromJson(sender.jsonSetting, WeworkRobotSetting::class.java) + WeworkRobotUtils.sendMsg(settingVo, msgInfo, rule, logId) + } + TYPE_WEWORK_AGENT -> { + val settingVo = Gson().fromJson(sender.jsonSetting, WeworkAgentSetting::class.java) + WeworkAgentUtils.sendMsg(settingVo, msgInfo, rule, logId) + } + TYPE_SERVERCHAN -> { + val settingVo = Gson().fromJson(sender.jsonSetting, ServerchanSetting::class.java) + ServerchanUtils.sendMsg(settingVo, msgInfo, rule, logId) + } + TYPE_TELEGRAM -> { + val settingVo = Gson().fromJson(sender.jsonSetting, TelegramSetting::class.java) + TelegramUtils.sendMsg(settingVo, msgInfo, rule, logId) + } + TYPE_SMS -> { + val settingVo = Gson().fromJson(sender.jsonSetting, SmsSetting::class.java) + SmsUtils.sendMsg(settingVo, msgInfo, rule, logId) + } + TYPE_FEISHU -> { + val settingVo = Gson().fromJson(sender.jsonSetting, FeishuSetting::class.java) + FeishuUtils.sendMsg(settingVo, msgInfo, rule, logId) + } + TYPE_PUSHPLUS -> { + val settingVo = Gson().fromJson(sender.jsonSetting, PushplusSetting::class.java) + PushplusUtils.sendMsg(settingVo, msgInfo, rule, logId) + } + TYPE_GOTIFY -> { + val settingVo = Gson().fromJson(sender.jsonSetting, GotifySetting::class.java) + GotifyUtils.sendMsg(settingVo, msgInfo, rule, logId) + } + else -> {} } - TYPE_EMAIL -> { - val settingVo = Gson().fromJson(sender.jsonSetting, EmailSetting::class.java) - EmailUtils.sendMsg(settingVo, msgInfo, rule, logId) - } - TYPE_BARK -> { - val settingVo = Gson().fromJson(sender.jsonSetting, BarkSetting::class.java) - BarkUtils.sendMsg(settingVo, msgInfo, rule, logId) - } - TYPE_WEBHOOK -> { - val settingVo = Gson().fromJson(sender.jsonSetting, WebhookSetting::class.java) - WebhookUtils.sendMsg(settingVo, msgInfo, rule, logId) - } - TYPE_WEWORK_ROBOT -> { - val settingVo = Gson().fromJson(sender.jsonSetting, WeworkRobotSetting::class.java) - WeworkRobotUtils.sendMsg(settingVo, msgInfo, rule, logId) - } - TYPE_WEWORK_AGENT -> { - val settingVo = Gson().fromJson(sender.jsonSetting, WeworkAgentSetting::class.java) - WeworkAgentUtils.sendMsg(settingVo, msgInfo, rule, logId) - } - TYPE_SERVERCHAN -> { - val settingVo = Gson().fromJson(sender.jsonSetting, ServerchanSetting::class.java) - ServerchanUtils.sendMsg(settingVo, msgInfo, rule, logId) - } - TYPE_TELEGRAM -> { - val settingVo = Gson().fromJson(sender.jsonSetting, TelegramSetting::class.java) - TelegramUtils.sendMsg(settingVo, msgInfo, rule, logId) - } - TYPE_SMS -> { - val settingVo = Gson().fromJson(sender.jsonSetting, SmsSetting::class.java) - SmsUtils.sendMsg(settingVo, msgInfo, rule, logId) - } - TYPE_FEISHU -> { - val settingVo = Gson().fromJson(sender.jsonSetting, FeishuSetting::class.java) - FeishuUtils.sendMsg(settingVo, msgInfo, rule, logId) - } - TYPE_PUSHPLUS -> { - val settingVo = Gson().fromJson(sender.jsonSetting, PushplusSetting::class.java) - PushplusUtils.sendMsg(settingVo, msgInfo, rule, logId) - } - TYPE_GOTIFY -> { - val settingVo = Gson().fromJson(sender.jsonSetting, GotifySetting::class.java) - GotifyUtils.sendMsg(settingVo, msgInfo, rule, logId) - } - else -> {} + } catch (e: Exception) { + e.printStackTrace() + updateLogs(logId, 0, e.message.toString()) } } //更新转发日志状态 fun updateLogs(logId: Long?, status: Int, response: String) { + + //测试的没有记录ID,这里取巧了 if (logId == null || logId == 0L) { - //测试的没有记录ID,这里取巧了 + if (Looper.myLooper() == null) Looper.prepare() if (status == 2) { XToastUtils.success(ResUtils.getString(R.string.request_succeeded)) } else { XToastUtils.error(ResUtils.getString(R.string.request_failed) + response) } + Looper.loop() return } diff --git a/app/src/main/java/com/idormy/sms/forwarder/utils/sender/WebhookUtils.kt b/app/src/main/java/com/idormy/sms/forwarder/utils/sender/WebhookUtils.kt index 41b117d4..764a339a 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/utils/sender/WebhookUtils.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/utils/sender/WebhookUtils.kt @@ -165,7 +165,7 @@ class WebhookUtils { client.newCall(requestBuilder.build()).enqueue(object : Callback { override fun onFailure(call: Call, e: IOException) { //解决在子线程中调用Toast的异常情况处理 - Looper.prepare() + if (Looper.myLooper() == null) Looper.prepare() e.printStackTrace() SendUtils.updateLogs(logId, 0, e.message.toString()) //XToastUtils.error(ResUtils.getString(R.string.request_failed) + e.message) @@ -179,12 +179,12 @@ class WebhookUtils { //返回http状态200即为成功 if (200 == response.code()) { - Looper.prepare() + if (Looper.myLooper() == null) Looper.prepare() SendUtils.updateLogs(logId, 2, responseStr) //XToastUtils.success(ResUtils.getString(R.string.request_succeeded)) Looper.loop() } else { - Looper.prepare() + if (Looper.myLooper() == null) Looper.prepare() SendUtils.updateLogs(logId, 0, responseStr) //XToastUtils.error(ResUtils.getString(R.string.request_failed) + response) Looper.loop() diff --git a/app/src/main/java/com/idormy/sms/forwarder/workers/SendWorker.kt b/app/src/main/java/com/idormy/sms/forwarder/workers/SendWorker.kt index 39dacdb5..d2bab5ff 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/workers/SendWorker.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/workers/SendWorker.kt @@ -98,6 +98,7 @@ class SendWorker( } catch (e: Exception) { e.printStackTrace() + return@withContext Result.failure(workDataOf("send" to e.message.toString())) } return@withContext Result.success()