diff --git a/app/src/main/java/com/idormy/sms/forwarder/entity/setting/BarkSetting.kt b/app/src/main/java/com/idormy/sms/forwarder/entity/setting/BarkSetting.kt index b03ab79e..45a92717 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/entity/setting/BarkSetting.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/entity/setting/BarkSetting.kt @@ -4,21 +4,21 @@ import java.io.Serializable data class BarkSetting( //推送地址 - var server: String, + var server: String = "", //分组名称 - val group: String? = "", + val group: String = "", //消息图标 - val icon: String? = "", + val icon: String = "", //消息声音 - val sound: String? = "", + val sound: String = "", //消息角标 - val badge: String? = "", + val badge: String = "", //消息链接 - val url: String? = "", + val url: String = "", //通知级别 - val level: String? = "active", + val level: String = "active", //标题模板 - val title: String? = "", + val title: String = "", //加密算法 val transformation: String = "none", //加密密钥 diff --git a/app/src/main/java/com/idormy/sms/forwarder/entity/setting/DingtalkGroupRobotSetting.kt b/app/src/main/java/com/idormy/sms/forwarder/entity/setting/DingtalkGroupRobotSetting.kt index b006c055..df30b8f2 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/entity/setting/DingtalkGroupRobotSetting.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/entity/setting/DingtalkGroupRobotSetting.kt @@ -5,12 +5,12 @@ import java.io.Serializable data class DingtalkGroupRobotSetting( var token: String = "", - var secret: String? = "", - var atAll: Boolean? = false, - var atMobiles: String? = "", - var atDingtalkIds: String? = "", - var msgtype: String? = "text", - val titleTemplate: String? = "", + var secret: String = "", + var atAll: Boolean = false, + var atMobiles: String = "", + var atDingtalkIds: String = "", + var msgtype: String = "text", + val titleTemplate: String = "", ) : Serializable { fun getMsgTypeCheckId(): Int { diff --git a/app/src/main/java/com/idormy/sms/forwarder/entity/setting/DingtalkInnerRobotSetting.kt b/app/src/main/java/com/idormy/sms/forwarder/entity/setting/DingtalkInnerRobotSetting.kt index 77aa1311..fd11c173 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/entity/setting/DingtalkInnerRobotSetting.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/entity/setting/DingtalkInnerRobotSetting.kt @@ -10,13 +10,13 @@ data class DingtalkInnerRobotSetting( val appSecret: String = "", val userIds: String = "", val msgKey: String = "sampleText", - val titleTemplate: String? = "", + val titleTemplate: String = "", val proxyType: Proxy.Type = Proxy.Type.DIRECT, - val proxyHost: String? = "", - val proxyPort: String? = "", - val proxyAuthenticator: Boolean? = false, - val proxyUsername: String? = "", - val proxyPassword: String? = "", + val proxyHost: String = "", + val proxyPort: String = "", + val proxyAuthenticator: Boolean = false, + val proxyUsername: String = "", + val proxyPassword: String = "", ) : Serializable { fun getProxyTypeCheckId(): Int { diff --git a/app/src/main/java/com/idormy/sms/forwarder/entity/setting/EmailSetting.kt b/app/src/main/java/com/idormy/sms/forwarder/entity/setting/EmailSetting.kt index 931c691a..56d412d1 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/entity/setting/EmailSetting.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/entity/setting/EmailSetting.kt @@ -4,19 +4,19 @@ import com.idormy.sms.forwarder.R import java.io.Serializable data class EmailSetting( - var mailType: String? = "", - var fromEmail: String? = "", - var pwd: String? = "", - var nickname: String? = "", - var host: String? = "", - var port: String? = "", - var ssl: Boolean? = false, - var startTls: Boolean? = false, - var title: String? = "", + var mailType: String = "", + var fromEmail: String = "", + var pwd: String = "", + var nickname: String = "", + var host: String = "", + var port: String = "", + var ssl: Boolean = false, + var startTls: Boolean = false, + var title: String = "", var recipients: MutableMap> = mutableMapOf(), - var toEmail: String? = "", - var keystore: String? = "", - var password: String? = "", + var toEmail: String = "", + var keystore: String = "", + var password: String = "", var encryptionProtocol: String = "Plain", //加密协议: S/MIME、OpenPGP、Plain(不传证书) ) : Serializable { diff --git a/app/src/main/java/com/idormy/sms/forwarder/entity/setting/FeishuSetting.kt b/app/src/main/java/com/idormy/sms/forwarder/entity/setting/FeishuSetting.kt index fd5a937a..3df44c31 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/entity/setting/FeishuSetting.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/entity/setting/FeishuSetting.kt @@ -5,14 +5,14 @@ import java.io.Serializable data class FeishuSetting( var webhook: String = "", - val secret: String? = "", - val msgType: String? = "interactive", - val titleTemplate: String? = "", + val secret: String = "", + val msgType: String = "interactive", + val titleTemplate: String = "", val messageCard: String = "", //自定义消息卡片 ) : Serializable { fun getMsgTypeCheckId(): Int { - return if (msgType == null || msgType == "interactive") { + return if (msgType == "interactive") { R.id.rb_msg_type_interactive } else { R.id.rb_msg_type_text diff --git a/app/src/main/java/com/idormy/sms/forwarder/entity/setting/GotifySetting.kt b/app/src/main/java/com/idormy/sms/forwarder/entity/setting/GotifySetting.kt index e4303d0a..59698551 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/entity/setting/GotifySetting.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/entity/setting/GotifySetting.kt @@ -4,6 +4,6 @@ import java.io.Serializable data class GotifySetting( var webServer: String = "", - val title: String? = "", - val priority: String? = "", + val title: String = "", + val priority: String = "", ) : Serializable \ No newline at end of file diff --git a/app/src/main/java/com/idormy/sms/forwarder/entity/setting/PushplusSetting.kt b/app/src/main/java/com/idormy/sms/forwarder/entity/setting/PushplusSetting.kt index c8b503f4..3c1d239e 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/entity/setting/PushplusSetting.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/entity/setting/PushplusSetting.kt @@ -5,11 +5,11 @@ import java.io.Serializable data class PushplusSetting( var website: String = "www.pushplus.plus", var token: String = "", - val topic: String? = "", - val template: String? = "", - val channel: String? = "", - val webhook: String? = "", - val callbackUrl: String? = "", - val validTime: String? = "", - val titleTemplate: String? = "", + val topic: String = "", + val template: String = "", + val channel: String = "", + val webhook: String = "", + val callbackUrl: String = "", + val validTime: String = "", + val titleTemplate: String = "", ) : Serializable \ No newline at end of file diff --git a/app/src/main/java/com/idormy/sms/forwarder/entity/setting/ServerchanSetting.kt b/app/src/main/java/com/idormy/sms/forwarder/entity/setting/ServerchanSetting.kt index 3e16cac2..4f1c5e8f 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/entity/setting/ServerchanSetting.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/entity/setting/ServerchanSetting.kt @@ -4,7 +4,7 @@ import java.io.Serializable data class ServerchanSetting( var sendKey: String = "", - var channel: String? = "", - var openid: String? = "", - var titleTemplate: String? = "", + var channel: String = "", + var openid: String = "", + var titleTemplate: String = "", ) : Serializable \ No newline at end of file diff --git a/app/src/main/java/com/idormy/sms/forwarder/entity/setting/SmsSetting.kt b/app/src/main/java/com/idormy/sms/forwarder/entity/setting/SmsSetting.kt index a090e036..2eea2232 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/entity/setting/SmsSetting.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/entity/setting/SmsSetting.kt @@ -6,7 +6,7 @@ import java.io.Serializable data class SmsSetting( var simSlot: Int = 0, var mobiles: String = "", - var onlyNoNetwork: Boolean? = false, + var onlyNoNetwork: Boolean = false, ) : Serializable { fun getSmsSimSlotCheckId(): Int { diff --git a/app/src/main/java/com/idormy/sms/forwarder/entity/setting/SocketSetting.kt b/app/src/main/java/com/idormy/sms/forwarder/entity/setting/SocketSetting.kt index 7bb720e1..e8a0a4d0 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/entity/setting/SocketSetting.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/entity/setting/SocketSetting.kt @@ -4,12 +4,12 @@ import com.idormy.sms.forwarder.R import java.io.Serializable data class SocketSetting( - val method: String? = "MQTT", + val method: String = "MQTT", var address: String = "", //IP地址 val port: Int = 0, //端口号 val msgTemplate: String = "", //消息模板 - val secret: String? = "", //签名密钥 - val response: String? = "", //成功应答关键字 + val secret: String = "", //签名密钥 + val response: String = "", //成功应答关键字 val username: String = "", //用户名 val password: String = "", //密码 val inCharset: String = "", //输入编码 @@ -23,7 +23,7 @@ data class SocketSetting( fun getMethodCheckId(): Int { return when (method) { - null, "MQTT" -> R.id.rb_method_mqtt + "MQTT" -> R.id.rb_method_mqtt "TCP" -> R.id.rb_method_tcp "UDP" -> R.id.rb_method_udp else -> R.id.rb_method_mqtt diff --git a/app/src/main/java/com/idormy/sms/forwarder/entity/setting/TelegramSetting.kt b/app/src/main/java/com/idormy/sms/forwarder/entity/setting/TelegramSetting.kt index 9c61c2db..e9e7f6df 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/entity/setting/TelegramSetting.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/entity/setting/TelegramSetting.kt @@ -5,19 +5,19 @@ import java.io.Serializable import java.net.Proxy data class TelegramSetting( - val method: String? = "POST", + val method: String = "POST", var apiToken: String = "", val chatId: String = "", val proxyType: Proxy.Type = Proxy.Type.DIRECT, - val proxyHost: String? = "", - val proxyPort: String? = "", - val proxyAuthenticator: Boolean? = false, - val proxyUsername: String? = "", - val proxyPassword: String? = "", + val proxyHost: String = "", + val proxyPort: String = "", + val proxyAuthenticator: Boolean = false, + val proxyUsername: String = "", + val proxyPassword: String = "", ) : Serializable { fun getMethodCheckId(): Int { - return if (method == null || method == "POST") R.id.rb_method_post else R.id.rb_method_get + return if (method == "GET") R.id.rb_method_get else R.id.rb_method_post } fun getProxyTypeCheckId(): Int { diff --git a/app/src/main/java/com/idormy/sms/forwarder/entity/setting/UrlSchemeSetting.kt b/app/src/main/java/com/idormy/sms/forwarder/entity/setting/UrlSchemeSetting.kt index 446017c8..70983a1f 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/entity/setting/UrlSchemeSetting.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/entity/setting/UrlSchemeSetting.kt @@ -3,5 +3,5 @@ package com.idormy.sms.forwarder.entity.setting import java.io.Serializable data class UrlSchemeSetting( - var urlScheme: String, + var urlScheme: String = "", ) : Serializable \ No newline at end of file diff --git a/app/src/main/java/com/idormy/sms/forwarder/entity/setting/WeworkAgentSetting.kt b/app/src/main/java/com/idormy/sms/forwarder/entity/setting/WeworkAgentSetting.kt index c67df844..7b93c1c8 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/entity/setting/WeworkAgentSetting.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/entity/setting/WeworkAgentSetting.kt @@ -8,16 +8,16 @@ data class WeworkAgentSetting( var corpID: String = "", val agentID: String = "", val secret: String = "", - val atAll: Boolean? = false, - val toUser: String? = "@all", - val toParty: String? = "", - val toTag: String? = "", + val atAll: Boolean = false, + val toUser: String = "@all", + val toParty: String = "", + val toTag: String = "", val proxyType: Proxy.Type = Proxy.Type.DIRECT, - val proxyHost: String? = "", - val proxyPort: String? = "", - val proxyAuthenticator: Boolean? = false, - val proxyUsername: String? = "", - val proxyPassword: String? = "", + val proxyHost: String = "", + val proxyPort: String = "", + val proxyAuthenticator: Boolean = false, + val proxyUsername: String = "", + val proxyPassword: String = "", val customizeAPI: String = "https://qyapi.weixin.qq.com", ) : Serializable { diff --git a/app/src/main/java/com/idormy/sms/forwarder/entity/setting/WeworkRobotSetting.kt b/app/src/main/java/com/idormy/sms/forwarder/entity/setting/WeworkRobotSetting.kt index 2520d667..6a16120c 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/entity/setting/WeworkRobotSetting.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/entity/setting/WeworkRobotSetting.kt @@ -4,11 +4,11 @@ import com.idormy.sms.forwarder.R import java.io.Serializable data class WeworkRobotSetting( - var webHook: String, + var webHook: String = "", val msgType: String = "text", - var atAll: Boolean? = false, - var atUserIds: String? = "", - var atMobiles: String? = "", + var atAll: Boolean = false, + var atUserIds: String = "", + var atMobiles: String = "", ) : Serializable { fun getMsgTypeCheckId(): Int { 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 6e05563a..e32ddf08 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 @@ -196,7 +196,7 @@ class EmailFragment : BaseFragment(), View.OnClick Log.d(TAG, settingVo.toString()) if (settingVo != null) { if (!TextUtils.isEmpty(settingVo.mailType)) { - mailType = settingVo.mailType.toString() + mailType = settingVo.mailType //TODO: 替换mailType为当前语言,避免切换语言后失效,历史包袱怎么替换比较优雅? if (mailType == "other" || mailType == "其他邮箱" || mailType == "其他郵箱") { mailType = getString(R.string.other_mail_type) @@ -222,8 +222,8 @@ class EmailFragment : BaseFragment(), View.OnClick } } else { //兼容旧版本 - val emails = settingVo.toEmail?.split(",") - if (!emails.isNullOrEmpty()) { + val emails = settingVo.toEmail.split(",") + if (emails.isNotEmpty()) { for (email in emails.toTypedArray()) { addRecipientItem(email) } 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 28fa1596..fabe2404 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 @@ -18,7 +18,15 @@ import com.idormy.sms.forwarder.database.viewmodel.SenderViewModel import com.idormy.sms.forwarder.databinding.FragmentSendersWeworkAgentBinding import com.idormy.sms.forwarder.entity.MsgInfo import com.idormy.sms.forwarder.entity.setting.WeworkAgentSetting -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.Log +import com.idormy.sms.forwarder.utils.SettingUtils +import com.idormy.sms.forwarder.utils.XToastUtils import com.idormy.sms.forwarder.utils.sender.WeworkAgentUtils import com.jeremyliao.liveeventbus.LiveEventBus import com.xuexiang.xaop.annotation.SingleClick @@ -34,7 +42,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 = "企业微信应用") @Suppress("PrivatePropertyName") @@ -125,9 +133,9 @@ class WeworkAgentFragment : BaseFragment(), binding!!.etToUser.setText(settingVo.toUser) binding!!.etToParty.setText(settingVo.toParty) binding!!.etToTag.setText(settingVo.toTag) - binding!!.layoutToUser.visibility = if (settingVo.atAll == true) View.GONE else View.VISIBLE - binding!!.layoutToParty.visibility = if (settingVo.atAll == true) View.GONE else View.VISIBLE - binding!!.layoutToTag.visibility = if (settingVo.atAll == true) View.GONE else View.VISIBLE + binding!!.layoutToUser.visibility = if (settingVo.atAll) View.GONE else View.VISIBLE + binding!!.layoutToParty.visibility = if (settingVo.atAll) View.GONE else View.VISIBLE + binding!!.layoutToTag.visibility = if (settingVo.atAll) View.GONE else View.VISIBLE binding!!.rgProxyType.check(settingVo.getProxyTypeCheckId()) binding!!.etProxyHost.setText(settingVo.proxyHost) binding!!.etProxyPort.setText(settingVo.proxyPort) diff --git a/app/src/main/java/com/idormy/sms/forwarder/utils/sender/BasicAuthInterceptor.kt b/app/src/main/java/com/idormy/sms/forwarder/utils/interceptor/BasicAuthInterceptor.kt similarity index 92% rename from app/src/main/java/com/idormy/sms/forwarder/utils/sender/BasicAuthInterceptor.kt rename to app/src/main/java/com/idormy/sms/forwarder/utils/interceptor/BasicAuthInterceptor.kt index 7373657e..72ac7141 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/utils/sender/BasicAuthInterceptor.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/utils/interceptor/BasicAuthInterceptor.kt @@ -1,4 +1,4 @@ -package com.idormy.sms.forwarder.utils.sender +package com.idormy.sms.forwarder.utils.interceptor import okhttp3.Credentials import okhttp3.Interceptor diff --git a/app/src/main/java/com/idormy/sms/forwarder/utils/sender/LoggingInterceptor.kt b/app/src/main/java/com/idormy/sms/forwarder/utils/interceptor/LoggingInterceptor.kt similarity index 96% rename from app/src/main/java/com/idormy/sms/forwarder/utils/sender/LoggingInterceptor.kt rename to app/src/main/java/com/idormy/sms/forwarder/utils/interceptor/LoggingInterceptor.kt index 346f60e9..f4190cba 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/utils/sender/LoggingInterceptor.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/utils/interceptor/LoggingInterceptor.kt @@ -1,4 +1,4 @@ -package com.idormy.sms.forwarder.utils.sender +package com.idormy.sms.forwarder.utils.interceptor import com.idormy.sms.forwarder.App import com.idormy.sms.forwarder.utils.Log diff --git a/app/src/main/java/com/idormy/sms/forwarder/utils/sender/BarkUtils.kt b/app/src/main/java/com/idormy/sms/forwarder/utils/sender/BarkUtils.kt index 22372ebb..4f007c6f 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/utils/sender/BarkUtils.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/utils/sender/BarkUtils.kt @@ -10,6 +10,8 @@ import com.idormy.sms.forwarder.entity.setting.BarkSetting import com.idormy.sms.forwarder.utils.Log import com.idormy.sms.forwarder.utils.SendUtils import com.idormy.sms.forwarder.utils.SettingUtils +import com.idormy.sms.forwarder.utils.interceptor.BasicAuthInterceptor +import com.idormy.sms.forwarder.utils.interceptor.LoggingInterceptor import com.xuexiang.xhttp2.XHttp import com.xuexiang.xhttp2.callback.SimpleCallBack import com.xuexiang.xhttp2.exception.ApiException @@ -33,9 +35,9 @@ class BarkUtils { ) { //Log.i(TAG, "sendMsg setting:$setting msgInfo:$msgInfo rule:$rule senderIndex:$senderIndex logId:$logId msgId:$msgId") val title: String = if (rule != null) { - msgInfo.getTitleForSend(setting.title.toString(), rule.regexReplace) + msgInfo.getTitleForSend(setting.title, rule.regexReplace) } else { - msgInfo.getTitleForSend(setting.title.toString()) + msgInfo.getTitleForSend(setting.title) } val content: String = if (rule != null) { msgInfo.getContentForSend(rule.smsTemplate, rule.regexReplace) @@ -60,12 +62,12 @@ class BarkUtils { msgMap["title"] = title msgMap["body"] = content msgMap["isArchive"] = 1 - if (!TextUtils.isEmpty(setting.group)) msgMap["group"] = setting.group.toString() - if (!TextUtils.isEmpty(setting.icon)) msgMap["icon"] = setting.icon.toString() - if (!TextUtils.isEmpty(setting.level)) msgMap["level"] = setting.level.toString() - if (!TextUtils.isEmpty(setting.sound)) msgMap["sound"] = setting.sound.toString() - if (!TextUtils.isEmpty(setting.badge)) msgMap["badge"] = setting.badge.toString() - if (!TextUtils.isEmpty(setting.url)) msgMap["url"] = setting.url.toString() + if (!TextUtils.isEmpty(setting.group)) msgMap["group"] = setting.group + if (!TextUtils.isEmpty(setting.icon)) msgMap["icon"] = setting.icon + if (!TextUtils.isEmpty(setting.level)) msgMap["level"] = setting.level + if (!TextUtils.isEmpty(setting.sound)) msgMap["sound"] = setting.sound + if (!TextUtils.isEmpty(setting.badge)) msgMap["badge"] = setting.badge + if (!TextUtils.isEmpty(setting.url)) msgMap["url"] = setting.url //自动复制验证码 val pattern = Regex("(? = mutableMapOf() - msgMap["msgtype"] = setting.msgtype ?: "text" + msgMap["msgtype"] = setting.msgtype val atMap: MutableMap = mutableMapOf() msgMap["at"] = atMap - if (setting.atAll == true) { + if (setting.atAll) { atMap["isAtAll"] = true } else { atMap["isAtAll"] = false if (!TextUtils.isEmpty(setting.atMobiles)) { - val atMobilesArray: Array = setting.atMobiles.toString().replace("[,,;;]".toRegex(), ",").trim(',').split(',').toTypedArray() + val atMobilesArray: Array = setting.atMobiles.replace("[,,;;]".toRegex(), ",").trim(',').split(',').toTypedArray() if (atMobilesArray.isNotEmpty()) { atMap["atMobiles"] = atMobilesArray for (atMobile in atMobilesArray) { @@ -73,7 +74,7 @@ class DingtalkGroupRobotUtils private constructor() { } } if (!TextUtils.isEmpty(setting.atDingtalkIds)) { - val atDingtalkIdsArray: Array = setting.atDingtalkIds.toString().replace("[,,;;]".toRegex(), ",").trim(',').split(',').toTypedArray() + val atDingtalkIdsArray: Array = setting.atDingtalkIds.replace("[,,;;]".toRegex(), ",").trim(',').split(',').toTypedArray() if (atDingtalkIdsArray.isNotEmpty()) { atMap["atDingtalkIds"] = atDingtalkIdsArray for (atDingtalkId in atDingtalkIdsArray) { @@ -86,7 +87,7 @@ class DingtalkGroupRobotUtils private constructor() { } if ("markdown" == msgMap["msgtype"]) { - val titleTemplate = setting.titleTemplate.toString() + val titleTemplate = setting.titleTemplate val title = rule?.let { msgInfo.getTitleForSend(titleTemplate, it.regexReplace) } ?: msgInfo.getTitleForSend(titleTemplate) msgMap["markdown"] = mutableMapOf("title" to title, "text" to content) } else { diff --git a/app/src/main/java/com/idormy/sms/forwarder/utils/sender/DingtalkInnerRobotUtils.kt b/app/src/main/java/com/idormy/sms/forwarder/utils/sender/DingtalkInnerRobotUtils.kt index 1d07c63e..6699f16e 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/utils/sender/DingtalkInnerRobotUtils.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/utils/sender/DingtalkInnerRobotUtils.kt @@ -11,6 +11,7 @@ import com.idormy.sms.forwarder.utils.Log import com.idormy.sms.forwarder.utils.SendUtils import com.idormy.sms.forwarder.utils.SettingUtils import com.idormy.sms.forwarder.utils.SharedPreference +import com.idormy.sms.forwarder.utils.interceptor.LoggingInterceptor import com.xuexiang.xhttp2.XHttp import com.xuexiang.xhttp2.callback.SimpleCallBack import com.xuexiang.xhttp2.exception.ApiException @@ -63,25 +64,25 @@ class DingtalkInnerRobotUtils private constructor() { if (!NetworkUtils.isIP(proxyHost)) { throw Exception(String.format(getString(R.string.invalid_proxy_host), proxyHost)) } - val proxyPort: Int = setting.proxyPort?.toInt() ?: 7890 + val proxyPort: Int = setting.proxyPort.toInt() Log.d(TAG, "proxyHost = $proxyHost, proxyPort = $proxyPort") request.okproxy(Proxy(setting.proxyType, InetSocketAddress(proxyHost, proxyPort))) //代理的鉴权账号密码 - if (setting.proxyAuthenticator == true && (!TextUtils.isEmpty(setting.proxyUsername) || !TextUtils.isEmpty(setting.proxyPassword))) { + if (setting.proxyAuthenticator && (!TextUtils.isEmpty(setting.proxyUsername) || !TextUtils.isEmpty(setting.proxyPassword))) { Log.i(TAG, "proxyUsername = ${setting.proxyUsername}, proxyPassword = ${setting.proxyPassword}") if (setting.proxyType == Proxy.Type.HTTP) { request.okproxyAuthenticator { _: Route?, response: Response -> //设置代理服务器账号密码 - val credential = Credentials.basic(setting.proxyUsername.toString(), setting.proxyPassword.toString()) + val credential = Credentials.basic(setting.proxyUsername, setting.proxyPassword) response.request().newBuilder().header("Proxy-Authorization", credential).build() } } else { Authenticator.setDefault(object : Authenticator() { override fun getPasswordAuthentication(): PasswordAuthentication { - return PasswordAuthentication(setting.proxyUsername.toString(), setting.proxyPassword?.toCharArray()) + return PasswordAuthentication(setting.proxyUsername, setting.proxyPassword.toCharArray()) } }) } @@ -144,9 +145,9 @@ class DingtalkInnerRobotUtils private constructor() { val msgParam: MutableMap = mutableMapOf() if ("sampleMarkdown" == setting.msgKey) { msgParam["title"] = if (rule != null) { - msgInfo.getTitleForSend(setting.titleTemplate.toString(), rule.regexReplace) + msgInfo.getTitleForSend(setting.titleTemplate, rule.regexReplace) } else { - msgInfo.getTitleForSend(setting.titleTemplate.toString()) + msgInfo.getTitleForSend(setting.titleTemplate) } msgParam["text"] = content } else { @@ -172,25 +173,25 @@ class DingtalkInnerRobotUtils private constructor() { if (!NetworkUtils.isIP(proxyHost)) { throw Exception(String.format(getString(R.string.invalid_proxy_host), proxyHost)) } - val proxyPort: Int = setting.proxyPort?.toInt() ?: 7890 + val proxyPort: Int = setting.proxyPort.toInt() Log.d(TAG, "proxyHost = $proxyHost, proxyPort = $proxyPort") request.okproxy(Proxy(setting.proxyType, InetSocketAddress(proxyHost, proxyPort))) //代理的鉴权账号密码 - if (setting.proxyAuthenticator == true && (!TextUtils.isEmpty(setting.proxyUsername) || !TextUtils.isEmpty(setting.proxyPassword))) { + if (setting.proxyAuthenticator && (!TextUtils.isEmpty(setting.proxyUsername) || !TextUtils.isEmpty(setting.proxyPassword))) { Log.i(TAG, "proxyUsername = ${setting.proxyUsername}, proxyPassword = ${setting.proxyPassword}") if (setting.proxyType == Proxy.Type.HTTP) { request.okproxyAuthenticator { _: Route?, response: Response -> //设置代理服务器账号密码 - val credential = Credentials.basic(setting.proxyUsername.toString(), setting.proxyPassword.toString()) + val credential = Credentials.basic(setting.proxyUsername, setting.proxyPassword) response.request().newBuilder().header("Proxy-Authorization", credential).build() } } else { Authenticator.setDefault(object : Authenticator() { override fun getPasswordAuthentication(): PasswordAuthentication { - return PasswordAuthentication(setting.proxyUsername.toString(), setting.proxyPassword?.toCharArray()) + return PasswordAuthentication(setting.proxyUsername, setting.proxyPassword.toCharArray()) } }) } diff --git a/app/src/main/java/com/idormy/sms/forwarder/utils/sender/EmailUtils.kt b/app/src/main/java/com/idormy/sms/forwarder/utils/sender/EmailUtils.kt index 67275562..c9b68296 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/utils/sender/EmailUtils.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/utils/sender/EmailUtils.kt @@ -38,9 +38,9 @@ class EmailUtils { msgId: Long = 0L ) { val title: String = if (rule != null) { - msgInfo.getTitleForSend(setting.title.toString(), rule.regexReplace) + msgInfo.getTitleForSend(setting.title, rule.regexReplace) } else { - msgInfo.getTitleForSend(setting.title.toString()) + msgInfo.getTitleForSend(setting.title) } val message: String = if (rule != null) { msgInfo.getContentForSend(rule.smsTemplate, rule.regexReplace) @@ -144,21 +144,21 @@ class EmailUtils { val job = launch(Dispatchers.IO) { try { // 设置邮件参数 - val host = setting.host.toString() - val port = setting.port.toString() - val from = setting.fromEmail.toString() - val password = setting.pwd.toString() - val nickname = msgInfo.getTitleForSend(setting.nickname.toString()) + val host = setting.host + val port = setting.port + val from = setting.fromEmail + val password = setting.pwd + val nickname = msgInfo.getTitleForSend(setting.nickname) setting.recipients.ifEmpty { //兼容旧的设置 - val emails = setting.toEmail.toString().replace("[,,;;]".toRegex(), ",").trim(',').split(',') + val emails = setting.toEmail.replace("[,,;;]".toRegex(), ",").trim(',').split(',') emails.forEach { setting.recipients[it] = Pair("", "") } } val content = message.replace("\n", "
") - val openSSL = setting.ssl == true - val startTls = setting.startTls == true + val openSSL = setting.ssl + val startTls = setting.startTls //发件人S/MIME私钥(用于签名) var signingPrivateKey: PrivateKey? = null @@ -167,17 +167,17 @@ class EmailUtils { var senderPGPSecretKeyRing: PGPSecretKeyRing? = null var senderPGPSecretKeyPassword = "" - if (!setting.keystore.isNullOrEmpty() && !setting.password.isNullOrEmpty()) { + if (setting.keystore.isNotEmpty() && setting.password.isNotEmpty()) { try { - val keystoreStream = if (setting.keystore!!.startsWith("/")) { + val keystoreStream = if (setting.keystore.startsWith("/")) { FileInputStream(setting.keystore) } else { - val decodedBytes = Base64.decode(setting.keystore!!) + val decodedBytes = Base64.decode(setting.keystore) ByteArrayInputStream(decodedBytes) } when (setting.encryptionProtocol) { "S/MIME" -> { - val keystorePassword = setting.password.toString() + val keystorePassword = setting.password val keyStore = KeyStore.getInstance("PKCS12") keyStore.load(keystoreStream, keystorePassword.toCharArray()) val privateKeyAlias = keyStore.aliases().toList().first { keyStore.isKeyEntry(it) } @@ -187,7 +187,7 @@ class EmailUtils { "OpenPGP" -> { senderPGPSecretKeyRing = PGPainless.readKeyRing().secretKeyRing(keystoreStream) - senderPGPSecretKeyPassword = setting.password.toString() + senderPGPSecretKeyPassword = setting.password } } } catch (e: Exception) { diff --git a/app/src/main/java/com/idormy/sms/forwarder/utils/sender/FeishuAppUtils.kt b/app/src/main/java/com/idormy/sms/forwarder/utils/sender/FeishuAppUtils.kt index d642ab71..e89b7bfd 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/utils/sender/FeishuAppUtils.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/utils/sender/FeishuAppUtils.kt @@ -11,6 +11,7 @@ import com.idormy.sms.forwarder.utils.Log import com.idormy.sms.forwarder.utils.SendUtils import com.idormy.sms.forwarder.utils.SettingUtils import com.idormy.sms.forwarder.utils.SharedPreference +import com.idormy.sms.forwarder.utils.interceptor.LoggingInterceptor import com.xuexiang.xhttp2.XHttp import com.xuexiang.xhttp2.callback.SimpleCallBack import com.xuexiang.xhttp2.exception.ApiException diff --git a/app/src/main/java/com/idormy/sms/forwarder/utils/sender/FeishuUtils.kt b/app/src/main/java/com/idormy/sms/forwarder/utils/sender/FeishuUtils.kt index 968c6a0c..a226abe1 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/utils/sender/FeishuUtils.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/utils/sender/FeishuUtils.kt @@ -10,6 +10,7 @@ import com.idormy.sms.forwarder.entity.setting.FeishuSetting import com.idormy.sms.forwarder.utils.Log import com.idormy.sms.forwarder.utils.SendUtils import com.idormy.sms.forwarder.utils.SettingUtils +import com.idormy.sms.forwarder.utils.interceptor.LoggingInterceptor import com.xuexiang.xhttp2.XHttp import com.xuexiang.xhttp2.callback.SimpleCallBack import com.xuexiang.xhttp2.exception.ApiException @@ -89,9 +90,9 @@ class FeishuUtils private constructor() { ) { val from: String = msgInfo.from val title: String = if (rule != null) { - msgInfo.getTitleForSend(setting.titleTemplate.toString(), rule.regexReplace) + msgInfo.getTitleForSend(setting.titleTemplate, rule.regexReplace) } else { - msgInfo.getTitleForSend(setting.titleTemplate.toString()) + msgInfo.getTitleForSend(setting.titleTemplate) } val content: String = if (rule != null) { msgInfo.getContentForSend(rule.smsTemplate, rule.regexReplace) @@ -103,24 +104,22 @@ class FeishuUtils private constructor() { Log.i(TAG, "requestUrl:$requestUrl") val msgMap: MutableMap = mutableMapOf() - if (setting.secret != null) { - val timestamp = System.currentTimeMillis() / 1000 - val stringToSign = "$timestamp\n" + setting.secret - Log.i(TAG, "stringToSign = $stringToSign") + val timestamp = System.currentTimeMillis() / 1000 + val stringToSign = "$timestamp\n" + setting.secret + Log.i(TAG, "stringToSign = $stringToSign") - //使用HmacSHA256算法计算签名 - val mac = Mac.getInstance("HmacSHA256") - mac.init(SecretKeySpec(stringToSign.toByteArray(StandardCharsets.UTF_8), "HmacSHA256")) - val signData = mac.doFinal(byteArrayOf()) - val sign = String(Base64.encode(signData, Base64.NO_WRAP)) + //使用HmacSHA256算法计算签名 + val mac = Mac.getInstance("HmacSHA256") + mac.init(SecretKeySpec(stringToSign.toByteArray(StandardCharsets.UTF_8), "HmacSHA256")) + val signData = mac.doFinal(byteArrayOf()) + val sign = String(Base64.encode(signData, Base64.NO_WRAP)) - msgMap["timestamp"] = timestamp - msgMap["sign"] = sign - } + msgMap["timestamp"] = timestamp + msgMap["sign"] = sign //组装报文 val requestMsg: String - if (setting.msgType == null || setting.msgType == "interactive") { + if (setting.msgType == "interactive") { msgMap["msg_type"] = "interactive" if (TextUtils.isEmpty(setting.messageCard.trim())) { msgMap["card"] = "{{CARD_BODY}}" diff --git a/app/src/main/java/com/idormy/sms/forwarder/utils/sender/GotifyUtils.kt b/app/src/main/java/com/idormy/sms/forwarder/utils/sender/GotifyUtils.kt index 3b7a5a5c..78fbb99b 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/utils/sender/GotifyUtils.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/utils/sender/GotifyUtils.kt @@ -8,6 +8,8 @@ import com.idormy.sms.forwarder.entity.setting.GotifySetting import com.idormy.sms.forwarder.utils.Log import com.idormy.sms.forwarder.utils.SendUtils import com.idormy.sms.forwarder.utils.SettingUtils +import com.idormy.sms.forwarder.utils.interceptor.BasicAuthInterceptor +import com.idormy.sms.forwarder.utils.interceptor.LoggingInterceptor import com.xuexiang.xhttp2.XHttp import com.xuexiang.xhttp2.callback.SimpleCallBack import com.xuexiang.xhttp2.exception.ApiException @@ -26,9 +28,9 @@ class GotifyUtils { msgId: Long = 0L ) { val title: String = if (rule != null) { - msgInfo.getTitleForSend(setting.title.toString(), rule.regexReplace) + msgInfo.getTitleForSend(setting.title, rule.regexReplace) } else { - msgInfo.getTitleForSend(setting.title.toString()) + msgInfo.getTitleForSend(setting.title) } val content: String = if (rule != null) { msgInfo.getContentForSend(rule.smsTemplate, rule.regexReplace) diff --git a/app/src/main/java/com/idormy/sms/forwarder/utils/sender/PushplusUtils.kt b/app/src/main/java/com/idormy/sms/forwarder/utils/sender/PushplusUtils.kt index 8dd1449d..5dfd4204 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/utils/sender/PushplusUtils.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/utils/sender/PushplusUtils.kt @@ -10,6 +10,7 @@ import com.idormy.sms.forwarder.entity.setting.PushplusSetting import com.idormy.sms.forwarder.utils.Log import com.idormy.sms.forwarder.utils.SendUtils import com.idormy.sms.forwarder.utils.SettingUtils +import com.idormy.sms.forwarder.utils.interceptor.LoggingInterceptor import com.xuexiang.xhttp2.XHttp import com.xuexiang.xhttp2.callback.SimpleCallBack import com.xuexiang.xhttp2.exception.ApiException @@ -29,9 +30,9 @@ class PushplusUtils private constructor() { msgId: Long = 0L ) { val title: String = if (rule != null) { - msgInfo.getTitleForSend(setting.titleTemplate.toString(), rule.regexReplace) + msgInfo.getTitleForSend(setting.titleTemplate, rule.regexReplace) } else { - msgInfo.getTitleForSend(setting.titleTemplate.toString()) + msgInfo.getTitleForSend(setting.titleTemplate) } val content: String = if (rule != null) { msgInfo.getContentForSend(rule.smsTemplate, rule.regexReplace) @@ -47,16 +48,16 @@ class PushplusUtils private constructor() { msgMap["content"] = content if (!TextUtils.isEmpty(title)) msgMap["title"] = title - if (!TextUtils.isEmpty(setting.template)) msgMap["template"] = setting.template.toString() - if (!TextUtils.isEmpty(setting.topic)) msgMap["topic"] = setting.topic.toString() + if (!TextUtils.isEmpty(setting.template)) msgMap["template"] = setting.template + if (!TextUtils.isEmpty(setting.topic)) msgMap["topic"] = setting.topic if (setting.website == getString(R.string.pushplus_plus)) { - if (!TextUtils.isEmpty(setting.channel)) msgMap["channel"] = setting.channel.toString() - if (!TextUtils.isEmpty(setting.webhook)) msgMap["webhook"] = setting.webhook.toString() - if (!TextUtils.isEmpty(setting.callbackUrl)) msgMap["callbackUrl"] = setting.callbackUrl.toString() + if (!TextUtils.isEmpty(setting.channel)) msgMap["channel"] = setting.channel + if (!TextUtils.isEmpty(setting.webhook)) msgMap["webhook"] = setting.webhook + if (!TextUtils.isEmpty(setting.callbackUrl)) msgMap["callbackUrl"] = setting.callbackUrl if (!TextUtils.isEmpty(setting.validTime)) { - val validTime = setting.validTime?.toInt() - if (validTime != null && validTime > 0) { + val validTime = setting.validTime.toInt() + if (validTime > 0) { msgMap["timestamp"] = System.currentTimeMillis() + validTime * 1000L } } diff --git a/app/src/main/java/com/idormy/sms/forwarder/utils/sender/ServerchanUtils.kt b/app/src/main/java/com/idormy/sms/forwarder/utils/sender/ServerchanUtils.kt index 6216ed10..bc220d8a 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/utils/sender/ServerchanUtils.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/utils/sender/ServerchanUtils.kt @@ -9,6 +9,7 @@ import com.idormy.sms.forwarder.entity.setting.ServerchanSetting import com.idormy.sms.forwarder.utils.Log import com.idormy.sms.forwarder.utils.SendUtils import com.idormy.sms.forwarder.utils.SettingUtils +import com.idormy.sms.forwarder.utils.interceptor.LoggingInterceptor import com.xuexiang.xhttp2.XHttp import com.xuexiang.xhttp2.callback.SimpleCallBack import com.xuexiang.xhttp2.exception.ApiException @@ -27,9 +28,9 @@ class ServerchanUtils { msgId: Long = 0L ) { val title: String = if (rule != null) { - msgInfo.getTitleForSend(setting.titleTemplate.toString(), rule.regexReplace) + msgInfo.getTitleForSend(setting.titleTemplate, rule.regexReplace) } else { - msgInfo.getTitleForSend(setting.titleTemplate.toString()) + msgInfo.getTitleForSend(setting.titleTemplate) } val content: String = if (rule != null) { msgInfo.getContentForSend(rule.smsTemplate, rule.regexReplace) diff --git a/app/src/main/java/com/idormy/sms/forwarder/utils/sender/SmsUtils.kt b/app/src/main/java/com/idormy/sms/forwarder/utils/sender/SmsUtils.kt index 30b3933b..3fdb0fd9 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/utils/sender/SmsUtils.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/utils/sender/SmsUtils.kt @@ -2,13 +2,13 @@ package com.idormy.sms.forwarder.utils.sender import android.Manifest import android.content.pm.PackageManager -import com.idormy.sms.forwarder.utils.Log import androidx.core.app.ActivityCompat import com.idormy.sms.forwarder.App import com.idormy.sms.forwarder.R import com.idormy.sms.forwarder.database.entity.Rule import com.idormy.sms.forwarder.entity.MsgInfo import com.idormy.sms.forwarder.entity.setting.SmsSetting +import com.idormy.sms.forwarder.utils.Log import com.idormy.sms.forwarder.utils.PhoneUtils import com.idormy.sms.forwarder.utils.SendUtils import com.idormy.sms.forwarder.utils.SettingUtils @@ -30,7 +30,7 @@ class SmsUtils { msgId: Long = 0L ) { //仅当无网络时启用 && 判断是否真实有网络 - if (setting.onlyNoNetwork == true && NetworkUtils.isHaveInternet() && NetworkUtils.isAvailableByPing()) { + if (setting.onlyNoNetwork && NetworkUtils.isHaveInternet() && NetworkUtils.isAvailableByPing()) { SendUtils.updateLogs(logId, 0, getString(R.string.OnlyNoNetwork)) SendUtils.senderLogic(0, msgInfo, rule, senderIndex, msgId) return diff --git a/app/src/main/java/com/idormy/sms/forwarder/utils/sender/SocketUtils.kt b/app/src/main/java/com/idormy/sms/forwarder/utils/sender/SocketUtils.kt index 6b7b03d6..1390ffa7 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/utils/sender/SocketUtils.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/utils/sender/SocketUtils.kt @@ -57,7 +57,7 @@ class SocketUtils { if (!TextUtils.isEmpty(setting.secret)) { val stringToSign = "$timestamp\n" + setting.secret val mac = Mac.getInstance("HmacSHA256") - mac.init(SecretKeySpec(setting.secret?.toByteArray(StandardCharsets.UTF_8), "HmacSHA256")) + mac.init(SecretKeySpec(setting.secret.toByteArray(StandardCharsets.UTF_8), "HmacSHA256")) val signData = mac.doFinal(stringToSign.toByteArray(StandardCharsets.UTF_8)) sign = URLEncoder.encode(String(Base64.encode(signData, Base64.NO_WRAP)), "UTF-8") } @@ -87,7 +87,7 @@ class SocketUtils { // 从服务器接收响应 val response = input.readLine() Log.d(TAG, "从服务器接收的响应: $response") - val status = if (!setting.response.isNullOrEmpty() && !response.contains(setting.response)) 0 else 2 + val status = if (setting.response.isNotEmpty() && !response.contains(setting.response)) 0 else 2 SendUtils.updateLogs(logId, status, response) SendUtils.senderLogic(status, msgInfo, rule, senderIndex, msgId) } catch (e: Exception) { @@ -143,7 +143,7 @@ class SocketUtils { override fun messageArrived(topic: String?, inMessage: MqttMessage?) { val payload = inMessage?.payload?.toString(Charset.forName(setting.inCharset)) Log.d(TAG, "Received message on topic $topic: $payload") - val status = if (!setting.response.isNullOrEmpty() && !payload?.contains(setting.response)!!) 0 else 2 + val status = if (setting.response.isNotEmpty() && !payload?.contains(setting.response)!!) 0 else 2 SendUtils.updateLogs(logId, status, payload.toString()) SendUtils.senderLogic(status, msgInfo, rule, senderIndex, msgId) } diff --git a/app/src/main/java/com/idormy/sms/forwarder/utils/sender/TelegramUtils.kt b/app/src/main/java/com/idormy/sms/forwarder/utils/sender/TelegramUtils.kt index aa1949e4..c933187d 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/utils/sender/TelegramUtils.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/utils/sender/TelegramUtils.kt @@ -10,6 +10,7 @@ import com.idormy.sms.forwarder.entity.setting.TelegramSetting import com.idormy.sms.forwarder.utils.Log import com.idormy.sms.forwarder.utils.SendUtils import com.idormy.sms.forwarder.utils.SettingUtils +import com.idormy.sms.forwarder.utils.interceptor.LoggingInterceptor import com.xuexiang.xhttp2.XHttp import com.xuexiang.xhttp2.callback.SimpleCallBack import com.xuexiang.xhttp2.exception.ApiException @@ -37,7 +38,7 @@ class TelegramUtils private constructor() { logId: Long = 0L, msgId: Long = 0L ) { - if (setting.method == null || setting.method == "POST") { + if (setting.method == "POST") { msgInfo.content = htmlEncode(msgInfo.content) msgInfo.simInfo = htmlEncode(msgInfo.simInfo) } @@ -55,7 +56,7 @@ class TelegramUtils private constructor() { } Log.i(TAG, "requestUrl:$requestUrl") - val request = if (setting.method != null && setting.method == "GET") { + val request = if (setting.method == "GET") { requestUrl += "?chat_id=" + setting.chatId + "&text=" + URLEncoder.encode(content, "UTF-8") Log.i(TAG, "requestUrl:$requestUrl") XHttp.get(requestUrl) @@ -80,21 +81,20 @@ class TelegramUtils private constructor() { if (!NetworkUtils.isIP(proxyHost)) { throw Exception(String.format(getString(R.string.invalid_proxy_host), proxyHost)) } - val proxyPort: Int = setting.proxyPort?.toInt() ?: 7890 + val proxyPort: Int = setting.proxyPort.toInt() Log.d(TAG, "proxyHost = $proxyHost, proxyPort = $proxyPort") request.okproxy(Proxy(setting.proxyType, InetSocketAddress(proxyHost, proxyPort))) //代理的鉴权账号密码 - if (setting.proxyAuthenticator == true - && (!TextUtils.isEmpty(setting.proxyUsername) || !TextUtils.isEmpty(setting.proxyPassword)) + if (setting.proxyAuthenticator && (!TextUtils.isEmpty(setting.proxyUsername) || !TextUtils.isEmpty(setting.proxyPassword)) ) { Log.i(TAG, "proxyUsername = ${setting.proxyUsername}, proxyPassword = ${setting.proxyPassword}") if (setting.proxyType == Proxy.Type.HTTP) { request.okproxyAuthenticator { _: Route?, response: Response -> //设置代理服务器账号密码 - val credential = Credentials.basic(setting.proxyUsername.toString(), setting.proxyPassword.toString()) + val credential = Credentials.basic(setting.proxyUsername, setting.proxyPassword) response.request().newBuilder() .header("Proxy-Authorization", credential) .build() @@ -102,7 +102,7 @@ class TelegramUtils private constructor() { } else { Authenticator.setDefault(object : Authenticator() { override fun getPasswordAuthentication(): PasswordAuthentication { - return PasswordAuthentication(setting.proxyUsername.toString(), setting.proxyPassword?.toCharArray()) + return PasswordAuthentication(setting.proxyUsername, setting.proxyPassword.toCharArray()) } }) } diff --git a/app/src/main/java/com/idormy/sms/forwarder/utils/sender/WeworkAgentUtils.kt b/app/src/main/java/com/idormy/sms/forwarder/utils/sender/WeworkAgentUtils.kt index 8573aeb5..ca3f0d72 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/utils/sender/WeworkAgentUtils.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/utils/sender/WeworkAgentUtils.kt @@ -11,6 +11,7 @@ import com.idormy.sms.forwarder.utils.Log import com.idormy.sms.forwarder.utils.SendUtils import com.idormy.sms.forwarder.utils.SettingUtils import com.idormy.sms.forwarder.utils.SharedPreference +import com.idormy.sms.forwarder.utils.interceptor.LoggingInterceptor import com.xuexiang.xhttp2.XHttp import com.xuexiang.xhttp2.callback.SimpleCallBack import com.xuexiang.xhttp2.exception.ApiException @@ -60,25 +61,25 @@ class WeworkAgentUtils private constructor() { if (!NetworkUtils.isIP(proxyHost)) { throw Exception(String.format(getString(R.string.invalid_proxy_host), proxyHost)) } - val proxyPort: Int = setting.proxyPort?.toInt() ?: 7890 + val proxyPort: Int = setting.proxyPort.toInt() Log.d(TAG, "proxyHost = $proxyHost, proxyPort = $proxyPort") request.okproxy(Proxy(setting.proxyType, InetSocketAddress(proxyHost, proxyPort))) //代理的鉴权账号密码 - if (setting.proxyAuthenticator == true && (!TextUtils.isEmpty(setting.proxyUsername) || !TextUtils.isEmpty(setting.proxyPassword))) { + if (setting.proxyAuthenticator && (!TextUtils.isEmpty(setting.proxyUsername) || !TextUtils.isEmpty(setting.proxyPassword))) { Log.i(TAG, "proxyUsername = ${setting.proxyUsername}, proxyPassword = ${setting.proxyPassword}") if (setting.proxyType == Proxy.Type.HTTP) { request.okproxyAuthenticator { _: Route?, response: Response -> //设置代理服务器账号密码 - val credential = Credentials.basic(setting.proxyUsername.toString(), setting.proxyPassword.toString()) + val credential = Credentials.basic(setting.proxyUsername, setting.proxyPassword) response.request().newBuilder().header("Proxy-Authorization", credential).build() } } else { Authenticator.setDefault(object : Authenticator() { override fun getPasswordAuthentication(): PasswordAuthentication { - return PasswordAuthentication(setting.proxyUsername.toString(), setting.proxyPassword?.toCharArray()) + return PasswordAuthentication(setting.proxyUsername, setting.proxyPassword.toCharArray()) } }) } @@ -135,9 +136,9 @@ class WeworkAgentUtils private constructor() { } val textMsgMap: MutableMap = mutableMapOf() - textMsgMap["touser"] = setting.toUser.toString() - textMsgMap["toparty"] = setting.toParty.toString() - textMsgMap["totag"] = setting.toTag.toString() + textMsgMap["touser"] = setting.toUser + textMsgMap["toparty"] = setting.toParty + textMsgMap["totag"] = setting.toTag textMsgMap["msgtype"] = "text" textMsgMap["agentid"] = setting.agentID val textText: MutableMap = mutableMapOf() @@ -160,25 +161,25 @@ class WeworkAgentUtils private constructor() { if (!NetworkUtils.isIP(proxyHost)) { throw Exception(String.format(getString(R.string.invalid_proxy_host), proxyHost)) } - val proxyPort: Int = setting.proxyPort?.toInt() ?: 7890 + val proxyPort: Int = setting.proxyPort.toInt() Log.d(TAG, "proxyHost = $proxyHost, proxyPort = $proxyPort") request.okproxy(Proxy(setting.proxyType, InetSocketAddress(proxyHost, proxyPort))) //代理的鉴权账号密码 - if (setting.proxyAuthenticator == true && (!TextUtils.isEmpty(setting.proxyUsername) || !TextUtils.isEmpty(setting.proxyPassword))) { + if (setting.proxyAuthenticator && (!TextUtils.isEmpty(setting.proxyUsername) || !TextUtils.isEmpty(setting.proxyPassword))) { Log.i(TAG, "proxyUsername = ${setting.proxyUsername}, proxyPassword = ${setting.proxyPassword}") if (setting.proxyType == Proxy.Type.HTTP) { request.okproxyAuthenticator { _: Route?, response: Response -> //设置代理服务器账号密码 - val credential = Credentials.basic(setting.proxyUsername.toString(), setting.proxyPassword.toString()) + val credential = Credentials.basic(setting.proxyUsername, setting.proxyPassword) response.request().newBuilder().header("Proxy-Authorization", credential).build() } } else { Authenticator.setDefault(object : Authenticator() { override fun getPasswordAuthentication(): PasswordAuthentication { - return PasswordAuthentication(setting.proxyUsername.toString(), setting.proxyPassword?.toCharArray()) + return PasswordAuthentication(setting.proxyUsername, setting.proxyPassword.toCharArray()) } }) } diff --git a/app/src/main/java/com/idormy/sms/forwarder/utils/sender/WeworkRobotUtils.kt b/app/src/main/java/com/idormy/sms/forwarder/utils/sender/WeworkRobotUtils.kt index 15cbffc9..765243c6 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/utils/sender/WeworkRobotUtils.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/utils/sender/WeworkRobotUtils.kt @@ -8,6 +8,7 @@ import com.idormy.sms.forwarder.entity.setting.WeworkRobotSetting import com.idormy.sms.forwarder.utils.Log import com.idormy.sms.forwarder.utils.SendUtils import com.idormy.sms.forwarder.utils.SettingUtils +import com.idormy.sms.forwarder.utils.interceptor.LoggingInterceptor import com.xuexiang.xhttp2.XHttp import com.xuexiang.xhttp2.callback.SimpleCallBack import com.xuexiang.xhttp2.exception.ApiException @@ -43,14 +44,14 @@ class WeworkRobotUtils private constructor() { if (setting.msgType == "markdown") { msgMap["markdown"] = contextMap } else { - if (setting.atAll == true) { + if (setting.atAll) { contextMap["mentioned_list"] = arrayListOf("@all") } else { - if (!setting.atUserIds.isNullOrEmpty()) { - contextMap["mentioned_list"] = setting.atUserIds!!.split(",") + if (setting.atUserIds.isNotEmpty()) { + contextMap["mentioned_list"] = setting.atUserIds.split(",") } - if (!setting.atMobiles.isNullOrEmpty()) { - contextMap["mentioned_mobile_list"] = setting.atMobiles!!.split(",") + if (setting.atMobiles.isNotEmpty()) { + contextMap["mentioned_mobile_list"] = setting.atMobiles.split(",") } } msgMap["text"] = contextMap diff --git a/app/src/main/java/com/idormy/sms/forwarder/workers/SendWorker.kt b/app/src/main/java/com/idormy/sms/forwarder/workers/SendWorker.kt index b6cf2096..d43dd683 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/workers/SendWorker.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/workers/SendWorker.kt @@ -86,7 +86,7 @@ class SendWorker(context: Context, params: WorkerParameters) : CoroutineWorker(c if (SettingUtils.enableSilentPeriodLogs) { isSilentPeriod = true } else { - Log.e("SendWorker", "免打扰(禁用转发)时间段") + Log.e(TAG, "免打扰(禁用转发)时间段") return@withContext Result.failure(workDataOf("send" to "failed")) } } @@ -98,9 +98,9 @@ class SendWorker(context: Context, params: WorkerParameters) : CoroutineWorker(c val key = CipherUtils.md5(msgInfo.type + msgInfo.from + msgInfo.content) val timestamp: Long = System.currentTimeMillis() var timestampPrev: Long by HistoryUtils(key, timestamp) - Log.d("SendWorker", "duplicateMessagesLimits=$duplicateMessagesLimits, timestamp=$timestamp, timestampPrev=$timestampPrev, msgInfo=$msgInfo") + Log.d(TAG, "duplicateMessagesLimits=$duplicateMessagesLimits, timestamp=$timestamp, timestampPrev=$timestampPrev, msgInfo=$msgInfo") if (timestampPrev != timestamp && timestamp - timestampPrev <= duplicateMessagesLimits) { - Log.e("SendWorker", "过滤重复消息机制") + Log.e(TAG, "过滤重复消息机制") timestampPrev = timestamp return@withContext Result.failure(workDataOf("send" to "failed")) } @@ -114,7 +114,7 @@ class SendWorker(context: Context, params: WorkerParameters) : CoroutineWorker(c val ruleListMatched: MutableList = mutableListOf() for (rule in ruleList) { - Log.d("SendWorker", rule.toString()) + Log.d(TAG, rule.toString()) if (rule.checkMsg(msgInfo)) ruleListMatched.add(rule) } if (ruleListMatched.isEmpty()) { @@ -137,7 +137,7 @@ class SendWorker(context: Context, params: WorkerParameters) : CoroutineWorker(c } catch (e: Exception) { e.printStackTrace() - Log.e("SendWorker", "SendWorker error: ${e.message}") + Log.e(TAG, "SendWorker error: ${e.message}") return@withContext Result.failure(workDataOf("send" to e.message.toString())) }