From 046dd8edbe8010f4fd11e7fadfc073dff1145f75 Mon Sep 17 00:00:00 2001 From: pppscn <35696959@qq.com> Date: Thu, 21 Dec 2023 15:00:07 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=EF=BC=9A=E9=87=8D=E5=86=99`L?= =?UTF-8?q?og`=E7=B1=BB=EF=BC=8C=E5=B0=86`Log.*`=E5=86=99=E5=85=A5?= =?UTF-8?q?=E6=96=87=E4=BB=B6=EF=BC=8C=E4=BB=A5=E4=BE=BF=E6=8E=92=E6=9F=A5?= =?UTF-8?q?=E9=97=AE=E9=A2=98=20#269?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/idormy/sms/forwarder/App.kt | 7 +- .../sms/forwarder/activity/MainActivity.kt | 2 +- .../adapter/spinner/AppListSpinnerAdapter.kt | 3 +- .../adapter/spinner/SenderSpinnerAdapter.kt | 3 +- .../com/idormy/sms/forwarder/core/Core.kt | 2 +- .../core/webview/AgentWebFragment.kt | 5 +- .../core/webview/MiddlewareChromeClient.kt | 2 +- .../core/webview/MiddlewareWebViewClient.kt | 2 +- .../forwarder/core/webview/UIController.kt | 2 +- .../core/webview/WebViewInterceptDialog.kt | 2 + .../core/webview/XPageWebViewFragment.kt | 21 +- .../sms/forwarder/database/entity/Rule.kt | 2 +- .../idormy/sms/forwarder/entity/MsgInfo.kt | 2 +- .../sms/forwarder/fragment/AboutFragment.kt | 2 + .../sms/forwarder/fragment/AppListFragment.kt | 2 +- .../sms/forwarder/fragment/ClientFragment.kt | 7 +- .../sms/forwarder/fragment/LogcatFragment.kt | 2 + .../sms/forwarder/fragment/LogsFragment.kt | 2 +- .../forwarder/fragment/RulesEditFragment.kt | 5 +- .../sms/forwarder/fragment/SendersFragment.kt | 3 +- .../sms/forwarder/fragment/ServerFragment.kt | 2 +- .../forwarder/fragment/SettingsFragment.kt | 51 ++- .../forwarder/fragment/TasksEditFragment.kt | 5 +- .../sms/forwarder/fragment/TasksFragment.kt | 2 +- .../fragment/action/CleanerFragment.kt | 4 +- .../forwarder/fragment/action/FrpcFragment.kt | 4 +- .../fragment/action/HttpServerFragment.kt | 4 +- .../fragment/action/NotificationFragment.kt | 4 +- .../fragment/action/SendSmsFragment.kt | 4 +- .../fragment/client/BatteryQueryFragment.kt | 5 +- .../fragment/client/CallQueryFragment.kt | 5 +- .../fragment/client/CloneFragment.kt | 7 +- .../fragment/client/ContactAddFragment.kt | 4 +- .../fragment/client/ContactQueryFragment.kt | 5 +- .../fragment/client/LocationFragment.kt | 5 +- .../fragment/client/SmsQueryFragment.kt | 5 +- .../fragment/client/SmsSendFragment.kt | 4 +- .../fragment/client/WolSendFragment.kt | 5 +- .../fragment/condition/BatteryFragment.kt | 3 +- .../fragment/condition/ChargeFragment.kt | 3 +- .../fragment/condition/CronFragment.kt | 4 +- .../condition/LeaveAddressFragment.kt | 8 +- .../fragment/condition/LockScreenFragment.kt | 3 +- .../fragment/condition/NetworkFragment.kt | 3 +- .../fragment/condition/SimFragment.kt | 3 +- .../fragment/condition/ToAddressFragment.kt | 8 +- .../fragment/senders/BarkFragment.kt | 7 +- .../senders/DingtalkGroupRobotFragment.kt | 5 +- .../senders/DingtalkInnerRobotFragment.kt | 4 +- .../fragment/senders/EmailFragment.kt | 5 +- .../fragment/senders/FeishuAppFragment.kt | 5 +- .../fragment/senders/FeishuFragment.kt | 5 +- .../fragment/senders/GotifyFragment.kt | 5 +- .../fragment/senders/PushplusFragment.kt | 5 +- .../fragment/senders/ServerchanFragment.kt | 5 +- .../forwarder/fragment/senders/SmsFragment.kt | 5 +- .../fragment/senders/SocketFragment.kt | 5 +- .../fragment/senders/TelegramFragment.kt | 5 +- .../fragment/senders/UrlSchemeFragment.kt | 5 +- .../fragment/senders/WebhookFragment.kt | 5 +- .../fragment/senders/WeworkAgentFragment.kt | 4 +- .../fragment/senders/WeworkRobotFragment.kt | 5 +- .../sms/forwarder/receiver/BatteryReceiver.kt | 2 +- .../receiver/BootCompletedReceiver.kt | 3 +- .../sms/forwarder/receiver/CactusReceiver.kt | 2 +- .../sms/forwarder/receiver/CallReceiver.kt | 2 +- .../forwarder/receiver/LockScreenReceiver.kt | 2 +- .../receiver/NetworkChangeReceiver.kt | 6 +- .../forwarder/receiver/PhoneStateReceiver.kt | 2 +- .../forwarder/receiver/SimStateReceiver.kt | 2 +- .../sms/forwarder/receiver/SmsReceiver.kt | 3 +- .../server/component/AppExceptionResolver.kt | 6 +- .../server/component/AppMessageConverter.kt | 2 +- .../server/component/IntegerDefaultAdapter.kt | 2 + .../server/component/LoggerInterceptor.kt | 2 +- .../server/controller/BatteryController.kt | 2 +- .../server/controller/CallController.kt | 2 +- .../server/controller/CloneController.kt | 2 +- .../server/controller/ConfigController.kt | 2 +- .../server/controller/ContactController.kt | 2 +- .../server/controller/LocationController.kt | 2 +- .../server/controller/SmsController.kt | 2 +- .../server/controller/WolController.kt | 2 +- .../forwarder/service/ForegroundService.kt | 4 +- .../forwarder/service/HttpServerService.kt | 2 +- .../sms/forwarder/service/LocationService.kt | 4 +- .../forwarder/service/NotificationService.kt | 3 +- .../idormy/sms/forwarder/utils/AppUtils.kt | 3 + .../idormy/sms/forwarder/utils/CacheUtils.kt | 2 + .../idormy/sms/forwarder/utils/CommonUtils.kt | 1 + .../idormy/sms/forwarder/utils/Constants.kt | 1 + .../sms/forwarder/utils/HttpServerUtils.kt | 2 +- .../com/idormy/sms/forwarder/utils/Log.kt | 153 +++++++++ .../idormy/sms/forwarder/utils/PhoneUtils.kt | 4 +- .../idormy/sms/forwarder/utils/RuleLine.kt | 1 - .../sms/forwarder/utils/RuleLineUtils.kt | 1 - .../idormy/sms/forwarder/utils/SendUtils.kt | 3 +- .../sms/forwarder/utils/SettingUtils.kt | 3 + .../sms/forwarder/utils/SmsCommandUtils.kt | 1 - .../sms/forwarder/utils/mail/MailSender.kt | 2 +- .../sms/forwarder/utils/mail/MailUtil.kt | 12 +- .../sms/forwarder/utils/sdkinit/UMengInit.kt | 5 +- .../forwarder/utils/sdkinit/XBasicLibInit.kt | 13 +- .../forwarder/utils/sdkinit/XUpdateInit.kt | 3 +- .../sms/forwarder/utils/sender/BarkUtils.kt | 2 +- .../utils/sender/DingtalkGroupRobotUtils.kt | 2 +- .../utils/sender/DingtalkInnerRobotUtils.kt | 2 +- .../sms/forwarder/utils/sender/EmailUtils.kt | 2 +- .../forwarder/utils/sender/FeishuAppUtils.kt | 2 +- .../sms/forwarder/utils/sender/FeishuUtils.kt | 2 +- .../sms/forwarder/utils/sender/GotifyUtils.kt | 2 +- .../forwarder/utils/sender/PushplusUtils.kt | 2 +- .../forwarder/utils/sender/ServerchanUtils.kt | 2 +- .../sms/forwarder/utils/sender/SmsUtils.kt | 2 +- .../sms/forwarder/utils/sender/SocketUtils.kt | 3 +- .../forwarder/utils/sender/TelegramUtils.kt | 2 +- .../forwarder/utils/sender/UrlSchemeUtils.kt | 4 +- .../forwarder/utils/sender/WebhookUtils.kt | 2 +- .../utils/sender/WeworkAgentUtils.kt | 2 +- .../utils/sender/WeworkRobotUtils.kt | 2 +- .../forwarder/utils/task/ConditionUtils.kt | 2 +- .../forwarder/utils/task/CronJobScheduler.kt | 2 +- .../utils/tinker/TinkerLoadLibrary.kt | 2 +- .../sms/forwarder/workers/ActionWorker.kt | 3 +- .../sms/forwarder/workers/BatteryWorker.kt | 237 +++++++------- .../sms/forwarder/workers/CronWorker.kt | 135 ++++---- .../forwarder/workers/LoadAppListWorker.kt | 42 +-- .../sms/forwarder/workers/LocationWorker.kt | 301 +++++++++--------- .../sms/forwarder/workers/LockScreenWorker.kt | 100 +++--- .../sms/forwarder/workers/NetworkWorker.kt | 213 +++++++------ .../sms/forwarder/workers/SendLogicWorker.kt | 3 +- .../sms/forwarder/workers/SendWorker.kt | 2 +- .../idormy/sms/forwarder/workers/SimWorker.kt | 118 +++---- .../sms/forwarder/workers/UpdateLogsWorker.kt | 17 +- app/src/main/res/layout/fragment_settings.xml | 49 +++ app/src/main/res/values-en/strings.xml | 2 + app/src/main/res/values-zh-rCN/strings.xml | 2 + app/src/main/res/values-zh-rTW/strings.xml | 2 + app/src/main/res/values/strings.xml | 2 + 139 files changed, 1168 insertions(+), 694 deletions(-) create mode 100644 app/src/main/java/com/idormy/sms/forwarder/utils/Log.kt diff --git a/app/src/main/java/com/idormy/sms/forwarder/App.kt b/app/src/main/java/com/idormy/sms/forwarder/App.kt index 81ea9833..23bf5bdf 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/App.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/App.kt @@ -10,7 +10,6 @@ import android.location.Geocoder import android.net.ConnectivityManager import android.net.wifi.WifiManager import android.os.Build -import android.util.Log import androidx.lifecycle.MutableLiveData import androidx.multidex.MultiDex import androidx.work.Configuration @@ -76,7 +75,7 @@ class App : Application(), CactusCallback, Configuration.Provider by Core { /** * @return 当前app是否是调试开发模式 */ - val isDebug: Boolean = BuildConfig.DEBUG + var isDebug: Boolean = BuildConfig.DEBUG //Cactus相关 val mEndDate = MutableLiveData() //结束时间 @@ -216,6 +215,7 @@ class App : Application(), CactusCallback, Configuration.Provider by Core { } catch (e: Exception) { e.printStackTrace() + Log.e(TAG, "onCreate: $e") } } @@ -226,6 +226,9 @@ class App : Application(), CactusCallback, Configuration.Provider by Core { Core.init(this) // 配置文件初始化 SharedPreference.init(applicationContext) + // 初始化日志打印 + isDebug = SettingUtils.enableDebugMode + Log.init(applicationContext) // 转发历史工具类初始化 HistoryUtils.init(applicationContext) // X系列基础库初始化 diff --git a/app/src/main/java/com/idormy/sms/forwarder/activity/MainActivity.kt b/app/src/main/java/com/idormy/sms/forwarder/activity/MainActivity.kt index 1b4bf722..87dc597b 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/activity/MainActivity.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/activity/MainActivity.kt @@ -6,7 +6,6 @@ import android.content.Intent import android.graphics.drawable.Drawable import android.os.Build import android.os.Bundle -import android.util.Log import android.view.LayoutInflater import android.widget.LinearLayout import androidx.recyclerview.widget.LinearLayoutManager @@ -40,6 +39,7 @@ import com.idormy.sms.forwarder.service.ForegroundService import com.idormy.sms.forwarder.utils.EVENT_LOAD_APP_LIST import com.idormy.sms.forwarder.utils.FRPC_LIB_DOWNLOAD_URL import com.idormy.sms.forwarder.utils.FRPC_LIB_VERSION +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.sdkinit.XUpdateInit diff --git a/app/src/main/java/com/idormy/sms/forwarder/adapter/spinner/AppListSpinnerAdapter.kt b/app/src/main/java/com/idormy/sms/forwarder/adapter/spinner/AppListSpinnerAdapter.kt index e632c9c4..27b6447a 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/adapter/spinner/AppListSpinnerAdapter.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/adapter/spinner/AppListSpinnerAdapter.kt @@ -4,7 +4,6 @@ import android.annotation.SuppressLint import android.os.Build import android.text.Html import android.text.TextUtils -import android.util.Log import android.util.TypedValue import android.view.LayoutInflater import android.view.View @@ -14,6 +13,7 @@ import android.widget.TextView import androidx.annotation.ColorInt import androidx.annotation.DrawableRes import com.idormy.sms.forwarder.R +import com.idormy.sms.forwarder.utils.Log import com.xuexiang.xui.utils.CollectionUtils import com.xuexiang.xui.widget.spinner.editspinner.BaseEditSpinnerAdapter import com.xuexiang.xui.widget.spinner.editspinner.EditSpinnerFilter @@ -99,6 +99,7 @@ class AppListSpinnerAdapter : BaseEditSpinnerAdapter, EditSpinnerFilter { } } catch (e: Exception) { e.printStackTrace() + Log.e("AppListSpinnerAdapter", "onFilter: ${e.message}") } } Log.d("AppListSpinnerAdapter", "mDisplayData = $mDisplayData") diff --git a/app/src/main/java/com/idormy/sms/forwarder/adapter/spinner/SenderSpinnerAdapter.kt b/app/src/main/java/com/idormy/sms/forwarder/adapter/spinner/SenderSpinnerAdapter.kt index ded912a6..ea3af577 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/adapter/spinner/SenderSpinnerAdapter.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/adapter/spinner/SenderSpinnerAdapter.kt @@ -4,7 +4,6 @@ import android.annotation.SuppressLint import android.os.Build import android.text.Html import android.text.TextUtils -import android.util.Log import android.util.TypedValue import android.view.LayoutInflater import android.view.View @@ -14,6 +13,7 @@ import android.widget.TextView import androidx.annotation.ColorInt import androidx.annotation.DrawableRes import com.idormy.sms.forwarder.R +import com.idormy.sms.forwarder.utils.Log import com.idormy.sms.forwarder.utils.STATUS_OFF import com.xuexiang.xui.utils.CollectionUtils import com.xuexiang.xui.widget.spinner.editspinner.BaseEditSpinnerAdapter @@ -109,6 +109,7 @@ class SenderSpinnerAdapter : BaseEditSpinnerAdapter, EditSpinnerFilter { } } catch (e: Exception) { e.printStackTrace() + Log.e("SenderSpinnerAdapter", "onFilter error: ${e.message}") } } Log.d("SenderSpinnerAdapter", "mDisplayData = $mDisplayData") diff --git a/app/src/main/java/com/idormy/sms/forwarder/core/Core.kt b/app/src/main/java/com/idormy/sms/forwarder/core/Core.kt index e50be018..0e7851a9 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/core/Core.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/core/Core.kt @@ -1,7 +1,6 @@ package com.idormy.sms.forwarder.core import android.app.Application -import android.util.Log import androidx.work.Configuration import com.idormy.sms.forwarder.App import com.idormy.sms.forwarder.BuildConfig @@ -11,6 +10,7 @@ import com.idormy.sms.forwarder.database.repository.MsgRepository import com.idormy.sms.forwarder.database.repository.RuleRepository import com.idormy.sms.forwarder.database.repository.SenderRepository import com.idormy.sms.forwarder.database.repository.TaskRepository +import com.idormy.sms.forwarder.utils.Log import kotlinx.coroutines.launch object Core : Configuration.Provider { diff --git a/app/src/main/java/com/idormy/sms/forwarder/core/webview/AgentWebFragment.kt b/app/src/main/java/com/idormy/sms/forwarder/core/webview/AgentWebFragment.kt index 9f0b01d8..df4d0848 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/core/webview/AgentWebFragment.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/core/webview/AgentWebFragment.kt @@ -10,7 +10,6 @@ import android.net.Uri import android.os.Build import android.os.Bundle import android.text.TextUtils -import android.util.Log import android.view.Gravity import android.view.KeyEvent import android.view.LayoutInflater @@ -30,7 +29,9 @@ import android.widget.TextView import androidx.annotation.RequiresApi import androidx.appcompat.widget.PopupMenu import androidx.fragment.app.Fragment +import com.idormy.sms.forwarder.App import com.idormy.sms.forwarder.R +import com.idormy.sms.forwarder.utils.Log import com.idormy.sms.forwarder.utils.XToastUtils import com.just.agentweb.action.PermissionInterceptor import com.just.agentweb.core.AgentWeb @@ -105,7 +106,7 @@ class AgentWebFragment : Fragment(), FragmentKeyDown { .ready() //设置 WebSettings。 //WebView载入该url地址的页面并显示。 .go(url) - if (com.idormy.sms.forwarder.App.isDebug) { + if (App.isDebug) { AgentWebConfig.debug() } diff --git a/app/src/main/java/com/idormy/sms/forwarder/core/webview/MiddlewareChromeClient.kt b/app/src/main/java/com/idormy/sms/forwarder/core/webview/MiddlewareChromeClient.kt index 41b4c094..c297d478 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/core/webview/MiddlewareChromeClient.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/core/webview/MiddlewareChromeClient.kt @@ -1,8 +1,8 @@ package com.idormy.sms.forwarder.core.webview -import android.util.Log import android.webkit.JsResult import android.webkit.WebView +import com.idormy.sms.forwarder.utils.Log import com.just.agentweb.core.client.MiddlewareWebChromeBase /** diff --git a/app/src/main/java/com/idormy/sms/forwarder/core/webview/MiddlewareWebViewClient.kt b/app/src/main/java/com/idormy/sms/forwarder/core/webview/MiddlewareWebViewClient.kt index b0e7812c..b65d3fe1 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/core/webview/MiddlewareWebViewClient.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/core/webview/MiddlewareWebViewClient.kt @@ -2,7 +2,7 @@ package com.idormy.sms.forwarder.core.webview import android.net.Uri import android.os.Build -import android.util.Log +import com.idormy.sms.forwarder.utils.Log import android.webkit.WebResourceRequest import android.webkit.WebResourceResponse import android.webkit.WebView diff --git a/app/src/main/java/com/idormy/sms/forwarder/core/webview/UIController.kt b/app/src/main/java/com/idormy/sms/forwarder/core/webview/UIController.kt index 46d7942e..6ebf427c 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/core/webview/UIController.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/core/webview/UIController.kt @@ -2,7 +2,7 @@ package com.idormy.sms.forwarder.core.webview import android.app.Activity import android.os.Handler -import android.util.Log +import com.idormy.sms.forwarder.utils.Log import android.webkit.WebView import com.just.agentweb.core.web.AgentWebUIControllerImplBase import java.lang.ref.WeakReference diff --git a/app/src/main/java/com/idormy/sms/forwarder/core/webview/WebViewInterceptDialog.kt b/app/src/main/java/com/idormy/sms/forwarder/core/webview/WebViewInterceptDialog.kt index 5ece954b..d6deb958 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/core/webview/WebViewInterceptDialog.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/core/webview/WebViewInterceptDialog.kt @@ -7,6 +7,7 @@ import android.net.Uri import android.os.Bundle import androidx.appcompat.app.AppCompatActivity import com.idormy.sms.forwarder.R +import com.idormy.sms.forwarder.utils.Log import com.idormy.sms.forwarder.utils.XToastUtils import com.xuexiang.xui.widget.dialog.DialogLoader import com.xuexiang.xutil.XUtil @@ -54,6 +55,7 @@ class WebViewInterceptDialog : AppCompatActivity(), DialogInterface.OnDismissLis return intent.scheme } catch (e: URISyntaxException) { e.printStackTrace() + Log.e("WebViewInterceptDialog", e.toString()) } return "" } diff --git a/app/src/main/java/com/idormy/sms/forwarder/core/webview/XPageWebViewFragment.kt b/app/src/main/java/com/idormy/sms/forwarder/core/webview/XPageWebViewFragment.kt index 1c0bcde6..ccc59afd 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/core/webview/XPageWebViewFragment.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/core/webview/XPageWebViewFragment.kt @@ -9,14 +9,25 @@ import android.graphics.Color import android.net.Uri import android.os.Build import android.text.TextUtils -import android.view.* -import android.webkit.* +import android.view.Gravity +import android.view.KeyEvent +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.webkit.DownloadListener +import android.webkit.WebChromeClient +import android.webkit.WebResourceError +import android.webkit.WebResourceRequest +import android.webkit.WebResourceResponse +import android.webkit.WebView +import android.webkit.WebViewClient import android.widget.FrameLayout import android.widget.LinearLayout import android.widget.TextView import androidx.annotation.RequiresApi import androidx.appcompat.widget.PopupMenu import androidx.fragment.app.Fragment +import com.idormy.sms.forwarder.App import com.idormy.sms.forwarder.R import com.idormy.sms.forwarder.core.BaseFragment import com.idormy.sms.forwarder.databinding.FragmentAgentwebBinding @@ -97,7 +108,7 @@ class XPageWebViewFragment : BaseFragment(), View.OnCl .ready() //设置 WebSettings。 //WebView载入该url地址的页面并显示。 .go(url) - if (com.idormy.sms.forwarder.App.isDebug) { + if (App.isDebug) { AgentWebConfig.debug() } pageNavigator(View.GONE) @@ -420,24 +431,28 @@ class XPageWebViewFragment : BaseFragment(), View.OnCl } return@OnMenuItemClickListener true } + R.id.copy -> { if (mAgentWeb != null) { mAgentWeb!!.webCreator.webView.url?.let { toCopy(context, it) } } return@OnMenuItemClickListener true } + R.id.default_browser -> { if (mAgentWeb != null) { mAgentWeb!!.webCreator.webView.url?.let { openBrowser(it) } } return@OnMenuItemClickListener true } + R.id.share -> { if (mAgentWeb != null) { mAgentWeb!!.webCreator.webView.url?.let { shareWebUrl(it) } } return@OnMenuItemClickListener true } + else -> false } } diff --git a/app/src/main/java/com/idormy/sms/forwarder/database/entity/Rule.kt b/app/src/main/java/com/idormy/sms/forwarder/database/entity/Rule.kt index 2021a0d9..49866f57 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/database/entity/Rule.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/database/entity/Rule.kt @@ -1,7 +1,7 @@ package com.idormy.sms.forwarder.database.entity import android.os.Parcelable -import android.util.Log +import com.idormy.sms.forwarder.utils.Log import androidx.room.* import com.idormy.sms.forwarder.R import com.idormy.sms.forwarder.database.ext.ConvertersSenderList diff --git a/app/src/main/java/com/idormy/sms/forwarder/entity/MsgInfo.kt b/app/src/main/java/com/idormy/sms/forwarder/entity/MsgInfo.kt index 462bafa0..8ea6d655 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/entity/MsgInfo.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/entity/MsgInfo.kt @@ -2,7 +2,7 @@ package com.idormy.sms.forwarder.entity import android.annotation.SuppressLint import android.text.TextUtils -import android.util.Log +import com.idormy.sms.forwarder.utils.Log import com.idormy.sms.forwarder.App import com.idormy.sms.forwarder.R import com.idormy.sms.forwarder.utils.AppUtils diff --git a/app/src/main/java/com/idormy/sms/forwarder/fragment/AboutFragment.kt b/app/src/main/java/com/idormy/sms/forwarder/fragment/AboutFragment.kt index cf3e69a6..d0e14344 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/fragment/AboutFragment.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/fragment/AboutFragment.kt @@ -17,6 +17,7 @@ import com.idormy.sms.forwarder.utils.CommonUtils.Companion.previewMarkdown import com.idormy.sms.forwarder.utils.CommonUtils.Companion.previewPicture import com.idormy.sms.forwarder.utils.HistoryUtils import com.idormy.sms.forwarder.utils.HttpServerUtils +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.sdkinit.XUpdateInit @@ -99,6 +100,7 @@ class AboutFragment : BaseFragment(), SuperTextView.OnSup .show() } catch (e: Exception) { e.printStackTrace() + Log.e("AboutFragment", "btnFrpc.setOnClickListener error: ${e.message}") XToastUtils.error(e.message.toString()) } } diff --git a/app/src/main/java/com/idormy/sms/forwarder/fragment/AppListFragment.kt b/app/src/main/java/com/idormy/sms/forwarder/fragment/AppListFragment.kt index 086eec9a..643f0adb 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/fragment/AppListFragment.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/fragment/AppListFragment.kt @@ -2,7 +2,6 @@ package com.idormy.sms.forwarder.fragment import android.content.ClipData import android.content.ClipboardManager -import android.util.Log import android.view.LayoutInflater import android.view.View import android.view.ViewGroup @@ -17,6 +16,7 @@ import com.idormy.sms.forwarder.core.BaseFragment import com.idormy.sms.forwarder.databinding.FragmentAppListBinding import com.idormy.sms.forwarder.utils.AppInfo import com.idormy.sms.forwarder.utils.EVENT_LOAD_APP_LIST +import com.idormy.sms.forwarder.utils.Log import com.idormy.sms.forwarder.utils.XToastUtils import com.idormy.sms.forwarder.workers.LoadAppListWorker import com.jeremyliao.liveeventbus.LiveEventBus diff --git a/app/src/main/java/com/idormy/sms/forwarder/fragment/ClientFragment.kt b/app/src/main/java/com/idormy/sms/forwarder/fragment/ClientFragment.kt index 54e12452..f7526bf0 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/fragment/ClientFragment.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/fragment/ClientFragment.kt @@ -2,7 +2,6 @@ package com.idormy.sms.forwarder.fragment import android.text.Editable import android.text.TextWatcher -import android.util.Log import android.view.LayoutInflater import android.view.View import android.view.ViewGroup @@ -19,6 +18,7 @@ import com.idormy.sms.forwarder.server.model.ConfigData import com.idormy.sms.forwarder.utils.Base64 import com.idormy.sms.forwarder.utils.CommonUtils import com.idormy.sms.forwarder.utils.HttpServerUtils +import com.idormy.sms.forwarder.utils.Log import com.idormy.sms.forwarder.utils.RSACrypt import com.idormy.sms.forwarder.utils.SM4Crypt import com.idormy.sms.forwarder.utils.SettingUtils @@ -164,6 +164,7 @@ class ClientFragment : BaseFragment(), View.OnClickListe XUtil.exitApp() } catch (e: InterruptedException) { e.printStackTrace() + Log.e(TAG, "InterruptedException: ${e.message}") } } }) @@ -351,6 +352,7 @@ class ClientFragment : BaseFragment(), View.OnClickListe PageOption.to(Class.forName(item.classPath) as Class).setNewActivity(true).open(this) } catch (e: Exception) { e.printStackTrace() + Log.e(TAG, "onItemClick error: ${e.message}") XToastUtils.error(e.message.toString()) } } @@ -391,6 +393,7 @@ class ClientFragment : BaseFragment(), View.OnClickListe } catch (e: Exception) { if (needToast) XToastUtils.error(getString(R.string.request_failed) + e.message) e.printStackTrace() + Log.e(TAG, "RSACrypt error: ${e.message}") return } postRequest.upString(requestMsg) @@ -406,6 +409,7 @@ class ClientFragment : BaseFragment(), View.OnClickListe } catch (e: Exception) { if (needToast) XToastUtils.error(getString(R.string.request_failed) + e.message) e.printStackTrace() + Log.e(TAG, "SM4Crypt error: ${e.message}") return } postRequest.upString(requestMsg) @@ -458,6 +462,7 @@ class ClientFragment : BaseFragment(), View.OnClickListe if (needToast) mCountDownHelper?.finish() } catch (e: Exception) { e.printStackTrace() + Log.e(TAG, "onSuccess error: ${e.message}") if (needToast) { XToastUtils.error(getString(R.string.request_failed) + response) mCountDownHelper?.finish() diff --git a/app/src/main/java/com/idormy/sms/forwarder/fragment/LogcatFragment.kt b/app/src/main/java/com/idormy/sms/forwarder/fragment/LogcatFragment.kt index 4466e083..596148fb 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/fragment/LogcatFragment.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/fragment/LogcatFragment.kt @@ -6,6 +6,7 @@ import android.view.ViewGroup import com.idormy.sms.forwarder.R import com.idormy.sms.forwarder.core.BaseFragment import com.idormy.sms.forwarder.databinding.FragmentLogcatBinding +import com.idormy.sms.forwarder.utils.Log import com.idormy.sms.forwarder.utils.XToastUtils import com.xuexiang.xaop.annotation.SingleClick import com.xuexiang.xpage.annotation.Page @@ -98,6 +99,7 @@ class LogcatFragment : BaseFragment() { override fun onError(e: Throwable) { e.printStackTrace() + Log.e("LogcatFragment", "readLog error: ${e.message}") } override fun onComplete() {} diff --git a/app/src/main/java/com/idormy/sms/forwarder/fragment/LogsFragment.kt b/app/src/main/java/com/idormy/sms/forwarder/fragment/LogsFragment.kt index 47a0226e..c4069f36 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/fragment/LogsFragment.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/fragment/LogsFragment.kt @@ -2,7 +2,6 @@ package com.idormy.sms.forwarder.fragment import android.annotation.SuppressLint import android.text.TextUtils -import android.util.Log import android.view.LayoutInflater import android.view.View import android.view.ViewGroup @@ -21,6 +20,7 @@ import com.idormy.sms.forwarder.database.entity.Rule import com.idormy.sms.forwarder.database.viewmodel.BaseViewModelFactory import com.idormy.sms.forwarder.database.viewmodel.MsgViewModel import com.idormy.sms.forwarder.databinding.FragmentLogsBinding +import com.idormy.sms.forwarder.utils.Log import com.idormy.sms.forwarder.utils.SendUtils import com.idormy.sms.forwarder.utils.XToastUtils import com.scwang.smartrefresh.layout.api.RefreshLayout diff --git a/app/src/main/java/com/idormy/sms/forwarder/fragment/RulesEditFragment.kt b/app/src/main/java/com/idormy/sms/forwarder/fragment/RulesEditFragment.kt index bbca3bf6..293824bd 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/fragment/RulesEditFragment.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/fragment/RulesEditFragment.kt @@ -1,7 +1,6 @@ package com.idormy.sms.forwarder.fragment import android.annotation.SuppressLint -import android.util.Log import android.view.LayoutInflater import android.view.View import android.view.ViewGroup @@ -396,6 +395,7 @@ class RulesEditFragment : BaseFragment(), View.OnClic } catch (e: Exception) { XToastUtils.error(e.message.toString()) e.printStackTrace() + Log.e(TAG, e.toString()) } } @@ -410,6 +410,7 @@ class RulesEditFragment : BaseFragment(), View.OnClic override fun onError(e: Throwable) { e.printStackTrace() + Log.e(TAG, e.toString()) } override fun onSuccess(senderList: List) { @@ -572,6 +573,7 @@ class RulesEditFragment : BaseFragment(), View.OnClic override fun onError(e: Throwable) { e.printStackTrace() + Log.e(TAG, e.toString()) } override fun onSuccess(rule: Rule) { @@ -822,6 +824,7 @@ class RulesEditFragment : BaseFragment(), View.OnClic SendUtils.sendMsgSender(msgInfo, rule) } catch (e: Exception) { e.printStackTrace() + Log.e(TAG, e.toString()) LiveEventBus.get(EVENT_TOAST_ERROR, String::class.java).post(e.message.toString()) } }.start() diff --git a/app/src/main/java/com/idormy/sms/forwarder/fragment/SendersFragment.kt b/app/src/main/java/com/idormy/sms/forwarder/fragment/SendersFragment.kt index 172b40a6..98ff1e1a 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/fragment/SendersFragment.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/fragment/SendersFragment.kt @@ -1,7 +1,6 @@ package com.idormy.sms.forwarder.fragment import android.annotation.SuppressLint -import android.util.Log import android.view.LayoutInflater import android.view.View import android.view.ViewGroup @@ -39,6 +38,7 @@ import com.idormy.sms.forwarder.fragment.senders.WeworkRobotFragment 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_TYPE +import com.idormy.sms.forwarder.utils.Log import com.idormy.sms.forwarder.utils.TYPE_BARK import com.idormy.sms.forwarder.utils.TYPE_DINGTALK_GROUP_ROBOT import com.idormy.sms.forwarder.utils.TYPE_DINGTALK_INNER_ROBOT @@ -330,6 +330,7 @@ class SendersFragment : BaseFragment(), .open(this) } catch (e: Exception) { e.printStackTrace() + Log.e(TAG, "onItemClick error: ${e.message}") XToastUtils.error(e.message.toString()) } } diff --git a/app/src/main/java/com/idormy/sms/forwarder/fragment/ServerFragment.kt b/app/src/main/java/com/idormy/sms/forwarder/fragment/ServerFragment.kt index 83ff0a6a..c5a106e3 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/fragment/ServerFragment.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/fragment/ServerFragment.kt @@ -7,7 +7,6 @@ import android.os.Handler import android.os.Looper import android.text.Editable import android.text.TextWatcher -import android.util.Log import android.view.LayoutInflater import android.view.View import android.view.ViewGroup @@ -390,6 +389,7 @@ class ServerFragment : BaseFragment(), View.OnClickListe binding!!.tvServerTips.text = getString(R.string.http_server_running, inetAddress!!.hostAddress, HTTP_SERVER_PORT) } catch (e: Exception) { e.printStackTrace() + Log.e("ServerFragment", "refreshButtonText error: ${e.message}") binding!!.tvServerTips.text = getString(R.string.http_server_running, "127.0.0.1", HTTP_SERVER_PORT) } } else { 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 add78a98..63975189 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 @@ -9,11 +9,11 @@ import android.content.pm.PackageManager import android.location.Criteria import android.net.Uri import android.os.Build +import android.os.Environment import android.provider.Settings import android.text.Editable import android.text.TextUtils import android.text.TextWatcher -import android.util.Log import android.view.LayoutInflater import android.view.View import android.view.ViewGroup @@ -56,6 +56,7 @@ import com.xuexiang.xui.widget.picker.widget.builder.OptionsPickerBuilder import com.xuexiang.xui.widget.picker.widget.listener.OnOptionsSelectListener import com.xuexiang.xutil.XUtil import com.xuexiang.xutil.XUtil.getPackageManager +import com.xuexiang.xutil.file.FileUtils import kotlinx.coroutines.* import java.util.* @@ -157,6 +158,8 @@ class SettingsFragment : BaseFragment(), View.OnClickL switchDirectlyToClient(binding!!.sbDirectlyToClient) //纯自动任务模式 switchDirectlyToTask(binding!!.sbDirectlyToTask) + //调试模式 + switchDebugMode(binding!!.sbDebugMode) //多语言设置 switchLanguage(binding!!.rgMainLanguages) } @@ -177,6 +180,7 @@ class SettingsFragment : BaseFragment(), View.OnClickL binding!!.btInsertExtra.setOnClickListener(this) binding!!.btInsertTime.setOnClickListener(this) binding!!.btInsertDeviceName.setOnClickListener(this) + binding!!.btnExportLog.setOnClickListener(this) //监听已安装App信息列表加载完成事件 LiveEventBus.get(EVENT_LOAD_APP_LIST, String::class.java).observeStickyForever(appListObserver) @@ -285,6 +289,40 @@ class SettingsFragment : BaseFragment(), View.OnClickL return } + R.id.btn_export_log -> { + // 申请储存权限 + XXPermissions.with(this) + //.permission(*Permission.Group.STORAGE) + .permission(Permission.MANAGE_EXTERNAL_STORAGE).request(object : OnPermissionCallback { + @SuppressLint("SetTextI18n") + override fun onGranted(permissions: List, all: Boolean) { + try { + val srcDirPath = App.context.cacheDir.absolutePath + "/logs" + val destDirPath = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS).path + "/SmsForwarder" + if (FileUtils.copyDir(srcDirPath, destDirPath, null)) { + XToastUtils.success("导出日志成功!存放路径:$destDirPath") + } else { + XToastUtils.error("导出日志失败!") + } + } catch (e: Exception) { + XToastUtils.error("导出日志失败!") + e.printStackTrace() + } + } + + override fun onDenied(permissions: List, never: Boolean) { + if (never) { + XToastUtils.error(R.string.toast_denied_never) + // 如果是被永久拒绝就跳转到应用权限系统设置页面 + XXPermissions.startPermissionActivity(requireContext(), permissions) + } else { + XToastUtils.error(R.string.toast_denied) + } + } + }) + return + } + else -> {} } } @@ -974,6 +1012,15 @@ class SettingsFragment : BaseFragment(), View.OnClickL } } + //调试模式 + private fun switchDebugMode(@SuppressLint("UseSwitchCompatOrMaterialCode") switchDebugMode: SwitchButton) { + switchDebugMode.isChecked = SettingUtils.enableDebugMode + switchDebugMode.setOnCheckedChangeListener { _: CompoundButton?, isChecked: Boolean -> + SettingUtils.enableDebugMode = isChecked + App.isDebug = isChecked + } + } + //多语言设置 private fun switchLanguage(rgMainLanguages: RadioGroup) { rgMainLanguages.check( @@ -1179,6 +1226,7 @@ class SettingsFragment : BaseFragment(), View.OnClickL break } catch (e: Exception) { e.printStackTrace() + Log.e("Util", "******************e:" + e.message) } } } @@ -1194,6 +1242,7 @@ class SettingsFragment : BaseFragment(), View.OnClickL context.startActivity(intent) } catch (e: Exception) { e.printStackTrace() + Log.e("Util", "******************e:" + e.message) val intent = Intent(Settings.ACTION_SETTINGS) intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK) context.startActivity(intent) diff --git a/app/src/main/java/com/idormy/sms/forwarder/fragment/TasksEditFragment.kt b/app/src/main/java/com/idormy/sms/forwarder/fragment/TasksEditFragment.kt index 113d6a5a..0efd6ec7 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/fragment/TasksEditFragment.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/fragment/TasksEditFragment.kt @@ -2,7 +2,6 @@ package com.idormy.sms.forwarder.fragment import android.annotation.SuppressLint import android.content.Intent -import android.util.Log import android.view.LayoutInflater import android.view.View import android.view.ViewGroup @@ -337,6 +336,7 @@ class TasksEditFragment : BaseFragment(), View.OnClic } catch (e: Exception) { XToastUtils.error(e.message.toString()) e.printStackTrace() + Log.e(TAG, "onClick error: ${e.message}") } } @@ -347,6 +347,7 @@ class TasksEditFragment : BaseFragment(), View.OnClic override fun onError(e: Throwable) { e.printStackTrace() + Log.e(TAG, "initForm error: ${e.message}") } @SuppressLint("NotifyDataSetChanged") @@ -381,6 +382,7 @@ class TasksEditFragment : BaseFragment(), View.OnClic } } catch (e: Exception) { e.printStackTrace() + Log.e(TAG, "initForm error: ${e.message}") XToastUtils.error(e.message.toString()) } } @@ -503,6 +505,7 @@ class TasksEditFragment : BaseFragment(), View.OnClic .open(this) } catch (e: Exception) { e.printStackTrace() + Log.e(TAG, "onItemClick error: ${e.message}") XToastUtils.error(e.message.toString()) } } diff --git a/app/src/main/java/com/idormy/sms/forwarder/fragment/TasksFragment.kt b/app/src/main/java/com/idormy/sms/forwarder/fragment/TasksFragment.kt index 431cf15b..4274277b 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/fragment/TasksFragment.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/fragment/TasksFragment.kt @@ -1,6 +1,5 @@ package com.idormy.sms.forwarder.fragment -import android.util.Log import android.view.LayoutInflater import android.view.View import android.view.ViewGroup @@ -17,6 +16,7 @@ import com.idormy.sms.forwarder.database.viewmodel.TaskViewModel import com.idormy.sms.forwarder.databinding.FragmentTasksBinding import com.idormy.sms.forwarder.utils.KEY_TASK_CLONE import com.idormy.sms.forwarder.utils.KEY_TASK_ID +import com.idormy.sms.forwarder.utils.Log import com.idormy.sms.forwarder.utils.XToastUtils import com.scwang.smartrefresh.layout.api.RefreshLayout import com.xuexiang.xaop.annotation.SingleClick diff --git a/app/src/main/java/com/idormy/sms/forwarder/fragment/action/CleanerFragment.kt b/app/src/main/java/com/idormy/sms/forwarder/fragment/action/CleanerFragment.kt index a4c26904..b5e110a7 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/fragment/action/CleanerFragment.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/fragment/action/CleanerFragment.kt @@ -2,7 +2,6 @@ package com.idormy.sms.forwarder.fragment.action import android.annotation.SuppressLint import android.content.Intent -import android.util.Log import android.view.LayoutInflater import android.view.View import android.view.ViewGroup @@ -15,6 +14,7 @@ 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.KEY_TEST_ACTION +import com.idormy.sms.forwarder.utils.Log import com.idormy.sms.forwarder.utils.TASK_ACTION_CLEANER import com.idormy.sms.forwarder.utils.XToastUtils import com.jeremyliao.liveeventbus.LiveEventBus @@ -108,6 +108,7 @@ class CleanerFragment : BaseFragment(), View } catch (e: Exception) { LiveEventBus.get(KEY_TEST_ACTION, String::class.java).post(e.message.toString()) e.printStackTrace() + Log.e(TAG, "onClick error: ${e.message}") } }.start() return @@ -131,6 +132,7 @@ class CleanerFragment : BaseFragment(), View } catch (e: Exception) { XToastUtils.error(e.message.toString(), 30000) e.printStackTrace() + Log.e(TAG, "onClick error: ${e.message}") } } diff --git a/app/src/main/java/com/idormy/sms/forwarder/fragment/action/FrpcFragment.kt b/app/src/main/java/com/idormy/sms/forwarder/fragment/action/FrpcFragment.kt index 01b0a051..0e13d76e 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/fragment/action/FrpcFragment.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/fragment/action/FrpcFragment.kt @@ -2,7 +2,6 @@ package com.idormy.sms.forwarder.fragment.action import android.annotation.SuppressLint import android.content.Intent -import android.util.Log import android.view.LayoutInflater import android.view.View import android.view.ViewGroup @@ -15,6 +14,7 @@ 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.KEY_TEST_ACTION +import com.idormy.sms.forwarder.utils.Log import com.idormy.sms.forwarder.utils.TASK_ACTION_FRPC import com.idormy.sms.forwarder.utils.XToastUtils import com.jeremyliao.liveeventbus.LiveEventBus @@ -125,6 +125,7 @@ class FrpcFragment : BaseFragment(), View.OnCli } catch (e: Exception) { LiveEventBus.get(KEY_TEST_ACTION, String::class.java).post(e.message.toString()) e.printStackTrace() + Log.e(TAG, "onClick error: ${e.message}") } }.start() return @@ -148,6 +149,7 @@ class FrpcFragment : BaseFragment(), View.OnCli } catch (e: Exception) { XToastUtils.error(e.message.toString(), 30000) e.printStackTrace() + Log.e(TAG, "onClick error: ${e.message}") } } diff --git a/app/src/main/java/com/idormy/sms/forwarder/fragment/action/HttpServerFragment.kt b/app/src/main/java/com/idormy/sms/forwarder/fragment/action/HttpServerFragment.kt index 14f94369..da9c3943 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/fragment/action/HttpServerFragment.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/fragment/action/HttpServerFragment.kt @@ -2,7 +2,6 @@ package com.idormy.sms.forwarder.fragment.action import android.annotation.SuppressLint import android.content.Intent -import android.util.Log import android.view.LayoutInflater import android.view.View import android.view.ViewGroup @@ -15,6 +14,7 @@ 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.KEY_TEST_ACTION +import com.idormy.sms.forwarder.utils.Log import com.idormy.sms.forwarder.utils.TASK_ACTION_HTTPSERVER import com.idormy.sms.forwarder.utils.XToastUtils import com.jeremyliao.liveeventbus.LiveEventBus @@ -117,6 +117,7 @@ class HttpServerFragment : BaseFragment() } catch (e: Exception) { LiveEventBus.get(KEY_TEST_ACTION, String::class.java).post(e.message.toString()) e.printStackTrace() + Log.e(TAG, "onClick error: ${e.message}") } }.start() return @@ -140,6 +141,7 @@ class HttpServerFragment : BaseFragment() } catch (e: Exception) { XToastUtils.error(e.message.toString(), 30000) e.printStackTrace() + Log.e(TAG, "onClick error: ${e.message}") } } diff --git a/app/src/main/java/com/idormy/sms/forwarder/fragment/action/NotificationFragment.kt b/app/src/main/java/com/idormy/sms/forwarder/fragment/action/NotificationFragment.kt index cea9d48a..e881db20 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/fragment/action/NotificationFragment.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/fragment/action/NotificationFragment.kt @@ -2,7 +2,6 @@ package com.idormy.sms.forwarder.fragment.action import android.annotation.SuppressLint import android.content.Intent -import android.util.Log import android.view.LayoutInflater import android.view.View import android.view.ViewGroup @@ -255,6 +254,7 @@ class NotificationFragment : BaseFragment) { diff --git a/app/src/main/java/com/idormy/sms/forwarder/fragment/action/SendSmsFragment.kt b/app/src/main/java/com/idormy/sms/forwarder/fragment/action/SendSmsFragment.kt index 8a6e574b..260b8a88 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/fragment/action/SendSmsFragment.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/fragment/action/SendSmsFragment.kt @@ -4,7 +4,6 @@ import android.Manifest import android.annotation.SuppressLint import android.content.Intent import android.content.pm.PackageManager -import android.util.Log import android.view.LayoutInflater import android.view.View import android.view.ViewGroup @@ -27,6 +26,7 @@ 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.KEY_TEST_ACTION +import com.idormy.sms.forwarder.utils.Log import com.idormy.sms.forwarder.utils.PhoneUtils import com.idormy.sms.forwarder.utils.TASK_ACTION_SENDSMS import com.idormy.sms.forwarder.utils.XToastUtils @@ -172,6 +172,7 @@ class SendSmsFragment : BaseFragment(), View } catch (e: Exception) { LiveEventBus.get(KEY_TEST_ACTION, String::class.java).post(e.message.toString()) e.printStackTrace() + Log.e(TAG, "onClick error: ${e.message}") } }.start() } @@ -201,6 +202,7 @@ class SendSmsFragment : BaseFragment(), View } catch (e: Exception) { XToastUtils.error(e.message.toString(), 30000) e.printStackTrace() + Log.e(TAG, "onClick error: ${e.message}") } } diff --git a/app/src/main/java/com/idormy/sms/forwarder/fragment/client/BatteryQueryFragment.kt b/app/src/main/java/com/idormy/sms/forwarder/fragment/client/BatteryQueryFragment.kt index 795e9de1..59729a57 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/fragment/client/BatteryQueryFragment.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/fragment/client/BatteryQueryFragment.kt @@ -1,6 +1,5 @@ package com.idormy.sms.forwarder.fragment.client -import android.util.Log import android.view.LayoutInflater import android.view.ViewGroup import com.google.gson.Gson @@ -12,6 +11,7 @@ import com.idormy.sms.forwarder.entity.BatteryInfo import com.idormy.sms.forwarder.server.model.BaseResponse import com.idormy.sms.forwarder.utils.Base64 import com.idormy.sms.forwarder.utils.HttpServerUtils +import com.idormy.sms.forwarder.utils.Log import com.idormy.sms.forwarder.utils.RSACrypt import com.idormy.sms.forwarder.utils.SM4Crypt import com.idormy.sms.forwarder.utils.SettingUtils @@ -82,6 +82,7 @@ class BatteryQueryFragment : BaseFragment() } catch (e: Exception) { XToastUtils.error(getString(R.string.request_failed) + e.message) e.printStackTrace() + Log.e(TAG, e.toString()) return } postRequest.upString(requestMsg) @@ -97,6 +98,7 @@ class BatteryQueryFragment : BaseFragment() } catch (e: Exception) { XToastUtils.error(getString(R.string.request_failed) + e.message) e.printStackTrace() + Log.e(TAG, e.toString()) return } postRequest.upString(requestMsg) @@ -147,6 +149,7 @@ class BatteryQueryFragment : BaseFragment() } } catch (e: Exception) { e.printStackTrace() + Log.e(TAG, e.toString()) XToastUtils.error(getString(R.string.request_failed) + response) } } diff --git a/app/src/main/java/com/idormy/sms/forwarder/fragment/client/CallQueryFragment.kt b/app/src/main/java/com/idormy/sms/forwarder/fragment/client/CallQueryFragment.kt index 40e2aaac..7dcafec9 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/fragment/client/CallQueryFragment.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/fragment/client/CallQueryFragment.kt @@ -1,6 +1,5 @@ package com.idormy.sms.forwarder.fragment.client -import android.util.Log import android.view.LayoutInflater import android.view.View import android.view.ViewGroup @@ -23,6 +22,7 @@ import com.idormy.sms.forwarder.utils.DataProvider import com.idormy.sms.forwarder.utils.EVENT_KEY_PHONE_NUMBERS import com.idormy.sms.forwarder.utils.EVENT_KEY_SIM_SLOT import com.idormy.sms.forwarder.utils.HttpServerUtils +import com.idormy.sms.forwarder.utils.Log import com.idormy.sms.forwarder.utils.PhoneUtils import com.idormy.sms.forwarder.utils.PlaceholderHelper import com.idormy.sms.forwarder.utils.RSACrypt @@ -237,6 +237,7 @@ class CallQueryFragment : BaseFragment() { } catch (e: Exception) { XToastUtils.error(getString(R.string.request_failed) + e.message) e.printStackTrace() + Log.e(TAG, e.toString()) return } postRequest.upString(requestMsg) @@ -252,6 +253,7 @@ class CallQueryFragment : BaseFragment() { } catch (e: Exception) { XToastUtils.error(getString(R.string.request_failed) + e.message) e.printStackTrace() + Log.e(TAG, e.toString()) return } postRequest.upString(requestMsg) @@ -297,6 +299,7 @@ class CallQueryFragment : BaseFragment() { } } catch (e: Exception) { e.printStackTrace() + Log.e(TAG, e.toString()) XToastUtils.error(getString(R.string.request_failed) + response) } } diff --git a/app/src/main/java/com/idormy/sms/forwarder/fragment/client/CloneFragment.kt b/app/src/main/java/com/idormy/sms/forwarder/fragment/client/CloneFragment.kt index cd844c87..dd53c340 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/fragment/client/CloneFragment.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/fragment/client/CloneFragment.kt @@ -3,7 +3,6 @@ package com.idormy.sms.forwarder.fragment.client import android.annotation.SuppressLint import android.content.Intent import android.os.Environment -import android.util.Log import android.view.LayoutInflater import android.view.View import android.view.ViewGroup @@ -269,6 +268,7 @@ class CloneFragment : BaseFragment(), View.OnClickL } catch (e: Exception) { XToastUtils.error(getString(R.string.request_failed) + e.message) e.printStackTrace() + Log.e(TAG, e.toString()) return } postRequest.upString(requestMsg) @@ -284,6 +284,7 @@ class CloneFragment : BaseFragment(), View.OnClickL } catch (e: Exception) { XToastUtils.error(getString(R.string.request_failed) + e.message) e.printStackTrace() + Log.e(TAG, e.toString()) return } postRequest.upString(requestMsg) @@ -322,6 +323,7 @@ class CloneFragment : BaseFragment(), View.OnClickL } } catch (e: Exception) { e.printStackTrace() + Log.e(TAG, e.toString()) XToastUtils.error(getString(R.string.request_failed) + response) } pushCountDownHelper?.finish() @@ -370,6 +372,7 @@ class CloneFragment : BaseFragment(), View.OnClickL } catch (e: Exception) { XToastUtils.error(getString(R.string.request_failed) + e.message) e.printStackTrace() + Log.e(TAG, e.toString()) return } postRequest.upString(requestMsg) @@ -385,6 +388,7 @@ class CloneFragment : BaseFragment(), View.OnClickL } catch (e: Exception) { XToastUtils.error(getString(R.string.request_failed) + e.message) e.printStackTrace() + Log.e(TAG, e.toString()) return } postRequest.upString(requestMsg) @@ -442,6 +446,7 @@ class CloneFragment : BaseFragment(), View.OnClickL } catch (e: Exception) { e.printStackTrace() + Log.e(TAG, e.toString()) XToastUtils.error(getString(R.string.request_failed) + response) } exportCountDownHelper?.finish() diff --git a/app/src/main/java/com/idormy/sms/forwarder/fragment/client/ContactAddFragment.kt b/app/src/main/java/com/idormy/sms/forwarder/fragment/client/ContactAddFragment.kt index b3824705..65ff2bcb 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/fragment/client/ContactAddFragment.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/fragment/client/ContactAddFragment.kt @@ -1,7 +1,6 @@ package com.idormy.sms.forwarder.fragment.client import android.annotation.SuppressLint -import android.util.Log import android.view.LayoutInflater import android.view.View import android.view.ViewGroup @@ -115,6 +114,7 @@ class ContactAddFragment : BaseFragment(), Vie } catch (e: Exception) { XToastUtils.error(getString(R.string.request_failed) + e.message) e.printStackTrace() + Log.e(TAG, e.toString()) return } postRequest.upString(requestMsg) @@ -130,6 +130,7 @@ class ContactAddFragment : BaseFragment(), Vie } catch (e: Exception) { XToastUtils.error(getString(R.string.request_failed) + e.message) e.printStackTrace() + Log.e(TAG, e.toString()) return } postRequest.upString(requestMsg) @@ -169,6 +170,7 @@ class ContactAddFragment : BaseFragment(), Vie } } catch (e: Exception) { e.printStackTrace() + Log.e(TAG, e.toString()) XToastUtils.error(getString(R.string.request_failed) + response) } mCountDownHelper?.finish() diff --git a/app/src/main/java/com/idormy/sms/forwarder/fragment/client/ContactQueryFragment.kt b/app/src/main/java/com/idormy/sms/forwarder/fragment/client/ContactQueryFragment.kt index 0b2d77f2..05071130 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/fragment/client/ContactQueryFragment.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/fragment/client/ContactQueryFragment.kt @@ -1,6 +1,5 @@ package com.idormy.sms.forwarder.fragment.client -import android.util.Log import android.view.LayoutInflater import android.view.View import android.view.ViewGroup @@ -23,6 +22,7 @@ import com.idormy.sms.forwarder.utils.Base64 import com.idormy.sms.forwarder.utils.DataProvider import com.idormy.sms.forwarder.utils.EVENT_KEY_PHONE_NUMBERS import com.idormy.sms.forwarder.utils.HttpServerUtils +import com.idormy.sms.forwarder.utils.Log import com.idormy.sms.forwarder.utils.PhoneUtils import com.idormy.sms.forwarder.utils.PlaceholderHelper import com.idormy.sms.forwarder.utils.RSACrypt @@ -214,6 +214,7 @@ class ContactQueryFragment : BaseFragment() } catch (e: Exception) { XToastUtils.error(getString(R.string.request_failed) + e.message) e.printStackTrace() + Log.e(TAG, e.toString()) return } postRequest.upString(requestMsg) @@ -229,6 +230,7 @@ class ContactQueryFragment : BaseFragment() } catch (e: Exception) { XToastUtils.error(getString(R.string.request_failed) + e.message) e.printStackTrace() + Log.e(TAG, e.toString()) return } postRequest.upString(requestMsg) @@ -268,6 +270,7 @@ class ContactQueryFragment : BaseFragment() } } catch (e: Exception) { e.printStackTrace() + Log.e(TAG, e.toString()) XToastUtils.error(getString(R.string.request_failed) + response) } } diff --git a/app/src/main/java/com/idormy/sms/forwarder/fragment/client/LocationFragment.kt b/app/src/main/java/com/idormy/sms/forwarder/fragment/client/LocationFragment.kt index c9874ea3..f0879a05 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/fragment/client/LocationFragment.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/fragment/client/LocationFragment.kt @@ -1,6 +1,5 @@ package com.idormy.sms.forwarder.fragment.client -import android.util.Log import android.view.LayoutInflater import android.view.View import android.view.ViewGroup @@ -13,6 +12,7 @@ import com.idormy.sms.forwarder.entity.LocationInfo import com.idormy.sms.forwarder.server.model.BaseResponse import com.idormy.sms.forwarder.utils.Base64 import com.idormy.sms.forwarder.utils.HttpServerUtils +import com.idormy.sms.forwarder.utils.Log import com.idormy.sms.forwarder.utils.RSACrypt import com.idormy.sms.forwarder.utils.SM4Crypt import com.idormy.sms.forwarder.utils.SettingUtils @@ -111,6 +111,7 @@ class LocationFragment : BaseFragment(), View.On } catch (e: Exception) { XToastUtils.error(getString(R.string.request_failed) + e.message) e.printStackTrace() + Log.e(TAG, e.toString()) return } postRequest.upString(requestMsg) @@ -126,6 +127,7 @@ class LocationFragment : BaseFragment(), View.On } catch (e: Exception) { XToastUtils.error(getString(R.string.request_failed) + e.message) e.printStackTrace() + Log.e(TAG, e.toString()) return } postRequest.upString(requestMsg) @@ -178,6 +180,7 @@ class LocationFragment : BaseFragment(), View.On } } catch (e: Exception) { e.printStackTrace() + Log.e(TAG, e.toString()) XToastUtils.error(getString(R.string.request_failed) + response) } mCountDownHelper?.finish() diff --git a/app/src/main/java/com/idormy/sms/forwarder/fragment/client/SmsQueryFragment.kt b/app/src/main/java/com/idormy/sms/forwarder/fragment/client/SmsQueryFragment.kt index 02319d95..6e83dc57 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/fragment/client/SmsQueryFragment.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/fragment/client/SmsQueryFragment.kt @@ -1,6 +1,5 @@ package com.idormy.sms.forwarder.fragment.client -import android.util.Log import android.view.LayoutInflater import android.view.View import android.view.ViewGroup @@ -23,6 +22,7 @@ import com.idormy.sms.forwarder.utils.DataProvider.emptySmsInfo import com.idormy.sms.forwarder.utils.EVENT_KEY_PHONE_NUMBERS import com.idormy.sms.forwarder.utils.EVENT_KEY_SIM_SLOT import com.idormy.sms.forwarder.utils.HttpServerUtils +import com.idormy.sms.forwarder.utils.Log import com.idormy.sms.forwarder.utils.PlaceholderHelper import com.idormy.sms.forwarder.utils.RSACrypt import com.idormy.sms.forwarder.utils.SM4Crypt @@ -225,6 +225,7 @@ class SmsQueryFragment : BaseFragment() { } catch (e: Exception) { XToastUtils.error(getString(R.string.request_failed) + e.message) e.printStackTrace() + Log.e(TAG, e.toString()) return } postRequest.upString(requestMsg) @@ -240,6 +241,7 @@ class SmsQueryFragment : BaseFragment() { } catch (e: Exception) { XToastUtils.error(getString(R.string.request_failed) + e.message) e.printStackTrace() + Log.e(TAG, e.toString()) return } postRequest.upString(requestMsg) @@ -285,6 +287,7 @@ class SmsQueryFragment : BaseFragment() { } } catch (e: Exception) { e.printStackTrace() + Log.e(TAG, e.toString()) XToastUtils.error(getString(R.string.request_failed) + response) } } diff --git a/app/src/main/java/com/idormy/sms/forwarder/fragment/client/SmsSendFragment.kt b/app/src/main/java/com/idormy/sms/forwarder/fragment/client/SmsSendFragment.kt index 2fb84325..425e6d15 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/fragment/client/SmsSendFragment.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/fragment/client/SmsSendFragment.kt @@ -1,7 +1,6 @@ package com.idormy.sms.forwarder.fragment.client import android.annotation.SuppressLint -import android.util.Log import android.view.LayoutInflater import android.view.View import android.view.ViewGroup @@ -133,6 +132,7 @@ class SmsSendFragment : BaseFragment(), View.OnCl } catch (e: Exception) { XToastUtils.error(getString(R.string.request_failed) + e.message) e.printStackTrace() + Log.e(TAG, e.toString()) return } postRequest.upString(requestMsg) @@ -148,6 +148,7 @@ class SmsSendFragment : BaseFragment(), View.OnCl } catch (e: Exception) { XToastUtils.error(getString(R.string.request_failed) + e.message) e.printStackTrace() + Log.e(TAG, e.toString()) return } postRequest.upString(requestMsg) @@ -187,6 +188,7 @@ class SmsSendFragment : BaseFragment(), View.OnCl } } catch (e: Exception) { e.printStackTrace() + Log.e(TAG, e.toString()) XToastUtils.error(getString(R.string.request_failed) + response) } mCountDownHelper?.finish() diff --git a/app/src/main/java/com/idormy/sms/forwarder/fragment/client/WolSendFragment.kt b/app/src/main/java/com/idormy/sms/forwarder/fragment/client/WolSendFragment.kt index 2ea758a0..ef0ae5a4 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/fragment/client/WolSendFragment.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/fragment/client/WolSendFragment.kt @@ -1,6 +1,5 @@ package com.idormy.sms.forwarder.fragment.client -import android.util.Log import android.view.LayoutInflater import android.view.View import android.view.ViewGroup @@ -12,6 +11,7 @@ import com.idormy.sms.forwarder.databinding.FragmentClientWolSendBinding import com.idormy.sms.forwarder.server.model.BaseResponse import com.idormy.sms.forwarder.utils.Base64 import com.idormy.sms.forwarder.utils.HttpServerUtils +import com.idormy.sms.forwarder.utils.Log import com.idormy.sms.forwarder.utils.RSACrypt import com.idormy.sms.forwarder.utils.SM4Crypt import com.idormy.sms.forwarder.utils.SettingUtils @@ -168,6 +168,7 @@ class WolSendFragment : BaseFragment(), View.OnCl } catch (e: Exception) { XToastUtils.error(getString(R.string.request_failed) + e.message) e.printStackTrace() + Log.e(TAG, e.toString()) return } postRequest.upString(requestMsg) @@ -183,6 +184,7 @@ class WolSendFragment : BaseFragment(), View.OnCl } catch (e: Exception) { XToastUtils.error(getString(R.string.request_failed) + e.message) e.printStackTrace() + Log.e(TAG, e.toString()) return } postRequest.upString(requestMsg) @@ -225,6 +227,7 @@ class WolSendFragment : BaseFragment(), View.OnCl } } catch (e: Exception) { e.printStackTrace() + Log.e(TAG, e.toString()) XToastUtils.error(getString(R.string.request_failed) + response) } mCountDownHelper?.finish() diff --git a/app/src/main/java/com/idormy/sms/forwarder/fragment/condition/BatteryFragment.kt b/app/src/main/java/com/idormy/sms/forwarder/fragment/condition/BatteryFragment.kt index cbfd74bb..b64eca1e 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/fragment/condition/BatteryFragment.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/fragment/condition/BatteryFragment.kt @@ -3,7 +3,6 @@ package com.idormy.sms.forwarder.fragment.condition import android.annotation.SuppressLint import android.content.Intent import android.os.BatteryManager -import android.util.Log import android.view.LayoutInflater import android.view.View import android.view.ViewGroup @@ -15,6 +14,7 @@ import com.idormy.sms.forwarder.entity.condition.BatterySetting import com.idormy.sms.forwarder.utils.KEY_BACK_DATA_CONDITION import com.idormy.sms.forwarder.utils.KEY_BACK_DESCRIPTION_CONDITION import com.idormy.sms.forwarder.utils.KEY_EVENT_DATA_CONDITION +import com.idormy.sms.forwarder.utils.Log import com.idormy.sms.forwarder.utils.TASK_CONDITION_BATTERY import com.idormy.sms.forwarder.utils.XToastUtils import com.xuexiang.xaop.annotation.SingleClick @@ -120,6 +120,7 @@ class BatteryFragment : BaseFragment(), V } catch (e: Exception) { XToastUtils.error(e.message.toString(), 30000) e.printStackTrace() + Log.e(TAG, "onClick error:$e") } } diff --git a/app/src/main/java/com/idormy/sms/forwarder/fragment/condition/ChargeFragment.kt b/app/src/main/java/com/idormy/sms/forwarder/fragment/condition/ChargeFragment.kt index b8574f49..529978f5 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/fragment/condition/ChargeFragment.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/fragment/condition/ChargeFragment.kt @@ -2,7 +2,6 @@ package com.idormy.sms.forwarder.fragment.condition import android.annotation.SuppressLint import android.content.Intent -import android.util.Log import android.view.LayoutInflater import android.view.View import android.view.ViewGroup @@ -14,6 +13,7 @@ import com.idormy.sms.forwarder.entity.condition.ChargeSetting import com.idormy.sms.forwarder.utils.KEY_BACK_DATA_CONDITION import com.idormy.sms.forwarder.utils.KEY_BACK_DESCRIPTION_CONDITION import com.idormy.sms.forwarder.utils.KEY_EVENT_DATA_CONDITION +import com.idormy.sms.forwarder.utils.Log import com.idormy.sms.forwarder.utils.TASK_CONDITION_CHARGE import com.idormy.sms.forwarder.utils.XToastUtils import com.xuexiang.xaop.annotation.SingleClick @@ -98,6 +98,7 @@ class ChargeFragment : BaseFragment(), Vie } catch (e: Exception) { XToastUtils.error(e.message.toString(), 30000) e.printStackTrace() + Log.e(TAG, "onClick error:$e") } } diff --git a/app/src/main/java/com/idormy/sms/forwarder/fragment/condition/CronFragment.kt b/app/src/main/java/com/idormy/sms/forwarder/fragment/condition/CronFragment.kt index e6f6cc7f..f149994b 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/fragment/condition/CronFragment.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/fragment/condition/CronFragment.kt @@ -4,7 +4,6 @@ import android.annotation.SuppressLint import android.content.Intent import android.text.Editable import android.text.TextWatcher -import android.util.Log import android.view.LayoutInflater import android.view.View import android.view.ViewGroup @@ -19,6 +18,7 @@ import com.idormy.sms.forwarder.utils.KEY_BACK_DATA_CONDITION import com.idormy.sms.forwarder.utils.KEY_BACK_DESCRIPTION_CONDITION import com.idormy.sms.forwarder.utils.KEY_EVENT_DATA_CONDITION import com.idormy.sms.forwarder.utils.KEY_TEST_CONDITION +import com.idormy.sms.forwarder.utils.Log import com.idormy.sms.forwarder.utils.TASK_CONDITION_CRON import com.idormy.sms.forwarder.utils.XToastUtils import com.jeremyliao.liveeventbus.LiveEventBus @@ -188,6 +188,7 @@ class CronFragment : BaseFragment(), View.On } catch (e: Exception) { LiveEventBus.get(KEY_TEST_CONDITION, String::class.java).post(e.message.toString()) e.printStackTrace() + Log.e(TAG, "onClick error:$e") } }.start() return @@ -211,6 +212,7 @@ class CronFragment : BaseFragment(), View.On } catch (e: Exception) { XToastUtils.error(e.message.toString(), 30000) e.printStackTrace() + Log.e(TAG, "onClick error:$e") } } diff --git a/app/src/main/java/com/idormy/sms/forwarder/fragment/condition/LeaveAddressFragment.kt b/app/src/main/java/com/idormy/sms/forwarder/fragment/condition/LeaveAddressFragment.kt index 0f5286bc..06e89692 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/fragment/condition/LeaveAddressFragment.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/fragment/condition/LeaveAddressFragment.kt @@ -4,7 +4,6 @@ import android.annotation.SuppressLint import android.content.Intent import android.text.Editable import android.text.TextWatcher -import android.util.Log import android.view.LayoutInflater import android.view.View import android.view.ViewGroup @@ -19,6 +18,7 @@ import com.idormy.sms.forwarder.utils.HttpServerUtils import com.idormy.sms.forwarder.utils.KEY_BACK_DATA_CONDITION import com.idormy.sms.forwarder.utils.KEY_BACK_DESCRIPTION_CONDITION import com.idormy.sms.forwarder.utils.KEY_EVENT_DATA_CONDITION +import com.idormy.sms.forwarder.utils.Log import com.idormy.sms.forwarder.utils.SettingUtils import com.idormy.sms.forwarder.utils.TASK_CONDITION_LEAVE_ADDRESS import com.idormy.sms.forwarder.utils.XToastUtils @@ -75,6 +75,7 @@ class LeaveAddressFragment : BaseFragment(), V } catch (e: Exception) { XToastUtils.error(e.message.toString(), 30000) e.printStackTrace() + Log.e(TAG, "onClick error:$e") } } diff --git a/app/src/main/java/com/idormy/sms/forwarder/fragment/condition/SimFragment.kt b/app/src/main/java/com/idormy/sms/forwarder/fragment/condition/SimFragment.kt index ddb9e12c..d3dbfaaa 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/fragment/condition/SimFragment.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/fragment/condition/SimFragment.kt @@ -2,7 +2,6 @@ package com.idormy.sms.forwarder.fragment.condition import android.annotation.SuppressLint import android.content.Intent -import android.util.Log import android.view.LayoutInflater import android.view.View import android.view.ViewGroup @@ -14,6 +13,7 @@ import com.idormy.sms.forwarder.entity.condition.SimSetting import com.idormy.sms.forwarder.utils.KEY_BACK_DATA_CONDITION import com.idormy.sms.forwarder.utils.KEY_BACK_DESCRIPTION_CONDITION import com.idormy.sms.forwarder.utils.KEY_EVENT_DATA_CONDITION +import com.idormy.sms.forwarder.utils.Log import com.idormy.sms.forwarder.utils.TASK_CONDITION_SIM import com.idormy.sms.forwarder.utils.XToastUtils import com.xuexiang.xaop.annotation.SingleClick @@ -94,6 +94,7 @@ class SimFragment : BaseFragment(), View.OnCl } catch (e: Exception) { XToastUtils.error(e.message.toString(), 30000) e.printStackTrace() + Log.e(TAG, "onClick error:$e") } } diff --git a/app/src/main/java/com/idormy/sms/forwarder/fragment/condition/ToAddressFragment.kt b/app/src/main/java/com/idormy/sms/forwarder/fragment/condition/ToAddressFragment.kt index 850b123a..19a6c8e1 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/fragment/condition/ToAddressFragment.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/fragment/condition/ToAddressFragment.kt @@ -4,7 +4,6 @@ import android.annotation.SuppressLint import android.content.Intent import android.text.Editable import android.text.TextWatcher -import android.util.Log import android.view.LayoutInflater import android.view.View import android.view.ViewGroup @@ -19,6 +18,7 @@ import com.idormy.sms.forwarder.utils.HttpServerUtils import com.idormy.sms.forwarder.utils.KEY_BACK_DATA_CONDITION import com.idormy.sms.forwarder.utils.KEY_BACK_DESCRIPTION_CONDITION import com.idormy.sms.forwarder.utils.KEY_EVENT_DATA_CONDITION +import com.idormy.sms.forwarder.utils.Log import com.idormy.sms.forwarder.utils.SettingUtils import com.idormy.sms.forwarder.utils.TASK_CONDITION_TO_ADDRESS import com.idormy.sms.forwarder.utils.XToastUtils @@ -75,6 +75,7 @@ class ToAddressFragment : BaseFragment( checkSetting(true) } catch (e: Exception) { e.printStackTrace() + Log.e(TAG, "initViews error:$e") } } @@ -111,6 +112,7 @@ class ToAddressFragment : BaseFragment( } } catch (e: Exception) { e.printStackTrace() + Log.e(TAG, "afterTextChanged error:$e") } } }) @@ -128,6 +130,7 @@ class ToAddressFragment : BaseFragment( } } catch (e: Exception) { e.printStackTrace() + Log.e(TAG, "afterTextChanged error:$e") } } }) @@ -145,6 +148,7 @@ class ToAddressFragment : BaseFragment( } } catch (e: Exception) { e.printStackTrace() + Log.e(TAG, "afterTextChanged error:$e") } } }) @@ -156,6 +160,7 @@ class ToAddressFragment : BaseFragment( checkSetting(true) } catch (e: Exception) { e.printStackTrace() + Log.e(TAG, "afterTextChanged error:$e") } } }) @@ -205,6 +210,7 @@ class ToAddressFragment : BaseFragment( } catch (e: Exception) { XToastUtils.error(e.message.toString(), 30000) e.printStackTrace() + Log.e(TAG, "onClick error:$e") } } diff --git a/app/src/main/java/com/idormy/sms/forwarder/fragment/senders/BarkFragment.kt b/app/src/main/java/com/idormy/sms/forwarder/fragment/senders/BarkFragment.kt index b1abe693..437b97e2 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/fragment/senders/BarkFragment.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/fragment/senders/BarkFragment.kt @@ -1,7 +1,6 @@ package com.idormy.sms.forwarder.fragment.senders import android.text.TextUtils -import android.util.Log import android.view.LayoutInflater import android.view.View import android.view.ViewGroup @@ -23,6 +22,7 @@ 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.BarkUtils @@ -150,6 +150,7 @@ class BarkFragment : BaseFragment(), View.OnClickLi override fun onError(e: Throwable) { e.printStackTrace() + Log.e(TAG, "onError:$e") } override fun onSuccess(sender: Sender) { @@ -235,6 +236,7 @@ class BarkFragment : BaseFragment(), View.OnClickLi BarkUtils.sendMsg(settingVo, msgInfo) } catch (e: Exception) { e.printStackTrace() + Log.e(TAG, "onClick error:$e") LiveEventBus.get(EVENT_TOAST_ERROR, String::class.java).post(e.message.toString()) } LiveEventBus.get(KEY_SENDER_TEST, String::class.java).post("finish") @@ -277,6 +279,7 @@ class BarkFragment : BaseFragment(), View.OnClickLi } catch (e: Exception) { XToastUtils.error(e.message.toString()) e.printStackTrace() + Log.e(TAG, "onClick error:$e") } } @@ -293,7 +296,7 @@ class BarkFragment : BaseFragment(), View.OnClickLi val sound = binding!!.etSound.text.toString().trim() val badge = binding!!.etBadge.text.toString().trim() val url = binding!!.etUrl.text.toString().trim() - if (!TextUtils.isEmpty(url) && !url.contains("[a-z]+://".toRegex())) { + if (!TextUtils.isEmpty(url) && !url.contains("\\w+://".toRegex())) { throw Exception(getString(R.string.invalid_bark_url)) } val title = binding!!.etTitleTemplate.text.toString().trim() diff --git a/app/src/main/java/com/idormy/sms/forwarder/fragment/senders/DingtalkGroupRobotFragment.kt b/app/src/main/java/com/idormy/sms/forwarder/fragment/senders/DingtalkGroupRobotFragment.kt index 1748da33..f25ff359 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/fragment/senders/DingtalkGroupRobotFragment.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/fragment/senders/DingtalkGroupRobotFragment.kt @@ -1,7 +1,6 @@ package com.idormy.sms.forwarder.fragment.senders import android.text.TextUtils -import android.util.Log import android.view.LayoutInflater import android.view.View import android.view.ViewGroup @@ -25,6 +24,7 @@ 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.DingtalkGroupRobotUtils @@ -115,6 +115,7 @@ class DingtalkGroupRobotFragment : BaseFragment(), View.OnClick override fun onError(e: Throwable) { e.printStackTrace() + Log.e(TAG, "onError:$e") } override fun onSuccess(sender: Sender) { @@ -238,6 +239,7 @@ class EmailFragment : BaseFragment(), View.OnClick EmailUtils.sendMsg(settingVo, msgInfo) } catch (e: Exception) { e.printStackTrace() + Log.e(TAG, "onClick error:$e") LiveEventBus.get(EVENT_TOAST_ERROR, String::class.java).post(e.message.toString()) } LiveEventBus.get(KEY_SENDER_TEST, String::class.java).post("finish") @@ -286,6 +288,7 @@ class EmailFragment : BaseFragment(), View.OnClick } catch (e: Exception) { XToastUtils.error(e.message.toString()) e.printStackTrace() + Log.e(TAG, "onClick error:$e") } } diff --git a/app/src/main/java/com/idormy/sms/forwarder/fragment/senders/FeishuAppFragment.kt b/app/src/main/java/com/idormy/sms/forwarder/fragment/senders/FeishuAppFragment.kt index 01c82fde..e37389df 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/fragment/senders/FeishuAppFragment.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/fragment/senders/FeishuAppFragment.kt @@ -1,7 +1,6 @@ package com.idormy.sms.forwarder.fragment.senders import android.text.TextUtils -import android.util.Log import android.view.LayoutInflater import android.view.View import android.view.ViewGroup @@ -23,6 +22,7 @@ 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.FeishuAppUtils @@ -113,6 +113,7 @@ class FeishuAppFragment : BaseFragment(), View override fun onError(e: Throwable) { e.printStackTrace() + Log.e(TAG, "onError:$e") } override fun onSuccess(sender: Sender) { @@ -184,6 +185,7 @@ class FeishuAppFragment : BaseFragment(), View FeishuAppUtils.sendMsg(settingVo, msgInfo) } catch (e: Exception) { e.printStackTrace() + Log.e(TAG, "onClick error:$e") LiveEventBus.get(EVENT_TOAST_ERROR, String::class.java).post(e.message.toString()) } LiveEventBus.get(KEY_SENDER_TEST, String::class.java).post("finish") @@ -232,6 +234,7 @@ class FeishuAppFragment : BaseFragment(), View } catch (e: Exception) { XToastUtils.error(e.message.toString()) e.printStackTrace() + Log.e(TAG, "onClick error:$e") } } diff --git a/app/src/main/java/com/idormy/sms/forwarder/fragment/senders/FeishuFragment.kt b/app/src/main/java/com/idormy/sms/forwarder/fragment/senders/FeishuFragment.kt index c3297334..7e8e3ff9 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/fragment/senders/FeishuFragment.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/fragment/senders/FeishuFragment.kt @@ -1,7 +1,6 @@ package com.idormy.sms.forwarder.fragment.senders import android.text.TextUtils -import android.util.Log import android.view.LayoutInflater import android.view.View import android.view.ViewGroup @@ -23,6 +22,7 @@ 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.FeishuUtils @@ -113,6 +113,7 @@ class FeishuFragment : BaseFragment(), View.OnCli override fun onError(e: Throwable) { e.printStackTrace() + Log.e(TAG, "onError:$e") } override fun onSuccess(sender: Sender) { @@ -183,6 +184,7 @@ class FeishuFragment : BaseFragment(), View.OnCli FeishuUtils.sendMsg(settingVo, msgInfo) } catch (e: Exception) { e.printStackTrace() + Log.e(TAG, "onClick error:$e") LiveEventBus.get(EVENT_TOAST_ERROR, String::class.java).post(e.message.toString()) } LiveEventBus.get(KEY_SENDER_TEST, String::class.java).post("finish") @@ -231,6 +233,7 @@ class FeishuFragment : BaseFragment(), View.OnCli } catch (e: Exception) { XToastUtils.error(e.message.toString()) e.printStackTrace() + Log.e(TAG, "onClick error:$e") } } diff --git a/app/src/main/java/com/idormy/sms/forwarder/fragment/senders/GotifyFragment.kt b/app/src/main/java/com/idormy/sms/forwarder/fragment/senders/GotifyFragment.kt index 008d0f09..9dd0ea2e 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/fragment/senders/GotifyFragment.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/fragment/senders/GotifyFragment.kt @@ -1,7 +1,6 @@ package com.idormy.sms.forwarder.fragment.senders import android.text.TextUtils -import android.util.Log import android.view.LayoutInflater import android.view.View import android.view.ViewGroup @@ -23,6 +22,7 @@ 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.GotifyUtils @@ -113,6 +113,7 @@ class GotifyFragment : BaseFragment(), View.OnCli override fun onError(e: Throwable) { e.printStackTrace() + Log.e(TAG, "onError $e") } override fun onSuccess(sender: Sender) { @@ -182,6 +183,7 @@ class GotifyFragment : BaseFragment(), View.OnCli GotifyUtils.sendMsg(settingVo, msgInfo) } catch (e: Exception) { e.printStackTrace() + Log.e(TAG, "onClick error:$e") LiveEventBus.get(EVENT_TOAST_ERROR, String::class.java).post(e.message.toString()) } LiveEventBus.get(KEY_SENDER_TEST, String::class.java).post("finish") @@ -230,6 +232,7 @@ class GotifyFragment : BaseFragment(), View.OnCli } catch (e: Exception) { XToastUtils.error(e.message.toString()) e.printStackTrace() + Log.e(TAG, "onClick error:$e") } } diff --git a/app/src/main/java/com/idormy/sms/forwarder/fragment/senders/PushplusFragment.kt b/app/src/main/java/com/idormy/sms/forwarder/fragment/senders/PushplusFragment.kt index 6a4193f7..8a99c119 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/fragment/senders/PushplusFragment.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/fragment/senders/PushplusFragment.kt @@ -1,7 +1,6 @@ package com.idormy.sms.forwarder.fragment.senders import android.text.TextUtils -import android.util.Log import android.view.LayoutInflater import android.view.View import android.view.ViewGroup @@ -24,6 +23,7 @@ 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.PushplusUtils @@ -114,6 +114,7 @@ class PushplusFragment : BaseFragment(), View.O override fun onError(e: Throwable) { e.printStackTrace() + Log.e(TAG, "onError:$e") } override fun onSuccess(sender: Sender) { @@ -202,6 +203,7 @@ class PushplusFragment : BaseFragment(), View.O PushplusUtils.sendMsg(settingVo, msgInfo) } catch (e: Exception) { e.printStackTrace() + Log.e(TAG, "onClick error:$e") LiveEventBus.get(EVENT_TOAST_ERROR, String::class.java).post(e.message.toString()) } LiveEventBus.get(KEY_SENDER_TEST, String::class.java).post("finish") @@ -250,6 +252,7 @@ class PushplusFragment : BaseFragment(), View.O } catch (e: Exception) { XToastUtils.error(e.message.toString()) e.printStackTrace() + Log.e(TAG, "onClick error:$e") } } diff --git a/app/src/main/java/com/idormy/sms/forwarder/fragment/senders/ServerchanFragment.kt b/app/src/main/java/com/idormy/sms/forwarder/fragment/senders/ServerchanFragment.kt index c3da11ed..691b7ea4 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/fragment/senders/ServerchanFragment.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/fragment/senders/ServerchanFragment.kt @@ -1,7 +1,6 @@ package com.idormy.sms.forwarder.fragment.senders import android.text.TextUtils -import android.util.Log import android.view.LayoutInflater import android.view.View import android.view.ViewGroup @@ -21,6 +20,7 @@ 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.ServerchanUtils @@ -111,6 +111,7 @@ class ServerchanFragment : BaseFragment(), Vi override fun onError(e: Throwable) { e.printStackTrace() + Log.e(TAG, "onError:$e") } override fun onSuccess(sender: Sender) { @@ -155,6 +156,7 @@ class ServerchanFragment : BaseFragment(), Vi ServerchanUtils.sendMsg(settingVo, msgInfo) } catch (e: Exception) { e.printStackTrace() + Log.e(TAG, "onClick: $e") LiveEventBus.get(EVENT_TOAST_ERROR, String::class.java).post(e.message.toString()) } LiveEventBus.get(KEY_SENDER_TEST, String::class.java).post("finish") @@ -203,6 +205,7 @@ class ServerchanFragment : BaseFragment(), Vi } catch (e: Exception) { XToastUtils.error(e.message.toString()) e.printStackTrace() + Log.e(TAG, "onClick: $e") } } diff --git a/app/src/main/java/com/idormy/sms/forwarder/fragment/senders/SmsFragment.kt b/app/src/main/java/com/idormy/sms/forwarder/fragment/senders/SmsFragment.kt index b5d00d31..2fc196ec 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/fragment/senders/SmsFragment.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/fragment/senders/SmsFragment.kt @@ -1,7 +1,6 @@ package com.idormy.sms.forwarder.fragment.senders import android.text.TextUtils -import android.util.Log import android.view.LayoutInflater import android.view.View import android.view.ViewGroup @@ -26,6 +25,7 @@ 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.SmsUtils @@ -139,6 +139,7 @@ class SmsFragment : BaseFragment(), View.OnClickList override fun onError(e: Throwable) { e.printStackTrace() + Log.e(TAG, "onError:$e") } override fun onSuccess(sender: Sender) { @@ -189,6 +190,7 @@ class SmsFragment : BaseFragment(), View.OnClickList SmsUtils.sendMsg(settingVo, msgInfo) } catch (e: Exception) { e.printStackTrace() + Log.e(TAG, "onError:$e") LiveEventBus.get(EVENT_TOAST_ERROR, String::class.java).post(e.message.toString()) } LiveEventBus.get(KEY_SENDER_TEST, String::class.java).post("finish") @@ -237,6 +239,7 @@ class SmsFragment : BaseFragment(), View.OnClickList } catch (e: Exception) { XToastUtils.error(e.message.toString()) e.printStackTrace() + Log.e(TAG, "onClick: $e") } } diff --git a/app/src/main/java/com/idormy/sms/forwarder/fragment/senders/SocketFragment.kt b/app/src/main/java/com/idormy/sms/forwarder/fragment/senders/SocketFragment.kt index 4c4579ad..1fca07da 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/fragment/senders/SocketFragment.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/fragment/senders/SocketFragment.kt @@ -1,7 +1,6 @@ package com.idormy.sms.forwarder.fragment.senders import android.text.TextUtils -import android.util.Log import android.view.LayoutInflater import android.view.View import android.view.ViewGroup @@ -23,6 +22,7 @@ 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.SocketUtils @@ -108,6 +108,7 @@ class SocketFragment : BaseFragment(), View.OnCli override fun onError(e: Throwable) { e.printStackTrace() + Log.e(TAG, "onError:$e") } override fun onSuccess(sender: Sender) { @@ -169,6 +170,7 @@ class SocketFragment : BaseFragment(), View.OnCli SocketUtils.sendMsg(settingVo, msgInfo) } catch (e: Exception) { e.printStackTrace() + Log.e(TAG, "onClick: $e") LiveEventBus.get(EVENT_TOAST_ERROR, String::class.java).post(e.message.toString()) } LiveEventBus.get(KEY_SENDER_TEST, String::class.java).post("finish") @@ -211,6 +213,7 @@ class SocketFragment : BaseFragment(), View.OnCli } catch (e: Exception) { XToastUtils.error(e.message.toString()) e.printStackTrace() + Log.e(TAG, "onClick: $e") } } diff --git a/app/src/main/java/com/idormy/sms/forwarder/fragment/senders/TelegramFragment.kt b/app/src/main/java/com/idormy/sms/forwarder/fragment/senders/TelegramFragment.kt index 5551d7d6..e76adbee 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/fragment/senders/TelegramFragment.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/fragment/senders/TelegramFragment.kt @@ -1,7 +1,6 @@ package com.idormy.sms.forwarder.fragment.senders import android.text.TextUtils -import android.util.Log import android.view.LayoutInflater import android.view.View import android.view.ViewGroup @@ -23,6 +22,7 @@ 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.TelegramUtils @@ -114,6 +114,7 @@ class TelegramFragment : BaseFragment(), View.O override fun onError(e: Throwable) { e.printStackTrace() + Log.e(TAG, "onError:$e") } override fun onSuccess(sender: Sender) { @@ -181,6 +182,7 @@ class TelegramFragment : BaseFragment(), View.O TelegramUtils.sendMsg(settingVo, msgInfo) } catch (e: Exception) { e.printStackTrace() + Log.e(TAG, "onClick: $e") LiveEventBus.get(EVENT_TOAST_ERROR, String::class.java).post(e.message.toString()) } LiveEventBus.get(KEY_SENDER_TEST, String::class.java).post("finish") @@ -229,6 +231,7 @@ class TelegramFragment : BaseFragment(), View.O } catch (e: Exception) { XToastUtils.error(e.message.toString()) e.printStackTrace() + Log.e(TAG, "onClick: $e") } } diff --git a/app/src/main/java/com/idormy/sms/forwarder/fragment/senders/UrlSchemeFragment.kt b/app/src/main/java/com/idormy/sms/forwarder/fragment/senders/UrlSchemeFragment.kt index d06dd13b..8819d2f5 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/fragment/senders/UrlSchemeFragment.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/fragment/senders/UrlSchemeFragment.kt @@ -5,7 +5,6 @@ import android.content.pm.PackageManager import android.content.pm.ResolveInfo import android.net.Uri import android.text.TextUtils -import android.util.Log import android.view.LayoutInflater import android.view.View import android.view.ViewGroup @@ -26,6 +25,7 @@ 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.UrlSchemeUtils @@ -116,6 +116,7 @@ class UrlSchemeFragment : BaseFragment(), View override fun onError(e: Throwable) { e.printStackTrace() + Log.e(TAG, "onError:$e") } override fun onSuccess(sender: Sender) { @@ -158,6 +159,7 @@ class UrlSchemeFragment : BaseFragment(), View UrlSchemeUtils.sendMsg(settingVo, msgInfo) } catch (e: Exception) { e.printStackTrace() + Log.e(TAG, "onClick: $e") LiveEventBus.get(EVENT_TOAST_ERROR, String::class.java).post(e.message.toString()) } LiveEventBus.get(KEY_SENDER_TEST, String::class.java).post("finish") @@ -206,6 +208,7 @@ class UrlSchemeFragment : BaseFragment(), View } catch (e: Exception) { XToastUtils.error(e.message.toString()) e.printStackTrace() + Log.e(TAG, "onClick: $e") } } diff --git a/app/src/main/java/com/idormy/sms/forwarder/fragment/senders/WebhookFragment.kt b/app/src/main/java/com/idormy/sms/forwarder/fragment/senders/WebhookFragment.kt index 4bb966f8..00e38987 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/fragment/senders/WebhookFragment.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/fragment/senders/WebhookFragment.kt @@ -1,7 +1,6 @@ package com.idormy.sms.forwarder.fragment.senders import android.text.TextUtils -import android.util.Log import android.view.LayoutInflater import android.view.View import android.view.ViewGroup @@ -25,6 +24,7 @@ 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.WebhookUtils @@ -117,6 +117,7 @@ class WebhookFragment : BaseFragment(), View.OnC override fun onError(e: Throwable) { e.printStackTrace() + Log.e(TAG, "onError:$e") } override fun onSuccess(sender: Sender) { @@ -177,6 +178,7 @@ class WebhookFragment : BaseFragment(), View.OnC WebhookUtils.sendMsg(settingVo, msgInfo) } catch (e: Exception) { e.printStackTrace() + Log.e(TAG, "onClick: $e") LiveEventBus.get(EVENT_TOAST_ERROR, String::class.java).post(e.message.toString()) } LiveEventBus.get(KEY_SENDER_TEST, String::class.java).post("finish") @@ -226,6 +228,7 @@ class WebhookFragment : BaseFragment(), View.OnC } catch (e: Exception) { XToastUtils.error(e.message.toString()) e.printStackTrace() + Log.e(TAG, "onClick: $e") } } 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 83fdcf67..64de66d2 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 @@ -2,7 +2,6 @@ package com.idormy.sms.forwarder.fragment.senders import android.annotation.SuppressLint import android.text.TextUtils -import android.util.Log import android.view.LayoutInflater import android.view.View import android.view.ViewGroup @@ -109,6 +108,7 @@ class WeworkAgentFragment : BaseFragment(), override fun onError(e: Throwable) { e.printStackTrace() + Log.e(TAG, "onError:$e") } override fun onSuccess(sender: Sender) { @@ -209,6 +209,7 @@ class WeworkAgentFragment : BaseFragment(), WeworkAgentUtils.sendMsg(settingVo, msgInfo) } catch (e: Exception) { e.printStackTrace() + Log.e(TAG, "onClick: $e") LiveEventBus.get(EVENT_TOAST_ERROR, String::class.java).post(e.message.toString()) } LiveEventBus.get(KEY_SENDER_TEST, String::class.java).post("finish") @@ -257,6 +258,7 @@ class WeworkAgentFragment : BaseFragment(), } catch (e: Exception) { XToastUtils.error(e.message.toString()) e.printStackTrace() + Log.e(TAG, "onClick: $e") } } diff --git a/app/src/main/java/com/idormy/sms/forwarder/fragment/senders/WeworkRobotFragment.kt b/app/src/main/java/com/idormy/sms/forwarder/fragment/senders/WeworkRobotFragment.kt index be73f8ff..4677a637 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/fragment/senders/WeworkRobotFragment.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/fragment/senders/WeworkRobotFragment.kt @@ -1,7 +1,6 @@ package com.idormy.sms.forwarder.fragment.senders import android.text.TextUtils -import android.util.Log import android.view.LayoutInflater import android.view.View import android.view.ViewGroup @@ -24,6 +23,7 @@ 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.WeworkRobotUtils @@ -114,6 +114,7 @@ class WeworkRobotFragment : BaseFragment(), override fun onError(e: Throwable) { e.printStackTrace() + Log.e(TAG, "onError:$e") } override fun onSuccess(sender: Sender) { @@ -178,6 +179,7 @@ class WeworkRobotFragment : BaseFragment(), WeworkRobotUtils.sendMsg(settingVo, msgInfo) } catch (e: Exception) { e.printStackTrace() + Log.e(TAG, "onClick: $e") LiveEventBus.get(EVENT_TOAST_ERROR, String::class.java).post(e.message.toString()) } LiveEventBus.get(KEY_SENDER_TEST, String::class.java).post("finish") @@ -226,6 +228,7 @@ class WeworkRobotFragment : BaseFragment(), } catch (e: Exception) { XToastUtils.error(e.message.toString()) e.printStackTrace() + Log.e(TAG, "onClick: $e") } } diff --git a/app/src/main/java/com/idormy/sms/forwarder/receiver/BatteryReceiver.kt b/app/src/main/java/com/idormy/sms/forwarder/receiver/BatteryReceiver.kt index 2dd7c787..405831a1 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/receiver/BatteryReceiver.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/receiver/BatteryReceiver.kt @@ -4,7 +4,7 @@ import android.content.BroadcastReceiver import android.content.Context import android.content.Intent import android.os.BatteryManager -import android.util.Log +import com.idormy.sms.forwarder.utils.Log import androidx.work.OneTimeWorkRequestBuilder import androidx.work.WorkManager import androidx.work.workDataOf diff --git a/app/src/main/java/com/idormy/sms/forwarder/receiver/BootCompletedReceiver.kt b/app/src/main/java/com/idormy/sms/forwarder/receiver/BootCompletedReceiver.kt index 0896dac2..61369c36 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/receiver/BootCompletedReceiver.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/receiver/BootCompletedReceiver.kt @@ -3,8 +3,8 @@ package com.idormy.sms.forwarder.receiver import android.content.BroadcastReceiver import android.content.Context import android.content.Intent -import android.util.Log import com.idormy.sms.forwarder.activity.SplashActivity +import com.idormy.sms.forwarder.utils.Log @Suppress("PrivatePropertyName") class BootCompletedReceiver : BroadcastReceiver() { @@ -22,6 +22,7 @@ class BootCompletedReceiver : BroadcastReceiver() { context.startActivity(intent1) } catch (e: Exception) { e.printStackTrace() + Log.e(TAG, "强制重启APP失败:${e.message}") } } diff --git a/app/src/main/java/com/idormy/sms/forwarder/receiver/CactusReceiver.kt b/app/src/main/java/com/idormy/sms/forwarder/receiver/CactusReceiver.kt index a8e6055d..6554cb89 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/receiver/CactusReceiver.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/receiver/CactusReceiver.kt @@ -3,7 +3,7 @@ package com.idormy.sms.forwarder.receiver import android.content.BroadcastReceiver import android.content.Context import android.content.Intent -import android.util.Log +import com.idormy.sms.forwarder.utils.Log import com.gyf.cactus.Cactus import com.idormy.sms.forwarder.App diff --git a/app/src/main/java/com/idormy/sms/forwarder/receiver/CallReceiver.kt b/app/src/main/java/com/idormy/sms/forwarder/receiver/CallReceiver.kt index a4ef9d1a..a85b88d8 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/receiver/CallReceiver.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/receiver/CallReceiver.kt @@ -1,7 +1,7 @@ package com.idormy.sms.forwarder.receiver import android.content.Context -import android.util.Log +import com.idormy.sms.forwarder.utils.Log import androidx.work.OneTimeWorkRequestBuilder import androidx.work.WorkManager import androidx.work.workDataOf diff --git a/app/src/main/java/com/idormy/sms/forwarder/receiver/LockScreenReceiver.kt b/app/src/main/java/com/idormy/sms/forwarder/receiver/LockScreenReceiver.kt index a7321e64..bd0cff80 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/receiver/LockScreenReceiver.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/receiver/LockScreenReceiver.kt @@ -3,7 +3,7 @@ package com.idormy.sms.forwarder.receiver import android.content.BroadcastReceiver import android.content.Context import android.content.Intent -import android.util.Log +import com.idormy.sms.forwarder.utils.Log import androidx.work.OneTimeWorkRequestBuilder import androidx.work.WorkManager import androidx.work.workDataOf diff --git a/app/src/main/java/com/idormy/sms/forwarder/receiver/NetworkChangeReceiver.kt b/app/src/main/java/com/idormy/sms/forwarder/receiver/NetworkChangeReceiver.kt index 4f160978..17ef584a 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/receiver/NetworkChangeReceiver.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/receiver/NetworkChangeReceiver.kt @@ -12,11 +12,11 @@ import android.net.wifi.WifiManager import android.os.Build import android.telephony.SubscriptionInfo import android.telephony.SubscriptionManager -import android.util.Log import androidx.annotation.RequiresApi import androidx.work.OneTimeWorkRequestBuilder import androidx.work.WorkManager import androidx.work.workDataOf +import com.idormy.sms.forwarder.utils.Log import com.idormy.sms.forwarder.utils.TASK_CONDITION_NETWORK import com.idormy.sms.forwarder.utils.TaskWorker import com.idormy.sms.forwarder.utils.task.TaskUtils @@ -139,6 +139,7 @@ class NetworkChangeReceiver : BroadcastReceiver() { SubscriptionManager.getSlotIndex(subscriptionId) } catch (e: Exception) { e.printStackTrace() + Log.e(TAG, "getSlotIndex: $e") -1 } } @@ -160,6 +161,7 @@ class NetworkChangeReceiver : BroadcastReceiver() { } ?: defaultDataSlotId } catch (e: Exception) { e.printStackTrace() + Log.e(TAG, "getDataSubId: $e") defaultDataSlotId } } @@ -176,6 +178,7 @@ class NetworkChangeReceiver : BroadcastReceiver() { return subInfo?.simSlotIndex ?: -1 } catch (e: Exception) { e.printStackTrace() + Log.e(TAG, "getDefaultDataSlotId: $e") } } } else { @@ -188,6 +191,7 @@ class NetworkChangeReceiver : BroadcastReceiver() { return getSlotId.invoke(null, subId) as? Int ?: -1 } catch (e: Exception) { e.printStackTrace() + Log.e(TAG, "getDefaultDataSlotId: $e") } } return -1 diff --git a/app/src/main/java/com/idormy/sms/forwarder/receiver/PhoneStateReceiver.kt b/app/src/main/java/com/idormy/sms/forwarder/receiver/PhoneStateReceiver.kt index e84e8ce6..3201b784 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/receiver/PhoneStateReceiver.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/receiver/PhoneStateReceiver.kt @@ -4,7 +4,7 @@ import android.content.BroadcastReceiver import android.content.Context import android.content.Intent import android.telephony.TelephonyManager -import android.util.Log +import com.idormy.sms.forwarder.utils.Log import com.idormy.sms.forwarder.utils.SettingUtils import java.util.Date diff --git a/app/src/main/java/com/idormy/sms/forwarder/receiver/SimStateReceiver.kt b/app/src/main/java/com/idormy/sms/forwarder/receiver/SimStateReceiver.kt index 28e93b7c..5155d6eb 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/receiver/SimStateReceiver.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/receiver/SimStateReceiver.kt @@ -4,7 +4,7 @@ import android.content.BroadcastReceiver import android.content.Context import android.content.Intent import android.telephony.TelephonyManager -import android.util.Log +import com.idormy.sms.forwarder.utils.Log import androidx.work.OneTimeWorkRequestBuilder import androidx.work.WorkManager import androidx.work.workDataOf diff --git a/app/src/main/java/com/idormy/sms/forwarder/receiver/SmsReceiver.kt b/app/src/main/java/com/idormy/sms/forwarder/receiver/SmsReceiver.kt index 301e44aa..8a66eec0 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/receiver/SmsReceiver.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/receiver/SmsReceiver.kt @@ -4,13 +4,13 @@ import android.content.BroadcastReceiver import android.content.Context import android.content.Intent import android.provider.Telephony -import android.util.Log import androidx.work.OneTimeWorkRequestBuilder import androidx.work.WorkManager import androidx.work.workDataOf import com.google.gson.Gson import com.idormy.sms.forwarder.App import com.idormy.sms.forwarder.entity.MsgInfo +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.SmsCommandUtils @@ -193,6 +193,7 @@ class SmsReceiver : BroadcastReceiver() { } catch (e: Exception) { e.printStackTrace() + Log.e(TAG, "handleMmsData: $e") } } diff --git a/app/src/main/java/com/idormy/sms/forwarder/server/component/AppExceptionResolver.kt b/app/src/main/java/com/idormy/sms/forwarder/server/component/AppExceptionResolver.kt index f12bd435..2eb1417a 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/server/component/AppExceptionResolver.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/server/component/AppExceptionResolver.kt @@ -1,8 +1,8 @@ package com.idormy.sms.forwarder.server.component -import android.util.Log import com.idormy.sms.forwarder.utils.Base64 import com.idormy.sms.forwarder.utils.HttpServerUtils +import com.idormy.sms.forwarder.utils.Log import com.idormy.sms.forwarder.utils.RSACrypt import com.idormy.sms.forwarder.utils.SM4Crypt import com.xuexiang.xutil.data.ConvertTools @@ -22,7 +22,7 @@ class AppExceptionResolver : ExceptionResolver { private val TAG: String = "AppExceptionResolver" override fun onResolve(request: HttpRequest, response: HttpResponse, e: Throwable) { - e.printStackTrace() + Log.e(TAG, "onResolve: ${e.message}") if (e is HttpException) { //response.status = e.statusCode //异常捕获返回 http 200 @@ -41,12 +41,14 @@ class AppExceptionResolver : ExceptionResolver { resp = RSACrypt.encryptByPrivateKey(resp, privateKey) response.setBody(StringBody(resp)) } + 3 -> { val sm4Key = ConvertTools.hexStringToByteArray(HttpServerUtils.serverSm4Key) //response = Base64.encode(response.toByteArray()) val encryptCBC = SM4Crypt.encrypt(resp.toByteArray(), sm4Key) response.setBody(StringBody(ConvertTools.bytes2HexString(encryptCBC))) } + else -> { response.setBody(JsonBody(resp)) } diff --git a/app/src/main/java/com/idormy/sms/forwarder/server/component/AppMessageConverter.kt b/app/src/main/java/com/idormy/sms/forwarder/server/component/AppMessageConverter.kt index 5edd759b..0f5bb77c 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/server/component/AppMessageConverter.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/server/component/AppMessageConverter.kt @@ -1,6 +1,6 @@ package com.idormy.sms.forwarder.server.component -import android.util.Log +import com.idormy.sms.forwarder.utils.Log import com.google.gson.GsonBuilder import com.idormy.sms.forwarder.server.model.BaseRequest import com.idormy.sms.forwarder.utils.Base64 diff --git a/app/src/main/java/com/idormy/sms/forwarder/server/component/IntegerDefaultAdapter.kt b/app/src/main/java/com/idormy/sms/forwarder/server/component/IntegerDefaultAdapter.kt index 63ec2bf7..14a1b8ee 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/server/component/IntegerDefaultAdapter.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/server/component/IntegerDefaultAdapter.kt @@ -3,6 +3,7 @@ package com.idormy.sms.forwarder.server.component import com.google.gson.TypeAdapter import com.google.gson.stream.JsonReader import com.google.gson.stream.JsonWriter +import com.idormy.sms.forwarder.utils.Log import java.io.IOException class IntegerDefaultAdapter : TypeAdapter() { @@ -17,6 +18,7 @@ class IntegerDefaultAdapter : TypeAdapter() { Integer.valueOf(jsonReader.nextString()) } catch (e: NumberFormatException) { e.printStackTrace() + Log.e("IntegerDefaultAdapter", "read: ${e.message}") -1 } } diff --git a/app/src/main/java/com/idormy/sms/forwarder/server/component/LoggerInterceptor.kt b/app/src/main/java/com/idormy/sms/forwarder/server/component/LoggerInterceptor.kt index 8cd05546..57978a44 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/server/component/LoggerInterceptor.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/server/component/LoggerInterceptor.kt @@ -1,6 +1,6 @@ package com.idormy.sms.forwarder.server.component -import android.util.Log +import com.idormy.sms.forwarder.utils.Log import com.idormy.sms.forwarder.R import com.idormy.sms.forwarder.utils.HttpServerUtils import com.xuexiang.xutil.resource.ResUtils.getString diff --git a/app/src/main/java/com/idormy/sms/forwarder/server/controller/BatteryController.kt b/app/src/main/java/com/idormy/sms/forwarder/server/controller/BatteryController.kt index 59f30cdf..6330dc7f 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/server/controller/BatteryController.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/server/controller/BatteryController.kt @@ -2,7 +2,7 @@ package com.idormy.sms.forwarder.server.controller import android.content.Intent import android.content.IntentFilter -import android.util.Log +import com.idormy.sms.forwarder.utils.Log import com.idormy.sms.forwarder.App import com.idormy.sms.forwarder.entity.BatteryInfo import com.idormy.sms.forwarder.server.model.BaseRequest diff --git a/app/src/main/java/com/idormy/sms/forwarder/server/controller/CallController.kt b/app/src/main/java/com/idormy/sms/forwarder/server/controller/CallController.kt index fbdcea8d..41e0fbd3 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/server/controller/CallController.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/server/controller/CallController.kt @@ -1,6 +1,6 @@ package com.idormy.sms.forwarder.server.controller -import android.util.Log +import com.idormy.sms.forwarder.utils.Log import com.idormy.sms.forwarder.entity.CallInfo import com.idormy.sms.forwarder.server.model.BaseRequest import com.idormy.sms.forwarder.server.model.CallQueryData diff --git a/app/src/main/java/com/idormy/sms/forwarder/server/controller/CloneController.kt b/app/src/main/java/com/idormy/sms/forwarder/server/controller/CloneController.kt index cbc3c20f..8080822c 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/server/controller/CloneController.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/server/controller/CloneController.kt @@ -1,6 +1,6 @@ package com.idormy.sms.forwarder.server.controller -import android.util.Log +import com.idormy.sms.forwarder.utils.Log import com.idormy.sms.forwarder.R import com.idormy.sms.forwarder.entity.CloneInfo import com.idormy.sms.forwarder.server.model.BaseRequest diff --git a/app/src/main/java/com/idormy/sms/forwarder/server/controller/ConfigController.kt b/app/src/main/java/com/idormy/sms/forwarder/server/controller/ConfigController.kt index addf8df1..00c5e961 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/server/controller/ConfigController.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/server/controller/ConfigController.kt @@ -1,6 +1,6 @@ package com.idormy.sms.forwarder.server.controller -import android.util.Log +import com.idormy.sms.forwarder.utils.Log import com.idormy.sms.forwarder.App import com.idormy.sms.forwarder.server.model.BaseRequest import com.idormy.sms.forwarder.server.model.ConfigData diff --git a/app/src/main/java/com/idormy/sms/forwarder/server/controller/ContactController.kt b/app/src/main/java/com/idormy/sms/forwarder/server/controller/ContactController.kt index 2b3b2367..ce4a6f54 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/server/controller/ContactController.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/server/controller/ContactController.kt @@ -3,7 +3,7 @@ package com.idormy.sms.forwarder.server.controller import android.content.ContentUris import android.content.ContentValues import android.provider.ContactsContract -import android.util.Log +import com.idormy.sms.forwarder.utils.Log import com.idormy.sms.forwarder.entity.ContactInfo import com.idormy.sms.forwarder.server.model.BaseRequest import com.idormy.sms.forwarder.server.model.ContactQueryData diff --git a/app/src/main/java/com/idormy/sms/forwarder/server/controller/LocationController.kt b/app/src/main/java/com/idormy/sms/forwarder/server/controller/LocationController.kt index 824ac025..9144bd17 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/server/controller/LocationController.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/server/controller/LocationController.kt @@ -1,7 +1,7 @@ package com.idormy.sms.forwarder.server.controller import android.annotation.SuppressLint -import android.util.Log +import com.idormy.sms.forwarder.utils.Log import com.idormy.sms.forwarder.entity.LocationInfo import com.idormy.sms.forwarder.server.model.BaseRequest import com.idormy.sms.forwarder.server.model.EmptyData diff --git a/app/src/main/java/com/idormy/sms/forwarder/server/controller/SmsController.kt b/app/src/main/java/com/idormy/sms/forwarder/server/controller/SmsController.kt index c587d099..9cd085a3 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/server/controller/SmsController.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/server/controller/SmsController.kt @@ -2,7 +2,7 @@ package com.idormy.sms.forwarder.server.controller import android.Manifest import android.content.pm.PackageManager -import android.util.Log +import com.idormy.sms.forwarder.utils.Log import androidx.core.app.ActivityCompat import com.idormy.sms.forwarder.App import com.idormy.sms.forwarder.R diff --git a/app/src/main/java/com/idormy/sms/forwarder/server/controller/WolController.kt b/app/src/main/java/com/idormy/sms/forwarder/server/controller/WolController.kt index 4ffd6a87..fab2b547 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/server/controller/WolController.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/server/controller/WolController.kt @@ -1,6 +1,6 @@ package com.idormy.sms.forwarder.server.controller -import android.util.Log +import com.idormy.sms.forwarder.utils.Log import com.idormy.sms.forwarder.server.model.BaseRequest import com.idormy.sms.forwarder.server.model.WolData import com.xuexiang.xrouter.utils.TextUtils diff --git a/app/src/main/java/com/idormy/sms/forwarder/service/ForegroundService.kt b/app/src/main/java/com/idormy/sms/forwarder/service/ForegroundService.kt index 1e539e94..ffd63ba7 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/service/ForegroundService.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/service/ForegroundService.kt @@ -8,7 +8,6 @@ import android.graphics.Color import android.os.Build import android.os.IBinder import android.text.TextUtils -import android.util.Log import androidx.core.app.NotificationCompat import androidx.lifecycle.Observer import androidx.work.OneTimeWorkRequestBuilder @@ -56,6 +55,7 @@ class ForegroundService : Service() { override fun onError(e: Throwable) { e.printStackTrace() + Log.e(TAG, "onError: ${e.message}") LiveEventBus.get(EVENT_FRPC_RUNNING_ERROR, String::class.java).post(uid) } @@ -169,6 +169,7 @@ class ForegroundService : Service() { isRunning = true } catch (e: Exception) { e.printStackTrace() + Log.e(TAG, "startForegroundService: $e") isRunning = false } @@ -182,6 +183,7 @@ class ForegroundService : Service() { isRunning = false } catch (e: Exception) { e.printStackTrace() + Log.e(TAG, "stopForegroundService: $e") isRunning = true } } diff --git a/app/src/main/java/com/idormy/sms/forwarder/service/HttpServerService.kt b/app/src/main/java/com/idormy/sms/forwarder/service/HttpServerService.kt index 6ac713f2..20f45273 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/service/HttpServerService.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/service/HttpServerService.kt @@ -3,7 +3,7 @@ package com.idormy.sms.forwarder.service import android.app.Service import android.content.Intent import android.os.IBinder -import android.util.Log +import com.idormy.sms.forwarder.utils.Log import com.idormy.sms.forwarder.utils.HTTP_SERVER_PORT import com.idormy.sms.forwarder.utils.HTTP_SERVER_TIME_OUT import com.idormy.sms.forwarder.utils.SettingUtils diff --git a/app/src/main/java/com/idormy/sms/forwarder/service/LocationService.kt b/app/src/main/java/com/idormy/sms/forwarder/service/LocationService.kt index 236d61e9..e3e7ccf3 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/service/LocationService.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/service/LocationService.kt @@ -5,7 +5,6 @@ import android.app.Service import android.content.Intent import android.location.Location import android.os.IBinder -import android.util.Log import androidx.work.OneTimeWorkRequestBuilder import androidx.work.WorkManager import androidx.work.workDataOf @@ -13,6 +12,7 @@ import com.google.gson.Gson import com.idormy.sms.forwarder.App import com.idormy.sms.forwarder.entity.LocationInfo import com.idormy.sms.forwarder.utils.HttpServerUtils +import com.idormy.sms.forwarder.utils.Log import com.idormy.sms.forwarder.utils.SettingUtils import com.idormy.sms.forwarder.utils.TASK_CONDITION_LEAVE_ADDRESS import com.idormy.sms.forwarder.utils.TASK_CONDITION_TO_ADDRESS @@ -175,6 +175,7 @@ class LocationService : Service(), Server.ServerListener { } } catch (e: Exception) { e.printStackTrace() + Log.e(TAG, "startService: ${e.message}") isRunning = false } } @@ -194,6 +195,7 @@ class LocationService : Service(), Server.ServerListener { false } catch (e: Exception) { e.printStackTrace() + Log.e(TAG, "stopService: ${e.message}") true } } diff --git a/app/src/main/java/com/idormy/sms/forwarder/service/NotificationService.kt b/app/src/main/java/com/idormy/sms/forwarder/service/NotificationService.kt index 930490ed..e66e5e1b 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/service/NotificationService.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/service/NotificationService.kt @@ -6,7 +6,6 @@ import android.net.Uri import android.os.Build import android.service.notification.NotificationListenerService import android.service.notification.StatusBarNotification -import android.util.Log import androidx.work.OneTimeWorkRequestBuilder import androidx.work.WorkManager import androidx.work.workDataOf @@ -14,6 +13,7 @@ import com.google.gson.Gson import com.idormy.sms.forwarder.core.Core import com.idormy.sms.forwarder.database.entity.Rule import com.idormy.sms.forwarder.entity.MsgInfo +import com.idormy.sms.forwarder.utils.Log import com.idormy.sms.forwarder.utils.PACKAGE_NAME import com.idormy.sms.forwarder.utils.SettingUtils import com.idormy.sms.forwarder.utils.Worker @@ -117,6 +117,7 @@ class NotificationService : NotificationListenerService() { } } catch (e: Exception) { e.printStackTrace() + Log.e(TAG, "Failed to get scheme from PendingIntent", e) } //不处理空消息(标题跟内容都为空) diff --git a/app/src/main/java/com/idormy/sms/forwarder/utils/AppUtils.kt b/app/src/main/java/com/idormy/sms/forwarder/utils/AppUtils.kt index 8881433d..961a114f 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/utils/AppUtils.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/utils/AppUtils.kt @@ -43,6 +43,7 @@ object AppUtils { appsInfo.add(appInfo) } catch (e: PackageManager.NameNotFoundException) { e.printStackTrace() + Log.e("AppUtils", "getAppsInfo: ${e.message}") } } @@ -63,6 +64,7 @@ object AppUtils { pi.versionCode } catch (e: PackageManager.NameNotFoundException) { e.printStackTrace() + Log.e("AppUtils", "getAppVersionCode: ${e.message}") -1 } } @@ -85,6 +87,7 @@ object AppUtils { pi.versionName } catch (e: PackageManager.NameNotFoundException) { e.printStackTrace() + Log.e("AppUtils", "getAppVersionName: ${e.message}") "" } } diff --git a/app/src/main/java/com/idormy/sms/forwarder/utils/CacheUtils.kt b/app/src/main/java/com/idormy/sms/forwarder/utils/CacheUtils.kt index 8fde334e..2bebc322 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/utils/CacheUtils.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/utils/CacheUtils.kt @@ -23,6 +23,7 @@ class CacheUtils private constructor() { getFormatSize(cacheSize.toDouble()) } catch (e: Exception) { e.printStackTrace() + Log.e("CacheUtils", "getTotalCacheSize: ${e.message}") "0KB" } } @@ -69,6 +70,7 @@ class CacheUtils private constructor() { } } catch (e: Exception) { e.printStackTrace() + Log.e("CacheUtils", "getFolderSize: ${e.message}") } return size } diff --git a/app/src/main/java/com/idormy/sms/forwarder/utils/CommonUtils.kt b/app/src/main/java/com/idormy/sms/forwarder/utils/CommonUtils.kt index 4d5e27bf..339dddde 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/utils/CommonUtils.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/utils/CommonUtils.kt @@ -301,6 +301,7 @@ class CommonUtils private constructor() { } } catch (e: Exception) { e.printStackTrace() + Log.e("CommonUtils", "getIPAddresses: ${e.message}") } return ipAddresses 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 2366222e..63777c7d 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 @@ -77,6 +77,7 @@ const val SP_SMS_TEMPLATE = "sms_template" const val SP_PURE_CLIENT_MODE = "enable_pure_client_mode" const val SP_PURE_TASK_MODE = "enable_pure_task_mode" +const val SP_DEBUG_MODE = "enable_debug_mode" const val SP_LOCATION = "enable_location" const val SP_LOCATION_ACCURACY = "location_accuracy" const val SP_LOCATION_POWER_REQUIREMENT = "location_power_requirement" diff --git a/app/src/main/java/com/idormy/sms/forwarder/utils/HttpServerUtils.kt b/app/src/main/java/com/idormy/sms/forwarder/utils/HttpServerUtils.kt index 77dbe3d4..b0888426 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/utils/HttpServerUtils.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/utils/HttpServerUtils.kt @@ -3,7 +3,6 @@ package com.idormy.sms.forwarder.utils import android.text.TextUtils import android.util.Base64 -import android.util.Log import com.google.gson.Gson import com.idormy.sms.forwarder.R import com.idormy.sms.forwarder.core.Core @@ -197,6 +196,7 @@ class HttpServerUtils private constructor() { true } catch (e: Exception) { e.printStackTrace() + Log.e("restoreSettings", e.message.toString()) throw HttpException(500, e.message) //false } diff --git a/app/src/main/java/com/idormy/sms/forwarder/utils/Log.kt b/app/src/main/java/com/idormy/sms/forwarder/utils/Log.kt new file mode 100644 index 00000000..5106dfc1 --- /dev/null +++ b/app/src/main/java/com/idormy/sms/forwarder/utils/Log.kt @@ -0,0 +1,153 @@ +package com.idormy.sms.forwarder.utils + +import android.content.Context +import com.idormy.sms.forwarder.App +import java.io.File +import java.io.FileWriter +import java.text.SimpleDateFormat +import java.util.Date +import java.util.Locale +import android.util.Log as AndroidLog + +@Suppress("unused", "MemberVisibilityCanBePrivate") +object Log { + const val ASSERT = 7 + const val DEBUG = 3 + const val ERROR = 6 + const val INFO = 4 + const val VERBOSE = 2 + const val WARN = 5 + + private const val TAG = "Logger" + private var logFile: File? = null + private lateinit var appContext: Context + private var initDate: String = "" + + fun init(context: Context) { + appContext = context + createLogFile() + } + + private fun createLogFile() { + val currentDate = SimpleDateFormat("yyyy-MM-dd", Locale.getDefault()).format(Date()) + if (currentDate != initDate || logFile == null || !logFile!!.exists()) { + initDate = currentDate + val logPath = appContext.cacheDir.absolutePath + "/logs" + val logDir = File(logPath) + if (!logDir.exists()) logDir.mkdirs() + logFile = File(logPath, "log_$currentDate.txt") + } + } + + fun logToFile(level: String, tag: String, message: String) { + if (!::appContext.isInitialized) { + throw IllegalStateException("Log not initialized. Call init(context) first.") + } + + if (!App.isDebug) return + + createLogFile() + + logFile?.let { file -> + try { + val logTimeStamp = SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS", Locale.getDefault()).format(Date()) + val logWriter = FileWriter(file, true) + logWriter.append("$logTimeStamp | $level | $tag | $message\n\n") + logWriter.close() + } catch (e: Exception) { + AndroidLog.e(TAG, "Error writing to file: ${e.message}") + } + } + } + + fun v(tag: String, message: String) { + AndroidLog.v(tag, message) + logToFile("V", tag, message) + } + + fun v(tag: String, message: String, throwable: Throwable) { + val logMessage = "${message}\n${getStackTraceString(throwable)}" + AndroidLog.v(tag, logMessage) + logToFile("V", tag, logMessage) + } + + fun d(tag: String, message: String) { + AndroidLog.d(tag, message) + logToFile("D", tag, message) + } + + fun d(tag: String, message: String, throwable: Throwable) { + val logMessage = "${message}\n${getStackTraceString(throwable)}" + AndroidLog.d(tag, logMessage) + logToFile("D", tag, logMessage) + } + + fun i(tag: String, message: String) { + AndroidLog.d(tag, message) + logToFile("I", tag, message) + } + + fun i(tag: String, message: String, throwable: Throwable) { + val logMessage = "${message}\n${getStackTraceString(throwable)}" + AndroidLog.d(tag, logMessage) + logToFile("I", tag, logMessage) + } + + fun w(tag: String, message: String) { + AndroidLog.w(tag, message) + logToFile("W", tag, message) + } + + fun w(tag: String, throwable: Throwable) { + val logMessage = getStackTraceString(throwable) + AndroidLog.w(tag, logMessage) + logToFile("W", tag, logMessage) + } + + fun w(tag: String, message: String, throwable: Throwable) { + val logMessage = "${message}\n${getStackTraceString(throwable)}" + AndroidLog.w(tag, logMessage) + logToFile("W", tag, logMessage) + } + + fun e(tag: String, message: String) { + AndroidLog.e(tag, message) + logToFile("E", tag, message) + } + + fun e(tag: String, message: String, throwable: Throwable) { + val logMessage = "${message}\n${getStackTraceString(throwable)}" + AndroidLog.e(tag, logMessage) + logToFile("E", tag, logMessage) + } + + fun wtf(tag: String, message: String) { + AndroidLog.wtf(tag, message) + logToFile("WTF", tag, message) + } + + fun wtf(tag: String, throwable: Throwable) { + val logMessage = getStackTraceString(throwable) + AndroidLog.wtf(tag, logMessage) + logToFile("WTF", tag, logMessage) + } + + fun wtf(tag: String, message: String, throwable: Throwable) { + val logMessage = "${message}\n${getStackTraceString(throwable)}" + AndroidLog.wtf(tag, logMessage) + logToFile("WTF", tag, logMessage) + } + + fun getStackTraceString(throwable: Throwable): String { + return AndroidLog.getStackTraceString(throwable) + } + + fun isLoggable(tag: String?, level: Int): Boolean { + return AndroidLog.isLoggable(tag, level) + } + + fun println(priority: Int, tag: String, message: String) { + AndroidLog.println(priority, tag, message) + logToFile("P", tag, message) + } +} diff --git a/app/src/main/java/com/idormy/sms/forwarder/utils/PhoneUtils.kt b/app/src/main/java/com/idormy/sms/forwarder/utils/PhoneUtils.kt index cbb2dc92..15854d13 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/utils/PhoneUtils.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/utils/PhoneUtils.kt @@ -15,7 +15,6 @@ import android.telephony.SmsManager import android.telephony.SubscriptionInfo import android.telephony.SubscriptionManager import android.text.TextUtils -import android.util.Log import androidx.annotation.RequiresPermission import androidx.core.app.ActivityCompat import com.idormy.sms.forwarder.App @@ -90,6 +89,7 @@ class PhoneUtils private constructor() { } } catch (e: java.lang.Exception) { e.printStackTrace() + Log.e(TAG, "getSimMultiInfo:", e) } //仍然获取不到/只获取到一个->取出备注 if (infoList.isEmpty() || infoList.size == 1) { @@ -152,6 +152,7 @@ class PhoneUtils private constructor() { Settings.Secure.getString(XUtil.getContentResolver(), "bluetooth_name") } catch (e: Exception) { e.printStackTrace() + Log.e(TAG, "getDeviceName:", e) Build.BRAND + " " + Build.MODEL } } @@ -499,6 +500,7 @@ class PhoneUtils private constructor() { } } catch (e: java.lang.Exception) { e.printStackTrace() + Log.e(TAG, "getSmsInfoList:", e) } return smsInfoList } diff --git a/app/src/main/java/com/idormy/sms/forwarder/utils/RuleLine.kt b/app/src/main/java/com/idormy/sms/forwarder/utils/RuleLine.kt index 146fb8b1..023e57d6 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/utils/RuleLine.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/utils/RuleLine.kt @@ -1,6 +1,5 @@ package com.idormy.sms.forwarder.utils -import android.util.Log import com.idormy.sms.forwarder.R import com.idormy.sms.forwarder.entity.MsgInfo import com.xuexiang.xutil.resource.ResUtils.getString diff --git a/app/src/main/java/com/idormy/sms/forwarder/utils/RuleLineUtils.kt b/app/src/main/java/com/idormy/sms/forwarder/utils/RuleLineUtils.kt index 4b29a81e..1d874573 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/utils/RuleLineUtils.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/utils/RuleLineUtils.kt @@ -1,6 +1,5 @@ package com.idormy.sms.forwarder.utils -import android.util.Log import com.idormy.sms.forwarder.R import com.idormy.sms.forwarder.entity.MsgInfo import com.xuexiang.xutil.resource.ResUtils.getString diff --git a/app/src/main/java/com/idormy/sms/forwarder/utils/SendUtils.kt b/app/src/main/java/com/idormy/sms/forwarder/utils/SendUtils.kt index 660f766f..94006403 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/utils/SendUtils.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/utils/SendUtils.kt @@ -1,7 +1,6 @@ package com.idormy.sms.forwarder.utils import android.annotation.SuppressLint -import android.util.Log import androidx.work.OneTimeWorkRequestBuilder import androidx.work.WorkManager import androidx.work.workDataOf @@ -44,7 +43,6 @@ object SendUtils { //重试发送消息 fun retrySendMsg(logId: Long) { val item = Core.logs.getOne(logId) - val msgInfo = MsgInfo(item.msg.type, item.msg.from, item.msg.content, item.msg.time, item.msg.simInfo, item.msg.simSlot, item.msg.subId) Log.d(TAG, "msgInfo = $msgInfo") @@ -190,6 +188,7 @@ object SendUtils { } } catch (e: Exception) { e.printStackTrace() + Log.e(TAG, "sendMsgSender: ${e.message}") updateLogs(logId, 0, e.message.toString()) senderLogic(0, msgInfo, rule, senderIndex, msgId) } 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 483f5031..3f38bf07 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 @@ -122,6 +122,9 @@ class SettingUtils private constructor() { //是否纯任务模式 var enablePureTaskMode: Boolean by SharedPreference(SP_PURE_TASK_MODE, false) + //是否调试模式 + var enableDebugMode: Boolean by SharedPreference(SP_DEBUG_MODE, false) + //是否启用定位功能 var enableLocation: Boolean by SharedPreference(SP_LOCATION, false) diff --git a/app/src/main/java/com/idormy/sms/forwarder/utils/SmsCommandUtils.kt b/app/src/main/java/com/idormy/sms/forwarder/utils/SmsCommandUtils.kt index 4cc1317a..849642ec 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/utils/SmsCommandUtils.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/utils/SmsCommandUtils.kt @@ -5,7 +5,6 @@ import android.content.Context import android.content.Intent import android.content.pm.PackageManager import android.net.wifi.WifiManager -import android.util.Log import androidx.core.app.ActivityCompat import com.google.gson.Gson import com.idormy.sms.forwarder.App diff --git a/app/src/main/java/com/idormy/sms/forwarder/utils/mail/MailSender.kt b/app/src/main/java/com/idormy/sms/forwarder/utils/mail/MailSender.kt index 6c51ab65..0deaac2c 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/utils/mail/MailSender.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/utils/mail/MailSender.kt @@ -1,6 +1,6 @@ package com.idormy.sms.forwarder.utils.mail -import android.util.Log +import com.idormy.sms.forwarder.utils.Log import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.GlobalScope import kotlinx.coroutines.async diff --git a/app/src/main/java/com/idormy/sms/forwarder/utils/mail/MailUtil.kt b/app/src/main/java/com/idormy/sms/forwarder/utils/mail/MailUtil.kt index 36503ffc..83e17463 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/utils/mail/MailUtil.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/utils/mail/MailUtil.kt @@ -2,17 +2,21 @@ package com.idormy.sms.forwarder.utils.mail import android.text.Html import android.text.Spanned -import android.util.Log +import com.idormy.sms.forwarder.utils.Log import com.xuexiang.xrouter.utils.TextUtils import java.io.UnsupportedEncodingException -import java.util.* +import java.util.Properties import javax.activation.DataHandler import javax.activation.FileDataSource import javax.mail.Authenticator import javax.mail.Message import javax.mail.PasswordAuthentication import javax.mail.Session -import javax.mail.internet.* +import javax.mail.internet.InternetAddress +import javax.mail.internet.MimeBodyPart +import javax.mail.internet.MimeMessage +import javax.mail.internet.MimeMultipart +import javax.mail.internet.MimeUtility /** * desc: 邮件帮助类 @@ -56,6 +60,7 @@ object MailUtil { nickname = MimeUtility.encodeText(nickname) } catch (e: UnsupportedEncodingException) { e.printStackTrace() + Log.e("createMailMessage", "UnsupportedEncodingException = ${e.message}") } Log.d("createMailMessage", "nickname = $nickname") @@ -86,6 +91,7 @@ object MailUtil { subject = MimeUtility.encodeText(subject) } catch (e: UnsupportedEncodingException) { e.printStackTrace() + Log.e("createMailMessage", "UnsupportedEncodingException = ${e.message}") } // 邮件内容 diff --git a/app/src/main/java/com/idormy/sms/forwarder/utils/sdkinit/UMengInit.kt b/app/src/main/java/com/idormy/sms/forwarder/utils/sdkinit/UMengInit.kt index 30caf364..2dbf0b65 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/utils/sdkinit/UMengInit.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/utils/sdkinit/UMengInit.kt @@ -2,6 +2,7 @@ package com.idormy.sms.forwarder.utils.sdkinit import android.app.Application import android.content.Context +import com.idormy.sms.forwarder.App import com.idormy.sms.forwarder.BuildConfig import com.idormy.sms.forwarder.utils.SettingUtils.Companion.isAgreePrivacy //import com.meituan.android.walle.WalleChannelReader @@ -37,7 +38,7 @@ class UMengInit private constructor() { */ private fun initApplication(application: Application?) { // 运营统计数据调试运行时不初始化 - if (com.idormy.sms.forwarder.App.isDebug) { + if (App.isDebug) { return } UMConfigure.setLogEnabled(false) @@ -53,7 +54,7 @@ class UMengInit private constructor() { */ private fun realInit(application: Application?) { // 运营统计数据调试运行时不初始化 - if (com.idormy.sms.forwarder.App.isDebug) { + if (App.isDebug) { return } //初始化组件化基础库, 注意: 即使您已经在AndroidManifest.xml中配置过appkey和channel值,也需要在App代码中调用初始化接口(如需要使用AndroidManifest.xml中配置好的appkey和channel值,UMConfigure.init调用中appkey和channel参数请置为null)。 diff --git a/app/src/main/java/com/idormy/sms/forwarder/utils/sdkinit/XBasicLibInit.kt b/app/src/main/java/com/idormy/sms/forwarder/utils/sdkinit/XBasicLibInit.kt index 2e640948..7a0dfb25 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/utils/sdkinit/XBasicLibInit.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/utils/sdkinit/XBasicLibInit.kt @@ -1,6 +1,7 @@ package com.idormy.sms.forwarder.utils.sdkinit import android.app.Application +import com.idormy.sms.forwarder.App import com.idormy.sms.forwarder.core.BaseActivity import com.idormy.sms.forwarder.utils.XToastUtils import com.xuexiang.xaop.XAOP @@ -47,7 +48,7 @@ class XBasicLibInit private constructor() { */ private fun initXUtil(application: Application) { XUtil.init(application) - XUtil.debug(com.idormy.sms.forwarder.App.isDebug) + XUtil.debug(App.isDebug) } /** @@ -57,7 +58,7 @@ class XBasicLibInit private constructor() { //初始化网络请求框架,必须首先执行 XHttpSDK.init(application) //需要调试的时候执行 - if (com.idormy.sms.forwarder.App.isDebug) { + if (App.isDebug) { XHttpSDK.debug() } // XHttpSDK.debug(new CustomLoggingInterceptor()); //设置自定义的日志打印拦截器 @@ -74,7 +75,7 @@ class XBasicLibInit private constructor() { */ private fun initXPage(application: Application) { PageConfig.getInstance() - .debug(com.idormy.sms.forwarder.App.isDebug) + .debug(App.isDebug) .setContainActivityClazz(BaseActivity::class.java) .init(application) } @@ -84,7 +85,7 @@ class XBasicLibInit private constructor() { */ private fun initXAOP(application: Application) { XAOP.init(application) - XAOP.debug(com.idormy.sms.forwarder.App.isDebug) + XAOP.debug(App.isDebug) //设置动态申请权限切片 申请权限被拒绝的事件响应监听 XAOP.setOnPermissionDeniedListener { permissionsDenied: List? -> XToastUtils.error( @@ -98,7 +99,7 @@ class XBasicLibInit private constructor() { */ private fun initXUI(application: Application) { XUI.init(application) - XUI.debug(com.idormy.sms.forwarder.App.isDebug) + XUI.debug(App.isDebug) } /** @@ -106,7 +107,7 @@ class XBasicLibInit private constructor() { */ private fun initRouter(application: Application) { // 这两行必须写在init之前,否则这些配置在init过程中将无效 - if (com.idormy.sms.forwarder.App.isDebug) { + if (App.isDebug) { XRouter.openLog() // 打印日志 XRouter.openDebug() // 开启调试模式(如果在InstantRun模式下运行,必须开启调试模式!线上版本需要关闭,否则有安全风险) } diff --git a/app/src/main/java/com/idormy/sms/forwarder/utils/sdkinit/XUpdateInit.kt b/app/src/main/java/com/idormy/sms/forwarder/utils/sdkinit/XUpdateInit.kt index 6554bfc1..0f68d281 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/utils/sdkinit/XUpdateInit.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/utils/sdkinit/XUpdateInit.kt @@ -2,6 +2,7 @@ package com.idormy.sms.forwarder.utils.sdkinit import android.app.Application import android.content.Context +import com.idormy.sms.forwarder.App import com.idormy.sms.forwarder.utils.KEY_UPDATE_URL import com.idormy.sms.forwarder.utils.update.CustomUpdateDownloader import com.idormy.sms.forwarder.utils.update.CustomUpdateFailureListener @@ -26,7 +27,7 @@ class XUpdateInit private constructor() { */ fun init(application: Application) { XUpdate.get() - .debug(com.idormy.sms.forwarder.App.isDebug) + .debug(App.isDebug) //默认设置只在wifi下检查版本更新 .isWifiOnly(false) //默认设置使用get请求检查版本 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 508d08f5..6c1e1373 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 @@ -2,7 +2,7 @@ package com.idormy.sms.forwarder.utils.sender import android.text.TextUtils import android.util.Base64 -import android.util.Log +import com.idormy.sms.forwarder.utils.Log import com.google.gson.Gson import com.idormy.sms.forwarder.database.entity.Rule import com.idormy.sms.forwarder.entity.MsgInfo diff --git a/app/src/main/java/com/idormy/sms/forwarder/utils/sender/DingtalkGroupRobotUtils.kt b/app/src/main/java/com/idormy/sms/forwarder/utils/sender/DingtalkGroupRobotUtils.kt index b3a8bc84..b61449dc 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/utils/sender/DingtalkGroupRobotUtils.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/utils/sender/DingtalkGroupRobotUtils.kt @@ -2,7 +2,7 @@ package com.idormy.sms.forwarder.utils.sender import android.text.TextUtils import android.util.Base64 -import android.util.Log +import com.idormy.sms.forwarder.utils.Log import com.google.gson.Gson import com.idormy.sms.forwarder.database.entity.Rule import com.idormy.sms.forwarder.entity.MsgInfo 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 bf372fab..5d5a6f87 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 @@ -1,7 +1,7 @@ package com.idormy.sms.forwarder.utils.sender import android.text.TextUtils -import android.util.Log +import com.idormy.sms.forwarder.utils.Log import com.google.gson.Gson import com.idormy.sms.forwarder.R import com.idormy.sms.forwarder.database.entity.Rule 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 72823f08..4893ebe3 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 @@ -1,6 +1,6 @@ package com.idormy.sms.forwarder.utils.sender -import android.util.Log +import com.idormy.sms.forwarder.utils.Log import com.idormy.sms.forwarder.R import com.idormy.sms.forwarder.database.entity.Rule import com.idormy.sms.forwarder.entity.MsgInfo 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 ad3d0d7f..23293f35 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 @@ -1,7 +1,7 @@ package com.idormy.sms.forwarder.utils.sender import android.text.TextUtils -import android.util.Log +import com.idormy.sms.forwarder.utils.Log import com.google.gson.Gson import com.idormy.sms.forwarder.R import com.idormy.sms.forwarder.database.entity.Rule 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 5c8185cd..31c8baee 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 @@ -1,7 +1,7 @@ package com.idormy.sms.forwarder.utils.sender import android.util.Base64 -import android.util.Log +import com.idormy.sms.forwarder.utils.Log import com.google.gson.Gson import com.idormy.sms.forwarder.database.entity.Rule import com.idormy.sms.forwarder.entity.MsgInfo 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 406eea79..6e14012a 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 @@ -1,6 +1,6 @@ package com.idormy.sms.forwarder.utils.sender -import android.util.Log +import com.idormy.sms.forwarder.utils.Log import com.google.gson.Gson import com.idormy.sms.forwarder.database.entity.Rule import com.idormy.sms.forwarder.entity.MsgInfo 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 93cfb46b..844c19ad 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 @@ -1,7 +1,7 @@ package com.idormy.sms.forwarder.utils.sender import android.text.TextUtils -import android.util.Log +import com.idormy.sms.forwarder.utils.Log import com.google.gson.Gson import com.idormy.sms.forwarder.R import com.idormy.sms.forwarder.database.entity.Rule 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 d292e42c..72843fc6 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 @@ -1,7 +1,7 @@ package com.idormy.sms.forwarder.utils.sender import android.text.TextUtils -import android.util.Log +import com.idormy.sms.forwarder.utils.Log import com.google.gson.Gson import com.idormy.sms.forwarder.database.entity.Rule import com.idormy.sms.forwarder.entity.MsgInfo 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 23a54e61..30b3933b 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,7 +2,7 @@ package com.idormy.sms.forwarder.utils.sender import android.Manifest import android.content.pm.PackageManager -import android.util.Log +import com.idormy.sms.forwarder.utils.Log import androidx.core.app.ActivityCompat import com.idormy.sms.forwarder.App import com.idormy.sms.forwarder.R 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 3ea332f6..d07b5279 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 @@ -3,12 +3,12 @@ package com.idormy.sms.forwarder.utils.sender import android.annotation.SuppressLint import android.text.TextUtils import android.util.Base64 -import android.util.Log import com.google.gson.Gson import com.idormy.sms.forwarder.database.entity.Rule import com.idormy.sms.forwarder.entity.MsgInfo import com.idormy.sms.forwarder.entity.setting.SocketSetting import com.idormy.sms.forwarder.utils.AppUtils +import com.idormy.sms.forwarder.utils.Log import com.idormy.sms.forwarder.utils.SendUtils import com.idormy.sms.forwarder.utils.SettingUtils import org.eclipse.paho.client.mqttv3.IMqttDeliveryToken @@ -91,6 +91,7 @@ class SocketUtils { SendUtils.senderLogic(status, msgInfo, rule, senderIndex, msgId) } catch (e: Exception) { e.printStackTrace() + Log.e(TAG, "An error occurred: ${e.message}") val status = 0 SendUtils.updateLogs(logId, status, e.message.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 45891adb..945cef6d 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 @@ -1,7 +1,7 @@ package com.idormy.sms.forwarder.utils.sender import android.text.TextUtils -import android.util.Log +import com.idormy.sms.forwarder.utils.Log import com.google.gson.Gson import com.idormy.sms.forwarder.database.entity.Rule import com.idormy.sms.forwarder.entity.MsgInfo diff --git a/app/src/main/java/com/idormy/sms/forwarder/utils/sender/UrlSchemeUtils.kt b/app/src/main/java/com/idormy/sms/forwarder/utils/sender/UrlSchemeUtils.kt index 9174ef09..9d87e78b 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/utils/sender/UrlSchemeUtils.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/utils/sender/UrlSchemeUtils.kt @@ -3,11 +3,11 @@ package com.idormy.sms.forwarder.utils.sender import android.annotation.SuppressLint import android.content.Intent import android.net.Uri -import android.util.Log import com.idormy.sms.forwarder.database.entity.Rule import com.idormy.sms.forwarder.entity.MsgInfo import com.idormy.sms.forwarder.entity.setting.UrlSchemeSetting import com.idormy.sms.forwarder.utils.AppUtils +import com.idormy.sms.forwarder.utils.Log import com.idormy.sms.forwarder.utils.SendUtils import com.idormy.sms.forwarder.utils.SettingUtils import com.xuexiang.xutil.XUtil @@ -65,7 +65,7 @@ class UrlSchemeUtils private constructor() { SendUtils.senderLogic(2, msgInfo, rule, senderIndex, msgId) } catch (e: Exception) { e.printStackTrace() - Log.e(TAG, e.message.toString()) + Log.e(TAG, "sendMsg error:$e") SendUtils.updateLogs(logId, 0, e.message.toString()) SendUtils.senderLogic(0, msgInfo, rule, senderIndex, msgId) } diff --git a/app/src/main/java/com/idormy/sms/forwarder/utils/sender/WebhookUtils.kt b/app/src/main/java/com/idormy/sms/forwarder/utils/sender/WebhookUtils.kt index 412f4e6b..7bd92822 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/utils/sender/WebhookUtils.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/utils/sender/WebhookUtils.kt @@ -3,7 +3,7 @@ package com.idormy.sms.forwarder.utils.sender import android.annotation.SuppressLint import android.text.TextUtils import android.util.Base64 -import android.util.Log +import com.idormy.sms.forwarder.utils.Log import com.google.gson.Gson import com.idormy.sms.forwarder.database.entity.Rule import com.idormy.sms.forwarder.entity.MsgInfo 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 557467d9..5d755484 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 @@ -1,7 +1,7 @@ package com.idormy.sms.forwarder.utils.sender import android.text.TextUtils -import android.util.Log +import com.idormy.sms.forwarder.utils.Log import com.google.gson.Gson import com.idormy.sms.forwarder.R import com.idormy.sms.forwarder.database.entity.Rule 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 cdda84ca..bea17616 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 @@ -1,6 +1,6 @@ package com.idormy.sms.forwarder.utils.sender -import android.util.Log +import com.idormy.sms.forwarder.utils.Log import com.google.gson.Gson import com.idormy.sms.forwarder.database.entity.Rule import com.idormy.sms.forwarder.entity.MsgInfo diff --git a/app/src/main/java/com/idormy/sms/forwarder/utils/task/ConditionUtils.kt b/app/src/main/java/com/idormy/sms/forwarder/utils/task/ConditionUtils.kt index 1cf1bb72..3699ac29 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/utils/task/ConditionUtils.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/utils/task/ConditionUtils.kt @@ -1,7 +1,6 @@ package com.idormy.sms.forwarder.utils.task import android.os.BatteryManager -import android.util.Log import com.google.gson.Gson import com.idormy.sms.forwarder.entity.TaskSetting import com.idormy.sms.forwarder.entity.condition.BatterySetting @@ -12,6 +11,7 @@ import com.idormy.sms.forwarder.entity.condition.LockScreenSetting import com.idormy.sms.forwarder.entity.condition.NetworkSetting import com.idormy.sms.forwarder.entity.condition.SimSetting import com.idormy.sms.forwarder.utils.DELAY_TIME_AFTER_SIM_READY +import com.idormy.sms.forwarder.utils.Log 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_CRON diff --git a/app/src/main/java/com/idormy/sms/forwarder/utils/task/CronJobScheduler.kt b/app/src/main/java/com/idormy/sms/forwarder/utils/task/CronJobScheduler.kt index 59ef11aa..57527cab 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/utils/task/CronJobScheduler.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/utils/task/CronJobScheduler.kt @@ -1,11 +1,11 @@ package com.idormy.sms.forwarder.utils.task -import android.util.Log import androidx.work.Data import androidx.work.ExistingWorkPolicy import androidx.work.OneTimeWorkRequestBuilder import androidx.work.WorkManager import com.idormy.sms.forwarder.database.entity.Task +import com.idormy.sms.forwarder.utils.Log import com.idormy.sms.forwarder.utils.TaskWorker import com.idormy.sms.forwarder.workers.CronWorker import java.util.concurrent.TimeUnit diff --git a/app/src/main/java/com/idormy/sms/forwarder/utils/tinker/TinkerLoadLibrary.kt b/app/src/main/java/com/idormy/sms/forwarder/utils/tinker/TinkerLoadLibrary.kt index 77db9157..28438348 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/utils/tinker/TinkerLoadLibrary.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/utils/tinker/TinkerLoadLibrary.kt @@ -17,7 +17,7 @@ package com.idormy.sms.forwarder.utils.tinker import android.annotation.SuppressLint import android.os.Build -import android.util.Log +import com.idormy.sms.forwarder.utils.Log import java.io.File import java.io.IOException diff --git a/app/src/main/java/com/idormy/sms/forwarder/workers/ActionWorker.kt b/app/src/main/java/com/idormy/sms/forwarder/workers/ActionWorker.kt index 3d867f39..af0faa53 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/workers/ActionWorker.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/workers/ActionWorker.kt @@ -4,7 +4,6 @@ import android.Manifest import android.content.Context import android.content.Intent import android.content.pm.PackageManager -import android.util.Log import androidx.core.app.ActivityCompat import androidx.work.CoroutineWorker import androidx.work.WorkerParameters @@ -28,6 +27,7 @@ import com.idormy.sms.forwarder.utils.EVENT_TOAST_SUCCESS import com.idormy.sms.forwarder.utils.EVENT_TOAST_WARNING import com.idormy.sms.forwarder.utils.HistoryUtils import com.idormy.sms.forwarder.utils.HttpServerUtils +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.TASK_ACTION_CLEANER @@ -209,6 +209,7 @@ class ActionWorker(context: Context, params: WorkerParameters) : CoroutineWorker } } catch (e: Exception) { e.printStackTrace() + Log.e(TAG, "action.type is ${action.type}, exception: ${e.message}") writeLog("action.type is ${action.type}, exception: ${e.message}") } } diff --git a/app/src/main/java/com/idormy/sms/forwarder/workers/BatteryWorker.kt b/app/src/main/java/com/idormy/sms/forwarder/workers/BatteryWorker.kt index 1a6cd8a0..d4d82cc3 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/workers/BatteryWorker.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/workers/BatteryWorker.kt @@ -1,7 +1,6 @@ package com.idormy.sms.forwarder.workers import android.content.Context -import android.util.Log import androidx.work.CoroutineWorker import androidx.work.Data import androidx.work.OneTimeWorkRequestBuilder @@ -14,6 +13,7 @@ import com.idormy.sms.forwarder.entity.MsgInfo import com.idormy.sms.forwarder.entity.TaskSetting import com.idormy.sms.forwarder.entity.condition.BatterySetting import com.idormy.sms.forwarder.entity.condition.ChargeSetting +import com.idormy.sms.forwarder.utils.Log import com.idormy.sms.forwarder.utils.TASK_CONDITION_BATTERY import com.idormy.sms.forwarder.utils.TASK_CONDITION_CHARGE import com.idormy.sms.forwarder.utils.TaskWorker @@ -27,128 +27,131 @@ class BatteryWorker(context: Context, params: WorkerParameters) : CoroutineWorke private val TAG: String = BatteryWorker::class.java.simpleName override suspend fun doWork(): Result { + try { + when (val conditionType = inputData.getInt(TaskWorker.conditionType, -1)) { - when (val conditionType = inputData.getInt(TaskWorker.conditionType, -1)) { + TASK_CONDITION_BATTERY -> { + val status = inputData.getInt("status", -1) + val levelNew = inputData.getInt("level_new", -1) + val levelOld = inputData.getInt("level_old", -1) + Log.d(TAG, "levelNew: $levelNew, levelOld: $levelOld") + if (levelNew == -1 || levelOld == -1) { + Log.d(TAG, "levelNew or levelOld is -1") + return Result.failure() + } - TASK_CONDITION_BATTERY -> { - val status = inputData.getInt("status", -1) - val levelNew = inputData.getInt("level_new", -1) - val levelOld = inputData.getInt("level_old", -1) - Log.d(TAG, "levelNew: $levelNew, levelOld: $levelOld") - if (levelNew == -1 || levelOld == -1) { - Log.d(TAG, "levelNew or levelOld is -1") + val taskList = AppDatabase.getInstance(App.context).taskDao().getByType(conditionType) + for (task in taskList) { + Log.d(TAG, "task = $task") + + // 根据任务信息执行相应操作 + val conditionList = Gson().fromJson(task.conditions, Array::class.java).toMutableList() + if (conditionList.isEmpty()) { + Log.d(TAG, "TASK-${task.id}:conditionList is empty") + continue + } + val firstCondition = conditionList.firstOrNull() + if (firstCondition == null) { + Log.d(TAG, "TASK-${task.id}:firstCondition is null") + continue + } + + val batterySetting = Gson().fromJson(firstCondition.setting, BatterySetting::class.java) + if (batterySetting == null) { + Log.d(TAG, "TASK-${task.id}:batterySetting is null") + continue + } + + val msg = batterySetting.getMsg(status, levelNew, levelOld, TaskUtils.batteryInfo) + if (msg.isEmpty()) { + Log.d(TAG, "TASK-${task.id}:msg is empty, batterySetting = $batterySetting, status = $status, levelNew = $levelNew, levelOld = $levelOld") + continue + } + + //TODO:判断其他条件是否满足 + + //TODO: 组装消息体 && 执行具体任务 + val msgInfo = MsgInfo("task", task.name, msg, 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 actionRequest = OneTimeWorkRequestBuilder().setInputData(actionData).build() + WorkManager.getInstance().enqueue(actionRequest) + } + + return Result.success() + } + + TASK_CONDITION_CHARGE -> { + val statusNew = inputData.getInt("status_new", -1) + val statusOld = inputData.getInt("status_old", -1) + val pluggedNew = inputData.getInt("plugged_new", -1) + val pluggedOld = inputData.getInt("plugged_old", -1) + Log.d(TAG, "statusNew: $statusNew, statusOld: $statusOld, pluggedNew: $pluggedNew, pluggedOld: $pluggedOld") + if (statusNew == -1 || statusOld == -1 || pluggedNew == -1 || pluggedOld == -1) { + Log.d(TAG, "statusNew or statusOld or pluggedNew or pluggedOld is -1") + return Result.failure() + } + + val taskList = AppDatabase.getInstance(App.context).taskDao().getByType(conditionType) + for (task in taskList) { + Log.d(TAG, "task = $task") + + // 根据任务信息执行相应操作 + val conditionList = Gson().fromJson(task.conditions, Array::class.java).toMutableList() + if (conditionList.isEmpty()) { + Log.d(TAG, "TASK-${task.id}:conditionList is empty") + continue + } + val firstCondition = conditionList.firstOrNull() + if (firstCondition == null) { + Log.d(TAG, "TASK-${task.id}:firstCondition is null") + continue + } + + val chargeSetting = Gson().fromJson(firstCondition.setting, ChargeSetting::class.java) + if (chargeSetting == null) { + Log.d(TAG, "TASK-${task.id}:chargeSetting is null") + continue + } + + val msg = chargeSetting.getMsg(statusNew, statusOld, pluggedNew, pluggedOld, TaskUtils.batteryInfo) + if (msg.isEmpty()) { + Log.d(TAG, "TASK-${task.id}:msg is empty, chargeSetting = $chargeSetting, statusNew = $statusNew, statusOld = $statusOld, pluggedNew = $pluggedNew, pluggedOld = $pluggedOld") + continue + } + + //TODO:判断其他条件是否满足 + if (!ConditionUtils.checkCondition(task.id, conditionList)) { + Log.d(TAG, "TASK-${task.id}:other condition is not satisfied") + continue + } + + //TODO: 组装消息体 && 执行具体任务 + val msgInfo = MsgInfo("task", task.name, msg, 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 actionRequest = OneTimeWorkRequestBuilder().setInputData(actionData).build() + WorkManager.getInstance().enqueue(actionRequest) + } + + return Result.success() + } + + else -> { + Log.d(TAG, "conditionType is $conditionType") return Result.failure() } - - val taskList = AppDatabase.getInstance(App.context).taskDao().getByType(conditionType) - for (task in taskList) { - Log.d(TAG, "task = $task") - - // 根据任务信息执行相应操作 - val conditionList = Gson().fromJson(task.conditions, Array::class.java).toMutableList() - if (conditionList.isEmpty()) { - Log.d(TAG, "TASK-${task.id}:conditionList is empty") - continue - } - val firstCondition = conditionList.firstOrNull() - if (firstCondition == null) { - Log.d(TAG, "TASK-${task.id}:firstCondition is null") - continue - } - - val batterySetting = Gson().fromJson(firstCondition.setting, BatterySetting::class.java) - if (batterySetting == null) { - Log.d(TAG, "TASK-${task.id}:batterySetting is null") - continue - } - - val msg = batterySetting.getMsg(status, levelNew, levelOld, TaskUtils.batteryInfo) - if (msg.isEmpty()) { - Log.d(TAG, "TASK-${task.id}:msg is empty, batterySetting = $batterySetting, status = $status, levelNew = $levelNew, levelOld = $levelOld") - continue - } - - //TODO:判断其他条件是否满足 - - //TODO: 组装消息体 && 执行具体任务 - val msgInfo = MsgInfo("task", task.name, msg, 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 actionRequest = OneTimeWorkRequestBuilder().setInputData(actionData).build() - WorkManager.getInstance().enqueue(actionRequest) - } - - return Result.success() - } - - TASK_CONDITION_CHARGE -> { - val statusNew = inputData.getInt("status_new", -1) - val statusOld = inputData.getInt("status_old", -1) - val pluggedNew = inputData.getInt("plugged_new", -1) - val pluggedOld = inputData.getInt("plugged_old", -1) - Log.d(TAG, "statusNew: $statusNew, statusOld: $statusOld, pluggedNew: $pluggedNew, pluggedOld: $pluggedOld") - if (statusNew == -1 || statusOld == -1 || pluggedNew == -1 || pluggedOld == -1) { - Log.d(TAG, "statusNew or statusOld or pluggedNew or pluggedOld is -1") - return Result.failure() - } - - val taskList = AppDatabase.getInstance(App.context).taskDao().getByType(conditionType) - for (task in taskList) { - Log.d(TAG, "task = $task") - - // 根据任务信息执行相应操作 - val conditionList = Gson().fromJson(task.conditions, Array::class.java).toMutableList() - if (conditionList.isEmpty()) { - Log.d(TAG, "TASK-${task.id}:conditionList is empty") - continue - } - val firstCondition = conditionList.firstOrNull() - if (firstCondition == null) { - Log.d(TAG, "TASK-${task.id}:firstCondition is null") - continue - } - - val chargeSetting = Gson().fromJson(firstCondition.setting, ChargeSetting::class.java) - if (chargeSetting == null) { - Log.d(TAG, "TASK-${task.id}:chargeSetting is null") - continue - } - - val msg = chargeSetting.getMsg(statusNew, statusOld, pluggedNew, pluggedOld, TaskUtils.batteryInfo) - if (msg.isEmpty()) { - Log.d(TAG, "TASK-${task.id}:msg is empty, chargeSetting = $chargeSetting, statusNew = $statusNew, statusOld = $statusOld, pluggedNew = $pluggedNew, pluggedOld = $pluggedOld") - continue - } - - //TODO:判断其他条件是否满足 - if (!ConditionUtils.checkCondition(task.id, conditionList)) { - Log.d(TAG, "TASK-${task.id}:other condition is not satisfied") - continue - } - - //TODO: 组装消息体 && 执行具体任务 - val msgInfo = MsgInfo("task", task.name, msg, 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 actionRequest = OneTimeWorkRequestBuilder().setInputData(actionData).build() - WorkManager.getInstance().enqueue(actionRequest) - } - - return Result.success() - } - - else -> { - Log.d(TAG, "conditionType is $conditionType") - return Result.failure() } + } catch (e: Exception) { + Log.e(TAG, "doWork error: ${e.message}") + return Result.failure() } - } } \ No newline at end of file diff --git a/app/src/main/java/com/idormy/sms/forwarder/workers/CronWorker.kt b/app/src/main/java/com/idormy/sms/forwarder/workers/CronWorker.kt index e7dde1fa..f4a97c21 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/workers/CronWorker.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/workers/CronWorker.kt @@ -1,7 +1,6 @@ package com.idormy.sms.forwarder.workers import android.content.Context -import android.util.Log import androidx.work.CoroutineWorker import androidx.work.Data import androidx.work.OneTimeWorkRequestBuilder @@ -13,6 +12,7 @@ import com.idormy.sms.forwarder.database.AppDatabase import com.idormy.sms.forwarder.entity.MsgInfo import com.idormy.sms.forwarder.entity.TaskSetting import com.idormy.sms.forwarder.entity.condition.CronSetting +import com.idormy.sms.forwarder.utils.Log import com.idormy.sms.forwarder.utils.TaskWorker import com.idormy.sms.forwarder.utils.task.ConditionUtils import com.idormy.sms.forwarder.utils.task.CronJobScheduler @@ -25,74 +25,79 @@ class CronWorker(context: Context, params: WorkerParameters) : CoroutineWorker(c private val TAG: String = CronWorker::class.java.simpleName override suspend fun doWork(): Result { - val taskId = inputData.getLong(TaskWorker.taskId, -1L) - if (taskId == -1L) { - Log.d(TAG, "taskId is -1L") - return Result.failure() - } + try { + val taskId = inputData.getLong(TaskWorker.taskId, -1L) + if (taskId == -1L) { + Log.d(TAG, "taskId is -1L") + return Result.failure() + } - val task = AppDatabase.getInstance(App.context).taskDao().getOne(taskId) - if (task == null || task.status == 0) { - Log.d(TAG, "TASK-${task.id}:task is disabled") + val task = AppDatabase.getInstance(App.context).taskDao().getOne(taskId) + if (task == null || task.status == 0) { + Log.d(TAG, "TASK-$taskId:task is disabled") + return Result.success() + } + + // 根据任务信息执行相应操作 + val conditionList = Gson().fromJson(task.conditions, Array::class.java).toMutableList() + if (conditionList.isEmpty()) { + Log.d(TAG, "TASK-${task.id}:conditionList is empty") + return Result.failure() + } + val firstCondition = conditionList.firstOrNull() + if (firstCondition == null) { + Log.d(TAG, "TASK-${task.id}:firstCondition is null") + return Result.failure() + } + val cronSetting = Gson().fromJson(firstCondition.setting, CronSetting::class.java) + if (cronSetting == null) { + Log.d(TAG, "TASK-${task.id}:cronSetting is null") + return Result.failure() + } + + // TODO: 判断其他条件是否满足 + if (!ConditionUtils.checkCondition(task.id, conditionList)) { + Log.d(TAG, "TASK-${task.id}:other condition is not satisfied") + return Result.failure() + } + + // 更新任务的上次执行时间和下次执行时间 + val now = Date() + task.lastExecTime = task.nextExecTime + val cronExpression = CronExpression(cronSetting.expression) + val nextExecTime = cronExpression.getNextValidTimeAfter(now) + // 将 nextExecTime 的毫秒部分设置为 0,避免因为毫秒部分不同导致的任务重复执行 + nextExecTime.time = nextExecTime.time / 1000 * 1000 + task.nextExecTime = nextExecTime + Log.d(TAG, "TASK-${task.id}:lastExecTime = ${task.lastExecTime}, nextExecTime = ${task.nextExecTime}") + + // 自动禁用任务 + if (task.nextExecTime.time / 1000 < now.time / 1000) { + task.status = 0 + } + + // 更新任务信息 + AppDatabase.getInstance(App.context).taskDao().updateExecTime(task.id, task.lastExecTime, task.nextExecTime, task.status) + + if (task.status == 0) { + Log.d(TAG, "TASK-${task.id}:task is disabled") + return Result.success() + } + + //TODO: 组装消息体 && 执行具体任务 + 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 actionRequest = OneTimeWorkRequestBuilder().setInputData(actionData).build() + WorkManager.getInstance().enqueue(actionRequest) + + // 为新的 nextExecTime 调度下一次任务执行 + CronJobScheduler.cancelTask(task.id) + CronJobScheduler.scheduleTask(task) return Result.success() - } - - // 根据任务信息执行相应操作 - val conditionList = Gson().fromJson(task.conditions, Array::class.java).toMutableList() - if (conditionList.isEmpty()) { - Log.d(TAG, "TASK-${task.id}:conditionList is empty") + } catch (e: Exception) { + Log.e(TAG, "doWork error", e) return Result.failure() } - val firstCondition = conditionList.firstOrNull() - if (firstCondition == null) { - Log.d(TAG, "TASK-${task.id}:firstCondition is null") - return Result.failure() - } - val cronSetting = Gson().fromJson(firstCondition.setting, CronSetting::class.java) - if (cronSetting == null) { - Log.d(TAG, "TASK-${task.id}:cronSetting is null") - return Result.failure() - } - - // TODO: 判断其他条件是否满足 - if (!ConditionUtils.checkCondition(task.id, conditionList)) { - Log.d(TAG, "TASK-${task.id}:other condition is not satisfied") - return Result.failure() - } - - // 更新任务的上次执行时间和下次执行时间 - val now = Date() - task.lastExecTime = task.nextExecTime - val cronExpression = CronExpression(cronSetting.expression) - val nextExecTime = cronExpression.getNextValidTimeAfter(now) - // 将 nextExecTime 的毫秒部分设置为 0,避免因为毫秒部分不同导致的任务重复执行 - nextExecTime.time = nextExecTime.time / 1000 * 1000 - task.nextExecTime = nextExecTime - Log.d(TAG, "TASK-${task.id}:lastExecTime = ${task.lastExecTime}, nextExecTime = ${task.nextExecTime}") - - // 自动禁用任务 - if (task.nextExecTime.time / 1000 < now.time / 1000) { - task.status = 0 - } - - // 更新任务信息 - AppDatabase.getInstance(App.context).taskDao().updateExecTime(task.id, task.lastExecTime, task.nextExecTime, task.status) - - if (task.status == 0) { - Log.d(TAG, "TASK-${task.id}:task is disabled") - return Result.success() - } - - //TODO: 组装消息体 && 执行具体任务 - 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 actionRequest = OneTimeWorkRequestBuilder().setInputData(actionData).build() - WorkManager.getInstance().enqueue(actionRequest) - - // 为新的 nextExecTime 调度下一次任务执行 - CronJobScheduler.cancelTask(task.id) - CronJobScheduler.scheduleTask(task) - return Result.success() } } diff --git a/app/src/main/java/com/idormy/sms/forwarder/workers/LoadAppListWorker.kt b/app/src/main/java/com/idormy/sms/forwarder/workers/LoadAppListWorker.kt index 0dda159b..786dac83 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/workers/LoadAppListWorker.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/workers/LoadAppListWorker.kt @@ -1,12 +1,12 @@ package com.idormy.sms.forwarder.workers import android.content.Context -import android.util.Log import androidx.work.CoroutineWorker import androidx.work.WorkerParameters import com.idormy.sms.forwarder.App import com.idormy.sms.forwarder.utils.AppUtils import com.idormy.sms.forwarder.utils.EVENT_LOAD_APP_LIST +import com.idormy.sms.forwarder.utils.Log import com.jeremyliao.liveeventbus.LiveEventBus import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.withContext @@ -25,25 +25,31 @@ class LoadAppListWorker( return@withContext Result.success() } - App.LoadingAppList = true - App.UserAppList.clear() - App.SystemAppList.clear() - val appInfoList = AppUtils.getAppsInfo() - for (appInfo in appInfoList) { - if (appInfo.isSystem) { - App.SystemAppList.add(appInfo) - } else { - App.UserAppList.add(appInfo) + try { + App.LoadingAppList = true + App.UserAppList.clear() + App.SystemAppList.clear() + val appInfoList = AppUtils.getAppsInfo() + for (appInfo in appInfoList) { + if (appInfo.isSystem) { + App.SystemAppList.add(appInfo) + } else { + App.UserAppList.add(appInfo) + } } + App.UserAppList.sortBy { appInfo -> appInfo.name } + App.SystemAppList.sortBy { appInfo -> appInfo.name } + + LiveEventBus.get(EVENT_LOAD_APP_LIST, String::class.java).post("finish") + App.LoadingAppList = false + Log.d(TAG, "LoadAppListWorker finish") + + return@withContext Result.success() + } catch (e: Exception) { + e.printStackTrace() + Log.e(TAG, "LoadAppListWorker error: ${e.message}") + return@withContext Result.failure() } - App.UserAppList.sortBy { appInfo -> appInfo.name } - App.SystemAppList.sortBy { appInfo -> appInfo.name } - - LiveEventBus.get(EVENT_LOAD_APP_LIST, String::class.java).post("finish") - App.LoadingAppList = false - Log.d(TAG, "LoadAppListWorker finish") - - return@withContext Result.success() } } \ No newline at end of file diff --git a/app/src/main/java/com/idormy/sms/forwarder/workers/LocationWorker.kt b/app/src/main/java/com/idormy/sms/forwarder/workers/LocationWorker.kt index 4610efcf..9f4dc84f 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/workers/LocationWorker.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/workers/LocationWorker.kt @@ -1,7 +1,6 @@ package com.idormy.sms.forwarder.workers import android.content.Context -import android.util.Log import androidx.work.CoroutineWorker import androidx.work.Data import androidx.work.OneTimeWorkRequestBuilder @@ -15,6 +14,7 @@ import com.idormy.sms.forwarder.entity.LocationInfo import com.idormy.sms.forwarder.entity.MsgInfo import com.idormy.sms.forwarder.entity.TaskSetting import com.idormy.sms.forwarder.entity.condition.LocationSetting +import com.idormy.sms.forwarder.utils.Log import com.idormy.sms.forwarder.utils.TASK_CONDITION_LEAVE_ADDRESS import com.idormy.sms.forwarder.utils.TASK_CONDITION_TO_ADDRESS import com.idormy.sms.forwarder.utils.TaskWorker @@ -29,158 +29,161 @@ class LocationWorker(context: Context, params: WorkerParameters) : CoroutineWork private val TAG: String = LocationWorker::class.java.simpleName override suspend fun doWork(): Result { + try { + val conditionType = inputData.getInt(TaskWorker.conditionType, -1) + val locationJsonOld = inputData.getString("locationJsonOld") + val locationJsonNew = inputData.getString("locationJsonNew") + Log.d(TAG, "conditionType = $conditionType, locationJsonOld = $locationJsonOld, locationJsonNew = $locationJsonNew") - val conditionType = inputData.getInt(TaskWorker.conditionType, -1) - val locationJsonOld = inputData.getString("locationJsonOld") - val locationJsonNew = inputData.getString("locationJsonNew") - Log.d(TAG, "conditionType = $conditionType, locationJsonOld = $locationJsonOld, locationJsonNew = $locationJsonNew") - - if (locationJsonOld == null || locationJsonNew == null) { - Log.d(TAG, "locationInfoOld or locationInfoNew is null") - return Result.failure() - } - - val locationOld = Gson().fromJson(locationJsonOld, LocationInfo::class.java) - val locationNew = Gson().fromJson(locationJsonNew, LocationInfo::class.java) - if (locationOld == null || locationNew == null) { - Log.d(TAG, "locationInfoOld or locationInfoNew is null") - return Result.failure() - } - - when (conditionType) { - - //到达地点 - TASK_CONDITION_TO_ADDRESS -> { - val taskList = AppDatabase.getInstance(App.context).taskDao().getByType(conditionType) - for (task in taskList) { - Log.d(TAG, "task = $task") - - // 根据任务信息执行相应操作 - val conditionList = Gson().fromJson(task.conditions, Array::class.java).toMutableList() - if (conditionList.isEmpty()) { - Log.d(TAG, "TASK-${task.id}:conditionList is empty") - continue - } - val firstCondition = conditionList.firstOrNull() - if (firstCondition == null) { - Log.d(TAG, "TASK-${task.id}:firstCondition is null") - continue - } - - val locationSetting = Gson().fromJson(firstCondition.setting, LocationSetting::class.java) - if (locationSetting == null) { - Log.d(TAG, "TASK-${task.id}:locationSetting is null") - continue - } - - //TODO:判断条件是否满足 - var description = locationSetting.description - val isMatchCondition = when (locationSetting.calcType) { - "distance" -> { - val distanceOld = calculateDistance(locationOld.latitude, locationOld.longitude, locationSetting.latitude, locationSetting.longitude) - val distanceNew = calculateDistance(locationNew.latitude, locationNew.longitude, locationSetting.latitude, locationSetting.longitude) - Log.d(TAG, "TASK-${task.id}:distanceOld = $distanceOld, distanceNew = $distanceNew") - description += String.format(getString(R.string.current_distance_from_center), String.format("%.2f", distanceNew)) - distanceOld > locationSetting.distance && distanceNew <= locationSetting.distance - } - - "address" -> { - !locationOld.address.contains(locationSetting.address) && locationNew.address.contains(locationSetting.address) - } - - else -> false - } - - if (!isMatchCondition) { - Log.d(TAG, "TASK-${task.id}:isMatchCondition = false") - continue - } - - //TODO:判断其他条件是否满足 - if (!ConditionUtils.checkCondition(task.id, conditionList)) { - Log.d(TAG, "TASK-${task.id}:other condition is not satisfied") - continue - } - - //TODO: 组装消息体 && 执行具体任务 - 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 actionRequest = OneTimeWorkRequestBuilder().setInputData(actionData).build() - WorkManager.getInstance().enqueue(actionRequest) - } - - return Result.success() - } - - //离开地点 - TASK_CONDITION_LEAVE_ADDRESS -> { - val taskList = AppDatabase.getInstance(App.context).taskDao().getByType(conditionType) - for (task in taskList) { - Log.d(TAG, "task = $task") - - // 根据任务信息执行相应操作 - val conditionList = Gson().fromJson(task.conditions, Array::class.java).toMutableList() - if (conditionList.isEmpty()) { - Log.d(TAG, "TASK-${task.id}:conditionList is empty") - continue - } - val firstCondition = conditionList.firstOrNull() - if (firstCondition == null) { - Log.d(TAG, "TASK-${task.id}:firstCondition is null") - continue - } - - val locationSetting = Gson().fromJson(firstCondition.setting, LocationSetting::class.java) - if (locationSetting == null) { - Log.d(TAG, "TASK-${task.id}:locationSetting is null") - continue - } - - //TODO:判断条件是否满足 - var description = locationSetting.description - val isMatchCondition = when (locationSetting.calcType) { - "distance" -> { - val distanceOld = calculateDistance(locationOld.latitude, locationOld.longitude, locationSetting.latitude, locationSetting.longitude) - val distanceNew = calculateDistance(locationNew.latitude, locationNew.longitude, locationSetting.latitude, locationSetting.longitude) - Log.d(TAG, "TASK-${task.id}:distanceOld = $distanceOld, distanceNew = $distanceNew") - description += String.format(getString(R.string.current_distance_from_center), String.format("%.2f", distanceNew)) - distanceOld <= locationSetting.distance && distanceNew > locationSetting.distance - } - - "address" -> { - locationOld.address.contains(locationSetting.address) && !locationNew.address.contains(locationSetting.address) - } - - else -> false - } - - if (!isMatchCondition) { - Log.d(TAG, "TASK-${task.id}:isMatchCondition = false") - continue - } - - //TODO:判断其他条件是否满足 - if (!ConditionUtils.checkCondition(task.id, conditionList)) { - Log.d(TAG, "TASK-${task.id}:other condition is not satisfied") - continue - } - - //TODO: 组装消息体 && 执行具体任务 - 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 actionRequest = OneTimeWorkRequestBuilder().setInputData(actionData).build() - WorkManager.getInstance().enqueue(actionRequest) - } - - return Result.success() - } - - else -> { - Log.d(TAG, "conditionType is $conditionType") + if (locationJsonOld == null || locationJsonNew == null) { + Log.d(TAG, "locationInfoOld or locationInfoNew is null") return Result.failure() } - } + val locationOld = Gson().fromJson(locationJsonOld, LocationInfo::class.java) + val locationNew = Gson().fromJson(locationJsonNew, LocationInfo::class.java) + if (locationOld == null || locationNew == null) { + Log.d(TAG, "locationInfoOld or locationInfoNew is null") + return Result.failure() + } + + when (conditionType) { + + //到达地点 + TASK_CONDITION_TO_ADDRESS -> { + val taskList = AppDatabase.getInstance(App.context).taskDao().getByType(conditionType) + for (task in taskList) { + Log.d(TAG, "task = $task") + + // 根据任务信息执行相应操作 + val conditionList = Gson().fromJson(task.conditions, Array::class.java).toMutableList() + if (conditionList.isEmpty()) { + Log.d(TAG, "TASK-${task.id}:conditionList is empty") + continue + } + val firstCondition = conditionList.firstOrNull() + if (firstCondition == null) { + Log.d(TAG, "TASK-${task.id}:firstCondition is null") + continue + } + + val locationSetting = Gson().fromJson(firstCondition.setting, LocationSetting::class.java) + if (locationSetting == null) { + Log.d(TAG, "TASK-${task.id}:locationSetting is null") + continue + } + + //TODO:判断条件是否满足 + var description = locationSetting.description + val isMatchCondition = when (locationSetting.calcType) { + "distance" -> { + val distanceOld = calculateDistance(locationOld.latitude, locationOld.longitude, locationSetting.latitude, locationSetting.longitude) + val distanceNew = calculateDistance(locationNew.latitude, locationNew.longitude, locationSetting.latitude, locationSetting.longitude) + Log.d(TAG, "TASK-${task.id}:distanceOld = $distanceOld, distanceNew = $distanceNew") + description += String.format(getString(R.string.current_distance_from_center), String.format("%.2f", distanceNew)) + distanceOld > locationSetting.distance && distanceNew <= locationSetting.distance + } + + "address" -> { + !locationOld.address.contains(locationSetting.address) && locationNew.address.contains(locationSetting.address) + } + + else -> false + } + + if (!isMatchCondition) { + Log.d(TAG, "TASK-${task.id}:isMatchCondition = false") + continue + } + + //TODO:判断其他条件是否满足 + if (!ConditionUtils.checkCondition(task.id, conditionList)) { + Log.d(TAG, "TASK-${task.id}:other condition is not satisfied") + continue + } + + //TODO: 组装消息体 && 执行具体任务 + 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 actionRequest = OneTimeWorkRequestBuilder().setInputData(actionData).build() + WorkManager.getInstance().enqueue(actionRequest) + } + + return Result.success() + } + + //离开地点 + TASK_CONDITION_LEAVE_ADDRESS -> { + val taskList = AppDatabase.getInstance(App.context).taskDao().getByType(conditionType) + for (task in taskList) { + Log.d(TAG, "task = $task") + + // 根据任务信息执行相应操作 + val conditionList = Gson().fromJson(task.conditions, Array::class.java).toMutableList() + if (conditionList.isEmpty()) { + Log.d(TAG, "TASK-${task.id}:conditionList is empty") + continue + } + val firstCondition = conditionList.firstOrNull() + if (firstCondition == null) { + Log.d(TAG, "TASK-${task.id}:firstCondition is null") + continue + } + + val locationSetting = Gson().fromJson(firstCondition.setting, LocationSetting::class.java) + if (locationSetting == null) { + Log.d(TAG, "TASK-${task.id}:locationSetting is null") + continue + } + + //TODO:判断条件是否满足 + var description = locationSetting.description + val isMatchCondition = when (locationSetting.calcType) { + "distance" -> { + val distanceOld = calculateDistance(locationOld.latitude, locationOld.longitude, locationSetting.latitude, locationSetting.longitude) + val distanceNew = calculateDistance(locationNew.latitude, locationNew.longitude, locationSetting.latitude, locationSetting.longitude) + Log.d(TAG, "TASK-${task.id}:distanceOld = $distanceOld, distanceNew = $distanceNew") + description += String.format(getString(R.string.current_distance_from_center), String.format("%.2f", distanceNew)) + distanceOld <= locationSetting.distance && distanceNew > locationSetting.distance + } + + "address" -> { + locationOld.address.contains(locationSetting.address) && !locationNew.address.contains(locationSetting.address) + } + + else -> false + } + + if (!isMatchCondition) { + Log.d(TAG, "TASK-${task.id}:isMatchCondition = false") + continue + } + + //TODO:判断其他条件是否满足 + if (!ConditionUtils.checkCondition(task.id, conditionList)) { + Log.d(TAG, "TASK-${task.id}:other condition is not satisfied") + continue + } + + //TODO: 组装消息体 && 执行具体任务 + 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 actionRequest = OneTimeWorkRequestBuilder().setInputData(actionData).build() + WorkManager.getInstance().enqueue(actionRequest) + } + + return Result.success() + } + + else -> { + Log.d(TAG, "conditionType is $conditionType") + return Result.failure() + } + } + } catch (e: Exception) { + Log.e(TAG, "Error running worker: ${e.message}", e) + return Result.failure() + } } } \ No newline at end of file diff --git a/app/src/main/java/com/idormy/sms/forwarder/workers/LockScreenWorker.kt b/app/src/main/java/com/idormy/sms/forwarder/workers/LockScreenWorker.kt index 6d7754f3..8b4d7670 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/workers/LockScreenWorker.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/workers/LockScreenWorker.kt @@ -2,7 +2,6 @@ package com.idormy.sms.forwarder.workers import android.content.Context import android.content.Intent -import android.util.Log import androidx.work.CoroutineWorker import androidx.work.Data import androidx.work.OneTimeWorkRequestBuilder @@ -14,6 +13,7 @@ import com.idormy.sms.forwarder.database.AppDatabase import com.idormy.sms.forwarder.entity.MsgInfo import com.idormy.sms.forwarder.entity.TaskSetting import com.idormy.sms.forwarder.entity.condition.LockScreenSetting +import com.idormy.sms.forwarder.utils.Log import com.idormy.sms.forwarder.utils.TaskWorker import com.idormy.sms.forwarder.utils.task.ConditionUtils import java.util.Date @@ -25,60 +25,62 @@ class LockScreenWorker(context: Context, params: WorkerParameters) : CoroutineWo private val TAG: String = LockScreenWorker::class.java.simpleName override suspend fun doWork(): Result { + try { + val conditionType = inputData.getInt(TaskWorker.conditionType, -1) + val action = inputData.getString(TaskWorker.action) - val conditionType = inputData.getInt(TaskWorker.conditionType, -1) - val action = inputData.getString(TaskWorker.action) + val taskList = AppDatabase.getInstance(App.context).taskDao().getByType(conditionType) + for (task in taskList) { + Log.d(TAG, "task = $task") - val taskList = AppDatabase.getInstance(App.context).taskDao().getByType(conditionType) - for (task in taskList) { - Log.d(TAG, "task = $task") + // 根据任务信息执行相应操作 + val conditionList = Gson().fromJson(task.conditions, Array::class.java).toMutableList() + if (conditionList.isEmpty()) { + Log.d(TAG, "TASK-${task.id}:conditionList is empty") + continue + } + val firstCondition = conditionList.firstOrNull() + if (firstCondition == null) { + Log.d(TAG, "TASK-${task.id}:firstCondition is null") + continue + } - // 根据任务信息执行相应操作 - val conditionList = Gson().fromJson(task.conditions, Array::class.java).toMutableList() - if (conditionList.isEmpty()) { - Log.d(TAG, "TASK-${task.id}:conditionList is empty") - continue - } - val firstCondition = conditionList.firstOrNull() - if (firstCondition == null) { - Log.d(TAG, "TASK-${task.id}:firstCondition is null") - continue + val lockScreenSetting = Gson().fromJson(firstCondition.setting, LockScreenSetting::class.java) + if (lockScreenSetting == null) { + Log.d(TAG, "TASK-${task.id}:lockScreenSetting is null") + continue + } + + if (action != lockScreenSetting.action) { + Log.d(TAG, "TASK-${task.id}:action is not match, action = $action, lockScreenSetting = $lockScreenSetting") + continue + } + + //TODO:判断其他条件是否满足 + if (!ConditionUtils.checkCondition(task.id, conditionList)) { + Log.d(TAG, "TASK-${task.id}:other condition is not satisfied") + continue + } + + //TODO: 组装消息体 && 执行具体任务 + val msgInfo = MsgInfo("task", task.name, lockScreenSetting.description, 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 duration = if (action == Intent.ACTION_SCREEN_ON) lockScreenSetting.timeAfterScreenOn else lockScreenSetting.timeAfterScreenOff + val actionRequest = OneTimeWorkRequestBuilder() + .setInitialDelay(duration.toLong(), TimeUnit.MINUTES) + .setInputData(actionData).build() + WorkManager.getInstance().enqueue(actionRequest) } - val lockScreenSetting = Gson().fromJson(firstCondition.setting, LockScreenSetting::class.java) - if (lockScreenSetting == null) { - Log.d(TAG, "TASK-${task.id}:lockScreenSetting is null") - continue - } - - if (action != lockScreenSetting.action) { - Log.d(TAG, "TASK-${task.id}:action is not match, action = $action, lockScreenSetting = $lockScreenSetting") - continue - } - - //TODO:判断其他条件是否满足 - if (!ConditionUtils.checkCondition(task.id, conditionList)) { - Log.d(TAG, "TASK-${task.id}:other condition is not satisfied") - continue - } - - //TODO: 组装消息体 && 执行具体任务 - val msgInfo = MsgInfo("task", task.name, lockScreenSetting.description, 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 duration = if (action == Intent.ACTION_SCREEN_ON) lockScreenSetting.timeAfterScreenOn else lockScreenSetting.timeAfterScreenOff - val actionRequest = OneTimeWorkRequestBuilder() - .setInitialDelay(duration.toLong(), TimeUnit.MINUTES) - .setInputData(actionData).build() - WorkManager.getInstance().enqueue(actionRequest) + return Result.success() + } catch (e: Exception) { + Log.e(TAG, "doWork error", e) + return Result.failure() } - - return Result.success() - - } } \ No newline at end of file diff --git a/app/src/main/java/com/idormy/sms/forwarder/workers/NetworkWorker.kt b/app/src/main/java/com/idormy/sms/forwarder/workers/NetworkWorker.kt index 87da4c93..18c5e7f9 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/workers/NetworkWorker.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/workers/NetworkWorker.kt @@ -1,7 +1,6 @@ package com.idormy.sms.forwarder.workers import android.content.Context -import android.util.Log import androidx.work.CoroutineWorker import androidx.work.Data import androidx.work.OneTimeWorkRequestBuilder @@ -14,6 +13,7 @@ import com.idormy.sms.forwarder.database.AppDatabase import com.idormy.sms.forwarder.entity.MsgInfo import com.idormy.sms.forwarder.entity.TaskSetting import com.idormy.sms.forwarder.entity.condition.NetworkSetting +import com.idormy.sms.forwarder.utils.Log import com.idormy.sms.forwarder.utils.PhoneUtils import com.idormy.sms.forwarder.utils.TaskWorker import com.idormy.sms.forwarder.utils.task.ConditionUtils @@ -32,127 +32,138 @@ class NetworkWorker(context: Context, params: WorkerParameters) : CoroutineWorke private val ipv6Pattern = Regex("^([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}$") override suspend fun doWork(): Result { - val conditionType = inputData.getInt(TaskWorker.conditionType, -1) - val taskList = AppDatabase.getInstance(App.context).taskDao().getByType(conditionType) - for (task in taskList) { - Log.d(TAG, "task = $task") + try { + val conditionType = inputData.getInt(TaskWorker.conditionType, -1) + val taskList = AppDatabase.getInstance(App.context).taskDao().getByType(conditionType) + for (task in taskList) { + Log.d(TAG, "task = $task") - // 根据任务信息执行相应操作 - val conditionList = Gson().fromJson(task.conditions, Array::class.java).toMutableList() - if (conditionList.isEmpty()) { - Log.d(TAG, "TASK-${task.id}:conditionList is empty") - continue - } - val firstCondition = conditionList.firstOrNull() - if (firstCondition == null) { - Log.d(TAG, "TASK-${task.id}:firstCondition is null") - continue - } + // 根据任务信息执行相应操作 + val conditionList = Gson().fromJson(task.conditions, Array::class.java).toMutableList() + if (conditionList.isEmpty()) { + Log.d(TAG, "TASK-${task.id}:conditionList is empty") + continue + } + val firstCondition = conditionList.firstOrNull() + if (firstCondition == null) { + Log.d(TAG, "TASK-${task.id}:firstCondition is null") + continue + } - val networkSetting = Gson().fromJson(firstCondition.setting, NetworkSetting::class.java) - if (networkSetting == null) { - Log.d(TAG, "TASK-${task.id}:networkSetting is null") - continue - } + val networkSetting = Gson().fromJson(firstCondition.setting, NetworkSetting::class.java) + if (networkSetting == null) { + Log.d(TAG, "TASK-${task.id}:networkSetting is null") + continue + } - if (TaskUtils.networkState != networkSetting.networkState) { - Log.d(TAG, "TASK-${task.id}:networkState is not match, networkSetting = $networkSetting") - continue - } + if (TaskUtils.networkState != networkSetting.networkState) { + Log.d(TAG, "TASK-${task.id}:networkState is not match, networkSetting = $networkSetting") + continue + } - //TODO:判断其他条件是否满足 - if (!ConditionUtils.checkCondition(task.id, conditionList)) { - Log.d(TAG, "TASK-${task.id}:other condition is not satisfied") - continue - } + //TODO:判断其他条件是否满足 + if (!ConditionUtils.checkCondition(task.id, conditionList)) { + Log.d(TAG, "TASK-${task.id}:other condition is not satisfied") + continue + } - var ipv4 = "" - var ipv6 = "" - val msg = StringBuilder() - msg.append(getString(R.string.network_type)).append(": ") - when (networkSetting.networkState) { - //移动网络 - 1 -> { - val dataSimSlot = TaskUtils.dataSimSlot - if (networkSetting.dataSimSlot != 0 && dataSimSlot != networkSetting.dataSimSlot) { - Log.d(TAG, "TASK-${task.id}:dataSimSlot is not match, networkSetting = $networkSetting") - continue - } - msg.append(getString(R.string.net_mobile)).append("\n") - - if (dataSimSlot != 0) { - msg.append(getString(R.string.data_sim_index)).append(": SIM-").append(dataSimSlot).append("\n") - // 获取 SIM 卡信息 - val simIndex = dataSimSlot - 1 - App.SimInfoList = PhoneUtils.getSimMultiInfo() - if (App.SimInfoList[simIndex]?.mCarrierName != null) { - //获取网络运营商名称:中国移动、中国联通、中国电信 - msg.append(getString(R.string.carrier_name)).append(": ").append(App.SimInfoList[simIndex]?.mCarrierName).append("\n") + var ipv4 = "" + var ipv6 = "" + val msg = StringBuilder() + msg.append(getString(R.string.network_type)).append(": ") + when (networkSetting.networkState) { + //移动网络 + 1 -> { + val dataSimSlot = TaskUtils.dataSimSlot + if (networkSetting.dataSimSlot != 0 && dataSimSlot != networkSetting.dataSimSlot) { + Log.d(TAG, "TASK-${task.id}:dataSimSlot is not match, networkSetting = $networkSetting") + continue } + msg.append(getString(R.string.net_mobile)).append("\n") + + if (dataSimSlot != 0) { + msg.append(getString(R.string.data_sim_index)).append(": SIM-").append(dataSimSlot).append("\n") + // 获取 SIM 卡信息 + val simIndex = dataSimSlot - 1 + App.SimInfoList = PhoneUtils.getSimMultiInfo() + if (App.SimInfoList[simIndex]?.mCarrierName != null) { + //获取网络运营商名称:中国移动、中国联通、中国电信 + msg.append(getString(R.string.carrier_name)).append(": ").append(App.SimInfoList[simIndex]?.mCarrierName).append("\n") + } + } + + Thread.sleep(1000) //延迟2秒,等待获取IP地址 + ipv4 = getPublicIP(false) + ipv6 = getPublicIP(true) } - ipv4 = getPublicIP(false) - ipv6 = getPublicIP(true) - } + //WiFi + 2 -> { + if (networkSetting.wifiSsid.isNotEmpty() && TaskUtils.wifiSsid != networkSetting.wifiSsid) { + Log.d(TAG, "TASK-${task.id}:wifiSsid is not match, networkSetting = $networkSetting") + continue + } + msg.append(getString(R.string.net_wifi)).append("\n") + msg.append(getString(R.string.wifi_ssid)).append(": ").append(TaskUtils.wifiSsid).append("\n") - //WiFi - 2 -> { - if (networkSetting.wifiSsid.isNotEmpty() && TaskUtils.wifiSsid != networkSetting.wifiSsid) { - Log.d(TAG, "TASK-${task.id}:wifiSsid is not match, networkSetting = $networkSetting") - continue + Thread.sleep(2000) //延迟2秒,等待获取IP地址 + ipv4 = getPublicIP(false) + ipv6 = getPublicIP(true) } - msg.append(getString(R.string.net_wifi)).append("\n") - msg.append(getString(R.string.wifi_ssid)).append(": ").append(TaskUtils.wifiSsid).append("\n") - ipv4 = getPublicIP(false) - ipv6 = getPublicIP(true) + //未知 && 没有网络 + else -> { + msg.append(getString(R.string.no_network)).append("\n") + } } - //未知 && 没有网络 - else -> { - msg.append(getString(R.string.no_network)).append("\n") + val isHttpServerRunning = ServiceUtils.isServiceRunning("com.idormy.sms.forwarder.service.HttpServerService") + if (ipv4Pattern.matches(ipv4)) { + msg.append(getString(R.string.ipv4)).append(": ").append(ipv4).append("\n") + TaskUtils.ipv4 = ipv4 + if (isHttpServerRunning) { + msg.append(getString(R.string.http_server)).append(": ").append("http://${ipv4}:5000").append("\n") + } + } else { + TaskUtils.ipv4 = "" } + + if (ipv6Pattern.matches(ipv6)) { + msg.append(getString(R.string.ipv6)).append(": ").append(ipv6).append("\n") + TaskUtils.ipv6 = ipv6 + if (isHttpServerRunning) { + msg.append(getString(R.string.http_server)).append(": ").append("http://[${ipv6}]:5000").append("\n") + } + } else { + TaskUtils.ipv6 = "" + } + + //TODO: 组装消息体 && 执行具体任务 + 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 actionRequest = OneTimeWorkRequestBuilder().setInputData(actionData).build() + WorkManager.getInstance().enqueue(actionRequest) } - val isHttpServerRunning = ServiceUtils.isServiceRunning("com.idormy.sms.forwarder.service.HttpServerService") - if (ipv4Pattern.matches(ipv4)) { - msg.append(getString(R.string.ipv4)).append(": ").append(ipv4).append("\n") - TaskUtils.ipv4 = ipv4 - if (isHttpServerRunning) { - msg.append(getString(R.string.http_server)).append(": ").append("http://${ipv4}:5000").append("\n") - } - } else { - TaskUtils.ipv4 = "" - } - - if (ipv6Pattern.matches(ipv6)) { - msg.append(getString(R.string.ipv6)).append(": ").append(ipv6).append("\n") - TaskUtils.ipv6 = ipv6 - if (isHttpServerRunning) { - msg.append(getString(R.string.http_server)).append(": ").append("http://[${ipv6}]:5000").append("\n") - } - } else { - TaskUtils.ipv6 = "" - } - - //TODO: 组装消息体 && 执行具体任务 - 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 actionRequest = OneTimeWorkRequestBuilder().setInputData(actionData).build() - WorkManager.getInstance().enqueue(actionRequest) + return Result.success() + } catch (e: Exception) { + Log.e(TAG, "Error running worker: ${e.message}", e) + return Result.failure() } - - return Result.success() - } //获取公网IP地址 private fun getPublicIP(ipv6: Boolean = false): String { - val url = if (ipv6) URL("https://api6.ipify.org/") else URL("https://api.ipify.org/") - val urlConnection = url.openConnection() as HttpURLConnection - urlConnection.requestMethod = "GET" - val inputStream = urlConnection.inputStream - return inputStream.bufferedReader().use { it.readText() } + return try { + val url = if (ipv6) URL("https://api6.ipify.org/") else URL("https://api.ipify.org/") + val urlConnection = url.openConnection() as HttpURLConnection + urlConnection.requestMethod = "GET" + val inputStream = urlConnection.inputStream + inputStream.bufferedReader().use { it.readText() } + } catch (e: Exception) { + Log.e(TAG, "Error running worker: ${e.message}", e) + "" + } } } \ No newline at end of file diff --git a/app/src/main/java/com/idormy/sms/forwarder/workers/SendLogicWorker.kt b/app/src/main/java/com/idormy/sms/forwarder/workers/SendLogicWorker.kt index 1ecb340c..347734a4 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/workers/SendLogicWorker.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/workers/SendLogicWorker.kt @@ -1,7 +1,6 @@ package com.idormy.sms.forwarder.workers import android.content.Context -import android.util.Log import androidx.work.CoroutineWorker import androidx.work.WorkerParameters import com.google.gson.Gson @@ -9,6 +8,7 @@ import com.idormy.sms.forwarder.core.Core import com.idormy.sms.forwarder.database.entity.Logs import com.idormy.sms.forwarder.database.entity.Rule import com.idormy.sms.forwarder.entity.MsgInfo +import com.idormy.sms.forwarder.utils.Log import com.idormy.sms.forwarder.utils.SendUtils import com.idormy.sms.forwarder.utils.Worker import kotlinx.coroutines.Dispatchers @@ -28,7 +28,6 @@ class SendLogicWorker( val msgId = inputData.getLong(Worker.msgId, 0L) Log.d("SendLogicWorker", "msgInfoJson: $msgInfoJson, ruleJson: $ruleJson, senderIndex: $senderIndex, msgId: $msgId") - //val rule = Core.rule.getOne(ruleId) val rule = Gson().fromJson(ruleJson, Rule::class.java) ?: return@withContext Result.failure() if (senderIndex >= rule.senderList.size) return@withContext Result.failure() val sender = rule.senderList[senderIndex] 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 5594729d..e22d87e7 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 @@ -2,7 +2,6 @@ package com.idormy.sms.forwarder.workers import android.annotation.SuppressLint import android.content.Context -import android.util.Log import androidx.work.CoroutineWorker import androidx.work.WorkerParameters import androidx.work.workDataOf @@ -105,6 +104,7 @@ class SendWorker( } catch (e: Exception) { e.printStackTrace() + Log.e("SendWorker", "SendWorker error: ${e.message}") return@withContext Result.failure(workDataOf("send" to e.message.toString())) } diff --git a/app/src/main/java/com/idormy/sms/forwarder/workers/SimWorker.kt b/app/src/main/java/com/idormy/sms/forwarder/workers/SimWorker.kt index 394478fb..f4e3560b 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/workers/SimWorker.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/workers/SimWorker.kt @@ -2,7 +2,6 @@ package com.idormy.sms.forwarder.workers import android.content.Context import android.telephony.TelephonyManager -import android.util.Log import androidx.work.CoroutineWorker import androidx.work.Data import androidx.work.OneTimeWorkRequestBuilder @@ -15,6 +14,7 @@ import com.idormy.sms.forwarder.database.AppDatabase import com.idormy.sms.forwarder.entity.MsgInfo import com.idormy.sms.forwarder.entity.TaskSetting import com.idormy.sms.forwarder.entity.condition.SimSetting +import com.idormy.sms.forwarder.utils.Log import com.idormy.sms.forwarder.utils.PhoneUtils import com.idormy.sms.forwarder.utils.TaskWorker import com.idormy.sms.forwarder.utils.task.ConditionUtils @@ -28,67 +28,71 @@ class SimWorker(context: Context, params: WorkerParameters) : CoroutineWorker(co private val TAG: String = SimWorker::class.java.simpleName override suspend fun doWork(): Result { - val conditionType = inputData.getInt(TaskWorker.conditionType, -1) - val simStateStr = inputData.getString(TaskWorker.msg) - val taskList = AppDatabase.getInstance(App.context).taskDao().getByType(conditionType) - for (task in taskList) { - Log.d(TAG, "task = $task") + try { + val conditionType = inputData.getInt(TaskWorker.conditionType, -1) + val simStateStr = inputData.getString(TaskWorker.msg) + val taskList = AppDatabase.getInstance(App.context).taskDao().getByType(conditionType) + for (task in taskList) { + Log.d(TAG, "task = $task") - // 根据任务信息执行相应操作 - val conditionList = Gson().fromJson(task.conditions, Array::class.java).toMutableList() - if (conditionList.isEmpty()) { - Log.d(TAG, "TASK-${task.id}:conditionList is empty") - continue - } - val firstCondition = conditionList.firstOrNull() - if (firstCondition == null) { - Log.d(TAG, "TASK-${task.id}:firstCondition is null") - continue - } - - val simSetting = Gson().fromJson(firstCondition.setting, SimSetting::class.java) - if (simSetting == null) { - Log.d(TAG, "TASK-${task.id}:simSetting is null") - continue - } - - if (TaskUtils.simState != simSetting.simState) { - Log.d(TAG, "TASK-${task.id}:networkState is not match, simSetting = $simSetting") - continue - } - - //TODO:判断其他条件是否满足,注意:SIM卡已准备就绪时,延迟5秒(给够搜索信号时间)才执行任务 - if (!ConditionUtils.checkCondition(task.id, conditionList)) { - Log.d(TAG, "TASK-${task.id}:other condition is not satisfied") - continue - } - - val msg = StringBuilder() - msg.append(String.format(getString(R.string.sim_state), simStateStr)).append("\n") - if (TaskUtils.simState == TelephonyManager.SIM_STATE_READY) { - // 获取 SIM 卡信息 - App.SimInfoList = PhoneUtils.getSimMultiInfo() - //Log.d(TAG, App.SimInfoList.toString()) - App.SimInfoList.forEach { - msg.append("[SIM-").append(it.key + 1).append("]\n") - msg.append(getString(R.string.carrier_name)).append(": ").append(it.value.mCarrierName).append("\n") - //msg.append(getString(R.string.icc_id)).append(": ").append(it.value.mIccId).append("\n") - msg.append(getString(R.string.sim_slot_index)).append(": ").append(it.value.mSimSlotIndex).append("\n") - msg.append(getString(R.string.number)).append(": ").append(it.value.mNumber).append("\n") - msg.append(getString(R.string.country_iso)).append(": ").append(it.value.mCountryIso).append("\n") - msg.append(getString(R.string.subscription_id)).append(": ").append(it.value.mSubscriptionId).append("\n") + // 根据任务信息执行相应操作 + val conditionList = Gson().fromJson(task.conditions, Array::class.java).toMutableList() + if (conditionList.isEmpty()) { + Log.d(TAG, "TASK-${task.id}:conditionList is empty") + continue } + val firstCondition = conditionList.firstOrNull() + if (firstCondition == null) { + Log.d(TAG, "TASK-${task.id}:firstCondition is null") + continue + } + + val simSetting = Gson().fromJson(firstCondition.setting, SimSetting::class.java) + if (simSetting == null) { + Log.d(TAG, "TASK-${task.id}:simSetting is null") + continue + } + + if (TaskUtils.simState != simSetting.simState) { + Log.d(TAG, "TASK-${task.id}:networkState is not match, simSetting = $simSetting") + continue + } + + //TODO:判断其他条件是否满足,注意:SIM卡已准备就绪时,延迟5秒(给够搜索信号时间)才执行任务 + if (!ConditionUtils.checkCondition(task.id, conditionList)) { + Log.d(TAG, "TASK-${task.id}:other condition is not satisfied") + continue + } + + val msg = StringBuilder() + msg.append(String.format(getString(R.string.sim_state), simStateStr)).append("\n") + if (TaskUtils.simState == TelephonyManager.SIM_STATE_READY) { + // 获取 SIM 卡信息 + App.SimInfoList = PhoneUtils.getSimMultiInfo() + //Log.d(TAG, App.SimInfoList.toString()) + App.SimInfoList.forEach { + msg.append("[SIM-").append(it.key + 1).append("]\n") + msg.append(getString(R.string.carrier_name)).append(": ").append(it.value.mCarrierName).append("\n") + //msg.append(getString(R.string.icc_id)).append(": ").append(it.value.mIccId).append("\n") + msg.append(getString(R.string.sim_slot_index)).append(": ").append(it.value.mSimSlotIndex).append("\n") + msg.append(getString(R.string.number)).append(": ").append(it.value.mNumber).append("\n") + msg.append(getString(R.string.country_iso)).append(": ").append(it.value.mCountryIso).append("\n") + msg.append(getString(R.string.subscription_id)).append(": ").append(it.value.mSubscriptionId).append("\n") + } + } + + //TODO: 组装消息体 && 执行具体任务 + 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 actionRequest = OneTimeWorkRequestBuilder().setInputData(actionData).build() + WorkManager.getInstance().enqueue(actionRequest) } - //TODO: 组装消息体 && 执行具体任务 - 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 actionRequest = OneTimeWorkRequestBuilder().setInputData(actionData).build() - WorkManager.getInstance().enqueue(actionRequest) + return Result.success() + } catch (e: Exception) { + Log.e(TAG, "doWork error", e) + return Result.failure() } - - return Result.success() - } } \ No newline at end of file diff --git a/app/src/main/java/com/idormy/sms/forwarder/workers/UpdateLogsWorker.kt b/app/src/main/java/com/idormy/sms/forwarder/workers/UpdateLogsWorker.kt index 568a8296..6ed6ef01 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/workers/UpdateLogsWorker.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/workers/UpdateLogsWorker.kt @@ -6,22 +6,29 @@ import androidx.work.WorkerParameters import com.google.gson.Gson import com.idormy.sms.forwarder.core.Core import com.idormy.sms.forwarder.entity.result.SendResponse +import com.idormy.sms.forwarder.utils.Log import com.idormy.sms.forwarder.utils.Worker import com.xuexiang.xutil.data.DateUtils import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.withContext import java.text.SimpleDateFormat -import java.util.* +import java.util.Locale class UpdateLogsWorker( context: Context, workerParams: WorkerParameters, ) : CoroutineWorker(context, workerParams) { override suspend fun doWork(): Result = withContext(Dispatchers.IO) { - val sendResponseJson = inputData.getString(Worker.updateLogs) - val sendResponse = Gson().fromJson(sendResponseJson, SendResponse::class.java) - Core.logs.updateStatus(sendResponse.logId, sendResponse.status, sendResponse.response + "\nAt " + DateUtils.getNowString(SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.getDefault()))) - return@withContext Result.success() + try { + val sendResponseJson = inputData.getString(Worker.updateLogs) + val sendResponse = Gson().fromJson(sendResponseJson, SendResponse::class.java) + Core.logs.updateStatus(sendResponse.logId, sendResponse.status, sendResponse.response + "\nAt " + DateUtils.getNowString(SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.getDefault()))) + return@withContext Result.success() + } catch (e: Exception) { + e.printStackTrace() + Log.e("UpdateLogsWorker", "UpdateLogsWorker error: ${e.message}") + return@withContext Result.failure() + } } } \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_settings.xml b/app/src/main/res/layout/fragment_settings.xml index 31de527e..ffb090cc 100644 --- a/app/src/main/res/layout/fragment_settings.xml +++ b/app/src/main/res/layout/fragment_settings.xml @@ -1652,6 +1652,55 @@ + + + + + + + + + + + + + + + When starting, it will directly enter the task center Exit pure task mode Do you want to quit the app immediately and start it manually to take effect in pure task mode? + Enable debug mode + Save Log.* to file for troubleshooting; export to download directory. Optional: Enable Cactus Keep Alive Dual foreground service/JobScheduler/WorkManager/1px/silent music diff --git a/app/src/main/res/values-zh-rCN/strings.xml b/app/src/main/res/values-zh-rCN/strings.xml index 8526cd01..7155be8d 100644 --- a/app/src/main/res/values-zh-rCN/strings.xml +++ b/app/src/main/res/values-zh-rCN/strings.xml @@ -1019,6 +1019,8 @@ 启动APP时直接进入自动任务 退出纯自动任务模式 是否立即退出App,并手动启动以生效纯自动任务模式? + 开启调试模式 + 将Log.*写入文件,以便排查问题;可导出到下载目录 可选组件: 启用 Cactus 增强保活措施(会增加耗电) 双进程前台服务/JobScheduler/WorkManager/1像素/无声音乐 diff --git a/app/src/main/res/values-zh-rTW/strings.xml b/app/src/main/res/values-zh-rTW/strings.xml index 52eecdf4..b1e5cabc 100644 --- a/app/src/main/res/values-zh-rTW/strings.xml +++ b/app/src/main/res/values-zh-rTW/strings.xml @@ -1019,6 +1019,8 @@ 啟動APP時直接進入自動任務 退出純自動任務模式 是否立即退出App,並手動啟動以生效純自動任務模式? + 开啟調試模式 + 將 Log.* 寫入檔案,以便排查問題;可匯出至下載目錄 可選組件: 啟用 Cactus 增強保活措施(會增加耗電) 雙進程前台服務/JobScheduler/WorkManager/1像素/無聲音樂 diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index f7684bf4..94150636 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -1019,6 +1019,8 @@ 启动APP时直接进入自动任务 退出纯自动任务模式 是否立即退出App,并手动启动以生效纯自动任务模式? + 开启调试模式 + 将Log.*写入文件,以便排查问题;可导出到下载目录 可选组件: 启用 Cactus 增强保活措施(会增加耗电) 双进程前台服务/JobScheduler/WorkManager/1像素/无声音乐