优化:采用 LiveEventBus 替换掉 Looper.loop() 后再 Toast 形式

This commit is contained in:
pppscn 2023-12-12 13:40:45 +08:00
parent 5381151ac3
commit 51129509f9
24 changed files with 280 additions and 109 deletions

View File

@ -4,11 +4,23 @@ import android.os.Bundle
import androidx.viewbinding.ViewBinding import androidx.viewbinding.ViewBinding
import com.idormy.sms.forwarder.core.BaseActivity import com.idormy.sms.forwarder.core.BaseActivity
import com.idormy.sms.forwarder.fragment.ClientFragment 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<ViewBinding?>() { class ClientActivity : BaseActivity<ViewBinding?>() {
override fun onCreate(savedInstanceState: Bundle?) { override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState) super.onCreate(savedInstanceState)
openPage(ClientFragment::class.java) 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)
}
} }
} }

View File

@ -259,6 +259,14 @@ class MainActivity : BaseActivity<ActivityMainBinding?>(),
LiveEventBus.get(EVENT_UPDATE_RULE_TYPE, String::class.java).observe(this) { type: String -> LiveEventBus.get(EVENT_UPDATE_RULE_TYPE, String::class.java).observe(this) { type: String ->
ruleType = type 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)
}
} }
/** /**

View File

@ -4,11 +4,23 @@ import android.os.Bundle
import androidx.viewbinding.ViewBinding import androidx.viewbinding.ViewBinding
import com.idormy.sms.forwarder.core.BaseActivity import com.idormy.sms.forwarder.core.BaseActivity
import com.idormy.sms.forwarder.fragment.TasksFragment 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<ViewBinding?>() { class TaskActivity : BaseActivity<ViewBinding?>() {
override fun onCreate(savedInstanceState: Bundle?) { override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState) super.onCreate(savedInstanceState)
openPage(TasksFragment::class.java) 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)
}
} }
} }

View File

@ -1,7 +1,6 @@
package com.idormy.sms.forwarder.fragment package com.idormy.sms.forwarder.fragment
import android.annotation.SuppressLint import android.annotation.SuppressLint
import android.os.Looper
import android.util.Log import android.util.Log
import android.view.LayoutInflater import android.view.LayoutInflater
import android.view.View import android.view.View
@ -813,9 +812,7 @@ class RulesEditFragment : BaseFragment<FragmentRulesEditBinding?>(), View.OnClic
SendUtils.sendMsgSender(msgInfo, rule) SendUtils.sendMsgSender(msgInfo, rule)
} catch (e: Exception) { } catch (e: Exception) {
e.printStackTrace() e.printStackTrace()
if (Looper.myLooper() == null) Looper.prepare() LiveEventBus.get(EVENT_TOAST_ERROR, String::class.java).post(e.message.toString())
XToastUtils.error(e.message.toString())
Looper.loop()
} }
}.start() }.start()

View File

@ -184,9 +184,6 @@ class CronFragment : BaseFragment<FragmentTasksConditionCronBinding?>(), View.On
Log.d(TAG, settingVo.toString()) Log.d(TAG, settingVo.toString())
LiveEventBus.get(KEY_TEST_CONDITION, String::class.java).post("success") LiveEventBus.get(KEY_TEST_CONDITION, String::class.java).post("success")
} catch (e: Exception) { } 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()) LiveEventBus.get(KEY_TEST_CONDITION, String::class.java).post(e.message.toString())
e.printStackTrace() e.printStackTrace()
} }

View File

@ -1,6 +1,5 @@
package com.idormy.sms.forwarder.fragment.senders package com.idormy.sms.forwarder.fragment.senders
import android.os.Looper
import android.text.TextUtils import android.text.TextUtils
import android.util.Log import android.util.Log
import android.view.LayoutInflater 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.databinding.FragmentSendersBarkBinding
import com.idormy.sms.forwarder.entity.MsgInfo import com.idormy.sms.forwarder.entity.MsgInfo
import com.idormy.sms.forwarder.entity.setting.BarkSetting 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.idormy.sms.forwarder.utils.sender.BarkUtils
import com.jeremyliao.liveeventbus.LiveEventBus import com.jeremyliao.liveeventbus.LiveEventBus
import com.xuexiang.xaop.annotation.SingleClick import com.xuexiang.xaop.annotation.SingleClick
@ -35,7 +43,7 @@ import io.reactivex.SingleObserver
import io.reactivex.android.schedulers.AndroidSchedulers import io.reactivex.android.schedulers.AndroidSchedulers
import io.reactivex.disposables.Disposable import io.reactivex.disposables.Disposable
import io.reactivex.schedulers.Schedulers import io.reactivex.schedulers.Schedulers
import java.util.* import java.util.Date
@Page(name = "Bark") @Page(name = "Bark")
@Suppress("PrivatePropertyName") @Suppress("PrivatePropertyName")
@ -215,9 +223,7 @@ class BarkFragment : BaseFragment<FragmentSendersBarkBinding?>(), View.OnClickLi
BarkUtils.sendMsg(settingVo, msgInfo) BarkUtils.sendMsg(settingVo, msgInfo)
} catch (e: Exception) { } catch (e: Exception) {
e.printStackTrace() e.printStackTrace()
if (Looper.myLooper() == null) Looper.prepare() LiveEventBus.get(EVENT_TOAST_ERROR, String::class.java).post(e.message.toString())
XToastUtils.error(e.message.toString())
Looper.loop()
} }
LiveEventBus.get(KEY_SENDER_TEST, String::class.java).post("finish") LiveEventBus.get(KEY_SENDER_TEST, String::class.java).post("finish")
}.start() }.start()

View File

@ -1,6 +1,5 @@
package com.idormy.sms.forwarder.fragment.senders package com.idormy.sms.forwarder.fragment.senders
import android.os.Looper
import android.text.TextUtils import android.text.TextUtils
import android.util.Log import android.util.Log
import android.view.LayoutInflater 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.databinding.FragmentSendersDingtalkGroupRobotBinding
import com.idormy.sms.forwarder.entity.MsgInfo import com.idormy.sms.forwarder.entity.MsgInfo
import com.idormy.sms.forwarder.entity.setting.DingtalkGroupRobotSetting 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.idormy.sms.forwarder.utils.sender.DingtalkGroupRobotUtils
import com.jeremyliao.liveeventbus.LiveEventBus import com.jeremyliao.liveeventbus.LiveEventBus
import com.xuexiang.xaop.annotation.SingleClick import com.xuexiang.xaop.annotation.SingleClick
@ -35,7 +41,7 @@ import io.reactivex.SingleObserver
import io.reactivex.android.schedulers.AndroidSchedulers import io.reactivex.android.schedulers.AndroidSchedulers
import io.reactivex.disposables.Disposable import io.reactivex.disposables.Disposable
import io.reactivex.schedulers.Schedulers import io.reactivex.schedulers.Schedulers
import java.util.* import java.util.Date
@Page(name = "钉钉群机器人") @Page(name = "钉钉群机器人")
@Suppress("PrivatePropertyName") @Suppress("PrivatePropertyName")
@ -172,18 +178,22 @@ class DingtalkGroupRobotFragment : BaseFragment<FragmentSendersDingtalkGroupRobo
CommonUtils.insertOrReplaceText2Cursor(etTitleTemplate, getString(R.string.tag_from)) CommonUtils.insertOrReplaceText2Cursor(etTitleTemplate, getString(R.string.tag_from))
return return
} }
R.id.bt_insert_extra -> { R.id.bt_insert_extra -> {
CommonUtils.insertOrReplaceText2Cursor(etTitleTemplate, getString(R.string.tag_card_slot)) CommonUtils.insertOrReplaceText2Cursor(etTitleTemplate, getString(R.string.tag_card_slot))
return return
} }
R.id.bt_insert_time -> { R.id.bt_insert_time -> {
CommonUtils.insertOrReplaceText2Cursor(etTitleTemplate, getString(R.string.tag_receive_time)) CommonUtils.insertOrReplaceText2Cursor(etTitleTemplate, getString(R.string.tag_receive_time))
return return
} }
R.id.bt_insert_device_name -> { R.id.bt_insert_device_name -> {
CommonUtils.insertOrReplaceText2Cursor(etTitleTemplate, getString(R.string.tag_device_name)) CommonUtils.insertOrReplaceText2Cursor(etTitleTemplate, getString(R.string.tag_device_name))
return return
} }
R.id.btn_test -> { R.id.btn_test -> {
mCountDownHelper?.start() mCountDownHelper?.start()
Thread { Thread {
@ -195,14 +205,13 @@ class DingtalkGroupRobotFragment : BaseFragment<FragmentSendersDingtalkGroupRobo
DingtalkGroupRobotUtils.sendMsg(settingVo, msgInfo) DingtalkGroupRobotUtils.sendMsg(settingVo, msgInfo)
} catch (e: Exception) { } catch (e: Exception) {
e.printStackTrace() e.printStackTrace()
if (Looper.myLooper() == null) Looper.prepare() LiveEventBus.get(EVENT_TOAST_ERROR, String::class.java).post(e.message.toString())
XToastUtils.error(e.message.toString())
Looper.loop()
} }
LiveEventBus.get(KEY_SENDER_TEST, String::class.java).post("finish") LiveEventBus.get(KEY_SENDER_TEST, String::class.java).post("finish")
}.start() }.start()
return return
} }
R.id.btn_del -> { R.id.btn_del -> {
if (senderId <= 0 || isClone) { if (senderId <= 0 || isClone) {
popToBack() popToBack()
@ -222,6 +231,7 @@ class DingtalkGroupRobotFragment : BaseFragment<FragmentSendersDingtalkGroupRobo
.show() .show()
return return
} }
R.id.btn_save -> { R.id.btn_save -> {
val name = binding!!.etName.text.toString().trim() val name = binding!!.etName.text.toString().trim()
if (TextUtils.isEmpty(name)) { if (TextUtils.isEmpty(name)) {

View File

@ -1,7 +1,6 @@
package com.idormy.sms.forwarder.fragment.senders package com.idormy.sms.forwarder.fragment.senders
import android.annotation.SuppressLint import android.annotation.SuppressLint
import android.os.Looper
import android.text.TextUtils import android.text.TextUtils
import android.util.Log import android.util.Log
import android.view.LayoutInflater import android.view.LayoutInflater
@ -174,6 +173,7 @@ class DingtalkInnerRobotFragment : BaseFragment<FragmentSendersDingtalkInnerRobo
R.id.sb_proxyAuthenticator -> { R.id.sb_proxyAuthenticator -> {
binding!!.layoutProxyAuthenticator.visibility = if (isChecked) View.VISIBLE else View.GONE binding!!.layoutProxyAuthenticator.visibility = if (isChecked) View.VISIBLE else View.GONE
} }
else -> {} else -> {}
} }
} }
@ -187,18 +187,22 @@ class DingtalkInnerRobotFragment : BaseFragment<FragmentSendersDingtalkInnerRobo
CommonUtils.insertOrReplaceText2Cursor(etTitleTemplate, getString(R.string.tag_from)) CommonUtils.insertOrReplaceText2Cursor(etTitleTemplate, getString(R.string.tag_from))
return return
} }
R.id.bt_insert_extra -> { R.id.bt_insert_extra -> {
CommonUtils.insertOrReplaceText2Cursor(etTitleTemplate, getString(R.string.tag_card_slot)) CommonUtils.insertOrReplaceText2Cursor(etTitleTemplate, getString(R.string.tag_card_slot))
return return
} }
R.id.bt_insert_time -> { R.id.bt_insert_time -> {
CommonUtils.insertOrReplaceText2Cursor(etTitleTemplate, getString(R.string.tag_receive_time)) CommonUtils.insertOrReplaceText2Cursor(etTitleTemplate, getString(R.string.tag_receive_time))
return return
} }
R.id.bt_insert_device_name -> { R.id.bt_insert_device_name -> {
CommonUtils.insertOrReplaceText2Cursor(etTitleTemplate, getString(R.string.tag_device_name)) CommonUtils.insertOrReplaceText2Cursor(etTitleTemplate, getString(R.string.tag_device_name))
return return
} }
R.id.btn_test -> { R.id.btn_test -> {
mCountDownHelper?.start() mCountDownHelper?.start()
Thread { Thread {
@ -210,14 +214,13 @@ class DingtalkInnerRobotFragment : BaseFragment<FragmentSendersDingtalkInnerRobo
DingtalkInnerRobotUtils.sendMsg(settingVo, msgInfo) DingtalkInnerRobotUtils.sendMsg(settingVo, msgInfo)
} catch (e: Exception) { } catch (e: Exception) {
e.printStackTrace() e.printStackTrace()
if (Looper.myLooper() == null) Looper.prepare() LiveEventBus.get(EVENT_TOAST_ERROR, String::class.java).post(e.message.toString())
XToastUtils.error(e.message.toString())
Looper.loop()
} }
LiveEventBus.get(KEY_SENDER_TEST, String::class.java).post("finish") LiveEventBus.get(KEY_SENDER_TEST, String::class.java).post("finish")
}.start() }.start()
return return
} }
R.id.btn_del -> { R.id.btn_del -> {
if (senderId <= 0 || isClone) { if (senderId <= 0 || isClone) {
popToBack() popToBack()
@ -237,6 +240,7 @@ class DingtalkInnerRobotFragment : BaseFragment<FragmentSendersDingtalkInnerRobo
.show() .show()
return return
} }
R.id.btn_save -> { R.id.btn_save -> {
val name = binding!!.etName.text.toString().trim() val name = binding!!.etName.text.toString().trim()
if (TextUtils.isEmpty(name)) { if (TextUtils.isEmpty(name)) {

View File

@ -1,6 +1,5 @@
package com.idormy.sms.forwarder.fragment.senders package com.idormy.sms.forwarder.fragment.senders
import android.os.Looper
import android.text.TextUtils import android.text.TextUtils
import android.util.Log import android.util.Log
import android.view.LayoutInflater 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.databinding.FragmentSendersEmailBinding
import com.idormy.sms.forwarder.entity.MsgInfo import com.idormy.sms.forwarder.entity.MsgInfo
import com.idormy.sms.forwarder.entity.setting.EmailSetting 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.idormy.sms.forwarder.utils.sender.EmailUtils
import com.jeremyliao.liveeventbus.LiveEventBus import com.jeremyliao.liveeventbus.LiveEventBus
import com.xuexiang.xaop.annotation.SingleClick import com.xuexiang.xaop.annotation.SingleClick
@ -35,7 +41,7 @@ import io.reactivex.SingleObserver
import io.reactivex.android.schedulers.AndroidSchedulers import io.reactivex.android.schedulers.AndroidSchedulers
import io.reactivex.disposables.Disposable import io.reactivex.disposables.Disposable
import io.reactivex.schedulers.Schedulers import io.reactivex.schedulers.Schedulers
import java.util.* import java.util.Date
@Page(name = "Email") @Page(name = "Email")
@Suppress("PrivatePropertyName") @Suppress("PrivatePropertyName")
@ -185,34 +191,42 @@ class EmailFragment : BaseFragment<FragmentSendersEmailBinding?>(), View.OnClick
CommonUtils.insertOrReplaceText2Cursor(etNickname, getString(R.string.tag_from)) CommonUtils.insertOrReplaceText2Cursor(etNickname, getString(R.string.tag_from))
return return
} }
R.id.bt_insert_extra_to_nickname -> { R.id.bt_insert_extra_to_nickname -> {
CommonUtils.insertOrReplaceText2Cursor(etNickname, getString(R.string.tag_card_slot)) CommonUtils.insertOrReplaceText2Cursor(etNickname, getString(R.string.tag_card_slot))
return return
} }
R.id.bt_insert_time_to_nickname -> { R.id.bt_insert_time_to_nickname -> {
CommonUtils.insertOrReplaceText2Cursor(etNickname, getString(R.string.tag_receive_time)) CommonUtils.insertOrReplaceText2Cursor(etNickname, getString(R.string.tag_receive_time))
return return
} }
R.id.bt_insert_device_name_to_nickname -> { R.id.bt_insert_device_name_to_nickname -> {
CommonUtils.insertOrReplaceText2Cursor(etNickname, getString(R.string.tag_device_name)) CommonUtils.insertOrReplaceText2Cursor(etNickname, getString(R.string.tag_device_name))
return return
} }
R.id.bt_insert_sender -> { R.id.bt_insert_sender -> {
CommonUtils.insertOrReplaceText2Cursor(etTitleTemplate, getString(R.string.tag_from)) CommonUtils.insertOrReplaceText2Cursor(etTitleTemplate, getString(R.string.tag_from))
return return
} }
R.id.bt_insert_extra -> { R.id.bt_insert_extra -> {
CommonUtils.insertOrReplaceText2Cursor(etTitleTemplate, getString(R.string.tag_card_slot)) CommonUtils.insertOrReplaceText2Cursor(etTitleTemplate, getString(R.string.tag_card_slot))
return return
} }
R.id.bt_insert_time -> { R.id.bt_insert_time -> {
CommonUtils.insertOrReplaceText2Cursor(etTitleTemplate, getString(R.string.tag_receive_time)) CommonUtils.insertOrReplaceText2Cursor(etTitleTemplate, getString(R.string.tag_receive_time))
return return
} }
R.id.bt_insert_device_name -> { R.id.bt_insert_device_name -> {
CommonUtils.insertOrReplaceText2Cursor(etTitleTemplate, getString(R.string.tag_device_name)) CommonUtils.insertOrReplaceText2Cursor(etTitleTemplate, getString(R.string.tag_device_name))
return return
} }
R.id.btn_test -> { R.id.btn_test -> {
mCountDownHelper?.start() mCountDownHelper?.start()
Thread { Thread {
@ -224,14 +238,13 @@ class EmailFragment : BaseFragment<FragmentSendersEmailBinding?>(), View.OnClick
EmailUtils.sendMsg(settingVo, msgInfo) EmailUtils.sendMsg(settingVo, msgInfo)
} catch (e: Exception) { } catch (e: Exception) {
e.printStackTrace() e.printStackTrace()
if (Looper.myLooper() == null) Looper.prepare() LiveEventBus.get(EVENT_TOAST_ERROR, String::class.java).post(e.message.toString())
XToastUtils.error(e.message.toString())
Looper.loop()
} }
LiveEventBus.get(KEY_SENDER_TEST, String::class.java).post("finish") LiveEventBus.get(KEY_SENDER_TEST, String::class.java).post("finish")
}.start() }.start()
return return
} }
R.id.btn_del -> { R.id.btn_del -> {
if (senderId <= 0 || isClone) { if (senderId <= 0 || isClone) {
popToBack() popToBack()
@ -251,6 +264,7 @@ class EmailFragment : BaseFragment<FragmentSendersEmailBinding?>(), View.OnClick
.show() .show()
return return
} }
R.id.btn_save -> { R.id.btn_save -> {
val name = binding!!.etName.text.toString().trim() val name = binding!!.etName.text.toString().trim()
if (TextUtils.isEmpty(name)) { if (TextUtils.isEmpty(name)) {

View File

@ -1,6 +1,5 @@
package com.idormy.sms.forwarder.fragment.senders package com.idormy.sms.forwarder.fragment.senders
import android.os.Looper
import android.text.TextUtils import android.text.TextUtils
import android.util.Log import android.util.Log
import android.view.LayoutInflater 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.databinding.FragmentSendersFeishuAppBinding
import com.idormy.sms.forwarder.entity.MsgInfo import com.idormy.sms.forwarder.entity.MsgInfo
import com.idormy.sms.forwarder.entity.setting.FeishuAppSetting 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.idormy.sms.forwarder.utils.sender.FeishuAppUtils
import com.jeremyliao.liveeventbus.LiveEventBus import com.jeremyliao.liveeventbus.LiveEventBus
import com.xuexiang.xaop.annotation.SingleClick import com.xuexiang.xaop.annotation.SingleClick
@ -33,7 +39,7 @@ import io.reactivex.SingleObserver
import io.reactivex.android.schedulers.AndroidSchedulers import io.reactivex.android.schedulers.AndroidSchedulers
import io.reactivex.disposables.Disposable import io.reactivex.disposables.Disposable
import io.reactivex.schedulers.Schedulers import io.reactivex.schedulers.Schedulers
import java.util.* import java.util.Date
@Page(name = "飞书企业应用") @Page(name = "飞书企业应用")
@Suppress("PrivatePropertyName") @Suppress("PrivatePropertyName")
@ -151,18 +157,22 @@ class FeishuAppFragment : BaseFragment<FragmentSendersFeishuAppBinding?>(), View
CommonUtils.insertOrReplaceText2Cursor(etTitleTemplate, getString(R.string.tag_from)) CommonUtils.insertOrReplaceText2Cursor(etTitleTemplate, getString(R.string.tag_from))
return return
} }
R.id.bt_insert_extra -> { R.id.bt_insert_extra -> {
CommonUtils.insertOrReplaceText2Cursor(etTitleTemplate, getString(R.string.tag_card_slot)) CommonUtils.insertOrReplaceText2Cursor(etTitleTemplate, getString(R.string.tag_card_slot))
return return
} }
R.id.bt_insert_time -> { R.id.bt_insert_time -> {
CommonUtils.insertOrReplaceText2Cursor(etTitleTemplate, getString(R.string.tag_receive_time)) CommonUtils.insertOrReplaceText2Cursor(etTitleTemplate, getString(R.string.tag_receive_time))
return return
} }
R.id.bt_insert_device_name -> { R.id.bt_insert_device_name -> {
CommonUtils.insertOrReplaceText2Cursor(etTitleTemplate, getString(R.string.tag_device_name)) CommonUtils.insertOrReplaceText2Cursor(etTitleTemplate, getString(R.string.tag_device_name))
return return
} }
R.id.btn_test -> { R.id.btn_test -> {
mCountDownHelper?.start() mCountDownHelper?.start()
Thread { Thread {
@ -174,14 +184,13 @@ class FeishuAppFragment : BaseFragment<FragmentSendersFeishuAppBinding?>(), View
FeishuAppUtils.sendMsg(settingVo, msgInfo) FeishuAppUtils.sendMsg(settingVo, msgInfo)
} catch (e: Exception) { } catch (e: Exception) {
e.printStackTrace() e.printStackTrace()
if (Looper.myLooper() == null) Looper.prepare() LiveEventBus.get(EVENT_TOAST_ERROR, String::class.java).post(e.message.toString())
XToastUtils.error(e.message.toString())
Looper.loop()
} }
LiveEventBus.get(KEY_SENDER_TEST, String::class.java).post("finish") LiveEventBus.get(KEY_SENDER_TEST, String::class.java).post("finish")
}.start() }.start()
return return
} }
R.id.btn_del -> { R.id.btn_del -> {
if (senderId <= 0 || isClone) { if (senderId <= 0 || isClone) {
popToBack() popToBack()
@ -201,6 +210,7 @@ class FeishuAppFragment : BaseFragment<FragmentSendersFeishuAppBinding?>(), View
.show() .show()
return return
} }
R.id.btn_save -> { R.id.btn_save -> {
val name = binding!!.etName.text.toString().trim() val name = binding!!.etName.text.toString().trim()
if (TextUtils.isEmpty(name)) { if (TextUtils.isEmpty(name)) {

View File

@ -1,6 +1,5 @@
package com.idormy.sms.forwarder.fragment.senders package com.idormy.sms.forwarder.fragment.senders
import android.os.Looper
import android.text.TextUtils import android.text.TextUtils
import android.util.Log import android.util.Log
import android.view.LayoutInflater 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.databinding.FragmentSendersFeishuBinding
import com.idormy.sms.forwarder.entity.MsgInfo import com.idormy.sms.forwarder.entity.MsgInfo
import com.idormy.sms.forwarder.entity.setting.FeishuSetting 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.idormy.sms.forwarder.utils.sender.FeishuUtils
import com.jeremyliao.liveeventbus.LiveEventBus import com.jeremyliao.liveeventbus.LiveEventBus
import com.xuexiang.xaop.annotation.SingleClick import com.xuexiang.xaop.annotation.SingleClick
@ -33,7 +39,7 @@ import io.reactivex.SingleObserver
import io.reactivex.android.schedulers.AndroidSchedulers import io.reactivex.android.schedulers.AndroidSchedulers
import io.reactivex.disposables.Disposable import io.reactivex.disposables.Disposable
import io.reactivex.schedulers.Schedulers import io.reactivex.schedulers.Schedulers
import java.util.* import java.util.Date
@Page(name = "飞书群机器人") @Page(name = "飞书群机器人")
@Suppress("PrivatePropertyName") @Suppress("PrivatePropertyName")
@ -150,18 +156,22 @@ class FeishuFragment : BaseFragment<FragmentSendersFeishuBinding?>(), View.OnCli
CommonUtils.insertOrReplaceText2Cursor(etTitleTemplate, getString(R.string.tag_from)) CommonUtils.insertOrReplaceText2Cursor(etTitleTemplate, getString(R.string.tag_from))
return return
} }
R.id.bt_insert_extra -> { R.id.bt_insert_extra -> {
CommonUtils.insertOrReplaceText2Cursor(etTitleTemplate, getString(R.string.tag_card_slot)) CommonUtils.insertOrReplaceText2Cursor(etTitleTemplate, getString(R.string.tag_card_slot))
return return
} }
R.id.bt_insert_time -> { R.id.bt_insert_time -> {
CommonUtils.insertOrReplaceText2Cursor(etTitleTemplate, getString(R.string.tag_receive_time)) CommonUtils.insertOrReplaceText2Cursor(etTitleTemplate, getString(R.string.tag_receive_time))
return return
} }
R.id.bt_insert_device_name -> { R.id.bt_insert_device_name -> {
CommonUtils.insertOrReplaceText2Cursor(etTitleTemplate, getString(R.string.tag_device_name)) CommonUtils.insertOrReplaceText2Cursor(etTitleTemplate, getString(R.string.tag_device_name))
return return
} }
R.id.btn_test -> { R.id.btn_test -> {
mCountDownHelper?.start() mCountDownHelper?.start()
Thread { Thread {
@ -173,14 +183,13 @@ class FeishuFragment : BaseFragment<FragmentSendersFeishuBinding?>(), View.OnCli
FeishuUtils.sendMsg(settingVo, msgInfo) FeishuUtils.sendMsg(settingVo, msgInfo)
} catch (e: Exception) { } catch (e: Exception) {
e.printStackTrace() e.printStackTrace()
if (Looper.myLooper() == null) Looper.prepare() LiveEventBus.get(EVENT_TOAST_ERROR, String::class.java).post(e.message.toString())
XToastUtils.error(e.message.toString())
Looper.loop()
} }
LiveEventBus.get(KEY_SENDER_TEST, String::class.java).post("finish") LiveEventBus.get(KEY_SENDER_TEST, String::class.java).post("finish")
}.start() }.start()
return return
} }
R.id.btn_del -> { R.id.btn_del -> {
if (senderId <= 0 || isClone) { if (senderId <= 0 || isClone) {
popToBack() popToBack()
@ -200,6 +209,7 @@ class FeishuFragment : BaseFragment<FragmentSendersFeishuBinding?>(), View.OnCli
.show() .show()
return return
} }
R.id.btn_save -> { R.id.btn_save -> {
val name = binding!!.etName.text.toString().trim() val name = binding!!.etName.text.toString().trim()
if (TextUtils.isEmpty(name)) { if (TextUtils.isEmpty(name)) {

View File

@ -1,6 +1,5 @@
package com.idormy.sms.forwarder.fragment.senders package com.idormy.sms.forwarder.fragment.senders
import android.os.Looper
import android.text.TextUtils import android.text.TextUtils
import android.util.Log import android.util.Log
import android.view.LayoutInflater 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.databinding.FragmentSendersGotifyBinding
import com.idormy.sms.forwarder.entity.MsgInfo import com.idormy.sms.forwarder.entity.MsgInfo
import com.idormy.sms.forwarder.entity.setting.GotifySetting 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.idormy.sms.forwarder.utils.sender.GotifyUtils
import com.jeremyliao.liveeventbus.LiveEventBus import com.jeremyliao.liveeventbus.LiveEventBus
import com.xuexiang.xaop.annotation.SingleClick import com.xuexiang.xaop.annotation.SingleClick
@ -33,7 +39,7 @@ import io.reactivex.SingleObserver
import io.reactivex.android.schedulers.AndroidSchedulers import io.reactivex.android.schedulers.AndroidSchedulers
import io.reactivex.disposables.Disposable import io.reactivex.disposables.Disposable
import io.reactivex.schedulers.Schedulers import io.reactivex.schedulers.Schedulers
import java.util.* import java.util.Date
@Page(name = "Gotify") @Page(name = "Gotify")
@Suppress("PrivatePropertyName") @Suppress("PrivatePropertyName")
@ -149,18 +155,22 @@ class GotifyFragment : BaseFragment<FragmentSendersGotifyBinding?>(), View.OnCli
CommonUtils.insertOrReplaceText2Cursor(etTitleTemplate, getString(R.string.tag_from)) CommonUtils.insertOrReplaceText2Cursor(etTitleTemplate, getString(R.string.tag_from))
return return
} }
R.id.bt_insert_extra -> { R.id.bt_insert_extra -> {
CommonUtils.insertOrReplaceText2Cursor(etTitleTemplate, getString(R.string.tag_card_slot)) CommonUtils.insertOrReplaceText2Cursor(etTitleTemplate, getString(R.string.tag_card_slot))
return return
} }
R.id.bt_insert_time -> { R.id.bt_insert_time -> {
CommonUtils.insertOrReplaceText2Cursor(etTitleTemplate, getString(R.string.tag_receive_time)) CommonUtils.insertOrReplaceText2Cursor(etTitleTemplate, getString(R.string.tag_receive_time))
return return
} }
R.id.bt_insert_device_name -> { R.id.bt_insert_device_name -> {
CommonUtils.insertOrReplaceText2Cursor(etTitleTemplate, getString(R.string.tag_device_name)) CommonUtils.insertOrReplaceText2Cursor(etTitleTemplate, getString(R.string.tag_device_name))
return return
} }
R.id.btn_test -> { R.id.btn_test -> {
mCountDownHelper?.start() mCountDownHelper?.start()
Thread { Thread {
@ -172,14 +182,13 @@ class GotifyFragment : BaseFragment<FragmentSendersGotifyBinding?>(), View.OnCli
GotifyUtils.sendMsg(settingVo, msgInfo) GotifyUtils.sendMsg(settingVo, msgInfo)
} catch (e: Exception) { } catch (e: Exception) {
e.printStackTrace() e.printStackTrace()
if (Looper.myLooper() == null) Looper.prepare() LiveEventBus.get(EVENT_TOAST_ERROR, String::class.java).post(e.message.toString())
XToastUtils.error(e.message.toString())
Looper.loop()
} }
LiveEventBus.get(KEY_SENDER_TEST, String::class.java).post("finish") LiveEventBus.get(KEY_SENDER_TEST, String::class.java).post("finish")
}.start() }.start()
return return
} }
R.id.btn_del -> { R.id.btn_del -> {
if (senderId <= 0 || isClone) { if (senderId <= 0 || isClone) {
popToBack() popToBack()
@ -199,6 +208,7 @@ class GotifyFragment : BaseFragment<FragmentSendersGotifyBinding?>(), View.OnCli
.show() .show()
return return
} }
R.id.btn_save -> { R.id.btn_save -> {
val name = binding!!.etName.text.toString().trim() val name = binding!!.etName.text.toString().trim()
if (TextUtils.isEmpty(name)) { if (TextUtils.isEmpty(name)) {

View File

@ -1,6 +1,5 @@
package com.idormy.sms.forwarder.fragment.senders package com.idormy.sms.forwarder.fragment.senders
import android.os.Looper
import android.text.TextUtils import android.text.TextUtils
import android.util.Log import android.util.Log
import android.view.LayoutInflater 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.databinding.FragmentSendersPushplusBinding
import com.idormy.sms.forwarder.entity.MsgInfo import com.idormy.sms.forwarder.entity.MsgInfo
import com.idormy.sms.forwarder.entity.setting.PushplusSetting 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.idormy.sms.forwarder.utils.sender.PushplusUtils
import com.jeremyliao.liveeventbus.LiveEventBus import com.jeremyliao.liveeventbus.LiveEventBus
import com.xuexiang.xaop.annotation.SingleClick import com.xuexiang.xaop.annotation.SingleClick
@ -34,7 +40,7 @@ import io.reactivex.SingleObserver
import io.reactivex.android.schedulers.AndroidSchedulers import io.reactivex.android.schedulers.AndroidSchedulers
import io.reactivex.disposables.Disposable import io.reactivex.disposables.Disposable
import io.reactivex.schedulers.Schedulers import io.reactivex.schedulers.Schedulers
import java.util.* import java.util.Date
@Page(name = "PushPlus") @Page(name = "PushPlus")
@Suppress("PrivatePropertyName") @Suppress("PrivatePropertyName")
@ -169,18 +175,22 @@ class PushplusFragment : BaseFragment<FragmentSendersPushplusBinding?>(), View.O
CommonUtils.insertOrReplaceText2Cursor(etTitleTemplate, getString(R.string.tag_from)) CommonUtils.insertOrReplaceText2Cursor(etTitleTemplate, getString(R.string.tag_from))
return return
} }
R.id.bt_insert_extra -> { R.id.bt_insert_extra -> {
CommonUtils.insertOrReplaceText2Cursor(etTitleTemplate, getString(R.string.tag_card_slot)) CommonUtils.insertOrReplaceText2Cursor(etTitleTemplate, getString(R.string.tag_card_slot))
return return
} }
R.id.bt_insert_time -> { R.id.bt_insert_time -> {
CommonUtils.insertOrReplaceText2Cursor(etTitleTemplate, getString(R.string.tag_receive_time)) CommonUtils.insertOrReplaceText2Cursor(etTitleTemplate, getString(R.string.tag_receive_time))
return return
} }
R.id.bt_insert_device_name -> { R.id.bt_insert_device_name -> {
CommonUtils.insertOrReplaceText2Cursor(etTitleTemplate, getString(R.string.tag_device_name)) CommonUtils.insertOrReplaceText2Cursor(etTitleTemplate, getString(R.string.tag_device_name))
return return
} }
R.id.btn_test -> { R.id.btn_test -> {
mCountDownHelper?.start() mCountDownHelper?.start()
Thread { Thread {
@ -192,14 +202,13 @@ class PushplusFragment : BaseFragment<FragmentSendersPushplusBinding?>(), View.O
PushplusUtils.sendMsg(settingVo, msgInfo) PushplusUtils.sendMsg(settingVo, msgInfo)
} catch (e: Exception) { } catch (e: Exception) {
e.printStackTrace() e.printStackTrace()
if (Looper.myLooper() == null) Looper.prepare() LiveEventBus.get(EVENT_TOAST_ERROR, String::class.java).post(e.message.toString())
XToastUtils.error(e.message.toString())
Looper.loop()
} }
LiveEventBus.get(KEY_SENDER_TEST, String::class.java).post("finish") LiveEventBus.get(KEY_SENDER_TEST, String::class.java).post("finish")
}.start() }.start()
return return
} }
R.id.btn_del -> { R.id.btn_del -> {
if (senderId <= 0 || isClone) { if (senderId <= 0 || isClone) {
popToBack() popToBack()
@ -219,6 +228,7 @@ class PushplusFragment : BaseFragment<FragmentSendersPushplusBinding?>(), View.O
.show() .show()
return return
} }
R.id.btn_save -> { R.id.btn_save -> {
val name = binding!!.etName.text.toString().trim() val name = binding!!.etName.text.toString().trim()
if (TextUtils.isEmpty(name)) { if (TextUtils.isEmpty(name)) {

View File

@ -1,6 +1,5 @@
package com.idormy.sms.forwarder.fragment.senders package com.idormy.sms.forwarder.fragment.senders
import android.os.Looper
import android.text.TextUtils import android.text.TextUtils
import android.util.Log import android.util.Log
import android.view.LayoutInflater 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.databinding.FragmentSendersServerchanBinding
import com.idormy.sms.forwarder.entity.MsgInfo import com.idormy.sms.forwarder.entity.MsgInfo
import com.idormy.sms.forwarder.entity.setting.ServerchanSetting 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.idormy.sms.forwarder.utils.sender.ServerchanUtils
import com.jeremyliao.liveeventbus.LiveEventBus import com.jeremyliao.liveeventbus.LiveEventBus
import com.xuexiang.xaop.annotation.SingleClick import com.xuexiang.xaop.annotation.SingleClick
@ -32,7 +37,7 @@ import io.reactivex.SingleObserver
import io.reactivex.android.schedulers.AndroidSchedulers import io.reactivex.android.schedulers.AndroidSchedulers
import io.reactivex.disposables.Disposable import io.reactivex.disposables.Disposable
import io.reactivex.schedulers.Schedulers import io.reactivex.schedulers.Schedulers
import java.util.* import java.util.Date
@Page(name = "Server酱·Turbo") @Page(name = "Server酱·Turbo")
@Suppress("PrivatePropertyName") @Suppress("PrivatePropertyName")
@ -150,14 +155,13 @@ class ServerchanFragment : BaseFragment<FragmentSendersServerchanBinding?>(), Vi
ServerchanUtils.sendMsg(settingVo, msgInfo) ServerchanUtils.sendMsg(settingVo, msgInfo)
} catch (e: Exception) { } catch (e: Exception) {
e.printStackTrace() e.printStackTrace()
if (Looper.myLooper() == null) Looper.prepare() LiveEventBus.get(EVENT_TOAST_ERROR, String::class.java).post(e.message.toString())
XToastUtils.error(e.message.toString())
Looper.loop()
} }
LiveEventBus.get(KEY_SENDER_TEST, String::class.java).post("finish") LiveEventBus.get(KEY_SENDER_TEST, String::class.java).post("finish")
}.start() }.start()
return return
} }
R.id.btn_del -> { R.id.btn_del -> {
if (senderId <= 0 || isClone) { if (senderId <= 0 || isClone) {
popToBack() popToBack()
@ -177,6 +181,7 @@ class ServerchanFragment : BaseFragment<FragmentSendersServerchanBinding?>(), Vi
.show() .show()
return return
} }
R.id.btn_save -> { R.id.btn_save -> {
val name = binding!!.etName.text.toString().trim() val name = binding!!.etName.text.toString().trim()
if (TextUtils.isEmpty(name)) { if (TextUtils.isEmpty(name)) {

View File

@ -1,6 +1,5 @@
package com.idormy.sms.forwarder.fragment.senders package com.idormy.sms.forwarder.fragment.senders
import android.os.Looper
import android.text.TextUtils import android.text.TextUtils
import android.util.Log import android.util.Log
import android.view.LayoutInflater 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.databinding.FragmentSendersSmsBinding
import com.idormy.sms.forwarder.entity.MsgInfo import com.idormy.sms.forwarder.entity.MsgInfo
import com.idormy.sms.forwarder.entity.setting.SmsSetting 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.idormy.sms.forwarder.utils.sender.SmsUtils
import com.jeremyliao.liveeventbus.LiveEventBus import com.jeremyliao.liveeventbus.LiveEventBus
import com.xuexiang.xaop.annotation.SingleClick import com.xuexiang.xaop.annotation.SingleClick
@ -35,7 +42,7 @@ import io.reactivex.SingleObserver
import io.reactivex.android.schedulers.AndroidSchedulers import io.reactivex.android.schedulers.AndroidSchedulers
import io.reactivex.disposables.Disposable import io.reactivex.disposables.Disposable
import io.reactivex.schedulers.Schedulers import io.reactivex.schedulers.Schedulers
import java.util.* import java.util.Date
@Page(name = "短信") @Page(name = "短信")
@Suppress("PrivatePropertyName") @Suppress("PrivatePropertyName")
@ -170,6 +177,7 @@ class SmsFragment : BaseFragment<FragmentSendersSmsBinding?>(), View.OnClickList
CommonUtils.insertOrReplaceText2Cursor(binding!!.etMobiles, getString(R.string.tag_from)) CommonUtils.insertOrReplaceText2Cursor(binding!!.etMobiles, getString(R.string.tag_from))
return return
} }
R.id.btn_test -> { R.id.btn_test -> {
mCountDownHelper?.start() mCountDownHelper?.start()
Thread { Thread {
@ -181,14 +189,13 @@ class SmsFragment : BaseFragment<FragmentSendersSmsBinding?>(), View.OnClickList
SmsUtils.sendMsg(settingVo, msgInfo) SmsUtils.sendMsg(settingVo, msgInfo)
} catch (e: Exception) { } catch (e: Exception) {
e.printStackTrace() e.printStackTrace()
if (Looper.myLooper() == null) Looper.prepare() LiveEventBus.get(EVENT_TOAST_ERROR, String::class.java).post(e.message.toString())
XToastUtils.error(e.message.toString())
Looper.loop()
} }
LiveEventBus.get(KEY_SENDER_TEST, String::class.java).post("finish") LiveEventBus.get(KEY_SENDER_TEST, String::class.java).post("finish")
}.start() }.start()
return return
} }
R.id.btn_del -> { R.id.btn_del -> {
if (senderId <= 0 || isClone) { if (senderId <= 0 || isClone) {
popToBack() popToBack()
@ -208,6 +215,7 @@ class SmsFragment : BaseFragment<FragmentSendersSmsBinding?>(), View.OnClickList
.show() .show()
return return
} }
R.id.btn_save -> { R.id.btn_save -> {
val name = binding!!.etName.text.toString().trim() val name = binding!!.etName.text.toString().trim()
if (TextUtils.isEmpty(name)) { if (TextUtils.isEmpty(name)) {

View File

@ -1,6 +1,5 @@
package com.idormy.sms.forwarder.fragment.senders package com.idormy.sms.forwarder.fragment.senders
import android.os.Looper
import android.text.TextUtils import android.text.TextUtils
import android.util.Log import android.util.Log
import android.view.LayoutInflater 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.databinding.FragmentSendersSocketBinding
import com.idormy.sms.forwarder.entity.MsgInfo import com.idormy.sms.forwarder.entity.MsgInfo
import com.idormy.sms.forwarder.entity.setting.SocketSetting 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.idormy.sms.forwarder.utils.sender.SocketUtils
import com.jeremyliao.liveeventbus.LiveEventBus import com.jeremyliao.liveeventbus.LiveEventBus
import com.xuexiang.xaop.annotation.SingleClick import com.xuexiang.xaop.annotation.SingleClick
@ -33,7 +39,7 @@ import io.reactivex.SingleObserver
import io.reactivex.android.schedulers.AndroidSchedulers import io.reactivex.android.schedulers.AndroidSchedulers
import io.reactivex.disposables.Disposable import io.reactivex.disposables.Disposable
import io.reactivex.schedulers.Schedulers import io.reactivex.schedulers.Schedulers
import java.util.* import java.util.Date
@Page(name = "Socket") @Page(name = "Socket")
@Suppress("PrivatePropertyName") @Suppress("PrivatePropertyName")
@ -163,9 +169,7 @@ class SocketFragment : BaseFragment<FragmentSendersSocketBinding?>(), View.OnCli
SocketUtils.sendMsg(settingVo, msgInfo) SocketUtils.sendMsg(settingVo, msgInfo)
} catch (e: Exception) { } catch (e: Exception) {
e.printStackTrace() e.printStackTrace()
if (Looper.myLooper() == null) Looper.prepare() LiveEventBus.get(EVENT_TOAST_ERROR, String::class.java).post(e.message.toString())
XToastUtils.error(e.message.toString())
Looper.loop()
} }
LiveEventBus.get(KEY_SENDER_TEST, String::class.java).post("finish") LiveEventBus.get(KEY_SENDER_TEST, String::class.java).post("finish")
}.start() }.start()

View File

@ -1,6 +1,5 @@
package com.idormy.sms.forwarder.fragment.senders package com.idormy.sms.forwarder.fragment.senders
import android.os.Looper
import android.text.TextUtils import android.text.TextUtils
import android.util.Log import android.util.Log
import android.view.LayoutInflater 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.databinding.FragmentSendersTelegramBinding
import com.idormy.sms.forwarder.entity.MsgInfo import com.idormy.sms.forwarder.entity.MsgInfo
import com.idormy.sms.forwarder.entity.setting.TelegramSetting 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.idormy.sms.forwarder.utils.sender.TelegramUtils
import com.jeremyliao.liveeventbus.LiveEventBus import com.jeremyliao.liveeventbus.LiveEventBus
import com.xuexiang.xaop.annotation.SingleClick import com.xuexiang.xaop.annotation.SingleClick
@ -35,7 +40,7 @@ import io.reactivex.android.schedulers.AndroidSchedulers
import io.reactivex.disposables.Disposable import io.reactivex.disposables.Disposable
import io.reactivex.schedulers.Schedulers import io.reactivex.schedulers.Schedulers
import java.net.Proxy import java.net.Proxy
import java.util.* import java.util.Date
@Page(name = "Telegram机器人") @Page(name = "Telegram机器人")
@Suppress("PrivatePropertyName") @Suppress("PrivatePropertyName")
@ -176,14 +181,13 @@ class TelegramFragment : BaseFragment<FragmentSendersTelegramBinding?>(), View.O
TelegramUtils.sendMsg(settingVo, msgInfo) TelegramUtils.sendMsg(settingVo, msgInfo)
} catch (e: Exception) { } catch (e: Exception) {
e.printStackTrace() e.printStackTrace()
if (Looper.myLooper() == null) Looper.prepare() LiveEventBus.get(EVENT_TOAST_ERROR, String::class.java).post(e.message.toString())
XToastUtils.error(e.message.toString())
Looper.loop()
} }
LiveEventBus.get(KEY_SENDER_TEST, String::class.java).post("finish") LiveEventBus.get(KEY_SENDER_TEST, String::class.java).post("finish")
}.start() }.start()
return return
} }
R.id.btn_del -> { R.id.btn_del -> {
if (senderId <= 0 || isClone) { if (senderId <= 0 || isClone) {
popToBack() popToBack()
@ -203,6 +207,7 @@ class TelegramFragment : BaseFragment<FragmentSendersTelegramBinding?>(), View.O
.show() .show()
return return
} }
R.id.btn_save -> { R.id.btn_save -> {
val name = binding!!.etName.text.toString().trim() val name = binding!!.etName.text.toString().trim()
if (TextUtils.isEmpty(name)) { if (TextUtils.isEmpty(name)) {

View File

@ -4,7 +4,6 @@ import android.content.Intent
import android.content.pm.PackageManager import android.content.pm.PackageManager
import android.content.pm.ResolveInfo import android.content.pm.ResolveInfo
import android.net.Uri import android.net.Uri
import android.os.Looper
import android.text.TextUtils import android.text.TextUtils
import android.util.Log import android.util.Log
import android.view.LayoutInflater 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.databinding.FragmentSendersUrlSchemeBinding
import com.idormy.sms.forwarder.entity.MsgInfo import com.idormy.sms.forwarder.entity.MsgInfo
import com.idormy.sms.forwarder.entity.setting.UrlSchemeSetting 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.idormy.sms.forwarder.utils.sender.UrlSchemeUtils
import com.jeremyliao.liveeventbus.LiveEventBus import com.jeremyliao.liveeventbus.LiveEventBus
import com.xuexiang.xaop.annotation.SingleClick import com.xuexiang.xaop.annotation.SingleClick
@ -36,7 +42,7 @@ import io.reactivex.SingleObserver
import io.reactivex.android.schedulers.AndroidSchedulers import io.reactivex.android.schedulers.AndroidSchedulers
import io.reactivex.disposables.Disposable import io.reactivex.disposables.Disposable
import io.reactivex.schedulers.Schedulers import io.reactivex.schedulers.Schedulers
import java.util.* import java.util.Date
@Page(name = "URL Scheme") @Page(name = "URL Scheme")
@Suppress("PrivatePropertyName", "DEPRECATION") @Suppress("PrivatePropertyName", "DEPRECATION")
@ -152,14 +158,13 @@ class UrlSchemeFragment : BaseFragment<FragmentSendersUrlSchemeBinding?>(), View
UrlSchemeUtils.sendMsg(settingVo, msgInfo) UrlSchemeUtils.sendMsg(settingVo, msgInfo)
} catch (e: Exception) { } catch (e: Exception) {
e.printStackTrace() e.printStackTrace()
if (Looper.myLooper() == null) Looper.prepare() LiveEventBus.get(EVENT_TOAST_ERROR, String::class.java).post(e.message.toString())
XToastUtils.error(e.message.toString())
Looper.loop()
} }
LiveEventBus.get(KEY_SENDER_TEST, String::class.java).post("finish") LiveEventBus.get(KEY_SENDER_TEST, String::class.java).post("finish")
}.start() }.start()
return return
} }
R.id.btn_del -> { R.id.btn_del -> {
if (senderId <= 0 || isClone) { if (senderId <= 0 || isClone) {
popToBack() popToBack()
@ -179,6 +184,7 @@ class UrlSchemeFragment : BaseFragment<FragmentSendersUrlSchemeBinding?>(), View
.show() .show()
return return
} }
R.id.btn_save -> { R.id.btn_save -> {
val name = binding!!.etName.text.toString().trim() val name = binding!!.etName.text.toString().trim()
if (TextUtils.isEmpty(name)) { if (TextUtils.isEmpty(name)) {

View File

@ -1,6 +1,5 @@
package com.idormy.sms.forwarder.fragment.senders package com.idormy.sms.forwarder.fragment.senders
import android.os.Looper
import android.text.TextUtils import android.text.TextUtils
import android.util.Log import android.util.Log
import android.view.LayoutInflater 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.databinding.FragmentSendersWebhookBinding
import com.idormy.sms.forwarder.entity.MsgInfo import com.idormy.sms.forwarder.entity.MsgInfo
import com.idormy.sms.forwarder.entity.setting.WebhookSetting 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.idormy.sms.forwarder.utils.sender.WebhookUtils
import com.jeremyliao.liveeventbus.LiveEventBus import com.jeremyliao.liveeventbus.LiveEventBus
import com.xuexiang.xaop.annotation.SingleClick import com.xuexiang.xaop.annotation.SingleClick
@ -35,7 +41,7 @@ import io.reactivex.SingleObserver
import io.reactivex.android.schedulers.AndroidSchedulers import io.reactivex.android.schedulers.AndroidSchedulers
import io.reactivex.disposables.Disposable import io.reactivex.disposables.Disposable
import io.reactivex.schedulers.Schedulers import io.reactivex.schedulers.Schedulers
import java.util.* import java.util.Date
@Page(name = "Webhook") @Page(name = "Webhook")
@Suppress("PrivatePropertyName") @Suppress("PrivatePropertyName")
@ -177,14 +183,13 @@ class WebhookFragment : BaseFragment<FragmentSendersWebhookBinding?>(), View.OnC
WebhookUtils.sendMsg(settingVo, msgInfo) WebhookUtils.sendMsg(settingVo, msgInfo)
} catch (e: Exception) { } catch (e: Exception) {
e.printStackTrace() e.printStackTrace()
if (Looper.myLooper() == null) Looper.prepare() LiveEventBus.get(EVENT_TOAST_ERROR, String::class.java).post(e.message.toString())
XToastUtils.error(e.message.toString())
Looper.loop()
} }
LiveEventBus.get(KEY_SENDER_TEST, String::class.java).post("finish") LiveEventBus.get(KEY_SENDER_TEST, String::class.java).post("finish")
}.start() }.start()
return return
} }
R.id.btn_del -> { R.id.btn_del -> {
if (senderId <= 0 || isClone) { if (senderId <= 0 || isClone) {
popToBack() popToBack()
@ -204,6 +209,7 @@ class WebhookFragment : BaseFragment<FragmentSendersWebhookBinding?>(), View.OnC
.show() .show()
return return
} }
R.id.btn_save -> { R.id.btn_save -> {
val name = binding!!.etName.text.toString().trim() val name = binding!!.etName.text.toString().trim()
if (TextUtils.isEmpty(name)) { if (TextUtils.isEmpty(name)) {

View File

@ -1,7 +1,6 @@
package com.idormy.sms.forwarder.fragment.senders package com.idormy.sms.forwarder.fragment.senders
import android.annotation.SuppressLint import android.annotation.SuppressLint
import android.os.Looper
import android.text.TextUtils import android.text.TextUtils
import android.util.Log import android.util.Log
import android.view.LayoutInflater import android.view.LayoutInflater
@ -186,9 +185,11 @@ class WeworkAgentFragment : BaseFragment<FragmentSendersWeworkAgentBinding?>(),
binding!!.layoutToTag.visibility = View.VISIBLE binding!!.layoutToTag.visibility = View.VISIBLE
} }
} }
R.id.sb_proxyAuthenticator -> { R.id.sb_proxyAuthenticator -> {
binding!!.layoutProxyAuthenticator.visibility = if (isChecked) View.VISIBLE else View.GONE binding!!.layoutProxyAuthenticator.visibility = if (isChecked) View.VISIBLE else View.GONE
} }
else -> {} else -> {}
} }
} }
@ -208,14 +209,13 @@ class WeworkAgentFragment : BaseFragment<FragmentSendersWeworkAgentBinding?>(),
WeworkAgentUtils.sendMsg(settingVo, msgInfo) WeworkAgentUtils.sendMsg(settingVo, msgInfo)
} catch (e: Exception) { } catch (e: Exception) {
e.printStackTrace() e.printStackTrace()
if (Looper.myLooper() == null) Looper.prepare() LiveEventBus.get(EVENT_TOAST_ERROR, String::class.java).post(e.message.toString())
XToastUtils.error(e.message.toString())
Looper.loop()
} }
LiveEventBus.get(KEY_SENDER_TEST, String::class.java).post("finish") LiveEventBus.get(KEY_SENDER_TEST, String::class.java).post("finish")
}.start() }.start()
return return
} }
R.id.btn_del -> { R.id.btn_del -> {
if (senderId <= 0 || isClone) { if (senderId <= 0 || isClone) {
popToBack() popToBack()
@ -235,6 +235,7 @@ class WeworkAgentFragment : BaseFragment<FragmentSendersWeworkAgentBinding?>(),
.show() .show()
return return
} }
R.id.btn_save -> { R.id.btn_save -> {
val name = binding!!.etName.text.toString().trim() val name = binding!!.etName.text.toString().trim()
if (TextUtils.isEmpty(name)) { if (TextUtils.isEmpty(name)) {

View File

@ -1,6 +1,5 @@
package com.idormy.sms.forwarder.fragment.senders package com.idormy.sms.forwarder.fragment.senders
import android.os.Looper
import android.text.TextUtils import android.text.TextUtils
import android.util.Log import android.util.Log
import android.view.LayoutInflater 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.MsgInfo
import com.idormy.sms.forwarder.entity.setting.WeworkRobotSetting import com.idormy.sms.forwarder.entity.setting.WeworkRobotSetting
import com.idormy.sms.forwarder.utils.CommonUtils 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_CLONE
import com.idormy.sms.forwarder.utils.KEY_SENDER_ID 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_TEST
@ -178,9 +178,7 @@ class WeworkRobotFragment : BaseFragment<FragmentSendersWeworkRobotBinding?>(),
WeworkRobotUtils.sendMsg(settingVo, msgInfo) WeworkRobotUtils.sendMsg(settingVo, msgInfo)
} catch (e: Exception) { } catch (e: Exception) {
e.printStackTrace() e.printStackTrace()
if (Looper.myLooper() == null) Looper.prepare() LiveEventBus.get(EVENT_TOAST_ERROR, String::class.java).post(e.message.toString())
XToastUtils.error(e.message.toString())
Looper.loop()
} }
LiveEventBus.get(KEY_SENDER_TEST, String::class.java).post("finish") LiveEventBus.get(KEY_SENDER_TEST, String::class.java).post("finish")
}.start() }.start()

View File

@ -13,8 +13,12 @@ object Worker {
const val sendSbnId = "send_sbn_id" const val sendSbnId = "send_sbn_id"
const val updateLogs = "update_logs" const val updateLogs = "update_logs"
const val ruleId = "rule_id" const val ruleId = "rule_id"
const val rule = "rule"
const val senderIndex = "sender_index" const val senderIndex = "sender_index"
const val msgId = "msg_id" 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_TITLE = "key_title"
const val KEY_URL = "key_url" 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_LOGS_TYPE = "key_logs_type"
const val EVENT_UPDATE_RULE_TYPE = "key_rules_type" const val EVENT_UPDATE_RULE_TYPE = "key_rules_type"

View File

@ -1,7 +1,6 @@
package com.idormy.sms.forwarder.utils package com.idormy.sms.forwarder.utils
import android.annotation.SuppressLint import android.annotation.SuppressLint
import android.os.Looper
import android.util.Log import android.util.Log
import androidx.work.OneTimeWorkRequestBuilder import androidx.work.OneTimeWorkRequestBuilder
import androidx.work.WorkManager 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.SendLogicWorker
import com.idormy.sms.forwarder.workers.SendWorker import com.idormy.sms.forwarder.workers.SendWorker
import com.idormy.sms.forwarder.workers.UpdateLogsWorker import com.idormy.sms.forwarder.workers.UpdateLogsWorker
import com.jeremyliao.liveeventbus.LiveEventBus
import com.xuexiang.xui.utils.ResUtils import com.xuexiang.xui.utils.ResUtils
import com.xuexiang.xutil.XUtil import com.xuexiang.xutil.XUtil
import java.text.ParsePosition import java.text.ParsePosition
@ -108,66 +108,82 @@ object SendUtils {
val settingVo = Gson().fromJson(sender.jsonSetting, DingtalkGroupRobotSetting::class.java) val settingVo = Gson().fromJson(sender.jsonSetting, DingtalkGroupRobotSetting::class.java)
DingtalkGroupRobotUtils.sendMsg(settingVo, msgInfo, rule, senderIndex, logId, msgId) DingtalkGroupRobotUtils.sendMsg(settingVo, msgInfo, rule, senderIndex, logId, msgId)
} }
TYPE_EMAIL -> { TYPE_EMAIL -> {
val settingVo = Gson().fromJson(sender.jsonSetting, EmailSetting::class.java) val settingVo = Gson().fromJson(sender.jsonSetting, EmailSetting::class.java)
EmailUtils.sendMsg(settingVo, msgInfo, rule, senderIndex, logId, msgId) EmailUtils.sendMsg(settingVo, msgInfo, rule, senderIndex, logId, msgId)
} }
TYPE_BARK -> { TYPE_BARK -> {
val settingVo = Gson().fromJson(sender.jsonSetting, BarkSetting::class.java) val settingVo = Gson().fromJson(sender.jsonSetting, BarkSetting::class.java)
BarkUtils.sendMsg(settingVo, msgInfo, rule, senderIndex, logId, msgId) BarkUtils.sendMsg(settingVo, msgInfo, rule, senderIndex, logId, msgId)
} }
TYPE_WEBHOOK -> { TYPE_WEBHOOK -> {
val settingVo = Gson().fromJson(sender.jsonSetting, WebhookSetting::class.java) val settingVo = Gson().fromJson(sender.jsonSetting, WebhookSetting::class.java)
WebhookUtils.sendMsg(settingVo, msgInfo, rule, senderIndex, logId, msgId) WebhookUtils.sendMsg(settingVo, msgInfo, rule, senderIndex, logId, msgId)
} }
TYPE_WEWORK_ROBOT -> { TYPE_WEWORK_ROBOT -> {
val settingVo = Gson().fromJson(sender.jsonSetting, WeworkRobotSetting::class.java) val settingVo = Gson().fromJson(sender.jsonSetting, WeworkRobotSetting::class.java)
WeworkRobotUtils.sendMsg(settingVo, msgInfo, rule, senderIndex, logId, msgId) WeworkRobotUtils.sendMsg(settingVo, msgInfo, rule, senderIndex, logId, msgId)
} }
TYPE_WEWORK_AGENT -> { TYPE_WEWORK_AGENT -> {
val settingVo = Gson().fromJson(sender.jsonSetting, WeworkAgentSetting::class.java) val settingVo = Gson().fromJson(sender.jsonSetting, WeworkAgentSetting::class.java)
WeworkAgentUtils.sendMsg(settingVo, msgInfo, rule, senderIndex, logId, msgId) WeworkAgentUtils.sendMsg(settingVo, msgInfo, rule, senderIndex, logId, msgId)
} }
TYPE_SERVERCHAN -> { TYPE_SERVERCHAN -> {
val settingVo = Gson().fromJson(sender.jsonSetting, ServerchanSetting::class.java) val settingVo = Gson().fromJson(sender.jsonSetting, ServerchanSetting::class.java)
ServerchanUtils.sendMsg(settingVo, msgInfo, rule, senderIndex, logId, msgId) ServerchanUtils.sendMsg(settingVo, msgInfo, rule, senderIndex, logId, msgId)
} }
TYPE_TELEGRAM -> { TYPE_TELEGRAM -> {
val settingVo = Gson().fromJson(sender.jsonSetting, TelegramSetting::class.java) val settingVo = Gson().fromJson(sender.jsonSetting, TelegramSetting::class.java)
TelegramUtils.sendMsg(settingVo, msgInfo, rule, senderIndex, logId, msgId) TelegramUtils.sendMsg(settingVo, msgInfo, rule, senderIndex, logId, msgId)
} }
TYPE_SMS -> { TYPE_SMS -> {
val settingVo = Gson().fromJson(sender.jsonSetting, SmsSetting::class.java) val settingVo = Gson().fromJson(sender.jsonSetting, SmsSetting::class.java)
SmsUtils.sendMsg(settingVo, msgInfo, rule, senderIndex, logId, msgId) SmsUtils.sendMsg(settingVo, msgInfo, rule, senderIndex, logId, msgId)
} }
TYPE_FEISHU -> { TYPE_FEISHU -> {
val settingVo = Gson().fromJson(sender.jsonSetting, FeishuSetting::class.java) val settingVo = Gson().fromJson(sender.jsonSetting, FeishuSetting::class.java)
FeishuUtils.sendMsg(settingVo, msgInfo, rule, senderIndex, logId, msgId) FeishuUtils.sendMsg(settingVo, msgInfo, rule, senderIndex, logId, msgId)
} }
TYPE_PUSHPLUS -> { TYPE_PUSHPLUS -> {
val settingVo = Gson().fromJson(sender.jsonSetting, PushplusSetting::class.java) val settingVo = Gson().fromJson(sender.jsonSetting, PushplusSetting::class.java)
PushplusUtils.sendMsg(settingVo, msgInfo, rule, senderIndex, logId, msgId) PushplusUtils.sendMsg(settingVo, msgInfo, rule, senderIndex, logId, msgId)
} }
TYPE_GOTIFY -> { TYPE_GOTIFY -> {
val settingVo = Gson().fromJson(sender.jsonSetting, GotifySetting::class.java) val settingVo = Gson().fromJson(sender.jsonSetting, GotifySetting::class.java)
GotifyUtils.sendMsg(settingVo, msgInfo, rule, senderIndex, logId, msgId) GotifyUtils.sendMsg(settingVo, msgInfo, rule, senderIndex, logId, msgId)
} }
TYPE_DINGTALK_INNER_ROBOT -> { TYPE_DINGTALK_INNER_ROBOT -> {
val settingVo = Gson().fromJson(sender.jsonSetting, DingtalkInnerRobotSetting::class.java) val settingVo = Gson().fromJson(sender.jsonSetting, DingtalkInnerRobotSetting::class.java)
DingtalkInnerRobotUtils.sendMsg(settingVo, msgInfo, rule, senderIndex, logId, msgId) DingtalkInnerRobotUtils.sendMsg(settingVo, msgInfo, rule, senderIndex, logId, msgId)
} }
TYPE_FEISHU_APP -> { TYPE_FEISHU_APP -> {
val settingVo = Gson().fromJson(sender.jsonSetting, FeishuAppSetting::class.java) val settingVo = Gson().fromJson(sender.jsonSetting, FeishuAppSetting::class.java)
FeishuAppUtils.sendMsg(settingVo, msgInfo, rule, senderIndex, logId, msgId) FeishuAppUtils.sendMsg(settingVo, msgInfo, rule, senderIndex, logId, msgId)
} }
TYPE_URL_SCHEME -> { TYPE_URL_SCHEME -> {
val settingVo = Gson().fromJson(sender.jsonSetting, UrlSchemeSetting::class.java) val settingVo = Gson().fromJson(sender.jsonSetting, UrlSchemeSetting::class.java)
UrlSchemeUtils.sendMsg(settingVo, msgInfo, rule, senderIndex, logId, msgId) UrlSchemeUtils.sendMsg(settingVo, msgInfo, rule, senderIndex, logId, msgId)
} }
TYPE_SOCKET -> { TYPE_SOCKET -> {
val settingVo = Gson().fromJson(sender.jsonSetting, SocketSetting::class.java) val settingVo = Gson().fromJson(sender.jsonSetting, SocketSetting::class.java)
SocketUtils.sendMsg(settingVo, msgInfo, rule, senderIndex, logId, msgId) SocketUtils.sendMsg(settingVo, msgInfo, rule, senderIndex, logId, msgId)
} }
else -> { else -> {
updateLogs(logId, 0, ResUtils.getString(R.string.unknown_sender)) updateLogs(logId, 0, ResUtils.getString(R.string.unknown_sender))
senderLogic(0, msgInfo, rule, senderIndex, msgId) senderLogic(0, msgInfo, rule, senderIndex, msgId)
@ -188,7 +204,8 @@ object SendUtils {
val request = OneTimeWorkRequestBuilder<SendLogicWorker>().setInputData( val request = OneTimeWorkRequestBuilder<SendLogicWorker>().setInputData(
workDataOf( workDataOf(
Worker.sendMsgInfo to Gson().toJson(msgInfo), 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.senderIndex to senderIndex + 1,
Worker.msgId to msgId, Worker.msgId to msgId,
) )
@ -200,15 +217,16 @@ object SendUtils {
//更新转发日志状态 //更新转发日志状态
fun updateLogs(logId: Long?, status: Int, response: String) { fun updateLogs(logId: Long?, status: Int, response: String) {
//自动任务的不需要吐司或者更新日志
if (logId == -1L) return
//测试的没有记录ID这里取巧了 //测试的没有记录ID这里取巧了
if (logId == null || logId == 0L) { if (logId == null || logId == 0L) {
if (Looper.myLooper() == null) Looper.prepare()
if (status == 2) { 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 { } 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 return
} }

View File

@ -1,11 +1,13 @@
package com.idormy.sms.forwarder.workers package com.idormy.sms.forwarder.workers
import android.content.Context import android.content.Context
import android.util.Log
import androidx.work.CoroutineWorker import androidx.work.CoroutineWorker
import androidx.work.WorkerParameters import androidx.work.WorkerParameters
import com.google.gson.Gson import com.google.gson.Gson
import com.idormy.sms.forwarder.core.Core import com.idormy.sms.forwarder.core.Core
import com.idormy.sms.forwarder.database.entity.Logs 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.entity.MsgInfo
import com.idormy.sms.forwarder.utils.SendUtils import com.idormy.sms.forwarder.utils.SendUtils
import com.idormy.sms.forwarder.utils.Worker import com.idormy.sms.forwarder.utils.Worker
@ -19,17 +21,27 @@ class SendLogicWorker(
override suspend fun doWork(): Result = withContext(Dispatchers.IO) { override suspend fun doWork(): Result = withContext(Dispatchers.IO) {
val msgInfoJson = inputData.getString(Worker.sendMsgInfo) val msgInfoJson = inputData.getString(Worker.sendMsgInfo)
val msgInfo = Gson().fromJson(msgInfoJson, MsgInfo::class.java) val msgInfo = Gson().fromJson(msgInfoJson, MsgInfo::class.java) ?: return@withContext Result.failure()
val ruleId = inputData.getLong(Worker.ruleId, 0L) //val ruleId = inputData.getLong(Worker.ruleId, 0L)
val ruleJson = inputData.getString(Worker.rule)
val senderIndex = inputData.getInt(Worker.senderIndex, 0) val senderIndex = inputData.getInt(Worker.senderIndex, 0)
val msgId = inputData.getLong(Worker.msgId, 0L) 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 sender = rule.senderList[senderIndex]
val log = Logs(0, rule.type, msgId, rule.id, sender.id) var logId = 0L
val logId = Core.logs.insert(log) if (msgId > 0 && rule.id > 0) {
SendUtils.sendMsgSender(msgInfo, rule, senderIndex, logId, msgId) val log = Logs(0, rule.type, msgId, rule.id, sender.id)
logId = Core.logs.insert(log)
} else if (msgId == -1L) {
//自动任务的不需要吐司或者更新日志,特殊处理 logId = -1msgId = -1
logId = -1L
}
SendUtils.sendMsgSender(msgInfo, rule, senderIndex, logId, msgId)
return@withContext Result.success() return@withContext Result.success()
} }