整理:code review

This commit is contained in:
pppscn 2024-03-06 11:48:57 +08:00
parent 0036044d54
commit bc6131ffd8
40 changed files with 210 additions and 117 deletions

View File

@ -41,8 +41,4 @@ class RuleRepository(private val ruleDao: RuleDao) {
fun getRuleList(type: String, status: Int, simSlot: String) = ruleDao.getRuleList(type, status, simSlot) fun getRuleList(type: String, status: Int, simSlot: String) = ruleDao.getRuleList(type, status, simSlot)
fun replaceTags(sql: String): Int {
val query = SimpleSQLiteQuery(sql)
return ruleDao.replaceTags(query)
}
} }

View File

@ -46,9 +46,4 @@ class SenderRepository(private val senderDao: SenderDao) {
val count: Flow<Long> = senderDao.getOnCount() val count: Flow<Long> = senderDao.getOnCount()
fun replaceTags(sql: String): Int {
val query = SimpleSQLiteQuery(sql)
return senderDao.replaceTags(query)
}
} }

View File

@ -4,7 +4,11 @@ import android.annotation.SuppressLint
import android.view.LayoutInflater import android.view.LayoutInflater
import android.view.View import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
import android.widget.* import android.widget.AdapterView
import android.widget.CompoundButton
import android.widget.EditText
import android.widget.RadioGroup
import android.widget.TextView
import androidx.fragment.app.viewModels import androidx.fragment.app.viewModels
import androidx.lifecycle.Observer import androidx.lifecycle.Observer
import androidx.recyclerview.widget.ItemTouchHelper import androidx.recyclerview.widget.ItemTouchHelper
@ -28,7 +32,40 @@ import com.idormy.sms.forwarder.database.viewmodel.BaseViewModelFactory
import com.idormy.sms.forwarder.database.viewmodel.RuleViewModel import com.idormy.sms.forwarder.database.viewmodel.RuleViewModel
import com.idormy.sms.forwarder.databinding.FragmentRulesEditBinding import com.idormy.sms.forwarder.databinding.FragmentRulesEditBinding
import com.idormy.sms.forwarder.entity.MsgInfo import com.idormy.sms.forwarder.entity.MsgInfo
import com.idormy.sms.forwarder.utils.* import com.idormy.sms.forwarder.utils.CHECK_CONTAIN
import com.idormy.sms.forwarder.utils.CHECK_END_WITH
import com.idormy.sms.forwarder.utils.CHECK_IS
import com.idormy.sms.forwarder.utils.CHECK_NOT_CONTAIN
import com.idormy.sms.forwarder.utils.CHECK_REGEX
import com.idormy.sms.forwarder.utils.CHECK_SIM_SLOT_1
import com.idormy.sms.forwarder.utils.CHECK_SIM_SLOT_2
import com.idormy.sms.forwarder.utils.CHECK_SIM_SLOT_ALL
import com.idormy.sms.forwarder.utils.CHECK_START_WITH
import com.idormy.sms.forwarder.utils.CommonUtils
import com.idormy.sms.forwarder.utils.DataProvider
import com.idormy.sms.forwarder.utils.EVENT_LOAD_APP_LIST
import com.idormy.sms.forwarder.utils.EVENT_TOAST_ERROR
import com.idormy.sms.forwarder.utils.FILED_CALL_TYPE
import com.idormy.sms.forwarder.utils.FILED_INFORM_CONTENT
import com.idormy.sms.forwarder.utils.FILED_MSG_CONTENT
import com.idormy.sms.forwarder.utils.FILED_MULTI_MATCH
import com.idormy.sms.forwarder.utils.FILED_PACKAGE_NAME
import com.idormy.sms.forwarder.utils.FILED_PHONE_NUM
import com.idormy.sms.forwarder.utils.FILED_TRANSPOND_ALL
import com.idormy.sms.forwarder.utils.FILED_UID
import com.idormy.sms.forwarder.utils.KEY_RULE_CLONE
import com.idormy.sms.forwarder.utils.KEY_RULE_ID
import com.idormy.sms.forwarder.utils.KEY_RULE_TYPE
import com.idormy.sms.forwarder.utils.Log
import com.idormy.sms.forwarder.utils.PhoneUtils
import com.idormy.sms.forwarder.utils.SENDER_LOGIC_ALL
import com.idormy.sms.forwarder.utils.SENDER_LOGIC_UNTIL_FAIL
import com.idormy.sms.forwarder.utils.SENDER_LOGIC_UNTIL_SUCCESS
import com.idormy.sms.forwarder.utils.STATUS_OFF
import com.idormy.sms.forwarder.utils.STATUS_ON
import com.idormy.sms.forwarder.utils.SendUtils
import com.idormy.sms.forwarder.utils.SettingUtils
import com.idormy.sms.forwarder.utils.XToastUtils
import com.idormy.sms.forwarder.workers.LoadAppListWorker import com.idormy.sms.forwarder.workers.LoadAppListWorker
import com.jeremyliao.liveeventbus.LiveEventBus import com.jeremyliao.liveeventbus.LiveEventBus
import com.xuexiang.xaop.annotation.SingleClick import com.xuexiang.xaop.annotation.SingleClick
@ -49,8 +86,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 kotlinx.coroutines.* import java.util.Date
import java.util.*
@Page(name = "转发规则·编辑器") @Page(name = "转发规则·编辑器")
@Suppress("PrivatePropertyName") @Suppress("PrivatePropertyName")

View File

@ -17,7 +17,12 @@ import android.text.TextWatcher
import android.view.LayoutInflater import android.view.LayoutInflater
import android.view.View import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
import android.widget.* import android.widget.AdapterView
import android.widget.CompoundButton
import android.widget.EditText
import android.widget.LinearLayout
import android.widget.RadioGroup
import android.widget.TextView
import androidx.annotation.RequiresApi import androidx.annotation.RequiresApi
import androidx.core.content.ContextCompat import androidx.core.content.ContextCompat
import androidx.lifecycle.Observer import androidx.lifecycle.Observer
@ -39,8 +44,16 @@ import com.idormy.sms.forwarder.entity.SimInfo
import com.idormy.sms.forwarder.receiver.BootCompletedReceiver import com.idormy.sms.forwarder.receiver.BootCompletedReceiver
import com.idormy.sms.forwarder.service.ForegroundService import com.idormy.sms.forwarder.service.ForegroundService
import com.idormy.sms.forwarder.service.LocationService import com.idormy.sms.forwarder.service.LocationService
import com.idormy.sms.forwarder.utils.*
import com.idormy.sms.forwarder.utils.AppUtils.getAppPackageName import com.idormy.sms.forwarder.utils.AppUtils.getAppPackageName
import com.idormy.sms.forwarder.utils.CommonUtils
import com.idormy.sms.forwarder.utils.DataProvider
import com.idormy.sms.forwarder.utils.EVENT_LOAD_APP_LIST
import com.idormy.sms.forwarder.utils.KeepAliveUtils
import com.idormy.sms.forwarder.utils.LocationUtils
import com.idormy.sms.forwarder.utils.Log
import com.idormy.sms.forwarder.utils.PhoneUtils
import com.idormy.sms.forwarder.utils.SettingUtils
import com.idormy.sms.forwarder.utils.XToastUtils
import com.idormy.sms.forwarder.widget.GuideTipsDialog import com.idormy.sms.forwarder.widget.GuideTipsDialog
import com.idormy.sms.forwarder.workers.LoadAppListWorker import com.idormy.sms.forwarder.workers.LoadAppListWorker
import com.jeremyliao.liveeventbus.LiveEventBus import com.jeremyliao.liveeventbus.LiveEventBus
@ -57,8 +70,7 @@ import com.xuexiang.xui.widget.picker.widget.listener.OnOptionsSelectListener
import com.xuexiang.xutil.XUtil import com.xuexiang.xutil.XUtil
import com.xuexiang.xutil.XUtil.getPackageManager import com.xuexiang.xutil.XUtil.getPackageManager
import com.xuexiang.xutil.file.FileUtils import com.xuexiang.xutil.file.FileUtils
import kotlinx.coroutines.* import java.util.Locale
import java.util.*
@Suppress("SpellCheckingInspection", "PrivatePropertyName") @Suppress("SpellCheckingInspection", "PrivatePropertyName")
@Page(name = "通用设置") @Page(name = "通用设置")

View File

