diff --git a/app/src/main/java/com/idormy/sms/forwarder/fragment/SettingsFragment.kt b/app/src/main/java/com/idormy/sms/forwarder/fragment/SettingsFragment.kt index 6b63df90..01f8847b 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/fragment/SettingsFragment.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/fragment/SettingsFragment.kt @@ -127,6 +127,10 @@ class SettingsFragment : BaseFragment(), View.OnClickL } //免打扰(禁用转发)时间段 binding!!.tvSilentPeriod.text = mTimeOption[SettingUtils.silentPeriodStart] + " ~ " + mTimeOption[SettingUtils.silentPeriodEnd] + binding!!.scbSilentPeriodLogs.isChecked = SettingUtils.enableSilentPeriodLogs + binding!!.scbSilentPeriodLogs.setOnCheckedChangeListener { _: SmoothCheckBox, isChecked: Boolean -> + SettingUtils.enableSilentPeriodLogs = isChecked + } //开机启动 checkWithReboot(binding!!.sbWithReboot, binding!!.tvAutoStartup) diff --git a/app/src/main/java/com/idormy/sms/forwarder/utils/Constants.kt b/app/src/main/java/com/idormy/sms/forwarder/utils/Constants.kt index d73160e0..104a908a 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/utils/Constants.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/utils/Constants.kt @@ -56,6 +56,7 @@ const val ENABLE_LOAD_SYSTEM_APP_LIST = "enable_load_system_app_list" const val SP_DUPLICATE_MESSAGES_LIMITS = "duplicate_messages_limits" const val SP_SILENT_PERIOD_START = "silent_period_start" const val SP_SILENT_PERIOD_END = "silent_period_end" +const val SP_ENABLE_SILENT_PERIOD_LOGS = "enable_silent_period_logs" const val SP_ENABLE_EXCLUDE_FROM_RECENTS = "enable_exclude_from_recents" const val SP_ENABLE_PLAY_SILENCE_MUSIC = "enable_play_silence_music" diff --git a/app/src/main/java/com/idormy/sms/forwarder/utils/SettingUtils.kt b/app/src/main/java/com/idormy/sms/forwarder/utils/SettingUtils.kt index cbe8aafa..4236c9b4 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/utils/SettingUtils.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/utils/SettingUtils.kt @@ -71,6 +71,9 @@ class SettingUtils private constructor() { //免打扰(禁用转发)时间段——结束 var silentPeriodEnd: Int by SharedPreference(SP_SILENT_PERIOD_END, 0) + //免打扰(禁用转发)时间段——记录日志 + var enableSilentPeriodLogs: Boolean by SharedPreference(SP_ENABLE_SILENT_PERIOD_LOGS, false) + //是否不在最近任务列表中显示 var enableExcludeFromRecents: Boolean by SharedPreference(SP_ENABLE_EXCLUDE_FROM_RECENTS, false) 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 e22d87e7..981ff079 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 @@ -6,12 +6,14 @@ import androidx.work.CoroutineWorker import androidx.work.WorkerParameters import androidx.work.workDataOf import com.google.gson.Gson +import com.idormy.sms.forwarder.R import com.idormy.sms.forwarder.core.Core import com.idormy.sms.forwarder.database.entity.Logs import com.idormy.sms.forwarder.database.entity.Msg import com.idormy.sms.forwarder.database.entity.Rule import com.idormy.sms.forwarder.entity.MsgInfo import com.idormy.sms.forwarder.utils.* +import com.xuexiang.xutil.resource.ResUtils import com.xuexiang.xutil.security.CipherUtils import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.withContext @@ -30,6 +32,7 @@ class SendWorker( return withContext(Dispatchers.IO) { try { // 免打扰(禁用转发)时间段 + var isSilentPeriod = false if (SettingUtils.silentPeriodStart != SettingUtils.silentPeriodEnd) { val periodStartDay = Date() var periodStartEnd = Date() @@ -52,8 +55,12 @@ class SendWorker( val now = System.currentTimeMillis() if (periodStart != null && periodEnd != null && now in periodStart..periodEnd) { - Log.e("SendWorker", "免打扰(禁用转发)时间段") - return@withContext Result.failure(workDataOf("send" to "failed")) + if (SettingUtils.enableSilentPeriodLogs) { + isSilentPeriod = true + } else { + Log.e("SendWorker", "免打扰(禁用转发)时间段") + return@withContext Result.failure(workDataOf("send" to "failed")) + } } } @@ -61,9 +68,7 @@ class SendWorker( val msgInfo = Gson().fromJson(msgInfoJson, MsgInfo::class.java) // 过滤重复消息机制 - var duplicateMessagesLimits = SettingUtils.duplicateMessagesLimits * 1000L - // 电池状态监听/网络状态监控 默认开启1秒去重 - if (duplicateMessagesLimits == 0L && (msgInfo.from == "88888888" || msgInfo.from == "77777777")) duplicateMessagesLimits = 1000L + val duplicateMessagesLimits = SettingUtils.duplicateMessagesLimits * 1000L if (duplicateMessagesLimits > 0L) { val key = CipherUtils.md5(msgInfo.type + msgInfo.from + msgInfo.content) val timestamp: Long = System.currentTimeMillis() @@ -97,6 +102,11 @@ class SendWorker( val msgId = Core.msg.insert(msg) for (rule in ruleListMatched) { val sender = rule.senderList[0] + if (isSilentPeriod) { + val log = Logs(0, msgInfo.type, msgId, rule.id, sender.id, 0, ResUtils.getString(R.string.silent_time_period)) + Core.logs.insert(log) + continue + } val log = Logs(0, msgInfo.type, msgId, rule.id, sender.id) val logId = Core.logs.insert(log) SendUtils.sendMsgSender(msgInfo, rule, 0, logId, msgId) diff --git a/app/src/main/res/layout/fragment_settings.xml b/app/src/main/res/layout/fragment_settings.xml index e1afc54f..99df3ad7 100644 --- a/app/src/main/res/layout/fragment_settings.xml +++ b/app/src/main/res/layout/fragment_settings.xml @@ -829,13 +829,14 @@ style="@style/BarStyle" android:layout_width="match_parent" android:layout_height="wrap_content" + android:orientation="vertical" tools:ignore="RtlSymmetry"> + android:gravity="center_vertical" + android:orientation="horizontal"> + + + + + + + + + + + + - - - - diff --git a/app/src/main/res/values-en/strings.xml b/app/src/main/res/values-en/strings.xml index 8552cad6..57b88a67 100644 --- a/app/src/main/res/values-en/strings.xml +++ b/app/src/main/res/values-en/strings.xml @@ -1043,6 +1043,7 @@ Select Time Period Disable FW. Period If the end time is less than the start time, it will span days; if it is equal, it will be disabled + Save Logs Do you want to download and restart to load! Download successful, do you want to restart the loading now? AppKey diff --git a/app/src/main/res/values-zh-rCN/strings.xml b/app/src/main/res/values-zh-rCN/strings.xml index a54b37ec..76ab74f8 100644 --- a/app/src/main/res/values-zh-rCN/strings.xml +++ b/app/src/main/res/values-zh-rCN/strings.xml @@ -1044,6 +1044,7 @@ 时间段选择 免打扰(禁用转发)时间段 结束时间小于开始则跨天;相等则禁用 + 记录日志 是否立即下载,并重启加载? 下载成功,是否立即重启加载? AppKey diff --git a/app/src/main/res/values-zh-rTW/strings.xml b/app/src/main/res/values-zh-rTW/strings.xml index e96966e1..8705c608 100644 --- a/app/src/main/res/values-zh-rTW/strings.xml +++ b/app/src/main/res/values-zh-rTW/strings.xml @@ -1044,6 +1044,7 @@ 時間段選擇 免打擾(禁用轉發)時間段 結束時間小於開始則跨天;相等則禁用 + 記錄日誌 是否立即下載,並重啟加載? 下載成功,是否立即重啟加載? AppKey diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index e2eb04ab..f204f752 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -1044,6 +1044,7 @@ 时间段选择 免打扰(禁用转发)时间段 结束时间小于开始则跨天;相等则禁用 + 记录日志 是否立即下载,并重启加载? 下载成功,是否立即重启加载? AppKey