From 51129509f9cd09a800b3a09c99bf8dd074e811d1 Mon Sep 17 00:00:00 2001 From: pppscn <35696959@qq.com> Date: Tue, 12 Dec 2023 13:40:45 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=EF=BC=9A=E9=87=87=E7=94=A8?= =?UTF-8?q?=20LiveEventBus=20=E6=9B=BF=E6=8D=A2=E6=8E=89=20Looper.loop()?= =?UTF-8?q?=20=E5=90=8E=E5=86=8D=20Toast=20=E5=BD=A2=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../sms/forwarder/activity/ClientActivity.kt | 12 ++++++++ .../sms/forwarder/activity/MainActivity.kt | 8 +++++ .../sms/forwarder/activity/TaskActivity.kt | 12 ++++++++ .../forwarder/fragment/RulesEditFragment.kt | 5 +--- .../fragment/condition/CronFragment.kt | 3 -- .../fragment/senders/BarkFragment.kt | 18 +++++++---- .../senders/DingtalkGroupRobotFragment.kt | 22 ++++++++++---- .../senders/DingtalkInnerRobotFragment.kt | 12 +++++--- .../fragment/senders/EmailFragment.kt | 26 ++++++++++++---- .../fragment/senders/FeishuAppFragment.kt | 22 ++++++++++---- .../fragment/senders/FeishuFragment.kt | 22 ++++++++++---- .../fragment/senders/GotifyFragment.kt | 22 ++++++++++---- .../fragment/senders/PushplusFragment.kt | 22 ++++++++++---- .../fragment/senders/ServerchanFragment.kt | 17 +++++++---- .../forwarder/fragment/senders/SmsFragment.kt | 20 +++++++++---- .../fragment/senders/SocketFragment.kt | 16 ++++++---- .../fragment/senders/TelegramFragment.kt | 17 +++++++---- .../fragment/senders/UrlSchemeFragment.kt | 18 +++++++---- .../fragment/senders/WebhookFragment.kt | 18 +++++++---- .../fragment/senders/WeworkAgentFragment.kt | 9 +++--- .../fragment/senders/WeworkRobotFragment.kt | 6 ++-- .../idormy/sms/forwarder/utils/Constants.kt | 8 +++++ .../idormy/sms/forwarder/utils/SendUtils.kt | 30 +++++++++++++++---- .../sms/forwarder/workers/SendLogicWorker.kt | 24 +++++++++++---- 24 files changed, 280 insertions(+), 109 deletions(-) diff --git a/app/src/main/java/com/idormy/sms/forwarder/activity/ClientActivity.kt b/app/src/main/java/com/idormy/sms/forwarder/activity/ClientActivity.kt index abb47645..7bd2c957 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/activity/ClientActivity.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/activity/ClientActivity.kt @@ -4,11 +4,23 @@ import android.os.Bundle import androidx.viewbinding.ViewBinding import com.idormy.sms.forwarder.core.BaseActivity import com.idormy.sms.forwarder.fragment.ClientFragment +import com.idormy.sms.forwarder.utils.EVENT_TOAST_ERROR +import com.idormy.sms.forwarder.utils.EVENT_TOAST_SUCCESS +import com.idormy.sms.forwarder.utils.XToastUtils +import com.jeremyliao.liveeventbus.LiveEventBus class ClientActivity : BaseActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) openPage(ClientFragment::class.java) + + //替换 Looper.loop() 后再 Toast 形式 + LiveEventBus.get(EVENT_TOAST_SUCCESS, String::class.java).observe(this) { msg: String -> + XToastUtils.success(msg) + } + LiveEventBus.get(EVENT_TOAST_ERROR, String::class.java).observe(this) { msg: String -> + XToastUtils.error(msg, 15000) + } } } \ No newline at end of file diff --git a/app/src/main/java/com/idormy/sms/forwarder/activity/MainActivity.kt b/app/src/main/java/com/idormy/sms/forwarder/activity/MainActivity.kt index de5bc08d..e1f24ed1 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/activity/MainActivity.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/activity/MainActivity.kt @@ -259,6 +259,14 @@ class MainActivity : BaseActivity(), LiveEventBus.get(EVENT_UPDATE_RULE_TYPE, String::class.java).observe(this) { type: String -> ruleType = type } + + //替换 Looper.loop() 后再 Toast 形式 + LiveEventBus.get(EVENT_TOAST_SUCCESS, String::class.java).observe(this) { msg: String -> + XToastUtils.success(msg) + } + LiveEventBus.get(EVENT_TOAST_ERROR, String::class.java).observe(this) { msg: String -> + XToastUtils.error(msg, 15000) + } } /** diff --git a/app/src/main/java/com/idormy/sms/forwarder/activity/TaskActivity.kt b/app/src/main/java/com/idormy/sms/forwarder/activity/TaskActivity.kt index bf0ada98..4ed76437 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/activity/TaskActivity.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/activity/TaskActivity.kt @@ -4,11 +4,23 @@ import android.os.Bundle import androidx.viewbinding.ViewBinding import com.idormy.sms.forwarder.core.BaseActivity import com.idormy.sms.forwarder.fragment.TasksFragment +import com.idormy.sms.forwarder.utils.EVENT_TOAST_ERROR +import com.idormy.sms.forwarder.utils.EVENT_TOAST_SUCCESS +import com.idormy.sms.forwarder.utils.XToastUtils +import com.jeremyliao.liveeventbus.LiveEventBus class TaskActivity : BaseActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) openPage(TasksFragment::class.java) + + //替换 Looper.loop() 后再 Toast 形式 + LiveEventBus.get(EVENT_TOAST_SUCCESS, String::class.java).observe(this) { msg: String -> + XToastUtils.success(msg) + } + LiveEventBus.get(EVENT_TOAST_ERROR, String::class.java).observe(this) { msg: String -> + XToastUtils.error(msg, 15000) + } } } \ No newline at end of file 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 7efc3dde..8e2d481f 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,7 +1,6 @@ package com.idormy.sms.forwarder.fragment import android.annotation.SuppressLint -import android.os.Looper import android.util.Log import android.view.LayoutInflater import android.view.View @@ -813,9 +812,7 @@ class RulesEditFragment : BaseFragment(), View.OnClic SendUtils.sendMsgSender(msgInfo, rule) } catch (e: Exception) { e.printStackTrace() - if (Looper.myLooper() == null) Looper.prepare() - XToastUtils.error(e.message.toString()) - Looper.loop() + LiveEventBus.get(EVENT_TOAST_ERROR, String::class.java).post(e.message.toString()) } }.start() diff --git a/app/src/main/java/com/idormy/sms/forwarder/fragment/condition/CronFragment.kt b/app/src/main/java/com/idormy/sms/forwarder/fragment/condition/CronFragment.kt index fed14979..c0ef98d9 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/fragment/condition/CronFragment.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/fragment/condition/CronFragment.kt @@ -184,9 +184,6 @@ class CronFragment : BaseFragment(), View.On Log.d(TAG, settingVo.toString()) LiveEventBus.get(KEY_TEST_CONDITION, String::class.java).post("success") } catch (e: Exception) { - //if (Looper.myLooper() == null) Looper.prepare() - //XToastUtils.error(e.message.toString(), 30000) - //Looper.loop() LiveEventBus.get(KEY_TEST_CONDITION, String::class.java).post(e.message.toString()) e.printStackTrace() } 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 92c5bd49..eee872b9 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,6 +1,5 @@ package com.idormy.sms.forwarder.fragment.senders -import android.os.Looper import android.text.TextUtils import android.util.Log import android.view.LayoutInflater @@ -18,7 +17,16 @@ import com.idormy.sms.forwarder.database.viewmodel.SenderViewModel import com.idormy.sms.forwarder.databinding.FragmentSendersBarkBinding import com.idormy.sms.forwarder.entity.MsgInfo import com.idormy.sms.forwarder.entity.setting.BarkSetting -import com.idormy.sms.forwarder.utils.* +import com.idormy.sms.forwarder.utils.BARK_ENCRYPTION_ALGORITHM_MAP +import com.idormy.sms.forwarder.utils.BARK_LEVEL_MAP +import com.idormy.sms.forwarder.utils.CommonUtils +import com.idormy.sms.forwarder.utils.EVENT_TOAST_ERROR +import com.idormy.sms.forwarder.utils.KEY_SENDER_CLONE +import com.idormy.sms.forwarder.utils.KEY_SENDER_ID +import com.idormy.sms.forwarder.utils.KEY_SENDER_TEST +import com.idormy.sms.forwarder.utils.KEY_SENDER_TYPE +import com.idormy.sms.forwarder.utils.SettingUtils +import com.idormy.sms.forwarder.utils.XToastUtils import com.idormy.sms.forwarder.utils.sender.BarkUtils import com.jeremyliao.liveeventbus.LiveEventBus import com.xuexiang.xaop.annotation.SingleClick @@ -35,7 +43,7 @@ import io.reactivex.SingleObserver import io.reactivex.android.schedulers.AndroidSchedulers import io.reactivex.disposables.Disposable import io.reactivex.schedulers.Schedulers -import java.util.* +import java.util.Date @Page(name = "Bark") @Suppress("PrivatePropertyName") @@ -215,9 +223,7 @@ class BarkFragment : BaseFragment(), View.OnClickLi BarkUtils.sendMsg(settingVo, msgInfo) } catch (e: Exception) { e.printStackTrace() - if (Looper.myLooper() == null) Looper.prepare() - XToastUtils.error(e.message.toString()) - Looper.loop() + LiveEventBus.get(EVENT_TOAST_ERROR, String::class.java).post(e.message.toString()) } LiveEventBus.get(KEY_SENDER_TEST, String::class.java).post("finish") }.start() diff --git a/app/src/main/java/com/idormy/sms/forwarder/fragment/senders/DingtalkGroupRobotFragment.kt b/app/src/main/java/com/idormy/sms/forwarder/fragment/senders/DingtalkGroupRobotFragment.kt index 2ea1e6f0..d8d6fad6 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/fragment/senders/DingtalkGroupRobotFragment.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/fragment/senders/DingtalkGroupRobotFragment.kt @@ -1,6 +1,5 @@ package com.idormy.sms.forwarder.fragment.senders -import android.os.Looper import android.text.TextUtils import android.util.Log import android.view.LayoutInflater @@ -20,7 +19,14 @@ import com.idormy.sms.forwarder.database.viewmodel.SenderViewModel import com.idormy.sms.forwarder.databinding.FragmentSendersDingtalkGroupRobotBinding import com.idormy.sms.forwarder.entity.MsgInfo import com.idormy.sms.forwarder.entity.setting.DingtalkGroupRobotSetting -import com.idormy.sms.forwarder.utils.* +import com.idormy.sms.forwarder.utils.CommonUtils +import com.idormy.sms.forwarder.utils.EVENT_TOAST_ERROR +import com.idormy.sms.forwarder.utils.KEY_SENDER_CLONE +import com.idormy.sms.forwarder.utils.KEY_SENDER_ID +import com.idormy.sms.forwarder.utils.KEY_SENDER_TEST +import com.idormy.sms.forwarder.utils.KEY_SENDER_TYPE +import com.idormy.sms.forwarder.utils.SettingUtils +import com.idormy.sms.forwarder.utils.XToastUtils import com.idormy.sms.forwarder.utils.sender.DingtalkGroupRobotUtils import com.jeremyliao.liveeventbus.LiveEventBus import com.xuexiang.xaop.annotation.SingleClick @@ -35,7 +41,7 @@ import io.reactivex.SingleObserver import io.reactivex.android.schedulers.AndroidSchedulers import io.reactivex.disposables.Disposable import io.reactivex.schedulers.Schedulers -import java.util.* +import java.util.Date @Page(name = "钉钉群机器人") @Suppress("PrivatePropertyName") @@ -172,18 +178,22 @@ class DingtalkGroupRobotFragment : BaseFragment { CommonUtils.insertOrReplaceText2Cursor(etTitleTemplate, getString(R.string.tag_card_slot)) return } + R.id.bt_insert_time -> { CommonUtils.insertOrReplaceText2Cursor(etTitleTemplate, getString(R.string.tag_receive_time)) return } + R.id.bt_insert_device_name -> { CommonUtils.insertOrReplaceText2Cursor(etTitleTemplate, getString(R.string.tag_device_name)) return } + R.id.btn_test -> { mCountDownHelper?.start() Thread { @@ -195,14 +205,13 @@ class DingtalkGroupRobotFragment : BaseFragment { if (senderId <= 0 || isClone) { popToBack() @@ -222,6 +231,7 @@ class DingtalkGroupRobotFragment : BaseFragment { val name = binding!!.etName.text.toString().trim() if (TextUtils.isEmpty(name)) { diff --git a/app/src/main/java/com/idormy/sms/forwarder/fragment/senders/DingtalkInnerRobotFragment.kt b/app/src/main/java/com/idormy/sms/forwarder/fragment/senders/DingtalkInnerRobotFragment.kt index 2e1fbdbc..cb6cdffd 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/fragment/senders/DingtalkInnerRobotFragment.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/fragment/senders/DingtalkInnerRobotFragment.kt @@ -1,7 +1,6 @@ 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 @@ -174,6 +173,7 @@ class DingtalkInnerRobotFragment : BaseFragment { binding!!.layoutProxyAuthenticator.visibility = if (isChecked) View.VISIBLE else View.GONE } + else -> {} } } @@ -187,18 +187,22 @@ class DingtalkInnerRobotFragment : BaseFragment { CommonUtils.insertOrReplaceText2Cursor(etTitleTemplate, getString(R.string.tag_card_slot)) return } + R.id.bt_insert_time -> { CommonUtils.insertOrReplaceText2Cursor(etTitleTemplate, getString(R.string.tag_receive_time)) return } + R.id.bt_insert_device_name -> { CommonUtils.insertOrReplaceText2Cursor(etTitleTemplate, getString(R.string.tag_device_name)) return } + R.id.btn_test -> { mCountDownHelper?.start() Thread { @@ -210,14 +214,13 @@ class DingtalkInnerRobotFragment : BaseFragment { if (senderId <= 0 || isClone) { popToBack() @@ -237,6 +240,7 @@ class DingtalkInnerRobotFragment : BaseFragment { val name = binding!!.etName.text.toString().trim() if (TextUtils.isEmpty(name)) { 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 5855760f..76303bc5 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,6 +1,5 @@ package com.idormy.sms.forwarder.fragment.senders -import android.os.Looper import android.text.TextUtils import android.util.Log import android.view.LayoutInflater @@ -18,7 +17,14 @@ import com.idormy.sms.forwarder.database.viewmodel.SenderViewModel import com.idormy.sms.forwarder.databinding.FragmentSendersEmailBinding import com.idormy.sms.forwarder.entity.MsgInfo import com.idormy.sms.forwarder.entity.setting.EmailSetting -import com.idormy.sms.forwarder.utils.* +import com.idormy.sms.forwarder.utils.CommonUtils +import com.idormy.sms.forwarder.utils.EVENT_TOAST_ERROR +import com.idormy.sms.forwarder.utils.KEY_SENDER_CLONE +import com.idormy.sms.forwarder.utils.KEY_SENDER_ID +import com.idormy.sms.forwarder.utils.KEY_SENDER_TEST +import com.idormy.sms.forwarder.utils.KEY_SENDER_TYPE +import com.idormy.sms.forwarder.utils.SettingUtils +import com.idormy.sms.forwarder.utils.XToastUtils import com.idormy.sms.forwarder.utils.sender.EmailUtils import com.jeremyliao.liveeventbus.LiveEventBus import com.xuexiang.xaop.annotation.SingleClick @@ -35,7 +41,7 @@ import io.reactivex.SingleObserver import io.reactivex.android.schedulers.AndroidSchedulers import io.reactivex.disposables.Disposable import io.reactivex.schedulers.Schedulers -import java.util.* +import java.util.Date @Page(name = "Email") @Suppress("PrivatePropertyName") @@ -185,34 +191,42 @@ class EmailFragment : BaseFragment(), View.OnClick CommonUtils.insertOrReplaceText2Cursor(etNickname, getString(R.string.tag_from)) return } + R.id.bt_insert_extra_to_nickname -> { CommonUtils.insertOrReplaceText2Cursor(etNickname, getString(R.string.tag_card_slot)) return } + R.id.bt_insert_time_to_nickname -> { CommonUtils.insertOrReplaceText2Cursor(etNickname, getString(R.string.tag_receive_time)) return } + R.id.bt_insert_device_name_to_nickname -> { CommonUtils.insertOrReplaceText2Cursor(etNickname, getString(R.string.tag_device_name)) return } + R.id.bt_insert_sender -> { CommonUtils.insertOrReplaceText2Cursor(etTitleTemplate, getString(R.string.tag_from)) return } + R.id.bt_insert_extra -> { CommonUtils.insertOrReplaceText2Cursor(etTitleTemplate, getString(R.string.tag_card_slot)) return } + R.id.bt_insert_time -> { CommonUtils.insertOrReplaceText2Cursor(etTitleTemplate, getString(R.string.tag_receive_time)) return } + R.id.bt_insert_device_name -> { CommonUtils.insertOrReplaceText2Cursor(etTitleTemplate, getString(R.string.tag_device_name)) return } + R.id.btn_test -> { mCountDownHelper?.start() Thread { @@ -224,14 +238,13 @@ class EmailFragment : BaseFragment(), View.OnClick EmailUtils.sendMsg(settingVo, msgInfo) } catch (e: Exception) { e.printStackTrace() - if (Looper.myLooper() == null) Looper.prepare() - XToastUtils.error(e.message.toString()) - Looper.loop() + LiveEventBus.get(EVENT_TOAST_ERROR, String::class.java).post(e.message.toString()) } LiveEventBus.get(KEY_SENDER_TEST, String::class.java).post("finish") }.start() return } + R.id.btn_del -> { if (senderId <= 0 || isClone) { popToBack() @@ -251,6 +264,7 @@ class EmailFragment : BaseFragment(), View.OnClick .show() return } + R.id.btn_save -> { val name = binding!!.etName.text.toString().trim() if (TextUtils.isEmpty(name)) { diff --git a/app/src/main/java/com/idormy/sms/forwarder/fragment/senders/FeishuAppFragment.kt b/app/src/main/java/com/idormy/sms/forwarder/fragment/senders/FeishuAppFragment.kt index 47649d7d..6bbee409 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/fragment/senders/FeishuAppFragment.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/fragment/senders/FeishuAppFragment.kt @@ -1,6 +1,5 @@ package com.idormy.sms.forwarder.fragment.senders -import android.os.Looper import android.text.TextUtils import android.util.Log import android.view.LayoutInflater @@ -18,7 +17,14 @@ import com.idormy.sms.forwarder.database.viewmodel.SenderViewModel import com.idormy.sms.forwarder.databinding.FragmentSendersFeishuAppBinding import com.idormy.sms.forwarder.entity.MsgInfo import com.idormy.sms.forwarder.entity.setting.FeishuAppSetting -import com.idormy.sms.forwarder.utils.* +import com.idormy.sms.forwarder.utils.CommonUtils +import com.idormy.sms.forwarder.utils.EVENT_TOAST_ERROR +import com.idormy.sms.forwarder.utils.KEY_SENDER_CLONE +import com.idormy.sms.forwarder.utils.KEY_SENDER_ID +import com.idormy.sms.forwarder.utils.KEY_SENDER_TEST +import com.idormy.sms.forwarder.utils.KEY_SENDER_TYPE +import com.idormy.sms.forwarder.utils.SettingUtils +import com.idormy.sms.forwarder.utils.XToastUtils import com.idormy.sms.forwarder.utils.sender.FeishuAppUtils import com.jeremyliao.liveeventbus.LiveEventBus import com.xuexiang.xaop.annotation.SingleClick @@ -33,7 +39,7 @@ import io.reactivex.SingleObserver import io.reactivex.android.schedulers.AndroidSchedulers import io.reactivex.disposables.Disposable import io.reactivex.schedulers.Schedulers -import java.util.* +import java.util.Date @Page(name = "飞书企业应用") @Suppress("PrivatePropertyName") @@ -151,18 +157,22 @@ class FeishuAppFragment : BaseFragment(), View CommonUtils.insertOrReplaceText2Cursor(etTitleTemplate, getString(R.string.tag_from)) return } + R.id.bt_insert_extra -> { CommonUtils.insertOrReplaceText2Cursor(etTitleTemplate, getString(R.string.tag_card_slot)) return } + R.id.bt_insert_time -> { CommonUtils.insertOrReplaceText2Cursor(etTitleTemplate, getString(R.string.tag_receive_time)) return } + R.id.bt_insert_device_name -> { CommonUtils.insertOrReplaceText2Cursor(etTitleTemplate, getString(R.string.tag_device_name)) return } + R.id.btn_test -> { mCountDownHelper?.start() Thread { @@ -174,14 +184,13 @@ class FeishuAppFragment : BaseFragment(), View FeishuAppUtils.sendMsg(settingVo, msgInfo) } catch (e: Exception) { e.printStackTrace() - if (Looper.myLooper() == null) Looper.prepare() - XToastUtils.error(e.message.toString()) - Looper.loop() + LiveEventBus.get(EVENT_TOAST_ERROR, String::class.java).post(e.message.toString()) } LiveEventBus.get(KEY_SENDER_TEST, String::class.java).post("finish") }.start() return } + R.id.btn_del -> { if (senderId <= 0 || isClone) { popToBack() @@ -201,6 +210,7 @@ class FeishuAppFragment : BaseFragment(), View .show() return } + R.id.btn_save -> { val name = binding!!.etName.text.toString().trim() if (TextUtils.isEmpty(name)) { 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 a2686429..3e6bd41b 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,6 +1,5 @@ package com.idormy.sms.forwarder.fragment.senders -import android.os.Looper import android.text.TextUtils import android.util.Log import android.view.LayoutInflater @@ -18,7 +17,14 @@ import com.idormy.sms.forwarder.database.viewmodel.SenderViewModel import com.idormy.sms.forwarder.databinding.FragmentSendersFeishuBinding import com.idormy.sms.forwarder.entity.MsgInfo import com.idormy.sms.forwarder.entity.setting.FeishuSetting -import com.idormy.sms.forwarder.utils.* +import com.idormy.sms.forwarder.utils.CommonUtils +import com.idormy.sms.forwarder.utils.EVENT_TOAST_ERROR +import com.idormy.sms.forwarder.utils.KEY_SENDER_CLONE +import com.idormy.sms.forwarder.utils.KEY_SENDER_ID +import com.idormy.sms.forwarder.utils.KEY_SENDER_TEST +import com.idormy.sms.forwarder.utils.KEY_SENDER_TYPE +import com.idormy.sms.forwarder.utils.SettingUtils +import com.idormy.sms.forwarder.utils.XToastUtils import com.idormy.sms.forwarder.utils.sender.FeishuUtils import com.jeremyliao.liveeventbus.LiveEventBus import com.xuexiang.xaop.annotation.SingleClick @@ -33,7 +39,7 @@ import io.reactivex.SingleObserver import io.reactivex.android.schedulers.AndroidSchedulers import io.reactivex.disposables.Disposable import io.reactivex.schedulers.Schedulers -import java.util.* +import java.util.Date @Page(name = "飞书群机器人") @Suppress("PrivatePropertyName") @@ -150,18 +156,22 @@ class FeishuFragment : BaseFragment(), View.OnCli CommonUtils.insertOrReplaceText2Cursor(etTitleTemplate, getString(R.string.tag_from)) return } + R.id.bt_insert_extra -> { CommonUtils.insertOrReplaceText2Cursor(etTitleTemplate, getString(R.string.tag_card_slot)) return } + R.id.bt_insert_time -> { CommonUtils.insertOrReplaceText2Cursor(etTitleTemplate, getString(R.string.tag_receive_time)) return } + R.id.bt_insert_device_name -> { CommonUtils.insertOrReplaceText2Cursor(etTitleTemplate, getString(R.string.tag_device_name)) return } + R.id.btn_test -> { mCountDownHelper?.start() Thread { @@ -173,14 +183,13 @@ class FeishuFragment : BaseFragment(), View.OnCli FeishuUtils.sendMsg(settingVo, msgInfo) } catch (e: Exception) { e.printStackTrace() - if (Looper.myLooper() == null) Looper.prepare() - XToastUtils.error(e.message.toString()) - Looper.loop() + LiveEventBus.get(EVENT_TOAST_ERROR, String::class.java).post(e.message.toString()) } LiveEventBus.get(KEY_SENDER_TEST, String::class.java).post("finish") }.start() return } + R.id.btn_del -> { if (senderId <= 0 || isClone) { popToBack() @@ -200,6 +209,7 @@ class FeishuFragment : BaseFragment(), View.OnCli .show() return } + R.id.btn_save -> { val name = binding!!.etName.text.toString().trim() if (TextUtils.isEmpty(name)) { 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 fcef9c03..f8f0cfc8 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,6 +1,5 @@ package com.idormy.sms.forwarder.fragment.senders -import android.os.Looper import android.text.TextUtils import android.util.Log import android.view.LayoutInflater @@ -18,7 +17,14 @@ import com.idormy.sms.forwarder.database.viewmodel.SenderViewModel import com.idormy.sms.forwarder.databinding.FragmentSendersGotifyBinding import com.idormy.sms.forwarder.entity.MsgInfo import com.idormy.sms.forwarder.entity.setting.GotifySetting -import com.idormy.sms.forwarder.utils.* +import com.idormy.sms.forwarder.utils.CommonUtils +import com.idormy.sms.forwarder.utils.EVENT_TOAST_ERROR +import com.idormy.sms.forwarder.utils.KEY_SENDER_CLONE +import com.idormy.sms.forwarder.utils.KEY_SENDER_ID +import com.idormy.sms.forwarder.utils.KEY_SENDER_TEST +import com.idormy.sms.forwarder.utils.KEY_SENDER_TYPE +import com.idormy.sms.forwarder.utils.SettingUtils +import com.idormy.sms.forwarder.utils.XToastUtils import com.idormy.sms.forwarder.utils.sender.GotifyUtils import com.jeremyliao.liveeventbus.LiveEventBus import com.xuexiang.xaop.annotation.SingleClick @@ -33,7 +39,7 @@ import io.reactivex.SingleObserver import io.reactivex.android.schedulers.AndroidSchedulers import io.reactivex.disposables.Disposable import io.reactivex.schedulers.Schedulers -import java.util.* +import java.util.Date @Page(name = "Gotify") @Suppress("PrivatePropertyName") @@ -149,18 +155,22 @@ class GotifyFragment : BaseFragment(), View.OnCli CommonUtils.insertOrReplaceText2Cursor(etTitleTemplate, getString(R.string.tag_from)) return } + R.id.bt_insert_extra -> { CommonUtils.insertOrReplaceText2Cursor(etTitleTemplate, getString(R.string.tag_card_slot)) return } + R.id.bt_insert_time -> { CommonUtils.insertOrReplaceText2Cursor(etTitleTemplate, getString(R.string.tag_receive_time)) return } + R.id.bt_insert_device_name -> { CommonUtils.insertOrReplaceText2Cursor(etTitleTemplate, getString(R.string.tag_device_name)) return } + R.id.btn_test -> { mCountDownHelper?.start() Thread { @@ -172,14 +182,13 @@ class GotifyFragment : BaseFragment(), View.OnCli GotifyUtils.sendMsg(settingVo, msgInfo) } catch (e: Exception) { e.printStackTrace() - if (Looper.myLooper() == null) Looper.prepare() - XToastUtils.error(e.message.toString()) - Looper.loop() + LiveEventBus.get(EVENT_TOAST_ERROR, String::class.java).post(e.message.toString()) } LiveEventBus.get(KEY_SENDER_TEST, String::class.java).post("finish") }.start() return } + R.id.btn_del -> { if (senderId <= 0 || isClone) { popToBack() @@ -199,6 +208,7 @@ class GotifyFragment : BaseFragment(), View.OnCli .show() return } + R.id.btn_save -> { val name = binding!!.etName.text.toString().trim() if (TextUtils.isEmpty(name)) { 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 03579257..46668ade 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,6 +1,5 @@ package com.idormy.sms.forwarder.fragment.senders -import android.os.Looper import android.text.TextUtils import android.util.Log import android.view.LayoutInflater @@ -19,7 +18,14 @@ import com.idormy.sms.forwarder.database.viewmodel.SenderViewModel import com.idormy.sms.forwarder.databinding.FragmentSendersPushplusBinding import com.idormy.sms.forwarder.entity.MsgInfo import com.idormy.sms.forwarder.entity.setting.PushplusSetting -import com.idormy.sms.forwarder.utils.* +import com.idormy.sms.forwarder.utils.CommonUtils +import com.idormy.sms.forwarder.utils.EVENT_TOAST_ERROR +import com.idormy.sms.forwarder.utils.KEY_SENDER_CLONE +import com.idormy.sms.forwarder.utils.KEY_SENDER_ID +import com.idormy.sms.forwarder.utils.KEY_SENDER_TEST +import com.idormy.sms.forwarder.utils.KEY_SENDER_TYPE +import com.idormy.sms.forwarder.utils.SettingUtils +import com.idormy.sms.forwarder.utils.XToastUtils import com.idormy.sms.forwarder.utils.sender.PushplusUtils import com.jeremyliao.liveeventbus.LiveEventBus import com.xuexiang.xaop.annotation.SingleClick @@ -34,7 +40,7 @@ import io.reactivex.SingleObserver import io.reactivex.android.schedulers.AndroidSchedulers import io.reactivex.disposables.Disposable import io.reactivex.schedulers.Schedulers -import java.util.* +import java.util.Date @Page(name = "PushPlus") @Suppress("PrivatePropertyName") @@ -169,18 +175,22 @@ class PushplusFragment : BaseFragment(), View.O CommonUtils.insertOrReplaceText2Cursor(etTitleTemplate, getString(R.string.tag_from)) return } + R.id.bt_insert_extra -> { CommonUtils.insertOrReplaceText2Cursor(etTitleTemplate, getString(R.string.tag_card_slot)) return } + R.id.bt_insert_time -> { CommonUtils.insertOrReplaceText2Cursor(etTitleTemplate, getString(R.string.tag_receive_time)) return } + R.id.bt_insert_device_name -> { CommonUtils.insertOrReplaceText2Cursor(etTitleTemplate, getString(R.string.tag_device_name)) return } + R.id.btn_test -> { mCountDownHelper?.start() Thread { @@ -192,14 +202,13 @@ class PushplusFragment : BaseFragment(), View.O PushplusUtils.sendMsg(settingVo, msgInfo) } catch (e: Exception) { e.printStackTrace() - if (Looper.myLooper() == null) Looper.prepare() - XToastUtils.error(e.message.toString()) - Looper.loop() + LiveEventBus.get(EVENT_TOAST_ERROR, String::class.java).post(e.message.toString()) } LiveEventBus.get(KEY_SENDER_TEST, String::class.java).post("finish") }.start() return } + R.id.btn_del -> { if (senderId <= 0 || isClone) { popToBack() @@ -219,6 +228,7 @@ class PushplusFragment : BaseFragment(), View.O .show() return } + R.id.btn_save -> { val name = binding!!.etName.text.toString().trim() if (TextUtils.isEmpty(name)) { 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 b2365bfc..685dee44 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,6 +1,5 @@ package com.idormy.sms.forwarder.fragment.senders -import android.os.Looper import android.text.TextUtils import android.util.Log import android.view.LayoutInflater @@ -17,7 +16,13 @@ import com.idormy.sms.forwarder.database.viewmodel.SenderViewModel import com.idormy.sms.forwarder.databinding.FragmentSendersServerchanBinding import com.idormy.sms.forwarder.entity.MsgInfo import com.idormy.sms.forwarder.entity.setting.ServerchanSetting -import com.idormy.sms.forwarder.utils.* +import com.idormy.sms.forwarder.utils.EVENT_TOAST_ERROR +import com.idormy.sms.forwarder.utils.KEY_SENDER_CLONE +import com.idormy.sms.forwarder.utils.KEY_SENDER_ID +import com.idormy.sms.forwarder.utils.KEY_SENDER_TEST +import com.idormy.sms.forwarder.utils.KEY_SENDER_TYPE +import com.idormy.sms.forwarder.utils.SettingUtils +import com.idormy.sms.forwarder.utils.XToastUtils import com.idormy.sms.forwarder.utils.sender.ServerchanUtils import com.jeremyliao.liveeventbus.LiveEventBus import com.xuexiang.xaop.annotation.SingleClick @@ -32,7 +37,7 @@ import io.reactivex.SingleObserver import io.reactivex.android.schedulers.AndroidSchedulers import io.reactivex.disposables.Disposable import io.reactivex.schedulers.Schedulers -import java.util.* +import java.util.Date @Page(name = "Server酱·Turbo") @Suppress("PrivatePropertyName") @@ -150,14 +155,13 @@ class ServerchanFragment : BaseFragment(), Vi ServerchanUtils.sendMsg(settingVo, msgInfo) } catch (e: Exception) { e.printStackTrace() - if (Looper.myLooper() == null) Looper.prepare() - XToastUtils.error(e.message.toString()) - Looper.loop() + LiveEventBus.get(EVENT_TOAST_ERROR, String::class.java).post(e.message.toString()) } LiveEventBus.get(KEY_SENDER_TEST, String::class.java).post("finish") }.start() return } + R.id.btn_del -> { if (senderId <= 0 || isClone) { popToBack() @@ -177,6 +181,7 @@ class ServerchanFragment : BaseFragment(), Vi .show() return } + R.id.btn_save -> { val name = binding!!.etName.text.toString().trim() if (TextUtils.isEmpty(name)) { 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 0c6f681a..5e081933 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,6 +1,5 @@ package com.idormy.sms.forwarder.fragment.senders -import android.os.Looper import android.text.TextUtils import android.util.Log import android.view.LayoutInflater @@ -20,7 +19,15 @@ import com.idormy.sms.forwarder.database.viewmodel.SenderViewModel import com.idormy.sms.forwarder.databinding.FragmentSendersSmsBinding import com.idormy.sms.forwarder.entity.MsgInfo import com.idormy.sms.forwarder.entity.setting.SmsSetting -import com.idormy.sms.forwarder.utils.* +import com.idormy.sms.forwarder.utils.CommonUtils +import com.idormy.sms.forwarder.utils.EVENT_TOAST_ERROR +import com.idormy.sms.forwarder.utils.HttpServerUtils +import com.idormy.sms.forwarder.utils.KEY_SENDER_CLONE +import com.idormy.sms.forwarder.utils.KEY_SENDER_ID +import com.idormy.sms.forwarder.utils.KEY_SENDER_TEST +import com.idormy.sms.forwarder.utils.KEY_SENDER_TYPE +import com.idormy.sms.forwarder.utils.SettingUtils +import com.idormy.sms.forwarder.utils.XToastUtils import com.idormy.sms.forwarder.utils.sender.SmsUtils import com.jeremyliao.liveeventbus.LiveEventBus import com.xuexiang.xaop.annotation.SingleClick @@ -35,7 +42,7 @@ import io.reactivex.SingleObserver import io.reactivex.android.schedulers.AndroidSchedulers import io.reactivex.disposables.Disposable import io.reactivex.schedulers.Schedulers -import java.util.* +import java.util.Date @Page(name = "短信") @Suppress("PrivatePropertyName") @@ -170,6 +177,7 @@ class SmsFragment : BaseFragment(), View.OnClickList CommonUtils.insertOrReplaceText2Cursor(binding!!.etMobiles, getString(R.string.tag_from)) return } + R.id.btn_test -> { mCountDownHelper?.start() Thread { @@ -181,14 +189,13 @@ class SmsFragment : BaseFragment(), View.OnClickList SmsUtils.sendMsg(settingVo, msgInfo) } catch (e: Exception) { e.printStackTrace() - if (Looper.myLooper() == null) Looper.prepare() - XToastUtils.error(e.message.toString()) - Looper.loop() + LiveEventBus.get(EVENT_TOAST_ERROR, String::class.java).post(e.message.toString()) } LiveEventBus.get(KEY_SENDER_TEST, String::class.java).post("finish") }.start() return } + R.id.btn_del -> { if (senderId <= 0 || isClone) { popToBack() @@ -208,6 +215,7 @@ class SmsFragment : BaseFragment(), View.OnClickList .show() return } + R.id.btn_save -> { val name = binding!!.etName.text.toString().trim() if (TextUtils.isEmpty(name)) { diff --git a/app/src/main/java/com/idormy/sms/forwarder/fragment/senders/SocketFragment.kt b/app/src/main/java/com/idormy/sms/forwarder/fragment/senders/SocketFragment.kt index 43f17d57..1bca22e5 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/fragment/senders/SocketFragment.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/fragment/senders/SocketFragment.kt @@ -1,6 +1,5 @@ package com.idormy.sms.forwarder.fragment.senders -import android.os.Looper import android.text.TextUtils import android.util.Log import android.view.LayoutInflater @@ -18,7 +17,14 @@ import com.idormy.sms.forwarder.database.viewmodel.SenderViewModel import com.idormy.sms.forwarder.databinding.FragmentSendersSocketBinding import com.idormy.sms.forwarder.entity.MsgInfo import com.idormy.sms.forwarder.entity.setting.SocketSetting -import com.idormy.sms.forwarder.utils.* +import com.idormy.sms.forwarder.utils.CommonUtils +import com.idormy.sms.forwarder.utils.EVENT_TOAST_ERROR +import com.idormy.sms.forwarder.utils.KEY_SENDER_CLONE +import com.idormy.sms.forwarder.utils.KEY_SENDER_ID +import com.idormy.sms.forwarder.utils.KEY_SENDER_TEST +import com.idormy.sms.forwarder.utils.KEY_SENDER_TYPE +import com.idormy.sms.forwarder.utils.SettingUtils +import com.idormy.sms.forwarder.utils.XToastUtils import com.idormy.sms.forwarder.utils.sender.SocketUtils import com.jeremyliao.liveeventbus.LiveEventBus import com.xuexiang.xaop.annotation.SingleClick @@ -33,7 +39,7 @@ import io.reactivex.SingleObserver import io.reactivex.android.schedulers.AndroidSchedulers import io.reactivex.disposables.Disposable import io.reactivex.schedulers.Schedulers -import java.util.* +import java.util.Date @Page(name = "Socket") @Suppress("PrivatePropertyName") @@ -163,9 +169,7 @@ class SocketFragment : BaseFragment(), View.OnCli SocketUtils.sendMsg(settingVo, msgInfo) } catch (e: Exception) { e.printStackTrace() - if (Looper.myLooper() == null) Looper.prepare() - XToastUtils.error(e.message.toString()) - Looper.loop() + LiveEventBus.get(EVENT_TOAST_ERROR, String::class.java).post(e.message.toString()) } LiveEventBus.get(KEY_SENDER_TEST, String::class.java).post("finish") }.start() diff --git a/app/src/main/java/com/idormy/sms/forwarder/fragment/senders/TelegramFragment.kt b/app/src/main/java/com/idormy/sms/forwarder/fragment/senders/TelegramFragment.kt index c5665573..dd3bf398 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/fragment/senders/TelegramFragment.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/fragment/senders/TelegramFragment.kt @@ -1,6 +1,5 @@ package com.idormy.sms.forwarder.fragment.senders -import android.os.Looper import android.text.TextUtils import android.util.Log import android.view.LayoutInflater @@ -19,7 +18,13 @@ import com.idormy.sms.forwarder.database.viewmodel.SenderViewModel import com.idormy.sms.forwarder.databinding.FragmentSendersTelegramBinding import com.idormy.sms.forwarder.entity.MsgInfo import com.idormy.sms.forwarder.entity.setting.TelegramSetting -import com.idormy.sms.forwarder.utils.* +import com.idormy.sms.forwarder.utils.EVENT_TOAST_ERROR +import com.idormy.sms.forwarder.utils.KEY_SENDER_CLONE +import com.idormy.sms.forwarder.utils.KEY_SENDER_ID +import com.idormy.sms.forwarder.utils.KEY_SENDER_TEST +import com.idormy.sms.forwarder.utils.KEY_SENDER_TYPE +import com.idormy.sms.forwarder.utils.SettingUtils +import com.idormy.sms.forwarder.utils.XToastUtils import com.idormy.sms.forwarder.utils.sender.TelegramUtils import com.jeremyliao.liveeventbus.LiveEventBus import com.xuexiang.xaop.annotation.SingleClick @@ -35,7 +40,7 @@ import io.reactivex.android.schedulers.AndroidSchedulers import io.reactivex.disposables.Disposable import io.reactivex.schedulers.Schedulers import java.net.Proxy -import java.util.* +import java.util.Date @Page(name = "Telegram机器人") @Suppress("PrivatePropertyName") @@ -176,14 +181,13 @@ class TelegramFragment : BaseFragment(), View.O TelegramUtils.sendMsg(settingVo, msgInfo) } catch (e: Exception) { e.printStackTrace() - if (Looper.myLooper() == null) Looper.prepare() - XToastUtils.error(e.message.toString()) - Looper.loop() + LiveEventBus.get(EVENT_TOAST_ERROR, String::class.java).post(e.message.toString()) } LiveEventBus.get(KEY_SENDER_TEST, String::class.java).post("finish") }.start() return } + R.id.btn_del -> { if (senderId <= 0 || isClone) { popToBack() @@ -203,6 +207,7 @@ class TelegramFragment : BaseFragment(), View.O .show() return } + R.id.btn_save -> { val name = binding!!.etName.text.toString().trim() if (TextUtils.isEmpty(name)) { diff --git a/app/src/main/java/com/idormy/sms/forwarder/fragment/senders/UrlSchemeFragment.kt b/app/src/main/java/com/idormy/sms/forwarder/fragment/senders/UrlSchemeFragment.kt index 513e9f24..e1b167d4 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/fragment/senders/UrlSchemeFragment.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/fragment/senders/UrlSchemeFragment.kt @@ -4,7 +4,6 @@ import android.content.Intent import android.content.pm.PackageManager import android.content.pm.ResolveInfo import android.net.Uri -import android.os.Looper import android.text.TextUtils import android.util.Log import android.view.LayoutInflater @@ -21,7 +20,14 @@ import com.idormy.sms.forwarder.database.viewmodel.SenderViewModel import com.idormy.sms.forwarder.databinding.FragmentSendersUrlSchemeBinding import com.idormy.sms.forwarder.entity.MsgInfo import com.idormy.sms.forwarder.entity.setting.UrlSchemeSetting -import com.idormy.sms.forwarder.utils.* +import com.idormy.sms.forwarder.utils.CommonUtils +import com.idormy.sms.forwarder.utils.EVENT_TOAST_ERROR +import com.idormy.sms.forwarder.utils.KEY_SENDER_CLONE +import com.idormy.sms.forwarder.utils.KEY_SENDER_ID +import com.idormy.sms.forwarder.utils.KEY_SENDER_TEST +import com.idormy.sms.forwarder.utils.KEY_SENDER_TYPE +import com.idormy.sms.forwarder.utils.SettingUtils +import com.idormy.sms.forwarder.utils.XToastUtils import com.idormy.sms.forwarder.utils.sender.UrlSchemeUtils import com.jeremyliao.liveeventbus.LiveEventBus import com.xuexiang.xaop.annotation.SingleClick @@ -36,7 +42,7 @@ import io.reactivex.SingleObserver import io.reactivex.android.schedulers.AndroidSchedulers import io.reactivex.disposables.Disposable import io.reactivex.schedulers.Schedulers -import java.util.* +import java.util.Date @Page(name = "URL Scheme") @Suppress("PrivatePropertyName", "DEPRECATION") @@ -152,14 +158,13 @@ class UrlSchemeFragment : BaseFragment(), View UrlSchemeUtils.sendMsg(settingVo, msgInfo) } catch (e: Exception) { e.printStackTrace() - if (Looper.myLooper() == null) Looper.prepare() - XToastUtils.error(e.message.toString()) - Looper.loop() + LiveEventBus.get(EVENT_TOAST_ERROR, String::class.java).post(e.message.toString()) } LiveEventBus.get(KEY_SENDER_TEST, String::class.java).post("finish") }.start() return } + R.id.btn_del -> { if (senderId <= 0 || isClone) { popToBack() @@ -179,6 +184,7 @@ class UrlSchemeFragment : BaseFragment(), View .show() return } + R.id.btn_save -> { val name = binding!!.etName.text.toString().trim() if (TextUtils.isEmpty(name)) { 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 b962e7b0..e7615ab9 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,6 +1,5 @@ package com.idormy.sms.forwarder.fragment.senders -import android.os.Looper import android.text.TextUtils import android.util.Log import android.view.LayoutInflater @@ -20,7 +19,14 @@ import com.idormy.sms.forwarder.database.viewmodel.SenderViewModel import com.idormy.sms.forwarder.databinding.FragmentSendersWebhookBinding import com.idormy.sms.forwarder.entity.MsgInfo import com.idormy.sms.forwarder.entity.setting.WebhookSetting -import com.idormy.sms.forwarder.utils.* +import com.idormy.sms.forwarder.utils.CommonUtils +import com.idormy.sms.forwarder.utils.EVENT_TOAST_ERROR +import com.idormy.sms.forwarder.utils.KEY_SENDER_CLONE +import com.idormy.sms.forwarder.utils.KEY_SENDER_ID +import com.idormy.sms.forwarder.utils.KEY_SENDER_TEST +import com.idormy.sms.forwarder.utils.KEY_SENDER_TYPE +import com.idormy.sms.forwarder.utils.SettingUtils +import com.idormy.sms.forwarder.utils.XToastUtils import com.idormy.sms.forwarder.utils.sender.WebhookUtils import com.jeremyliao.liveeventbus.LiveEventBus import com.xuexiang.xaop.annotation.SingleClick @@ -35,7 +41,7 @@ import io.reactivex.SingleObserver import io.reactivex.android.schedulers.AndroidSchedulers import io.reactivex.disposables.Disposable import io.reactivex.schedulers.Schedulers -import java.util.* +import java.util.Date @Page(name = "Webhook") @Suppress("PrivatePropertyName") @@ -177,14 +183,13 @@ class WebhookFragment : BaseFragment(), View.OnC WebhookUtils.sendMsg(settingVo, msgInfo) } catch (e: Exception) { e.printStackTrace() - if (Looper.myLooper() == null) Looper.prepare() - XToastUtils.error(e.message.toString()) - Looper.loop() + LiveEventBus.get(EVENT_TOAST_ERROR, String::class.java).post(e.message.toString()) } LiveEventBus.get(KEY_SENDER_TEST, String::class.java).post("finish") }.start() return } + R.id.btn_del -> { if (senderId <= 0 || isClone) { popToBack() @@ -204,6 +209,7 @@ class WebhookFragment : BaseFragment(), View.OnC .show() return } + R.id.btn_save -> { val name = binding!!.etName.text.toString().trim() if (TextUtils.isEmpty(name)) { 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 4c1bf136..d2d28af0 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,7 +1,6 @@ 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 @@ -186,9 +185,11 @@ class WeworkAgentFragment : BaseFragment(), binding!!.layoutToTag.visibility = View.VISIBLE } } + R.id.sb_proxyAuthenticator -> { binding!!.layoutProxyAuthenticator.visibility = if (isChecked) View.VISIBLE else View.GONE } + else -> {} } } @@ -208,14 +209,13 @@ class WeworkAgentFragment : BaseFragment(), WeworkAgentUtils.sendMsg(settingVo, msgInfo) } catch (e: Exception) { e.printStackTrace() - if (Looper.myLooper() == null) Looper.prepare() - XToastUtils.error(e.message.toString()) - Looper.loop() + LiveEventBus.get(EVENT_TOAST_ERROR, String::class.java).post(e.message.toString()) } LiveEventBus.get(KEY_SENDER_TEST, String::class.java).post("finish") }.start() return } + R.id.btn_del -> { if (senderId <= 0 || isClone) { popToBack() @@ -235,6 +235,7 @@ class WeworkAgentFragment : BaseFragment(), .show() return } + R.id.btn_save -> { val name = binding!!.etName.text.toString().trim() if (TextUtils.isEmpty(name)) { 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 ef3d15f2..79e0d8ea 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,6 +1,5 @@ package com.idormy.sms.forwarder.fragment.senders -import android.os.Looper import android.text.TextUtils import android.util.Log import android.view.LayoutInflater @@ -20,6 +19,7 @@ import com.idormy.sms.forwarder.databinding.FragmentSendersWeworkRobotBinding import com.idormy.sms.forwarder.entity.MsgInfo import com.idormy.sms.forwarder.entity.setting.WeworkRobotSetting import com.idormy.sms.forwarder.utils.CommonUtils +import com.idormy.sms.forwarder.utils.EVENT_TOAST_ERROR import com.idormy.sms.forwarder.utils.KEY_SENDER_CLONE import com.idormy.sms.forwarder.utils.KEY_SENDER_ID import com.idormy.sms.forwarder.utils.KEY_SENDER_TEST @@ -178,9 +178,7 @@ class WeworkRobotFragment : BaseFragment(), WeworkRobotUtils.sendMsg(settingVo, msgInfo) } catch (e: Exception) { e.printStackTrace() - if (Looper.myLooper() == null) Looper.prepare() - XToastUtils.error(e.message.toString()) - Looper.loop() + LiveEventBus.get(EVENT_TOAST_ERROR, String::class.java).post(e.message.toString()) } LiveEventBus.get(KEY_SENDER_TEST, String::class.java).post("finish") }.start() diff --git a/app/src/main/java/com/idormy/sms/forwarder/utils/Constants.kt b/app/src/main/java/com/idormy/sms/forwarder/utils/Constants.kt index 7cecf3ba..67659b74 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/utils/Constants.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/utils/Constants.kt @@ -13,8 +13,12 @@ object Worker { const val sendSbnId = "send_sbn_id" const val updateLogs = "update_logs" const val ruleId = "rule_id" + const val rule = "rule" const val senderIndex = "sender_index" const val msgId = "msg_id" + const val taskId = "task_id" + const val actionType = "action_type" + const val actionSetting = "action_setting" } //初始化相关 @@ -352,6 +356,10 @@ const val EXTRA_PHONE_NUMBER = "android.intent.extra.PHONE_NUMBER" const val KEY_TITLE = "key_title" const val KEY_URL = "key_url" +//吐司监听 +const val EVENT_TOAST_SUCCESS = "key_toast_success" +const val EVENT_TOAST_ERROR = "key_toast_error" + //主页监听时间 const val EVENT_UPDATE_LOGS_TYPE = "key_logs_type" const val EVENT_UPDATE_RULE_TYPE = "key_rules_type" 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 7ed3afeb..340f9939 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,7 +1,6 @@ package com.idormy.sms.forwarder.utils import android.annotation.SuppressLint -import android.os.Looper import android.util.Log import androidx.work.OneTimeWorkRequestBuilder import androidx.work.WorkManager @@ -18,6 +17,7 @@ import com.idormy.sms.forwarder.utils.sender.* import com.idormy.sms.forwarder.workers.SendLogicWorker import com.idormy.sms.forwarder.workers.SendWorker import com.idormy.sms.forwarder.workers.UpdateLogsWorker +import com.jeremyliao.liveeventbus.LiveEventBus import com.xuexiang.xui.utils.ResUtils import com.xuexiang.xutil.XUtil import java.text.ParsePosition @@ -108,66 +108,82 @@ object SendUtils { val settingVo = Gson().fromJson(sender.jsonSetting, DingtalkGroupRobotSetting::class.java) DingtalkGroupRobotUtils.sendMsg(settingVo, msgInfo, rule, senderIndex, logId, msgId) } + TYPE_EMAIL -> { val settingVo = Gson().fromJson(sender.jsonSetting, EmailSetting::class.java) EmailUtils.sendMsg(settingVo, msgInfo, rule, senderIndex, logId, msgId) } + TYPE_BARK -> { val settingVo = Gson().fromJson(sender.jsonSetting, BarkSetting::class.java) BarkUtils.sendMsg(settingVo, msgInfo, rule, senderIndex, logId, msgId) } + TYPE_WEBHOOK -> { val settingVo = Gson().fromJson(sender.jsonSetting, WebhookSetting::class.java) WebhookUtils.sendMsg(settingVo, msgInfo, rule, senderIndex, logId, msgId) } + TYPE_WEWORK_ROBOT -> { val settingVo = Gson().fromJson(sender.jsonSetting, WeworkRobotSetting::class.java) WeworkRobotUtils.sendMsg(settingVo, msgInfo, rule, senderIndex, logId, msgId) } + TYPE_WEWORK_AGENT -> { val settingVo = Gson().fromJson(sender.jsonSetting, WeworkAgentSetting::class.java) WeworkAgentUtils.sendMsg(settingVo, msgInfo, rule, senderIndex, logId, msgId) } + TYPE_SERVERCHAN -> { val settingVo = Gson().fromJson(sender.jsonSetting, ServerchanSetting::class.java) ServerchanUtils.sendMsg(settingVo, msgInfo, rule, senderIndex, logId, msgId) } + TYPE_TELEGRAM -> { val settingVo = Gson().fromJson(sender.jsonSetting, TelegramSetting::class.java) TelegramUtils.sendMsg(settingVo, msgInfo, rule, senderIndex, logId, msgId) } + TYPE_SMS -> { val settingVo = Gson().fromJson(sender.jsonSetting, SmsSetting::class.java) SmsUtils.sendMsg(settingVo, msgInfo, rule, senderIndex, logId, msgId) } + TYPE_FEISHU -> { val settingVo = Gson().fromJson(sender.jsonSetting, FeishuSetting::class.java) FeishuUtils.sendMsg(settingVo, msgInfo, rule, senderIndex, logId, msgId) } + TYPE_PUSHPLUS -> { val settingVo = Gson().fromJson(sender.jsonSetting, PushplusSetting::class.java) PushplusUtils.sendMsg(settingVo, msgInfo, rule, senderIndex, logId, msgId) } + TYPE_GOTIFY -> { val settingVo = Gson().fromJson(sender.jsonSetting, GotifySetting::class.java) GotifyUtils.sendMsg(settingVo, msgInfo, rule, senderIndex, logId, msgId) } + TYPE_DINGTALK_INNER_ROBOT -> { val settingVo = Gson().fromJson(sender.jsonSetting, DingtalkInnerRobotSetting::class.java) DingtalkInnerRobotUtils.sendMsg(settingVo, msgInfo, rule, senderIndex, logId, msgId) } + TYPE_FEISHU_APP -> { val settingVo = Gson().fromJson(sender.jsonSetting, FeishuAppSetting::class.java) FeishuAppUtils.sendMsg(settingVo, msgInfo, rule, senderIndex, logId, msgId) } + TYPE_URL_SCHEME -> { val settingVo = Gson().fromJson(sender.jsonSetting, UrlSchemeSetting::class.java) UrlSchemeUtils.sendMsg(settingVo, msgInfo, rule, senderIndex, logId, msgId) } + TYPE_SOCKET -> { val settingVo = Gson().fromJson(sender.jsonSetting, SocketSetting::class.java) SocketUtils.sendMsg(settingVo, msgInfo, rule, senderIndex, logId, msgId) } + else -> { updateLogs(logId, 0, ResUtils.getString(R.string.unknown_sender)) senderLogic(0, msgInfo, rule, senderIndex, msgId) @@ -188,7 +204,8 @@ object SendUtils { val request = OneTimeWorkRequestBuilder().setInputData( workDataOf( Worker.sendMsgInfo to Gson().toJson(msgInfo), - Worker.ruleId to rule.id, + //Worker.ruleId to rule.id, + Worker.rule to Gson().toJson(rule), Worker.senderIndex to senderIndex + 1, Worker.msgId to msgId, ) @@ -200,15 +217,16 @@ object SendUtils { //更新转发日志状态 fun updateLogs(logId: Long?, status: Int, response: String) { + //自动任务的不需要吐司或者更新日志 + if (logId == -1L) return + //测试的没有记录ID,这里取巧了 if (logId == null || logId == 0L) { - if (Looper.myLooper() == null) Looper.prepare() if (status == 2) { - XToastUtils.success(ResUtils.getString(R.string.request_succeeded)) + LiveEventBus.get(EVENT_TOAST_SUCCESS, String::class.java).post(ResUtils.getString(R.string.request_succeeded)) } else { - XToastUtils.error(ResUtils.getString(R.string.request_failed) + response) + LiveEventBus.get(EVENT_TOAST_ERROR, String::class.java).post(ResUtils.getString(R.string.request_failed) + response) } - Looper.loop() return } diff --git a/app/src/main/java/com/idormy/sms/forwarder/workers/SendLogicWorker.kt b/app/src/main/java/com/idormy/sms/forwarder/workers/SendLogicWorker.kt index 301ccb18..1ecb340c 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/workers/SendLogicWorker.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/workers/SendLogicWorker.kt @@ -1,11 +1,13 @@ package com.idormy.sms.forwarder.workers import android.content.Context +import android.util.Log import androidx.work.CoroutineWorker import androidx.work.WorkerParameters import com.google.gson.Gson import com.idormy.sms.forwarder.core.Core import com.idormy.sms.forwarder.database.entity.Logs +import com.idormy.sms.forwarder.database.entity.Rule import com.idormy.sms.forwarder.entity.MsgInfo import com.idormy.sms.forwarder.utils.SendUtils import com.idormy.sms.forwarder.utils.Worker @@ -19,17 +21,27 @@ class SendLogicWorker( override suspend fun doWork(): Result = withContext(Dispatchers.IO) { val msgInfoJson = inputData.getString(Worker.sendMsgInfo) - val msgInfo = Gson().fromJson(msgInfoJson, MsgInfo::class.java) - val ruleId = inputData.getLong(Worker.ruleId, 0L) + val msgInfo = Gson().fromJson(msgInfoJson, MsgInfo::class.java) ?: return@withContext Result.failure() + //val ruleId = inputData.getLong(Worker.ruleId, 0L) + val ruleJson = inputData.getString(Worker.rule) val senderIndex = inputData.getInt(Worker.senderIndex, 0) val msgId = inputData.getLong(Worker.msgId, 0L) + Log.d("SendLogicWorker", "msgInfoJson: $msgInfoJson, ruleJson: $ruleJson, senderIndex: $senderIndex, msgId: $msgId") - val rule = Core.rule.getOne(ruleId) + //val rule = Core.rule.getOne(ruleId) + val rule = Gson().fromJson(ruleJson, Rule::class.java) ?: return@withContext Result.failure() + if (senderIndex >= rule.senderList.size) return@withContext Result.failure() val sender = rule.senderList[senderIndex] - val log = Logs(0, rule.type, msgId, rule.id, sender.id) - val logId = Core.logs.insert(log) - SendUtils.sendMsgSender(msgInfo, rule, senderIndex, logId, msgId) + var logId = 0L + if (msgId > 0 && rule.id > 0) { + val log = Logs(0, rule.type, msgId, rule.id, sender.id) + logId = Core.logs.insert(log) + } else if (msgId == -1L) { + //自动任务的不需要吐司或者更新日志,特殊处理 logId = -1,msgId = -1 + logId = -1L + } + SendUtils.sendMsgSender(msgInfo, rule, senderIndex, logId, msgId) return@withContext Result.success() }