@ -176,7 +176,7 @@ class AlarmFragment : BaseFragment<FragmentTasksActionAlarmBinding?>(), View.OnC
val taskAction = TaskSetting(TASK_ACTION_ALARM, getString(R.string.task_alarm), settingVo.description, Gson().toJson(settingVo), requestCode) val taskAction = TaskSetting(TASK_ACTION_ALARM, getString(R.string.task_alarm), settingVo.description, Gson().toJson(settingVo), requestCode)
val taskActionsJson = Gson().toJson(arrayListOf(taskAction)) val taskActionsJson = Gson().toJson(arrayListOf(taskAction))
val msgInfo = MsgInfo("task", getString(R.string.task_alarm), settingVo.description, Date(), getString(R.string.task_alarm)) val msgInfo = MsgInfo("task", getString(R.string.task_alarm), settingVo.description, Date(), getString(R.string.task_alarm))
val actionData = Data.Builder().putLong(TaskWorker.taskId, 0).putString(TaskWorker.taskActions, taskActionsJson).putString(TaskWorker.msgInfo, Gson().toJson(msgInfo)).build() val actionData = Data.Builder().putLong(TaskWorker.TASK_ID, 0).putString(TaskWorker.TASK_ACTIONS, taskActionsJson).putString(TaskWorker.MSG_INFO, Gson().toJson(msgInfo)).build()
val actionRequest = OneTimeWorkRequestBuilder<ActionWorker>().setInputData(actionData).build() val actionRequest = OneTimeWorkRequestBuilder<ActionWorker>().setInputData(actionData).build()
WorkManager.getInstance().enqueue(actionRequest) WorkManager.getInstance().enqueue(actionRequest)
} catch (e: Exception) { } catch (e: Exception) {

View File

@ -103,7 +103,7 @@ class CleanerFragment : BaseFragment<FragmentTasksActionCleanerBinding?>(), View
val taskAction = TaskSetting(TASK_ACTION_CLEANER, getString(R.string.task_cleaner), settingVo.description, Gson().toJson(settingVo), requestCode) val taskAction = TaskSetting(TASK_ACTION_CLEANER, getString(R.string.task_cleaner), settingVo.description, Gson().toJson(settingVo), requestCode)
val taskActionsJson = Gson().toJson(arrayListOf(taskAction)) val taskActionsJson = Gson().toJson(arrayListOf(taskAction))
val msgInfo = MsgInfo("task", getString(R.string.task_cleaner), settingVo.description, Date(), getString(R.string.task_cleaner)) val msgInfo = MsgInfo("task", getString(R.string.task_cleaner), settingVo.description, Date(), getString(R.string.task_cleaner))
val actionData = Data.Builder().putLong(TaskWorker.taskId, 0).putString(TaskWorker.taskActions, taskActionsJson).putString(TaskWorker.msgInfo, Gson().toJson(msgInfo)).build() val actionData = Data.Builder().putLong(TaskWorker.TASK_ID, 0).putString(TaskWorker.TASK_ACTIONS, taskActionsJson).putString(TaskWorker.MSG_INFO, Gson().toJson(msgInfo)).build()
val actionRequest = OneTimeWorkRequestBuilder<ActionWorker>().setInputData(actionData).build() val actionRequest = OneTimeWorkRequestBuilder<ActionWorker>().setInputData(actionData).build()
WorkManager.getInstance().enqueue(actionRequest) WorkManager.getInstance().enqueue(actionRequest)
} catch (e: Exception) { } catch (e: Exception) {

View File

@ -138,7 +138,7 @@ class FrpcFragment : BaseFragment<FragmentTasksActionFrpcBinding?>(), View.OnCli
val taskAction = TaskSetting(TASK_ACTION_FRPC, getString(R.string.task_frpc), settingVo.description, Gson().toJson(settingVo), requestCode) val taskAction = TaskSetting(TASK_ACTION_FRPC, getString(R.string.task_frpc), settingVo.description, Gson().toJson(settingVo), requestCode)
val taskActionsJson = Gson().toJson(arrayListOf(taskAction)) val taskActionsJson = Gson().toJson(arrayListOf(taskAction))
val msgInfo = MsgInfo("task", getString(R.string.task_frpc), settingVo.description, Date(), getString(R.string.task_frpc)) val msgInfo = MsgInfo("task", getString(R.string.task_frpc), settingVo.description, Date(), getString(R.string.task_frpc))
val actionData = Data.Builder().putLong(TaskWorker.taskId, 0).putString(TaskWorker.taskActions, taskActionsJson).putString(TaskWorker.msgInfo, Gson().toJson(msgInfo)).build() val actionData = Data.Builder().putLong(TaskWorker.TASK_ID, 0).putString(TaskWorker.TASK_ACTIONS, taskActionsJson).putString(TaskWorker.MSG_INFO, Gson().toJson(msgInfo)).build()
val actionRequest = OneTimeWorkRequestBuilder<ActionWorker>().setInputData(actionData).build() val actionRequest = OneTimeWorkRequestBuilder<ActionWorker>().setInputData(actionData).build()
WorkManager.getInstance().enqueue(actionRequest) WorkManager.getInstance().enqueue(actionRequest)
} catch (e: Exception) { } catch (e: Exception) {

View File

@ -150,7 +150,7 @@ class HttpServerFragment : BaseFragment<FragmentTasksActionHttpServerBinding?>()
val taskAction = TaskSetting(TASK_ACTION_HTTPSERVER, getString(R.string.task_http_server), settingVo.description, Gson().toJson(settingVo), requestCode) val taskAction = TaskSetting(TASK_ACTION_HTTPSERVER, getString(R.string.task_http_server), settingVo.description, Gson().toJson(settingVo), requestCode)
val taskActionsJson = Gson().toJson(arrayListOf(taskAction)) val taskActionsJson = Gson().toJson(arrayListOf(taskAction))
val msgInfo = MsgInfo("task", getString(R.string.task_http_server), settingVo.description, Date(), getString(R.string.task_http_server)) val msgInfo = MsgInfo("task", getString(R.string.task_http_server), settingVo.description, Date(), getString(R.string.task_http_server))
val actionData = Data.Builder().putLong(TaskWorker.taskId, 0).putString(TaskWorker.taskActions, taskActionsJson).putString(TaskWorker.msgInfo, Gson().toJson(msgInfo)).build() val actionData = Data.Builder().putLong(TaskWorker.TASK_ID, 0).putString(TaskWorker.TASK_ACTIONS, taskActionsJson).putString(TaskWorker.MSG_INFO, Gson().toJson(msgInfo)).build()
val actionRequest = OneTimeWorkRequestBuilder<ActionWorker>().setInputData(actionData).build() val actionRequest = OneTimeWorkRequestBuilder<ActionWorker>().setInputData(actionData).build()
WorkManager.getInstance().enqueue(actionRequest) WorkManager.getInstance().enqueue(actionRequest)
} catch (e: Exception) { } catch (e: Exception) {

View File

@ -5,7 +5,9 @@ import android.content.Intent
import android.view.LayoutInflater import android.view.LayoutInflater
import android.view.View import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
import android.widget.* import android.widget.AdapterView
import android.widget.CompoundButton
import android.widget.EditText
import androidx.recyclerview.widget.ItemTouchHelper import androidx.recyclerview.widget.ItemTouchHelper
import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView import androidx.recyclerview.widget.RecyclerView
@ -25,7 +27,23 @@ import com.idormy.sms.forwarder.database.entity.Sender
import com.idormy.sms.forwarder.databinding.FragmentTasksActionNotificationBinding import com.idormy.sms.forwarder.databinding.FragmentTasksActionNotificationBinding
import com.idormy.sms.forwarder.entity.MsgInfo import com.idormy.sms.forwarder.entity.MsgInfo
import com.idormy.sms.forwarder.entity.TaskSetting import com.idormy.sms.forwarder.entity.TaskSetting
import com.idormy.sms.forwarder.utils.* import com.idormy.sms.forwarder.utils.CHECK_IS
import com.idormy.sms.forwarder.utils.CHECK_SIM_SLOT_ALL
import com.idormy.sms.forwarder.utils.CommonUtils
import com.idormy.sms.forwarder.utils.DataProvider
import com.idormy.sms.forwarder.utils.FILED_TRANSPOND_ALL
import com.idormy.sms.forwarder.utils.KEY_BACK_DATA_ACTION
import com.idormy.sms.forwarder.utils.KEY_BACK_DESCRIPTION_ACTION
import com.idormy.sms.forwarder.utils.KEY_EVENT_DATA_ACTION
import com.idormy.sms.forwarder.utils.Log
import com.idormy.sms.forwarder.utils.SENDER_LOGIC_ALL
import com.idormy.sms.forwarder.utils.SENDER_LOGIC_UNTIL_FAIL
import com.idormy.sms.forwarder.utils.SENDER_LOGIC_UNTIL_SUCCESS
import com.idormy.sms.forwarder.utils.STATUS_OFF
import com.idormy.sms.forwarder.utils.STATUS_ON
import com.idormy.sms.forwarder.utils.TASK_ACTION_NOTIFICATION
import com.idormy.sms.forwarder.utils.TaskWorker
import com.idormy.sms.forwarder.utils.XToastUtils
import com.idormy.sms.forwarder.workers.ActionWorker import com.idormy.sms.forwarder.workers.ActionWorker
import com.xuexiang.xaop.annotation.SingleClick import com.xuexiang.xaop.annotation.SingleClick
import com.xuexiang.xpage.annotation.Page import com.xuexiang.xpage.annotation.Page
@ -41,8 +59,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 kotlinx.coroutines.* import java.util.Date
import java.util.*
@Page(name = "Notification") @Page(name = "Notification")
@Suppress("PrivatePropertyName", "DEPRECATION") @Suppress("PrivatePropertyName", "DEPRECATION")
@ -265,7 +282,7 @@ class NotificationFragment : BaseFragment<FragmentTasksActionNotificationBinding
val taskAction = TaskSetting(TASK_ACTION_NOTIFICATION, getString(R.string.task_notification), description, Gson().toJson(settingVo), requestCode) val taskAction = TaskSetting(TASK_ACTION_NOTIFICATION, getString(R.string.task_notification), description, Gson().toJson(settingVo), requestCode)
val taskActionsJson = Gson().toJson(arrayListOf(taskAction)) val taskActionsJson = Gson().toJson(arrayListOf(taskAction))
val msgInfo = MsgInfo("task", getString(R.string.task_notification), description, Date(), getString(R.string.task_notification)) val msgInfo = MsgInfo("task", getString(R.string.task_notification), description, Date(), getString(R.string.task_notification))
val actionData = Data.Builder().putLong(TaskWorker.taskId, 0).putString(TaskWorker.taskActions, taskActionsJson).putString(TaskWorker.msgInfo, Gson().toJson(msgInfo)).build() val actionData = Data.Builder().putLong(TaskWorker.TASK_ID, 0).putString(TaskWorker.TASK_ACTIONS, taskActionsJson).putString(TaskWorker.MSG_INFO, Gson().toJson(msgInfo)).build()
val actionRequest = OneTimeWorkRequestBuilder<ActionWorker>().setInputData(actionData).build() val actionRequest = OneTimeWorkRequestBuilder<ActionWorker>().setInputData(actionData).build()
WorkManager.getInstance().enqueue(actionRequest) WorkManager.getInstance().enqueue(actionRequest)
} catch (e: Exception) { } catch (e: Exception) {

View File

@ -110,7 +110,7 @@ class ResendFragment : BaseFragment<FragmentTasksActionResendBinding?>(), View.O
val taskAction = TaskSetting(TASK_ACTION_RESEND, getString(R.string.task_resend), settingVo.description, Gson().toJson(settingVo), requestCode) val taskAction = TaskSetting(TASK_ACTION_RESEND, getString(R.string.task_resend), settingVo.description, Gson().toJson(settingVo), requestCode)
val taskActionsJson = Gson().toJson(arrayListOf(taskAction)) val taskActionsJson = Gson().toJson(arrayListOf(taskAction))
val msgInfo = MsgInfo("task", getString(R.string.task_resend), settingVo.description, Date(), getString(R.string.task_resend)) val msgInfo = MsgInfo("task", getString(R.string.task_resend), settingVo.description, Date(), getString(R.string.task_resend))
val actionData = Data.Builder().putLong(TaskWorker.taskId, 0).putString(TaskWorker.taskActions, taskActionsJson).putString(TaskWorker.msgInfo, Gson().toJson(msgInfo)).build() val actionData = Data.Builder().putLong(TaskWorker.TASK_ID, 0).putString(TaskWorker.TASK_ACTIONS, taskActionsJson).putString(TaskWorker.MSG_INFO, Gson().toJson(msgInfo)).build()
val actionRequest = OneTimeWorkRequestBuilder<ActionWorker>().setInputData(actionData).build() val actionRequest = OneTimeWorkRequestBuilder<ActionWorker>().setInputData(actionData).build()
WorkManager.getInstance().enqueue(actionRequest) WorkManager.getInstance().enqueue(actionRequest)
} catch (e: Exception) { } catch (e: Exception) {

View File

@ -143,7 +143,7 @@ class RuleFragment : BaseFragment<FragmentTasksActionRuleBinding?>(), View.OnCli
val taskAction = TaskSetting(TASK_ACTION_RULE, getString(R.string.task_rule), settingVo.description, Gson().toJson(settingVo), requestCode) val taskAction = TaskSetting(TASK_ACTION_RULE, getString(R.string.task_rule), settingVo.description, Gson().toJson(settingVo), requestCode)
val taskActionsJson = Gson().toJson(arrayListOf(taskAction)) val taskActionsJson = Gson().toJson(arrayListOf(taskAction))
val msgInfo = MsgInfo("task", getString(R.string.task_rule), settingVo.description, Date(), getString(R.string.task_rule)) val msgInfo = MsgInfo("task", getString(R.string.task_rule), settingVo.description, Date(), getString(R.string.task_rule))
val actionData = Data.Builder().putLong(TaskWorker.taskId, 0).putString(TaskWorker.taskActions, taskActionsJson).putString(TaskWorker.msgInfo, Gson().toJson(msgInfo)).build() val actionData = Data.Builder().putLong(TaskWorker.TASK_ID, 0).putString(TaskWorker.TASK_ACTIONS, taskActionsJson).putString(TaskWorker.MSG_INFO, Gson().toJson(msgInfo)).build()
val actionRequest = OneTimeWorkRequestBuilder<ActionWorker>().setInputData(actionData).build() val actionRequest = OneTimeWorkRequestBuilder<ActionWorker>().setInputData(actionData).build()
WorkManager.getInstance().enqueue(actionRequest) WorkManager.getInstance().enqueue(actionRequest)
} catch (e: Exception) { } catch (e: Exception) {

View File

@ -151,7 +151,7 @@ class SendSmsFragment : BaseFragment<FragmentTasksActionSendSmsBinding?>(), View
val taskAction = TaskSetting(TASK_ACTION_SENDSMS, getString(R.string.task_sendsms), settingVo.description, Gson().toJson(settingVo), requestCode) val taskAction = TaskSetting(TASK_ACTION_SENDSMS, getString(R.string.task_sendsms), settingVo.description, Gson().toJson(settingVo), requestCode)
val taskActionsJson = Gson().toJson(arrayListOf(taskAction)) val taskActionsJson = Gson().toJson(arrayListOf(taskAction))
val msgInfo = MsgInfo("task", getString(R.string.task_sendsms), settingVo.description, Date(), getString(R.string.task_sendsms)) val msgInfo = MsgInfo("task", getString(R.string.task_sendsms), settingVo.description, Date(), getString(R.string.task_sendsms))
val actionData = Data.Builder().putLong(TaskWorker.taskId, 0).putString(TaskWorker.taskActions, taskActionsJson).putString(TaskWorker.msgInfo, Gson().toJson(msgInfo)).build() val actionData = Data.Builder().putLong(TaskWorker.TASK_ID, 0).putString(TaskWorker.TASK_ACTIONS, taskActionsJson).putString(TaskWorker.MSG_INFO, Gson().toJson(msgInfo)).build()
val actionRequest = OneTimeWorkRequestBuilder<ActionWorker>().setInputData(actionData).build() val actionRequest = OneTimeWorkRequestBuilder<ActionWorker>().setInputData(actionData).build()
WorkManager.getInstance().enqueue(actionRequest) WorkManager.getInstance().enqueue(actionRequest)
} catch (e: Exception) { } catch (e: Exception) {

View File

@ -144,7 +144,7 @@ class SenderFragment : BaseFragment<FragmentTasksActionSenderBinding?>(), View.O
val taskAction = TaskSetting(TASK_ACTION_SENDER, getString(R.string.task_sender), settingVo.description, Gson().toJson(settingVo), requestCode) val taskAction = TaskSetting(TASK_ACTION_SENDER, getString(R.string.task_sender), settingVo.description, Gson().toJson(settingVo), requestCode)
val taskActionsJson = Gson().toJson(arrayListOf(taskAction)) val taskActionsJson = Gson().toJson(arrayListOf(taskAction))
val msgInfo = MsgInfo("task", getString(R.string.task_sender), settingVo.description, Date(), getString(R.string.task_sender)) val msgInfo = MsgInfo("task", getString(R.string.task_sender), settingVo.description, Date(), getString(R.string.task_sender))
val actionData = Data.Builder().putLong(TaskWorker.taskId, 0).putString(TaskWorker.taskActions, taskActionsJson).putString(TaskWorker.msgInfo, Gson().toJson(msgInfo)).build() val actionData = Data.Builder().putLong(TaskWorker.TASK_ID, 0).putString(TaskWorker.TASK_ACTIONS, taskActionsJson).putString(TaskWorker.MSG_INFO, Gson().toJson(msgInfo)).build()
val actionRequest = OneTimeWorkRequestBuilder<ActionWorker>().setInputData(actionData).build() val actionRequest = OneTimeWorkRequestBuilder<ActionWorker>().setInputData(actionData).build()
WorkManager.getInstance().enqueue(actionRequest) WorkManager.getInstance().enqueue(actionRequest)
} catch (e: Exception) { } catch (e: Exception) {

View File

@ -342,7 +342,7 @@ class SettingsFragment : BaseFragment<FragmentTasksActionSettingsBinding?>(), Vi
val taskAction = TaskSetting(TASK_ACTION_SETTINGS, getString(R.string.task_settings), settingVo.description, Gson().toJson(settingVo), requestCode) val taskAction = TaskSetting(TASK_ACTION_SETTINGS, getString(R.string.task_settings), settingVo.description, Gson().toJson(settingVo), requestCode)
val taskActionsJson = Gson().toJson(arrayListOf(taskAction)) val taskActionsJson = Gson().toJson(arrayListOf(taskAction))
val msgInfo = MsgInfo("task", getString(R.string.task_settings), settingVo.description, Date(), getString(R.string.task_settings)) val msgInfo = MsgInfo("task", getString(R.string.task_settings), settingVo.description, Date(), getString(R.string.task_settings))
val actionData = Data.Builder().putLong(TaskWorker.taskId, 0).putString(TaskWorker.taskActions, taskActionsJson).putString(TaskWorker.msgInfo, Gson().toJson(msgInfo)).build() val actionData = Data.Builder().putLong(TaskWorker.TASK_ID, 0).putString(TaskWorker.TASK_ACTIONS, taskActionsJson).putString(TaskWorker.MSG_INFO, Gson().toJson(msgInfo)).build()
val actionRequest = OneTimeWorkRequestBuilder<ActionWorker>().setInputData(actionData).build() val actionRequest = OneTimeWorkRequestBuilder<ActionWorker>().setInputData(actionData).build()
WorkManager.getInstance().enqueue(actionRequest) WorkManager.getInstance().enqueue(actionRequest)
} catch (e: Exception) { } catch (e: Exception) {

View File

@ -144,7 +144,7 @@ class TaskActionFragment : BaseFragment<FragmentTasksActionTaskBinding?>(), View
val taskAction = TaskSetting(TASK_ACTION_TASK, getString(R.string.task_task), settingVo.description, Gson().toJson(settingVo), requestCode) val taskAction = TaskSetting(TASK_ACTION_TASK, getString(R.string.task_task), settingVo.description, Gson().toJson(settingVo), requestCode)
val taskActionsJson = Gson().toJson(arrayListOf(taskAction)) val taskActionsJson = Gson().toJson(arrayListOf(taskAction))
val msgInfo = MsgInfo("task", getString(R.string.task_task), settingVo.description, Date(), getString(R.string.task_task)) val msgInfo = MsgInfo("task", getString(R.string.task_task), settingVo.description, Date(), getString(R.string.task_task))
val actionData = Data.Builder().putLong(TaskWorker.taskId, 0).putString(TaskWorker.taskActions, taskActionsJson).putString(TaskWorker.msgInfo, Gson().toJson(msgInfo)).build() val actionData = Data.Builder().putLong(TaskWorker.TASK_ID, 0).putString(TaskWorker.TASK_ACTIONS, taskActionsJson).putString(TaskWorker.MSG_INFO, Gson().toJson(msgInfo)).build()
val actionRequest = OneTimeWorkRequestBuilder<ActionWorker>().setInputData(actionData).build() val actionRequest = OneTimeWorkRequestBuilder<ActionWorker>().setInputData(actionData).build()
WorkManager.getInstance().enqueue(actionRequest) WorkManager.getInstance().enqueue(actionRequest)
} catch (e: Exception) { } catch (e: Exception) {

View File

@ -4,11 +4,11 @@ import android.content.BroadcastReceiver
import android.content.Context import android.content.Context
import android.content.Intent import android.content.Intent
import android.os.BatteryManager import android.os.BatteryManager
import com.idormy.sms.forwarder.utils.Log
import androidx.work.OneTimeWorkRequestBuilder import androidx.work.OneTimeWorkRequestBuilder
import androidx.work.WorkManager import androidx.work.WorkManager
import androidx.work.workDataOf import androidx.work.workDataOf
import com.idormy.sms.forwarder.utils.BatteryUtils import com.idormy.sms.forwarder.utils.BatteryUtils
import com.idormy.sms.forwarder.utils.Log
import com.idormy.sms.forwarder.utils.TASK_CONDITION_BATTERY import com.idormy.sms.forwarder.utils.TASK_CONDITION_BATTERY
import com.idormy.sms.forwarder.utils.TASK_CONDITION_CHARGE import com.idormy.sms.forwarder.utils.TASK_CONDITION_CHARGE
import com.idormy.sms.forwarder.utils.TaskWorker import com.idormy.sms.forwarder.utils.TaskWorker
@ -50,7 +50,7 @@ class BatteryReceiver : BroadcastReceiver() {
Log.d(TAG, "电量改变") Log.d(TAG, "电量改变")
val request = OneTimeWorkRequestBuilder<BatteryWorker>().setInputData( val request = OneTimeWorkRequestBuilder<BatteryWorker>().setInputData(
workDataOf( workDataOf(
TaskWorker.conditionType to TASK_CONDITION_BATTERY, TaskWorker.CONDITION_TYPE to TASK_CONDITION_BATTERY,
"status" to statusNew, "status" to statusNew,
"level_new" to levelNew, "level_new" to levelNew,
"level_old" to levelOld, "level_old" to levelOld,
@ -64,7 +64,7 @@ class BatteryReceiver : BroadcastReceiver() {
Log.d(TAG, "充电状态改变") Log.d(TAG, "充电状态改变")
val request = OneTimeWorkRequestBuilder<BatteryWorker>().setInputData( val request = OneTimeWorkRequestBuilder<BatteryWorker>().setInputData(
workDataOf( workDataOf(
TaskWorker.conditionType to TASK_CONDITION_CHARGE, TaskWorker.CONDITION_TYPE to TASK_CONDITION_CHARGE,
"status_new" to statusNew, "status_new" to statusNew,
"status_old" to statusOld, "status_old" to statusOld,
"plugged_new" to pluggedNew, "plugged_new" to pluggedNew,

View File

@ -95,7 +95,7 @@ open class CallReceiver : PhoneStateReceiver() {
val msgInfo = MsgInfo("call", phoneNumber.toString(), msg.toString(), Date(), "", -1, 0, callType) val msgInfo = MsgInfo("call", phoneNumber.toString(), msg.toString(), Date(), "", -1, 0, callType)
val request = OneTimeWorkRequestBuilder<SendWorker>().setInputData( val request = OneTimeWorkRequestBuilder<SendWorker>().setInputData(
workDataOf( workDataOf(
Worker.sendMsgInfo to Gson().toJson(msgInfo) Worker.SEND_MSG_INFO to Gson().toJson(msgInfo)
) )
).build() ).build()
WorkManager.getInstance(context).enqueue(request) WorkManager.getInstance(context).enqueue(request)
@ -140,7 +140,7 @@ open class CallReceiver : PhoneStateReceiver() {
val msgInfo = MsgInfo("call", callInfo.number, PhoneUtils.getCallMsg(callInfo), Date(), simInfo, simSlot, callInfo.subId, callType) val msgInfo = MsgInfo("call", callInfo.number, PhoneUtils.getCallMsg(callInfo), Date(), simInfo, simSlot, callInfo.subId, callType)
val request = OneTimeWorkRequestBuilder<SendWorker>().setInputData( val request = OneTimeWorkRequestBuilder<SendWorker>().setInputData(
workDataOf( workDataOf(
Worker.sendMsgInfo to Gson().toJson(msgInfo) Worker.SEND_MSG_INFO to Gson().toJson(msgInfo)
) )
).build() ).build()
WorkManager.getInstance(context).enqueue(request) WorkManager.getInstance(context).enqueue(request)

View File

@ -32,8 +32,8 @@ class LockScreenReceiver : BroadcastReceiver() {
TaskUtils.lockScreenAction = action TaskUtils.lockScreenAction = action
val request = OneTimeWorkRequestBuilder<LockScreenWorker>().setInputData( val request = OneTimeWorkRequestBuilder<LockScreenWorker>().setInputData(
workDataOf( workDataOf(
TaskWorker.conditionType to TASK_CONDITION_LOCK_SCREEN, TaskWorker.CONDITION_TYPE to TASK_CONDITION_LOCK_SCREEN,
TaskWorker.action to action, TaskWorker.ACTION to action,
) )
).build() ).build()
WorkManager.getInstance(context).enqueue(request) WorkManager.getInstance(context).enqueue(request)

View File

@ -91,7 +91,7 @@ class NetworkChangeReceiver : BroadcastReceiver() {
.setInitialDelay(DELAY_TIME_AFTER_SIM_READY, TimeUnit.MILLISECONDS) .setInitialDelay(DELAY_TIME_AFTER_SIM_READY, TimeUnit.MILLISECONDS)
.setInputData( .setInputData(
workDataOf( workDataOf(
TaskWorker.conditionType to TASK_CONDITION_NETWORK, TaskWorker.CONDITION_TYPE to TASK_CONDITION_NETWORK,
) )
).build() ).build()
WorkManager.getInstance(context).enqueue(request) WorkManager.getInstance(context).enqueue(request)

View File

@ -4,12 +4,12 @@ import android.content.BroadcastReceiver
import android.content.Context import android.content.Context
import android.content.Intent import android.content.Intent
import android.telephony.TelephonyManager import android.telephony.TelephonyManager
import com.idormy.sms.forwarder.utils.Log
import androidx.work.OneTimeWorkRequestBuilder import androidx.work.OneTimeWorkRequestBuilder
import androidx.work.WorkManager import androidx.work.WorkManager
import androidx.work.workDataOf import androidx.work.workDataOf
import com.idormy.sms.forwarder.R import com.idormy.sms.forwarder.R
import com.idormy.sms.forwarder.utils.DELAY_TIME_AFTER_SIM_READY import com.idormy.sms.forwarder.utils.DELAY_TIME_AFTER_SIM_READY
import com.idormy.sms.forwarder.utils.Log
import com.idormy.sms.forwarder.utils.SettingUtils import com.idormy.sms.forwarder.utils.SettingUtils
import com.idormy.sms.forwarder.utils.TASK_CONDITION_SIM import com.idormy.sms.forwarder.utils.TASK_CONDITION_SIM
import com.idormy.sms.forwarder.utils.TaskWorker import com.idormy.sms.forwarder.utils.TaskWorker
@ -68,8 +68,8 @@ class SimStateReceiver : BroadcastReceiver() {
.setInitialDelay(duration, TimeUnit.MILLISECONDS) .setInitialDelay(duration, TimeUnit.MILLISECONDS)
.setInputData( .setInputData(
workDataOf( workDataOf(
TaskWorker.conditionType to TASK_CONDITION_SIM, TaskWorker.CONDITION_TYPE to TASK_CONDITION_SIM,
TaskWorker.msg to msg.toString().trimEnd(), TaskWorker.MSG to msg.toString().trimEnd(),
) )
).build() ).build()
WorkManager.getInstance(context).enqueue(request) WorkManager.getInstance(context).enqueue(request)

View File

@ -111,7 +111,7 @@ class SmsReceiver : BroadcastReceiver() {
val request = OneTimeWorkRequestBuilder<SendWorker>().setInputData( val request = OneTimeWorkRequestBuilder<SendWorker>().setInputData(
workDataOf( workDataOf(
Worker.sendMsgInfo to Gson().toJson(msgInfo) Worker.SEND_MSG_INFO to Gson().toJson(msgInfo)
) )
).build() ).build()
WorkManager.getInstance(context).enqueue(request) WorkManager.getInstance(context).enqueue(request)

View File

@ -1,13 +1,17 @@
package com.idormy.sms.forwarder.server.controller package com.idormy.sms.forwarder.server.controller
import android.annotation.SuppressLint import android.annotation.SuppressLint
import com.idormy.sms.forwarder.utils.Log
import com.idormy.sms.forwarder.entity.LocationInfo import com.idormy.sms.forwarder.entity.LocationInfo
import com.idormy.sms.forwarder.server.model.BaseRequest import com.idormy.sms.forwarder.server.model.BaseRequest
import com.idormy.sms.forwarder.server.model.EmptyData import com.idormy.sms.forwarder.server.model.EmptyData
import com.idormy.sms.forwarder.utils.HttpServerUtils import com.idormy.sms.forwarder.utils.HttpServerUtils
import com.yanzhenjie.andserver.annotation.* import com.idormy.sms.forwarder.utils.Log
import java.util.* import com.yanzhenjie.andserver.annotation.CrossOrigin
import com.yanzhenjie.andserver.annotation.PostMapping
import com.yanzhenjie.andserver.annotation.RequestBody
import com.yanzhenjie.andserver.annotation.RequestMapping
import com.yanzhenjie.andserver.annotation.RequestMethod
import com.yanzhenjie.andserver.annotation.RestController
@SuppressLint("SimpleDateFormat") @SuppressLint("SimpleDateFormat")
@Suppress("PrivatePropertyName") @Suppress("PrivatePropertyName")

View File

@ -203,7 +203,7 @@ class LocationService : Service() {
) { ) {
val locationWorkerRequest = OneTimeWorkRequestBuilder<LocationWorker>().setInputData( val locationWorkerRequest = OneTimeWorkRequestBuilder<LocationWorker>().setInputData(
workDataOf( workDataOf(
TaskWorker.conditionType to conditionType, "locationJsonOld" to locationJsonOld, "locationJsonNew" to locationJsonNew TaskWorker.CONDITION_TYPE to conditionType, "locationJsonOld" to locationJsonOld, "locationJsonNew" to locationJsonNew
) )
).build() ).build()

View File

@ -20,7 +20,7 @@ import com.idormy.sms.forwarder.utils.Worker
import com.idormy.sms.forwarder.workers.SendWorker import com.idormy.sms.forwarder.workers.SendWorker
import com.xuexiang.xrouter.utils.TextUtils import com.xuexiang.xrouter.utils.TextUtils
import com.xuexiang.xutil.display.ScreenUtils import com.xuexiang.xutil.display.ScreenUtils
import java.util.* import java.util.Date
@Suppress("PrivatePropertyName", "DEPRECATION") @Suppress("PrivatePropertyName", "DEPRECATION")
@ -146,7 +146,7 @@ class NotificationService : NotificationListenerService() {
val request = OneTimeWorkRequestBuilder<SendWorker>().setInputData( val request = OneTimeWorkRequestBuilder<SendWorker>().setInputData(
workDataOf( workDataOf(
Worker.sendMsgInfo to Gson().toJson(msgInfo), Worker.SEND_MSG_INFO to Gson().toJson(msgInfo),
) )
).build() ).build()
WorkManager.getInstance(applicationContext).enqueue(request) WorkManager.getInstance(applicationContext).enqueue(request)

View File

@ -1,25 +1,22 @@
package com.idormy.sms.forwarder.utils package com.idormy.sms.forwarder.utils
object Worker { object Worker {
const val sendMsgInfo = "send_msg_info" const val SEND_MSG_INFO = "send_msg_info"
const val updateLogs = "update_logs" const val UPDATE_LOGS = "update_logs"
const val rule = "rule" const val RULE = "rule"
const val senderIndex = "sender_index" const val SENDER_INDEX = "sender_index"
const val msgId = "msg_id" const val MSG_ID = "msg_id"
//const val ruleId = "rule_id"
//const val sendLogId = "send_log_id"
//const val sendSbnId = "send_sbn_id"
} }
object TaskWorker { object TaskWorker {
const val taskId = "task_id" const val TASK_ID = "task_id"
const val task = "task" const val TASK = "task"
const val taskConditions = "task_conditions" const val TASK_CONDITIONS = "task_conditions"
const val taskActions = "task_actions" const val TASK_ACTIONS = "task_actions"
const val conditionType = "condition_type" const val CONDITION_TYPE = "condition_type"
const val msg = "msg" const val MSG = "msg"
const val msgInfo = "msg_info" const val MSG_INFO = "msg_info"
const val action = "action" const val ACTION = "action"
} }
//初始化相关 //初始化相关

View File

@ -13,7 +13,7 @@ import javax.crypto.Cipher
*/ */
object RSACrypt { object RSACrypt {
private const val transformation = "RSA" private const val TRANSFORMATION = "RSA"
private const val ENCRYPT_MAX_SIZE = 245 private const val ENCRYPT_MAX_SIZE = 245
private const val DECRYPT_MAX_SIZE = 256 private const val DECRYPT_MAX_SIZE = 256
@ -25,7 +25,7 @@ object RSACrypt {
fun encryptByPrivateKey(input: String, privateKey: PrivateKey): String { fun encryptByPrivateKey(input: String, privateKey: PrivateKey): String {
//创建cipher对象 //创建cipher对象
val cipher = Cipher.getInstance(transformation) val cipher = Cipher.getInstance(TRANSFORMATION)
//初始化cipher //初始化cipher
cipher.init(Cipher.ENCRYPT_MODE, privateKey) cipher.init(Cipher.ENCRYPT_MODE, privateKey)
@ -70,7 +70,7 @@ object RSACrypt {
fun encryptByPublicKey(input: String, publicKey: PublicKey): String { fun encryptByPublicKey(input: String, publicKey: PublicKey): String {
//创建cipher对象 //创建cipher对象
val cipher = Cipher.getInstance(transformation) val cipher = Cipher.getInstance(TRANSFORMATION)
//初始化cipher //初始化cipher
cipher.init(Cipher.ENCRYPT_MODE, publicKey) cipher.init(Cipher.ENCRYPT_MODE, publicKey)
@ -114,7 +114,7 @@ object RSACrypt {
fun decryptByPrivateKey(input: String, privateKey: PrivateKey): String { fun decryptByPrivateKey(input: String, privateKey: PrivateKey): String {
//创建cipher对象 //创建cipher对象
val cipher = Cipher.getInstance(transformation) val cipher = Cipher.getInstance(TRANSFORMATION)
//初始化cipher //初始化cipher
cipher.init(Cipher.DECRYPT_MODE, privateKey) cipher.init(Cipher.DECRYPT_MODE, privateKey)
@ -158,7 +158,7 @@ object RSACrypt {
fun decryptByPublicKey(input: String, publicKey: PublicKey): String { fun decryptByPublicKey(input: String, publicKey: PublicKey): String {
//创建cipher对象 //创建cipher对象
val cipher = Cipher.getInstance(transformation) val cipher = Cipher.getInstance(TRANSFORMATION)
//初始化cipher //初始化cipher
cipher.init(Cipher.DECRYPT_MODE, publicKey) cipher.init(Cipher.DECRYPT_MODE, publicKey)

View File

@ -11,8 +11,38 @@ import com.idormy.sms.forwarder.database.entity.MsgAndLogs
import com.idormy.sms.forwarder.database.entity.Rule 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.entity.result.SendResponse import com.idormy.sms.forwarder.entity.result.SendResponse
import com.idormy.sms.forwarder.entity.setting.* import com.idormy.sms.forwarder.entity.setting.BarkSetting
import com.idormy.sms.forwarder.utils.sender.* import com.idormy.sms.forwarder.entity.setting.DingtalkGroupRobotSetting
import com.idormy.sms.forwarder.entity.setting.DingtalkInnerRobotSetting
import com.idormy.sms.forwarder.entity.setting.EmailSetting
import com.idormy.sms.forwarder.entity.setting.FeishuAppSetting
import com.idormy.sms.forwarder.entity.setting.FeishuSetting
import com.idormy.sms.forwarder.entity.setting.GotifySetting
import com.idormy.sms.forwarder.entity.setting.PushplusSetting
import com.idormy.sms.forwarder.entity.setting.ServerchanSetting
import com.idormy.sms.forwarder.entity.setting.SmsSetting
import com.idormy.sms.forwarder.entity.setting.SocketSetting
import com.idormy.sms.forwarder.entity.setting.TelegramSetting
import com.idormy.sms.forwarder.entity.setting.UrlSchemeSetting
import com.idormy.sms.forwarder.entity.setting.WebhookSetting
import com.idormy.sms.forwarder.entity.setting.WeworkAgentSetting
import com.idormy.sms.forwarder.entity.setting.WeworkRobotSetting
import com.idormy.sms.forwarder.utils.sender.BarkUtils
import com.idormy.sms.forwarder.utils.sender.DingtalkGroupRobotUtils
import com.idormy.sms.forwarder.utils.sender.DingtalkInnerRobotUtils
import com.idormy.sms.forwarder.utils.sender.EmailUtils
import com.idormy.sms.forwarder.utils.sender.FeishuAppUtils
import com.idormy.sms.forwarder.utils.sender.FeishuUtils
import com.idormy.sms.forwarder.utils.sender.GotifyUtils
import com.idormy.sms.forwarder.utils.sender.PushplusUtils
import com.idormy.sms.forwarder.utils.sender.ServerchanUtils
import com.idormy.sms.forwarder.utils.sender.SmsUtils
import com.idormy.sms.forwarder.utils.sender.SocketUtils
import com.idormy.sms.forwarder.utils.sender.TelegramUtils
import com.idormy.sms.forwarder.utils.sender.UrlSchemeUtils
import com.idormy.sms.forwarder.utils.sender.WebhookUtils
import com.idormy.sms.forwarder.utils.sender.WeworkAgentUtils
import com.idormy.sms.forwarder.utils.sender.WeworkRobotUtils
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
@ -34,7 +64,7 @@ object SendUtils {
val request = OneTimeWorkRequestBuilder<SendWorker>().setInputData( val request = OneTimeWorkRequestBuilder<SendWorker>().setInputData(
workDataOf( workDataOf(
Worker.sendMsgInfo to Gson().toJson(msgInfo) Worker.SEND_MSG_INFO to Gson().toJson(msgInfo)
) )
).build() ).build()
WorkManager.getInstance(XUtil.getContext()).enqueue(request) WorkManager.getInstance(XUtil.getContext()).enqueue(request)
@ -201,11 +231,11 @@ object SendUtils {
if (senderIndex < rule.senderList.count() - 1 && (rule.senderLogic == SENDER_LOGIC_ALL || (status == 2 && rule.senderLogic == SENDER_LOGIC_UNTIL_FAIL) || (status == 0 && rule.senderLogic == SENDER_LOGIC_UNTIL_SUCCESS))) { if (senderIndex < rule.senderList.count() - 1 && (rule.senderLogic == SENDER_LOGIC_ALL || (status == 2 && rule.senderLogic == SENDER_LOGIC_UNTIL_FAIL) || (status == 0 && rule.senderLogic == SENDER_LOGIC_UNTIL_SUCCESS))) {
val request = OneTimeWorkRequestBuilder<SendLogicWorker>().setInputData( val request = OneTimeWorkRequestBuilder<SendLogicWorker>().setInputData(
workDataOf( workDataOf(
Worker.sendMsgInfo to Gson().toJson(msgInfo), Worker.SEND_MSG_INFO to Gson().toJson(msgInfo),
//Worker.ruleId to rule.id, //Worker.ruleId to rule.id,
Worker.rule to Gson().toJson(rule), Worker.RULE to Gson().toJson(rule),
Worker.senderIndex to senderIndex + 1, Worker.SENDER_INDEX to senderIndex + 1,
Worker.msgId to msgId, Worker.MSG_ID to msgId,
) )
).build() ).build()
WorkManager.getInstance(XUtil.getContext()).enqueue(request) WorkManager.getInstance(XUtil.getContext()).enqueue(request)
@ -231,7 +261,7 @@ object SendUtils {
val sendResponse = SendResponse(logId, status, response) val sendResponse = SendResponse(logId, status, response)
val request = OneTimeWorkRequestBuilder<UpdateLogsWorker>().setInputData( val request = OneTimeWorkRequestBuilder<UpdateLogsWorker>().setInputData(
workDataOf( workDataOf(
Worker.updateLogs to Gson().toJson(sendResponse) Worker.UPDATE_LOGS to Gson().toJson(sendResponse)
) )
).build() ).build()
WorkManager.getInstance(XUtil.getContext()).enqueue(request) WorkManager.getInstance(XUtil.getContext()).enqueue(request)

View File

@ -20,7 +20,7 @@ class CronJobScheduler {
fun scheduleTask(task: Task) { fun scheduleTask(task: Task) {
val currentTimeMillis = System.currentTimeMillis() val currentTimeMillis = System.currentTimeMillis()
val delayInMillis = task.nextExecTime.time / 1000 * 1000 - currentTimeMillis val delayInMillis = task.nextExecTime.time / 1000 * 1000 - currentTimeMillis
val inputData = Data.Builder().putLong(TaskWorker.taskId, task.id).build() val inputData = Data.Builder().putLong(TaskWorker.TASK_ID, task.id).build()
val taskRequest = if (delayInMillis <= 0L) { val taskRequest = if (delayInMillis <= 0L) {
Log.d(TAG, "TASK-${task.id}立即执行delayInMillis = $delayInMillis") Log.d(TAG, "TASK-${task.id}立即执行delayInMillis = $delayInMillis")
OneTimeWorkRequestBuilder<CronWorker>() OneTimeWorkRequestBuilder<CronWorker>()

View File

@ -68,10 +68,10 @@ class ActionWorker(context: Context, params: WorkerParameters) : CoroutineWorker
private var taskId = -1L private var taskId = -1L
override suspend fun doWork(): Result { override suspend fun doWork(): Result {
taskId = inputData.getLong(TaskWorker.taskId, -1L) taskId = inputData.getLong(TaskWorker.TASK_ID, -1L)
val taskConditionsJson = inputData.getString(TaskWorker.taskConditions) val taskConditionsJson = inputData.getString(TaskWorker.TASK_CONDITIONS)
val taskActionsJson = inputData.getString(TaskWorker.taskActions) val taskActionsJson = inputData.getString(TaskWorker.TASK_ACTIONS)
val msgInfoJson = inputData.getString(TaskWorker.msgInfo) val msgInfoJson = inputData.getString(TaskWorker.MSG_INFO)
Log.d(TAG, "taskId: $taskId, taskActionsJson: $taskActionsJson, msgInfoJson: $msgInfoJson") Log.d(TAG, "taskId: $taskId, taskActionsJson: $taskActionsJson, msgInfoJson: $msgInfoJson")
if (taskId == -1L || taskActionsJson.isNullOrEmpty() || msgInfoJson.isNullOrEmpty()) { if (taskId == -1L || taskActionsJson.isNullOrEmpty() || msgInfoJson.isNullOrEmpty()) {
Log.d(TAG, "taskId is -1L or actionSetting is null") Log.d(TAG, "taskId is -1L or actionSetting is null")

View File

@ -27,7 +27,7 @@ class BatteryWorker(context: Context, params: WorkerParameters) : CoroutineWorke
override suspend fun doWork(): Result { override suspend fun doWork(): Result {
try { try {
when (val conditionType = inputData.getInt(TaskWorker.conditionType, -1)) { when (val conditionType = inputData.getInt(TaskWorker.CONDITION_TYPE, -1)) {
TASK_CONDITION_BATTERY -> { TASK_CONDITION_BATTERY -> {
val status = inputData.getInt("status", -1) val status = inputData.getInt("status", -1)
@ -72,9 +72,9 @@ class BatteryWorker(context: Context, params: WorkerParameters) : CoroutineWorke
//TODO: 组装消息体 && 执行具体任务 //TODO: 组装消息体 && 执行具体任务
val msgInfo = MsgInfo("task", task.name, msg, Date(), task.name) val msgInfo = MsgInfo("task", task.name, msg, Date(), task.name)
val actionData = Data.Builder() val actionData = Data.Builder()
.putLong(TaskWorker.taskId, task.id) .putLong(TaskWorker.TASK_ID, task.id)
.putString(TaskWorker.taskActions, task.actions) .putString(TaskWorker.TASK_ACTIONS, task.actions)
.putString(TaskWorker.msgInfo, Gson().toJson(msgInfo)) .putString(TaskWorker.MSG_INFO, Gson().toJson(msgInfo))
.build() .build()
val actionRequest = OneTimeWorkRequestBuilder<ActionWorker>().setInputData(actionData).build() val actionRequest = OneTimeWorkRequestBuilder<ActionWorker>().setInputData(actionData).build()
WorkManager.getInstance().enqueue(actionRequest) WorkManager.getInstance().enqueue(actionRequest)
@ -131,9 +131,9 @@ class BatteryWorker(context: Context, params: WorkerParameters) : CoroutineWorke
//TODO: 组装消息体 && 执行具体任务 //TODO: 组装消息体 && 执行具体任务
val msgInfo = MsgInfo("task", task.name, msg, Date(), task.description) val msgInfo = MsgInfo("task", task.name, msg, Date(), task.description)
val actionData = Data.Builder() val actionData = Data.Builder()
.putLong(TaskWorker.taskId, task.id) .putLong(TaskWorker.TASK_ID, task.id)
.putString(TaskWorker.taskActions, task.actions) .putString(TaskWorker.TASK_ACTIONS, task.actions)
.putString(TaskWorker.msgInfo, Gson().toJson(msgInfo)) .putString(TaskWorker.MSG_INFO, Gson().toJson(msgInfo))
.build() .build()
val actionRequest = OneTimeWorkRequestBuilder<ActionWorker>().setInputData(actionData).build() val actionRequest = OneTimeWorkRequestBuilder<ActionWorker>().setInputData(actionData).build()
WorkManager.getInstance().enqueue(actionRequest) WorkManager.getInstance().enqueue(actionRequest)

View File

@ -25,7 +25,7 @@ class CronWorker(context: Context, params: WorkerParameters) : CoroutineWorker(c
override suspend fun doWork(): Result { override suspend fun doWork(): Result {
try { try {
val taskId = inputData.getLong(TaskWorker.taskId, -1L) val taskId = inputData.getLong(TaskWorker.TASK_ID, -1L)
if (taskId == -1L) { if (taskId == -1L) {
Log.d(TAG, "taskId is -1L") Log.d(TAG, "taskId is -1L")
return Result.failure() return Result.failure()
@ -85,7 +85,7 @@ class CronWorker(context: Context, params: WorkerParameters) : CoroutineWorker(c
//TODO: 组装消息体 && 执行具体任务 //TODO: 组装消息体 && 执行具体任务
val msgInfo = MsgInfo("task", task.name, task.description, Date(), task.name) val msgInfo = MsgInfo("task", task.name, task.description, Date(), task.name)
val actionData = Data.Builder().putLong(TaskWorker.taskId, task.id).putString(TaskWorker.taskActions, task.actions).putString(TaskWorker.msgInfo, Gson().toJson(msgInfo)).build() val actionData = Data.Builder().putLong(TaskWorker.TASK_ID, task.id).putString(TaskWorker.TASK_ACTIONS, task.actions).putString(TaskWorker.MSG_INFO, Gson().toJson(msgInfo)).build()
val actionRequest = OneTimeWorkRequestBuilder<ActionWorker>().setInputData(actionData).build() val actionRequest = OneTimeWorkRequestBuilder<ActionWorker>().setInputData(actionData).build()
WorkManager.getInstance().enqueue(actionRequest) WorkManager.getInstance().enqueue(actionRequest)

View File

@ -29,7 +29,7 @@ class LocationWorker(context: Context, params: WorkerParameters) : CoroutineWork
override suspend fun doWork(): Result { override suspend fun doWork(): Result {
try { try {
val conditionType = inputData.getInt(TaskWorker.conditionType, -1) val conditionType = inputData.getInt(TaskWorker.CONDITION_TYPE, -1)
val locationJsonOld = inputData.getString("locationJsonOld") val locationJsonOld = inputData.getString("locationJsonOld")
val locationJsonNew = inputData.getString("locationJsonNew") val locationJsonNew = inputData.getString("locationJsonNew")
Log.d(TAG, "conditionType = $conditionType, locationJsonOld = $locationJsonOld, locationJsonNew = $locationJsonNew") Log.d(TAG, "conditionType = $conditionType, locationJsonOld = $locationJsonOld, locationJsonNew = $locationJsonNew")
@ -103,7 +103,7 @@ class LocationWorker(context: Context, params: WorkerParameters) : CoroutineWork
//TODO: 组装消息体 && 执行具体任务 //TODO: 组装消息体 && 执行具体任务
val msgInfo = MsgInfo("task", task.name, locationNew.toString(), Date(), description) val msgInfo = MsgInfo("task", task.name, locationNew.toString(), Date(), description)
val actionData = Data.Builder().putLong(TaskWorker.taskId, task.id).putString(TaskWorker.taskActions, task.actions).putString(TaskWorker.msgInfo, Gson().toJson(msgInfo)).build() val actionData = Data.Builder().putLong(TaskWorker.TASK_ID, task.id).putString(TaskWorker.TASK_ACTIONS, task.actions).putString(TaskWorker.MSG_INFO, Gson().toJson(msgInfo)).build()
val actionRequest = OneTimeWorkRequestBuilder<ActionWorker>().setInputData(actionData).build() val actionRequest = OneTimeWorkRequestBuilder<ActionWorker>().setInputData(actionData).build()
WorkManager.getInstance().enqueue(actionRequest) WorkManager.getInstance().enqueue(actionRequest)
} }
@ -166,7 +166,7 @@ class LocationWorker(context: Context, params: WorkerParameters) : CoroutineWork
//TODO: 组装消息体 && 执行具体任务 //TODO: 组装消息体 && 执行具体任务
val msgInfo = MsgInfo("task", task.name, locationNew.toString(), Date(), description) val msgInfo = MsgInfo("task", task.name, locationNew.toString(), Date(), description)
val actionData = Data.Builder().putLong(TaskWorker.taskId, task.id).putString(TaskWorker.taskActions, task.actions).putString(TaskWorker.msgInfo, Gson().toJson(msgInfo)).build() val actionData = Data.Builder().putLong(TaskWorker.TASK_ID, task.id).putString(TaskWorker.TASK_ACTIONS, task.actions).putString(TaskWorker.MSG_INFO, Gson().toJson(msgInfo)).build()
val actionRequest = OneTimeWorkRequestBuilder<ActionWorker>().setInputData(actionData).build() val actionRequest = OneTimeWorkRequestBuilder<ActionWorker>().setInputData(actionData).build()
WorkManager.getInstance().enqueue(actionRequest) WorkManager.getInstance().enqueue(actionRequest)
} }

View File

@ -25,8 +25,8 @@ class LockScreenWorker(context: Context, params: WorkerParameters) : CoroutineWo
override suspend fun doWork(): Result { override suspend fun doWork(): Result {
try { try {
val conditionType = inputData.getInt(TaskWorker.conditionType, -1) val conditionType = inputData.getInt(TaskWorker.CONDITION_TYPE, -1)
val action = inputData.getString(TaskWorker.action) val action = inputData.getString(TaskWorker.ACTION)
val taskList = Core.task.getByType(conditionType) val taskList = Core.task.getByType(conditionType)
for (task in taskList) { for (task in taskList) {
@ -71,10 +71,10 @@ class LockScreenWorker(context: Context, params: WorkerParameters) : CoroutineWo
Log.d(TAG, "TASK-${task.id}duration = $duration milliseconds") Log.d(TAG, "TASK-${task.id}duration = $duration milliseconds")
val msgInfo = MsgInfo("task", task.name, lockScreenSetting.description, Date(), task.description) val msgInfo = MsgInfo("task", task.name, lockScreenSetting.description, Date(), task.description)
val actionData = Data.Builder() val actionData = Data.Builder()
.putLong(TaskWorker.taskId, task.id) .putLong(TaskWorker.TASK_ID, task.id)
.putString(TaskWorker.taskConditions, if (lockScreenSetting.checkAgain && duration > 0) task.conditions else "") .putString(TaskWorker.TASK_CONDITIONS, if (lockScreenSetting.checkAgain && duration > 0) task.conditions else "")
.putString(TaskWorker.taskActions, task.actions) .putString(TaskWorker.TASK_ACTIONS, task.actions)
.putString(TaskWorker.msgInfo, Gson().toJson(msgInfo)) .putString(TaskWorker.MSG_INFO, Gson().toJson(msgInfo))
.build() .build()
val actionRequest = OneTimeWorkRequestBuilder<ActionWorker>() val actionRequest = OneTimeWorkRequestBuilder<ActionWorker>()
.setInitialDelay(duration, TimeUnit.MILLISECONDS) //TODO: 延迟时间不够精确 .setInitialDelay(duration, TimeUnit.MILLISECONDS) //TODO: 延迟时间不够精确

View File

@ -40,7 +40,7 @@ class NetworkWorker(context: Context, params: WorkerParameters) : CoroutineWorke
TaskUtils.ipv6 = if (ipv6Pattern.matches(ipv6)) ipv6 else "" TaskUtils.ipv6 = if (ipv6Pattern.matches(ipv6)) ipv6 else ""
Log.d(TAG, "ipv4 = $ipv4, ipv6 = $ipv6") Log.d(TAG, "ipv4 = $ipv4, ipv6 = $ipv6")
val conditionType = inputData.getInt(TaskWorker.conditionType, -1) val conditionType = inputData.getInt(TaskWorker.CONDITION_TYPE, -1)
val taskList = Core.task.getByType(conditionType) val taskList = Core.task.getByType(conditionType)
for (task in taskList) { for (task in taskList) {
Log.d(TAG, "task = $task") Log.d(TAG, "task = $task")
@ -131,7 +131,7 @@ class NetworkWorker(context: Context, params: WorkerParameters) : CoroutineWorke
//TODO: 组装消息体 && 执行具体任务 //TODO: 组装消息体 && 执行具体任务
val msgInfo = MsgInfo("task", task.name, msg.toString().trimEnd(), Date(), task.description) val msgInfo = MsgInfo("task", task.name, msg.toString().trimEnd(), Date(), task.description)
val actionData = Data.Builder().putLong(TaskWorker.taskId, task.id).putString(TaskWorker.taskActions, task.actions).putString(TaskWorker.msgInfo, Gson().toJson(msgInfo)).build() val actionData = Data.Builder().putLong(TaskWorker.TASK_ID, task.id).putString(TaskWorker.TASK_ACTIONS, task.actions).putString(TaskWorker.MSG_INFO, Gson().toJson(msgInfo)).build()
val actionRequest = OneTimeWorkRequestBuilder<ActionWorker>().setInputData(actionData).build() val actionRequest = OneTimeWorkRequestBuilder<ActionWorker>().setInputData(actionData).build()
WorkManager.getInstance().enqueue(actionRequest) WorkManager.getInstance().enqueue(actionRequest)
} }

View File

@ -20,12 +20,12 @@ class SendLogicWorker(
) : CoroutineWorker(context, workerParams) { ) : CoroutineWorker(context, workerParams) {
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.SEND_MSG_INFO)
val msgInfo = Gson().fromJson(msgInfoJson, MsgInfo::class.java) ?: return@withContext Result.failure() 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 ruleJson = inputData.getString(Worker.RULE)
val senderIndex = inputData.getInt(Worker.senderIndex, 0) val senderIndex = inputData.getInt(Worker.SENDER_INDEX, 0)
val msgId = inputData.getLong(Worker.msgId, 0L) val msgId = inputData.getLong(Worker.MSG_ID, 0L)
Log.d("SendLogicWorker", "msgInfoJson: $msgInfoJson, ruleJson: $ruleJson, senderIndex: $senderIndex, msgId: $msgId") Log.d("SendLogicWorker", "msgInfoJson: $msgInfoJson, ruleJson: $ruleJson, senderIndex: $senderIndex, msgId: $msgId")
val rule = Gson().fromJson(ruleJson, Rule::class.java) ?: return@withContext Result.failure() val rule = Gson().fromJson(ruleJson, Rule::class.java) ?: return@withContext Result.failure()

View File

@ -12,14 +12,20 @@ import com.idormy.sms.forwarder.database.entity.Logs
import com.idormy.sms.forwarder.database.entity.Msg import com.idormy.sms.forwarder.database.entity.Msg
import com.idormy.sms.forwarder.database.entity.Rule 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.* import com.idormy.sms.forwarder.utils.DataProvider
import com.idormy.sms.forwarder.utils.HistoryUtils
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.Worker
import com.xuexiang.xutil.resource.ResUtils import com.xuexiang.xutil.resource.ResUtils
import com.xuexiang.xutil.security.CipherUtils import com.xuexiang.xutil.security.CipherUtils
import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.withContext import kotlinx.coroutines.withContext
import java.text.ParsePosition import java.text.ParsePosition
import java.text.SimpleDateFormat import java.text.SimpleDateFormat
import java.util.* import java.util.Calendar
import java.util.Date
class SendWorker( class SendWorker(
context: Context, context: Context,
@ -64,7 +70,7 @@ class SendWorker(
} }
} }
val msgInfoJson = inputData.getString(Worker.sendMsgInfo) val msgInfoJson = inputData.getString(Worker.SEND_MSG_INFO)
val msgInfo = Gson().fromJson(msgInfoJson, MsgInfo::class.java) val msgInfo = Gson().fromJson(msgInfoJson, MsgInfo::class.java)
// 过滤重复消息机制 // 过滤重复消息机制

View File

@ -29,8 +29,8 @@ class SimWorker(context: Context, params: WorkerParameters) : CoroutineWorker(co
override suspend fun doWork(): Result { override suspend fun doWork(): Result {
try { try {
val conditionType = inputData.getInt(TaskWorker.conditionType, -1) val conditionType = inputData.getInt(TaskWorker.CONDITION_TYPE, -1)
val simStateStr = inputData.getString(TaskWorker.msg) val simStateStr = inputData.getString(TaskWorker.MSG)
val taskList = Core.task.getByType(conditionType) val taskList = Core.task.getByType(conditionType)
for (task in taskList) { for (task in taskList) {
Log.d(TAG, "task = $task") Log.d(TAG, "task = $task")
@ -83,7 +83,7 @@ class SimWorker(context: Context, params: WorkerParameters) : CoroutineWorker(co
//TODO: 组装消息体 && 执行具体任务 //TODO: 组装消息体 && 执行具体任务
val msgInfo = MsgInfo("task", task.name, msg.toString().trimEnd(), Date(), task.description) val msgInfo = MsgInfo("task", task.name, msg.toString().trimEnd(), Date(), task.description)
val actionData = Data.Builder().putLong(TaskWorker.taskId, task.id).putString(TaskWorker.taskActions, task.actions).putString(TaskWorker.msgInfo, Gson().toJson(msgInfo)).build() val actionData = Data.Builder().putLong(TaskWorker.TASK_ID, task.id).putString(TaskWorker.TASK_ACTIONS, task.actions).putString(TaskWorker.MSG_INFO, Gson().toJson(msgInfo)).build()
val actionRequest = OneTimeWorkRequestBuilder<ActionWorker>().setInputData(actionData).build() val actionRequest = OneTimeWorkRequestBuilder<ActionWorker>().setInputData(actionData).build()
WorkManager.getInstance().enqueue(actionRequest) WorkManager.getInstance().enqueue(actionRequest)
} }

View File

@ -20,7 +20,7 @@ class UpdateLogsWorker(
) : CoroutineWorker(context, workerParams) { ) : CoroutineWorker(context, workerParams) {
override suspend fun doWork(): Result = withContext(Dispatchers.IO) { override suspend fun doWork(): Result = withContext(Dispatchers.IO) {
try { try {
val sendResponseJson = inputData.getString(Worker.updateLogs) val sendResponseJson = inputData.getString(Worker.UPDATE_LOGS)
Log.d("UpdateLogsWorker", "UpdateLogsWorker sendResponseJson: $sendResponseJson") Log.d("UpdateLogsWorker", "UpdateLogsWorker sendResponseJson: $sendResponseJson")
val sendResponse = Gson().fromJson(sendResponseJson, SendResponse::class.java) val sendResponse = Gson().fromJson(sendResponseJson, SendResponse::class.java)
if (sendResponse.logId == 0L) { if (sendResponse.logId == 0L) {

View File

@ -42,7 +42,7 @@
<string name="menu_about">关于软件</string> <string name="menu_about">关于软件</string>
<string name="about_app_version">软件版本:%s</string> <string name="about_app_version">软件版本:%s</string>
<string name="about_app_version_tips" formatted="false">版本名称:%s\n版本代码%s\n构建时间%s\nGit提交ID:%s</string> <string name="about_app_version_tips" formatted="false">版本名称:%s\n版本代码%s\n构建时间%s\nGit提交ID%s</string>
<string name="about_cache_size">缓存大小:%s</string> <string name="about_cache_size">缓存大小:%s</string>
<string name="about_frpc_version">Frpc版本%s</string> <string name="about_frpc_version">Frpc版本%s</string>
<string name="about_item_wechat_miniprogram" formatted="false">微信小程序</string> <string name="about_item_wechat_miniprogram" formatted="false">微信小程序</string>

View File

@ -42,7 +42,7 @@
<string name="menu_about">关于软件</string> <string name="menu_about">关于软件</string>
<string name="about_app_version">软件版本:%s</string> <string name="about_app_version">软件版本:%s</string>
<string name="about_app_version_tips" formatted="false">版本名称:%s\n版本代码%s\n构建时间%s\nGit提交ID:%s</string> <string name="about_app_version_tips" formatted="false">版本名称:%s\n版本代码%s\n构建时间%s\nGit提交ID%s</string>
<string name="about_cache_size">缓存大小:%s</string> <string name="about_cache_size">缓存大小:%s</string>
<string name="about_frpc_version">Frpc版本%s</string> <string name="about_frpc_version">Frpc版本%s</string>
<string name="about_item_wechat_miniprogram" formatted="false">微信小程序</string> <string name="about_item_wechat_miniprogram" formatted="false">微信小程序</string>