diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml index 45951bf8..a239ba8c 100644 --- a/.github/ISSUE_TEMPLATE/config.yml +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -1,3 +1,4 @@ +#file: noinspection YAMLSchemaValidation blank_issues_enabled: false contact_links: - name: SmsForwarder 使用流程与问题排查流程 diff --git a/app/build.gradle b/app/build.gradle index db19973b..54ac9411 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -1,3 +1,5 @@ +//file:noinspection GrDeprecatedAPIUsage +//file:noinspection DependencyNotationArgument plugins { id 'com.android.application' id 'kotlin-android' @@ -159,7 +161,7 @@ android { } } - android.applicationVariants.all { variant -> + android.applicationVariants.configureEach { variant -> // Assigns a different version code for each output APK. variant.outputs.each { output -> def date = new Date().format("yyyyMMdd", TimeZone.getTimeZone("GMT+08")) @@ -197,8 +199,11 @@ dependencies { androidTestImplementation 'androidx.test.ext:junit:1.1.5' androidTestImplementation deps.espresso.core + //noinspection GradleDependency implementation 'androidx.core:core-ktx:1.9.0' + //noinspection GradleDependency implementation 'androidx.activity:activity-ktx:1.6.1' + //noinspection GradleDependency implementation 'androidx.fragment:fragment-ktx:1.5.5' implementation "androidx.cardview:cardview:1.0.0" implementation 'androidx.appcompat:appcompat:1.6.1' @@ -231,15 +236,22 @@ dependencies { //implementation 'com.meituan.android.walle:library:1.1.6' def work_version = '2.8.1' + //noinspection GradleDependency api("androidx.work:work-multiprocess:$work_version") + //noinspection GradleDependency api("androidx.work:work-runtime-ktx:$work_version") //Android Room def room_version = '2.5.2' + //noinspection GradleDependency implementation "androidx.room:room-ktx:$room_version" + //noinspection GradleDependency implementation "androidx.room:room-runtime:$room_version" + //noinspection GradleDependency implementation "androidx.room:room-paging:$room_version" + //noinspection GradleDependency implementation "androidx.room:room-rxjava2:$room_version" + //noinspection KaptUsageInsteadOfKsp kapt "androidx.room:room-compiler:$room_version" //CodeView:https://github.com/AmrDeveloper/CodeView @@ -258,12 +270,14 @@ dependencies { implementation "com.squareup.retrofit2:adapter-rxjava2:$retrofit2_version" def paging_version = "3.1.1" + //noinspection GradleDependency implementation "androidx.paging:paging-runtime-ktx:$paging_version" // alternatively - without Android dependencies for tests + //noinspection GradleDependency testImplementation "androidx.paging:paging-common-ktx:$paging_version" //权限请求框架:https://github.com/getActivity/XXPermissions - implementation 'com.github.getActivity:XXPermissions:18.2' + implementation 'com.github.getActivity:XXPermissions:18.5' def mail_version = '1.6.7' implementation "com.sun.mail:android-mail:$mail_version" diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 8c65937d..dd4cc8d2 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -230,7 +230,8 @@ android:enabled="true" /> + android:enabled="true" + android:foregroundServiceType="location" /> - : DelegateAdapter.Adapter { +@Suppress("unused") +abstract class XDelegateAdapter : DelegateAdapter.Adapter { /** * 数据源 */ diff --git a/app/src/main/java/com/idormy/sms/forwarder/adapter/spinner/AppListAdapterItem.kt b/app/src/main/java/com/idormy/sms/forwarder/adapter/spinner/AppListAdapterItem.kt index 63a21a18..409d278c 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/adapter/spinner/AppListAdapterItem.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/adapter/spinner/AppListAdapterItem.kt @@ -3,7 +3,7 @@ package com.idormy.sms.forwarder.adapter.spinner import android.graphics.drawable.Drawable import com.xuexiang.xui.utils.ResUtils -@Suppress("unused") +@Suppress("unused", "DEPRECATION") class AppListAdapterItem { var name: String = "" diff --git a/app/src/main/java/com/idormy/sms/forwarder/adapter/spinner/SenderAdapterItem.kt b/app/src/main/java/com/idormy/sms/forwarder/adapter/spinner/SenderAdapterItem.kt index 3ce02dba..b63280c2 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/adapter/spinner/SenderAdapterItem.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/adapter/spinner/SenderAdapterItem.kt @@ -4,7 +4,7 @@ import android.content.Context import android.graphics.drawable.Drawable import com.xuexiang.xui.utils.ResUtils -@Suppress("unused") +@Suppress("unused", "DEPRECATION") class SenderAdapterItem { //标题内容 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 0c664360..1c08bc0d 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 @@ -20,6 +20,7 @@ import java.net.URISyntaxException * @author xuexiang * @since 2019-10-21 9:51 */ +@Suppress("DEPRECATION") class WebViewInterceptDialog : AppCompatActivity(), DialogInterface.OnDismissListener { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) diff --git a/app/src/main/java/com/idormy/sms/forwarder/database/entity/Frpc.kt b/app/src/main/java/com/idormy/sms/forwarder/database/entity/Frpc.kt index 434bff32..70b0851f 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/database/entity/Frpc.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/database/entity/Frpc.kt @@ -8,7 +8,7 @@ import androidx.room.PrimaryKey import com.idormy.sms.forwarder.R import com.idormy.sms.forwarder.utils.STATUS_ON import kotlinx.parcelize.Parcelize -import java.util.* +import java.util.Date @Parcelize @Entity(tableName = "Frpc") diff --git a/app/src/main/java/com/idormy/sms/forwarder/database/entity/Logs.kt b/app/src/main/java/com/idormy/sms/forwarder/database/entity/Logs.kt index e70b9642..dc5063eb 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/database/entity/Logs.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/database/entity/Logs.kt @@ -1,10 +1,13 @@ package com.idormy.sms.forwarder.database.entity import android.os.Parcelable -import androidx.room.* -import com.idormy.sms.forwarder.R +import androidx.room.ColumnInfo +import androidx.room.Entity +import androidx.room.ForeignKey +import androidx.room.Index +import androidx.room.PrimaryKey import kotlinx.parcelize.Parcelize -import java.util.* +import java.util.Date @Parcelize @Entity( diff --git a/app/src/main/java/com/idormy/sms/forwarder/database/entity/LogsDetail.kt b/app/src/main/java/com/idormy/sms/forwarder/database/entity/LogsDetail.kt index 4e1b94a1..8975d054 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/database/entity/LogsDetail.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/database/entity/LogsDetail.kt @@ -4,9 +4,24 @@ import android.os.Parcelable import androidx.room.ColumnInfo import androidx.room.DatabaseView import com.idormy.sms.forwarder.R -import com.idormy.sms.forwarder.utils.* +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 +import com.idormy.sms.forwarder.utils.TYPE_EMAIL +import com.idormy.sms.forwarder.utils.TYPE_FEISHU +import com.idormy.sms.forwarder.utils.TYPE_FEISHU_APP +import com.idormy.sms.forwarder.utils.TYPE_GOTIFY +import com.idormy.sms.forwarder.utils.TYPE_PUSHPLUS +import com.idormy.sms.forwarder.utils.TYPE_SERVERCHAN +import com.idormy.sms.forwarder.utils.TYPE_SMS +import com.idormy.sms.forwarder.utils.TYPE_SOCKET +import com.idormy.sms.forwarder.utils.TYPE_TELEGRAM +import com.idormy.sms.forwarder.utils.TYPE_URL_SCHEME +import com.idormy.sms.forwarder.utils.TYPE_WEBHOOK +import com.idormy.sms.forwarder.utils.TYPE_WEWORK_AGENT +import com.idormy.sms.forwarder.utils.TYPE_WEWORK_ROBOT import kotlinx.parcelize.Parcelize -import java.util.* +import java.util.Date @Parcelize @DatabaseView("SELECT LOGS.id,LOGS.type,LOGS.msg_id,LOGS.rule_id,LOGS.sender_id,LOGS.forward_status,LOGS.forward_response,LOGS.TIME,Rule.filed AS rule_filed,Rule.`check` AS rule_check,Rule.value AS rule_value,Rule.sim_slot AS rule_sim_slot,Sender.type AS sender_type,Sender.NAME AS sender_name FROM LOGS LEFT JOIN Rule ON LOGS.rule_id = Rule.id LEFT JOIN Sender ON LOGS.sender_id = Sender.id") diff --git a/app/src/main/java/com/idormy/sms/forwarder/database/entity/Msg.kt b/app/src/main/java/com/idormy/sms/forwarder/database/entity/Msg.kt index 3fa694ec..3c077e31 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/database/entity/Msg.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/database/entity/Msg.kt @@ -7,7 +7,7 @@ import androidx.room.Index import androidx.room.PrimaryKey import com.idormy.sms.forwarder.R import kotlinx.parcelize.Parcelize -import java.util.* +import java.util.Date @Parcelize @Entity( diff --git a/app/src/main/java/com/idormy/sms/forwarder/database/entity/Sender.kt b/app/src/main/java/com/idormy/sms/forwarder/database/entity/Sender.kt index 98bd5191..72d762a8 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/database/entity/Sender.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/database/entity/Sender.kt @@ -5,9 +5,25 @@ import androidx.room.ColumnInfo import androidx.room.Entity import androidx.room.PrimaryKey import com.idormy.sms.forwarder.R -import com.idormy.sms.forwarder.utils.* +import com.idormy.sms.forwarder.utils.STATUS_OFF +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 +import com.idormy.sms.forwarder.utils.TYPE_EMAIL +import com.idormy.sms.forwarder.utils.TYPE_FEISHU +import com.idormy.sms.forwarder.utils.TYPE_FEISHU_APP +import com.idormy.sms.forwarder.utils.TYPE_GOTIFY +import com.idormy.sms.forwarder.utils.TYPE_PUSHPLUS +import com.idormy.sms.forwarder.utils.TYPE_SERVERCHAN +import com.idormy.sms.forwarder.utils.TYPE_SMS +import com.idormy.sms.forwarder.utils.TYPE_SOCKET +import com.idormy.sms.forwarder.utils.TYPE_TELEGRAM +import com.idormy.sms.forwarder.utils.TYPE_URL_SCHEME +import com.idormy.sms.forwarder.utils.TYPE_WEBHOOK +import com.idormy.sms.forwarder.utils.TYPE_WEWORK_AGENT +import com.idormy.sms.forwarder.utils.TYPE_WEWORK_ROBOT import kotlinx.parcelize.Parcelize -import java.util.* +import java.util.Date @Parcelize @Entity(tableName = "Sender") diff --git a/app/src/main/java/com/idormy/sms/forwarder/database/ext/ConvertersDate.kt b/app/src/main/java/com/idormy/sms/forwarder/database/ext/ConvertersDate.kt index 70e5133a..76ad5046 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/database/ext/ConvertersDate.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/database/ext/ConvertersDate.kt @@ -1,7 +1,7 @@ package com.idormy.sms.forwarder.database.ext import androidx.room.TypeConverter -import java.util.* +import java.util.Date @Suppress("unused") class ConvertersDate { diff --git a/app/src/main/java/com/idormy/sms/forwarder/database/ext/ConvertersSenderList.kt b/app/src/main/java/com/idormy/sms/forwarder/database/ext/ConvertersSenderList.kt index a04eb775..155b3a8f 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/database/ext/ConvertersSenderList.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/database/ext/ConvertersSenderList.kt @@ -3,7 +3,6 @@ package com.idormy.sms.forwarder.database.ext import androidx.room.TypeConverter import com.idormy.sms.forwarder.core.Core import com.idormy.sms.forwarder.database.entity.Sender -import java.util.* @Suppress("unused") class ConvertersSenderList { diff --git a/app/src/main/java/com/idormy/sms/forwarder/database/viewmodel/LogsViewModel.kt b/app/src/main/java/com/idormy/sms/forwarder/database/viewmodel/LogsViewModel.kt index c6e3c7a4..9bddd42f 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/database/viewmodel/LogsViewModel.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/database/viewmodel/LogsViewModel.kt @@ -1,20 +1,13 @@ package com.idormy.sms.forwarder.database.viewmodel import androidx.lifecycle.ViewModel -import androidx.lifecycle.viewModelScope -import androidx.paging.Pager -import androidx.paging.PagingConfig -import androidx.paging.PagingData -import androidx.paging.cachedIn import com.idormy.sms.forwarder.database.dao.LogsDao -import com.idormy.sms.forwarder.database.entity.LogsAndRuleAndSender import com.idormy.sms.forwarder.database.ext.ioThread -import kotlinx.coroutines.flow.Flow class LogsViewModel(private val dao: LogsDao) : ViewModel() { - private var type: String = "sms" + //private var type: String = "sms" - fun setType(type: String): LogsViewModel { + /*fun setType(type: String): LogsViewModel { this.type = type return this } @@ -27,7 +20,7 @@ class LogsViewModel(private val dao: LogsDao) : ViewModel() { ) ) { dao.pagingSource(type) - }.flow.cachedIn(viewModelScope) + }.flow.cachedIn(viewModelScope)*/ fun delete(id: Long) = ioThread { dao.delete(id) diff --git a/app/src/main/java/com/idormy/sms/forwarder/entity/result/FeishuAppResult.kt b/app/src/main/java/com/idormy/sms/forwarder/entity/result/FeishuAppResult.kt index 025004ef..4d1435c5 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/entity/result/FeishuAppResult.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/entity/result/FeishuAppResult.kt @@ -1,5 +1,6 @@ package com.idormy.sms.forwarder.entity.result +@Suppress("PropertyName") data class FeishuAppResult( var code: Long, var msg: String, diff --git a/app/src/main/java/com/idormy/sms/forwarder/entity/result/WeworkAgentResult.kt b/app/src/main/java/com/idormy/sms/forwarder/entity/result/WeworkAgentResult.kt index 78a86b32..df53b7ab 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/entity/result/WeworkAgentResult.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/entity/result/WeworkAgentResult.kt @@ -1,5 +1,6 @@ package com.idormy.sms.forwarder.entity.result +@Suppress("PropertyName") data class WeworkAgentResult( var errcode: Long, var errmsg: String, 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 efa39c7f..c8949bf5 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 @@ -36,7 +36,7 @@ import com.xuexiang.xutil.XUtil class AppListFragment : BaseFragment() { private val TAG: String = AppListFragment::class.java.simpleName - var appListAdapter: AppListAdapter? = null + private var appListAdapter: AppListAdapter? = null private val appListObserver = Observer { it: String -> Log.d(TAG, "EVENT_LOAD_APP_LIST: $it") appListAdapter?.refresh(getAppsList(false)) 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 ef3422d6..90b2fb89 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 @@ -16,7 +16,14 @@ import com.idormy.sms.forwarder.core.BaseFragment import com.idormy.sms.forwarder.databinding.FragmentClientBinding import com.idormy.sms.forwarder.server.model.BaseResponse import com.idormy.sms.forwarder.server.model.ConfigData -import com.idormy.sms.forwarder.utils.* +import com.idormy.sms.forwarder.utils.Base64 +import com.idormy.sms.forwarder.utils.CLIENT_FRAGMENT_LIST +import com.idormy.sms.forwarder.utils.CommonUtils +import com.idormy.sms.forwarder.utils.HttpServerUtils +import com.idormy.sms.forwarder.utils.RSACrypt +import com.idormy.sms.forwarder.utils.SM4Crypt +import com.idormy.sms.forwarder.utils.SettingUtils +import com.idormy.sms.forwarder.utils.XToastUtils import com.xuexiang.xaop.annotation.SingleClick import com.xuexiang.xhttp2.XHttp import com.xuexiang.xhttp2.cache.model.CacheMode @@ -38,11 +45,11 @@ import com.xuexiang.xui.widget.dialog.materialdialog.MaterialDialog import com.xuexiang.xutil.XUtil import com.xuexiang.xutil.data.ConvertTools -@Suppress("PropertyName") +@Suppress("PrivatePropertyName") @Page(name = "主动控制·客户端") class ClientFragment : BaseFragment(), View.OnClickListener, RecyclerViewHolder.OnItemClickListener { - val TAG: String = ClientFragment::class.java.simpleName + private val TAG: String = ClientFragment::class.java.simpleName private var appContext: App? = null private var serverConfig: ConfigData? = null private var serverHistory: MutableMap = mutableMapOf() @@ -125,14 +132,17 @@ class ClientFragment : BaseFragment(), View.OnClickListe safetyMeasuresId = R.id.rb_safety_measures_sign binding!!.tvSignKey.text = getString(R.string.sign_key) } + 2 -> { safetyMeasuresId = R.id.rb_safety_measures_rsa binding!!.tvSignKey.text = getString(R.string.public_key) } + 3 -> { safetyMeasuresId = R.id.rb_safety_measures_sm4 binding!!.tvSignKey.text = getString(R.string.sm4_key) } + else -> { binding!!.layoutSignKey.visibility = View.GONE } @@ -146,14 +156,17 @@ class ClientFragment : BaseFragment(), View.OnClickListe safetyMeasures = 1 binding!!.tvSignKey.text = getString(R.string.sign_key) } + R.id.rb_safety_measures_rsa -> { safetyMeasures = 2 binding!!.tvSignKey.text = getString(R.string.public_key) } + R.id.rb_safety_measures_sm4 -> { safetyMeasures = 3 binding!!.tvSignKey.text = getString(R.string.sm4_key) } + else -> { binding!!.layoutSignKey.visibility = View.GONE } @@ -185,6 +198,7 @@ class ClientFragment : BaseFragment(), View.OnClickListe } CommonUtils.previewPicture(this, getString(R.string.url_wechat_miniprogram), null) } + R.id.btn_server_history -> { if (serverHistory.isEmpty()) { XToastUtils.warning(getString(R.string.no_server_history)) @@ -213,14 +227,17 @@ class ClientFragment : BaseFragment(), View.OnClickListe safetyMeasuresId = R.id.rb_safety_measures_sign binding!!.tvSignKey.text = getString(R.string.sign_key) } + "2" -> { safetyMeasuresId = R.id.rb_safety_measures_rsa binding!!.tvSignKey.text = getString(R.string.public_key) } + "3" -> { safetyMeasuresId = R.id.rb_safety_measures_sm4 binding!!.tvSignKey.text = getString(R.string.sm4_key) } + else -> { binding!!.tvSignKey.visibility = View.GONE binding!!.etSignKey.visibility = View.GONE @@ -237,6 +254,7 @@ class ClientFragment : BaseFragment(), View.OnClickListe HttpServerUtils.serverHistory = "" }.show() } + R.id.btn_server_test -> { if (!CommonUtils.checkUrl(HttpServerUtils.serverAddress)) { XToastUtils.error(getString(R.string.invalid_service_address)) @@ -244,6 +262,7 @@ class ClientFragment : BaseFragment(), View.OnClickListe } queryConfig(true) } + else -> {} } } @@ -311,6 +330,7 @@ class ClientFragment : BaseFragment(), View.OnClickListe } postRequest.upString(requestMsg) } + 3 -> { try { val sm4Key = ConvertTools.hexStringToByteArray(HttpServerUtils.clientSignKey) @@ -325,6 +345,7 @@ class ClientFragment : BaseFragment(), View.OnClickListe } postRequest.upString(requestMsg) } + else -> { postRequest.upJson(requestMsg) } diff --git a/app/src/main/java/com/idormy/sms/forwarder/fragment/FrpcEditFragment.kt b/app/src/main/java/com/idormy/sms/forwarder/fragment/FrpcEditFragment.kt index 8ed3543a..31c7e225 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/fragment/FrpcEditFragment.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/fragment/FrpcEditFragment.kt @@ -31,8 +31,8 @@ import com.xuexiang.xui.widget.edittext.materialedittext.MaterialEditText @Page(name = "Frp内网穿透·编辑配置") class FrpcEditFragment : BaseFragment() { - var titleBar: TitleBar? = null - var frpc: Frpc? = null + private var titleBar: TitleBar? = null + private var frpc: Frpc? = null private val viewModel by viewModels { BaseViewModelFactory(context) } override fun initViews() { diff --git a/app/src/main/java/com/idormy/sms/forwarder/fragment/FrpcFragment.kt b/app/src/main/java/com/idormy/sms/forwarder/fragment/FrpcFragment.kt index 1a422b6a..84ac0d92 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/fragment/FrpcFragment.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/fragment/FrpcFragment.kt @@ -17,7 +17,14 @@ import com.idormy.sms.forwarder.database.viewmodel.BaseViewModelFactory import com.idormy.sms.forwarder.database.viewmodel.FrpcViewModel import com.idormy.sms.forwarder.databinding.FragmentFrpcsBinding import com.idormy.sms.forwarder.service.ForegroundService -import com.idormy.sms.forwarder.utils.* +import com.idormy.sms.forwarder.utils.EVENT_FRPC_DELETE_CONFIG +import com.idormy.sms.forwarder.utils.EVENT_FRPC_RUNNING_ERROR +import com.idormy.sms.forwarder.utils.EVENT_FRPC_RUNNING_SUCCESS +import com.idormy.sms.forwarder.utils.EVENT_FRPC_UPDATE_CONFIG +import com.idormy.sms.forwarder.utils.FrpcUtils +import com.idormy.sms.forwarder.utils.INTENT_FRPC_APPLY_FILE +import com.idormy.sms.forwarder.utils.INTENT_FRPC_EDIT_FILE +import com.idormy.sms.forwarder.utils.XToastUtils import com.jeremyliao.liveeventbus.LiveEventBus import com.scwang.smartrefresh.layout.api.RefreshLayout import com.xuexiang.xaop.annotation.SingleClick @@ -41,7 +48,7 @@ import kotlinx.coroutines.launch @Page(name = "Frp内网穿透") class FrpcFragment : BaseFragment(), FrpcPagingAdapter.OnItemClickListener { - var titleBar: TitleBar? = null + private var titleBar: TitleBar? = null private var adapter = FrpcPagingAdapter(this) private val viewModel by viewModels { BaseViewModelFactory(context) } 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 c37d6d36..e68962be 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 @@ -36,11 +36,11 @@ import kotlinx.coroutines.launch import java.text.SimpleDateFormat import java.util.* -@Suppress("PropertyName") +@Suppress("PrivatePropertyName", "DEPRECATION") @Page(name = "转发日志") class LogsFragment : BaseFragment(), MsgPagingAdapter.OnItemClickListener { - val TAG: String = LogsFragment::class.java.simpleName + private val TAG: String = LogsFragment::class.java.simpleName private var adapter = MsgPagingAdapter(this) private val viewModel by viewModels { BaseViewModelFactory(context) } private var currentType: String = "sms" 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 8e2d481f..df88e7a1 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 @@ -52,11 +52,11 @@ import java.util.* class RulesEditFragment : BaseFragment(), View.OnClickListener, CompoundButton.OnCheckedChangeListener { private val TAG: String = RulesEditFragment::class.java.simpleName - var titleBar: TitleBar? = null + private var titleBar: TitleBar? = null private val viewModel by viewModels { BaseViewModelFactory(context) } - var callType = 1 - var callTypeIndex = 0 + private var callType = 1 + private var callTypeIndex = 0 //免打扰(禁用转发)时间段 private val mTimeOption = DataProvider.timePeriodOption @@ -64,12 +64,12 @@ class RulesEditFragment : BaseFragment(), View.OnClic private var silentPeriodEnd = 0 //当前发送通道 - var senderId = 0L - var senderListSelected: MutableList = mutableListOf() + private var senderId = 0L + private var senderListSelected: MutableList = mutableListOf() private var senderItemMap = HashMap(2) //发送通道列表 - var senderListAll: MutableList = mutableListOf() + private var senderListAll: MutableList = mutableListOf() private val senderSpinnerList = ArrayList() private lateinit var senderSpinnerAdapter: SenderSpinnerAdapter<*> diff --git a/app/src/main/java/com/idormy/sms/forwarder/fragment/RulesFragment.kt b/app/src/main/java/com/idormy/sms/forwarder/fragment/RulesFragment.kt index e3451d0a..60c4f5fa 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/fragment/RulesFragment.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/fragment/RulesFragment.kt @@ -14,7 +14,11 @@ import com.idormy.sms.forwarder.database.entity.Rule import com.idormy.sms.forwarder.database.viewmodel.BaseViewModelFactory import com.idormy.sms.forwarder.database.viewmodel.RuleViewModel import com.idormy.sms.forwarder.databinding.FragmentRulesBinding -import com.idormy.sms.forwarder.utils.* +import com.idormy.sms.forwarder.utils.EVENT_UPDATE_RULE_TYPE +import com.idormy.sms.forwarder.utils.KEY_RULE_CLONE +import com.idormy.sms.forwarder.utils.KEY_RULE_ID +import com.idormy.sms.forwarder.utils.KEY_RULE_TYPE +import com.idormy.sms.forwarder.utils.XToastUtils import com.jeremyliao.liveeventbus.LiveEventBus import com.scwang.smartrefresh.layout.api.RefreshLayout import com.xuexiang.xpage.annotation.Page @@ -26,11 +30,11 @@ import com.xuexiang.xui.widget.dialog.materialdialog.MaterialDialog import kotlinx.coroutines.flow.collectLatest import kotlinx.coroutines.launch -@Suppress("PropertyName") +@Suppress("DEPRECATION") @Page(name = "转发规则") class RulesFragment : BaseFragment(), RulePagingAdapter.OnItemClickListener { - val TAG: String = RulesFragment::class.java.simpleName + //private val TAG: String = RulesFragment::class.java.simpleName private var adapter = RulePagingAdapter(this) private val viewModel by viewModels { BaseViewModelFactory(context) } private var currentType: String = "sms" @@ -101,6 +105,7 @@ class RulesFragment : BaseFragment(), RulePagingAdapter.O .putBoolean(KEY_RULE_CLONE, true) .open(this) } + R.id.iv_edit -> { PageOption.to(RulesEditFragment::class.java) .setNewActivity(true) @@ -108,6 +113,7 @@ class RulesFragment : BaseFragment(), RulePagingAdapter.O .putString(KEY_RULE_TYPE, item.type) .open(this) } + R.id.iv_delete -> { MaterialDialog.Builder(requireContext()) .title(R.string.delete_rule_title) @@ -120,6 +126,7 @@ class RulesFragment : BaseFragment(), RulePagingAdapter.O } .show() } + else -> {} } } 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 7d7d12f0..b82a06db 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 @@ -15,8 +15,42 @@ import com.idormy.sms.forwarder.database.entity.Sender import com.idormy.sms.forwarder.database.viewmodel.BaseViewModelFactory import com.idormy.sms.forwarder.database.viewmodel.SenderViewModel import com.idormy.sms.forwarder.databinding.FragmentSendersBinding -import com.idormy.sms.forwarder.fragment.senders.* -import com.idormy.sms.forwarder.utils.* +import com.idormy.sms.forwarder.fragment.senders.BarkFragment +import com.idormy.sms.forwarder.fragment.senders.DingtalkGroupRobotFragment +import com.idormy.sms.forwarder.fragment.senders.DingtalkInnerRobotFragment +import com.idormy.sms.forwarder.fragment.senders.EmailFragment +import com.idormy.sms.forwarder.fragment.senders.FeishuAppFragment +import com.idormy.sms.forwarder.fragment.senders.FeishuFragment +import com.idormy.sms.forwarder.fragment.senders.GotifyFragment +import com.idormy.sms.forwarder.fragment.senders.PushplusFragment +import com.idormy.sms.forwarder.fragment.senders.ServerchanFragment +import com.idormy.sms.forwarder.fragment.senders.SmsFragment +import com.idormy.sms.forwarder.fragment.senders.SocketFragment +import com.idormy.sms.forwarder.fragment.senders.TelegramFragment +import com.idormy.sms.forwarder.fragment.senders.UrlSchemeFragment +import com.idormy.sms.forwarder.fragment.senders.WebhookFragment +import com.idormy.sms.forwarder.fragment.senders.WeworkAgentFragment +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.TYPE_BARK +import com.idormy.sms.forwarder.utils.TYPE_DINGTALK_GROUP_ROBOT +import com.idormy.sms.forwarder.utils.TYPE_DINGTALK_INNER_ROBOT +import com.idormy.sms.forwarder.utils.TYPE_EMAIL +import com.idormy.sms.forwarder.utils.TYPE_FEISHU +import com.idormy.sms.forwarder.utils.TYPE_FEISHU_APP +import com.idormy.sms.forwarder.utils.TYPE_GOTIFY +import com.idormy.sms.forwarder.utils.TYPE_PUSHPLUS +import com.idormy.sms.forwarder.utils.TYPE_SERVERCHAN +import com.idormy.sms.forwarder.utils.TYPE_SMS +import com.idormy.sms.forwarder.utils.TYPE_SOCKET +import com.idormy.sms.forwarder.utils.TYPE_TELEGRAM +import com.idormy.sms.forwarder.utils.TYPE_URL_SCHEME +import com.idormy.sms.forwarder.utils.TYPE_WEBHOOK +import com.idormy.sms.forwarder.utils.TYPE_WEWORK_AGENT +import com.idormy.sms.forwarder.utils.TYPE_WEWORK_ROBOT +import com.idormy.sms.forwarder.utils.XToastUtils import com.scwang.smartrefresh.layout.api.RefreshLayout import com.xuexiang.xpage.annotation.Page import com.xuexiang.xpage.core.PageOption @@ -27,11 +61,11 @@ import com.xuexiang.xui.widget.dialog.materialdialog.MaterialDialog import kotlinx.coroutines.flow.collectLatest import kotlinx.coroutines.launch -@Suppress("PropertyName") +@Suppress("PrivatePropertyName", "DEPRECATION") @Page(name = "发送通道") class SendersFragment : BaseFragment(), SenderPagingAdapter.OnItemClickListener { - val TAG: String = SendersFragment::class.java.simpleName + private val TAG: String = SendersFragment::class.java.simpleName private var adapter = SenderPagingAdapter(this) private val viewModel by viewModels { BaseViewModelFactory(context) } private var currentStatus: Int = 1 @@ -119,6 +153,7 @@ class SendersFragment : BaseFragment(), SenderPagingAda .putBoolean(KEY_SENDER_CLONE, true) .open(this) } + R.id.iv_edit -> { PageOption.to( when (item.type) { @@ -145,6 +180,7 @@ class SendersFragment : BaseFragment(), SenderPagingAda .putInt(KEY_SENDER_TYPE, item.type) .open(this) } + R.id.iv_delete -> { MaterialDialog.Builder(requireContext()) .title(R.string.delete_sender_title) @@ -157,6 +193,7 @@ class SendersFragment : BaseFragment(), SenderPagingAda } .show() } + else -> {} } } diff --git a/app/src/main/java/com/idormy/sms/forwarder/fragment/ServiceProtocolFragment.kt b/app/src/main/java/com/idormy/sms/forwarder/fragment/ServiceProtocolFragment.kt index f97930eb..3dd06a00 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/fragment/ServiceProtocolFragment.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/fragment/ServiceProtocolFragment.kt @@ -29,6 +29,7 @@ class ServiceProtocolFragment : BaseFragment() @JvmField @AutoWired(name = KEY_IS_IMMERSIVE) var isImmersive = false + override fun initArgs() { XRouter.getInstance().inject(this) } 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 4821eb01..d494eaa9 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 @@ -55,11 +55,11 @@ import com.xuexiang.xutil.app.AppUtils.getAppPackageName import kotlinx.coroutines.* import java.util.* -@Suppress("PropertyName", "SpellCheckingInspection") +@Suppress("SpellCheckingInspection", "PrivatePropertyName") @Page(name = "通用设置") class SettingsFragment : BaseFragment(), View.OnClickListener { - val TAG: String = SettingsFragment::class.java.simpleName + private val TAG: String = SettingsFragment::class.java.simpleName private val mTimeOption = DataProvider.timePeriodOption //已安装App信息列表 @@ -86,39 +86,28 @@ class SettingsFragment : BaseFragment(), View.OnClickL @SuppressLint("NewApi", "SetTextI18n") override fun initViews() { - //转发短信广播 switchEnableSms(binding!!.sbEnableSms) //转发通话记录 - switchEnablePhone( - binding!!.sbEnablePhone, binding!!.scbCallType1, binding!!.scbCallType2, binding!!.scbCallType3, binding!!.scbCallType4, binding!!.scbCallType5, binding!!.scbCallType6 - ) + switchEnablePhone(binding!!.sbEnablePhone, binding!!.scbCallType1, binding!!.scbCallType2, binding!!.scbCallType3, binding!!.scbCallType4, binding!!.scbCallType5, binding!!.scbCallType6) //转发应用通知 - switchEnableAppNotify( - binding!!.sbEnableAppNotify, binding!!.scbCancelAppNotify, binding!!.scbNotUserPresent - ) + switchEnableAppNotify(binding!!.sbEnableAppNotify, binding!!.scbCancelAppNotify, binding!!.scbNotUserPresent) + //启用GPS定位功能 + switchEnableLocation(binding!!.sbEnableLocation, binding!!.layoutLocationSetting, binding!!.rgAccuracy, binding!!.rgPowerRequirement, binding!!.xsbMinInterval, binding!!.xsbMinDistance) //短信指令 switchEnableSmsCommand(binding!!.sbEnableSmsCommand, binding!!.etSafePhone) - + //启动时异步获取已安装App信息 + switchEnableLoadAppList(binding!!.sbEnableLoadAppList, binding!!.scbLoadUserApp, binding!!.scbLoadSystemApp) //设置自动消除额外APP通知 editExtraAppList(binding!!.etAppList) - //启动时异步获取已安装App信息 - switchEnableLoadAppList( - binding!!.sbEnableLoadAppList, binding!!.scbLoadUserApp, binding!!.scbLoadSystemApp - ) - //过滤多久内重复消息 + //自动过滤多久内重复消息 binding!!.xsbDuplicateMessagesLimits.setDefaultValue(SettingUtils.duplicateMessagesLimits) binding!!.xsbDuplicateMessagesLimits.setOnSeekBarListener { _: XSeekBar?, newValue: Int -> SettingUtils.duplicateMessagesLimits = newValue } //免打扰(禁用转发)时间段 binding!!.tvSilentPeriod.text = mTimeOption[SettingUtils.silentPeriodStart] + " ~ " + mTimeOption[SettingUtils.silentPeriodEnd] - //自动删除N天前的转发记录 - binding!!.xsbAutoCleanLogs.setDefaultValue(SettingUtils.autoCleanLogsDays) - binding!!.xsbAutoCleanLogs.setOnSeekBarListener { _: XSeekBar?, newValue: Int -> - SettingUtils.autoCleanLogsDays = newValue - } //开机启动 checkWithReboot(binding!!.sbWithReboot, binding!!.tvAutoStartup) @@ -126,12 +115,8 @@ class SettingsFragment : BaseFragment(), View.OnClickL batterySetting(binding!!.layoutBatterySetting, binding!!.sbBatterySetting) //不在最近任务列表中显示 switchExcludeFromRecents(binding!!.layoutExcludeFromRecents, binding!!.sbExcludeFromRecents) - //Cactus增强保活措施 - switchEnableCactus( - binding!!.sbEnableCactus, binding!!.scbPlaySilenceMusic, binding!!.scbOnePixelActivity - ) - + switchEnableCactus(binding!!.sbEnableCactus, binding!!.scbPlaySilenceMusic, binding!!.scbOnePixelActivity) //接口请求失败重试时间间隔 editRetryDelayTime(binding!!.xsbRetryTimes, binding!!.xsbDelayTime, binding!!.xsbTimeout) @@ -145,23 +130,16 @@ class SettingsFragment : BaseFragment(), View.OnClickL editAddExtraSim1(binding!!.etExtraSim1) //SIM2备注 editAddExtraSim2(binding!!.etExtraSim2) - //通知内容 editNotifyContent(binding!!.etNotifyContent) - //启用自定义模版 switchSmsTemplate(binding!!.sbSmsTemplate) //自定义模板 editSmsTemplate(binding!!.etSmsTemplate) - //纯客户端模式 switchDirectlyToClient(binding!!.sbDirectlyToClient) - //纯自动任务模式 switchDirectlyToTask(binding!!.sbDirectlyToTask) - - //启用 {{定位信息}} 标签 - switchEnableLocation(binding!!.sbEnableLocation, binding!!.layoutLocationSetting, binding!!.rgAccuracy, binding!!.rgPowerRequirement, binding!!.xsbMinInterval, binding!!.xsbMinDistance) } override fun onResume() { @@ -183,7 +161,6 @@ class SettingsFragment : BaseFragment(), View.OnClickL //监听已安装App信息列表加载完成事件 LiveEventBus.get(EVENT_LOAD_APP_LIST, String::class.java).observeStickyForever(appListObserver) - } @SuppressLint("SetTextI18n") @@ -295,7 +272,7 @@ class SettingsFragment : BaseFragment(), View.OnClickL //转发短信 @SuppressLint("UseSwitchCompatOrMaterialCode") - fun switchEnableSms(sbEnableSms: SwitchButton) { + private fun switchEnableSms(sbEnableSms: SwitchButton) { sbEnableSms.isChecked = SettingUtils.enableSms sbEnableSms.setOnCheckedChangeListener { _: CompoundButton?, isChecked: Boolean -> SettingUtils.enableSms = isChecked @@ -338,9 +315,7 @@ class SettingsFragment : BaseFragment(), View.OnClickL //转发通话 @SuppressLint("UseSwitchCompatOrMaterialCode") - fun switchEnablePhone( - sbEnablePhone: SwitchButton, scbCallType1: SmoothCheckBox, scbCallType2: SmoothCheckBox, scbCallType3: SmoothCheckBox, scbCallType4: SmoothCheckBox, scbCallType5: SmoothCheckBox, scbCallType6: SmoothCheckBox - ) { + private fun switchEnablePhone(sbEnablePhone: SwitchButton, scbCallType1: SmoothCheckBox, scbCallType2: SmoothCheckBox, scbCallType3: SmoothCheckBox, scbCallType4: SmoothCheckBox, scbCallType5: SmoothCheckBox, scbCallType6: SmoothCheckBox) { sbEnablePhone.isChecked = SettingUtils.enablePhone scbCallType1.isChecked = SettingUtils.enableCallType1 scbCallType2.isChecked = SettingUtils.enableCallType2 @@ -441,9 +416,7 @@ class SettingsFragment : BaseFragment(), View.OnClickL //转发应用通知 @SuppressLint("UseSwitchCompatOrMaterialCode") - fun switchEnableAppNotify( - sbEnableAppNotify: SwitchButton, scbCancelAppNotify: SmoothCheckBox, scbNotUserPresent: SmoothCheckBox - ) { + private fun switchEnableAppNotify(sbEnableAppNotify: SwitchButton, scbCancelAppNotify: SmoothCheckBox, scbNotUserPresent: SmoothCheckBox) { val isEnable: Boolean = SettingUtils.enableAppNotify sbEnableAppNotify.isChecked = isEnable @@ -482,9 +455,99 @@ class SettingsFragment : BaseFragment(), View.OnClickL } } + //启用定位功能 + private fun switchEnableLocation(@SuppressLint("UseSwitchCompatOrMaterialCode") switchEnableLocation: SwitchButton, layoutLocationSetting: LinearLayout, rgAccuracy: RadioGroup, rgPowerRequirement: RadioGroup, xsbMinInterval: XSeekBar, xsbMinDistance: XSeekBar) { + //是否启用定位功能 + switchEnableLocation.isChecked = SettingUtils.enableLocation + layoutLocationSetting.visibility = if (SettingUtils.enableLocation) View.VISIBLE else View.GONE + switchEnableLocation.setOnCheckedChangeListener { _: CompoundButton?, isChecked: Boolean -> + SettingUtils.enableLocation = isChecked + if (isChecked) { + XXPermissions.with(this).permission(Permission.ACCESS_COARSE_LOCATION).permission(Permission.ACCESS_FINE_LOCATION).permission(Permission.ACCESS_BACKGROUND_LOCATION).request(object : OnPermissionCallback { + override fun onGranted(permissions: List, all: Boolean) { + restartLocationService() + } + + 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) + } + SettingUtils.enableLocation = false + switchEnableLocation.isChecked = false + restartLocationService() + } + }) + } else { + restartLocationService() + } + layoutLocationSetting.visibility = if (isChecked) View.VISIBLE else View.GONE + } + //设置位置精度:高精度(默认) + rgAccuracy.check( + when (SettingUtils.locationAccuracy) { + Criteria.ACCURACY_FINE -> R.id.rb_accuracy_fine + Criteria.ACCURACY_COARSE -> R.id.rb_accuracy_coarse + Criteria.NO_REQUIREMENT -> R.id.rb_accuracy_no_requirement + else -> R.id.rb_accuracy_fine + } + ) + rgAccuracy.setOnCheckedChangeListener { _: RadioGroup?, checkedId: Int -> + SettingUtils.locationAccuracy = when (checkedId) { + R.id.rb_accuracy_fine -> Criteria.ACCURACY_FINE + R.id.rb_accuracy_coarse -> Criteria.ACCURACY_COARSE + R.id.rb_accuracy_no_requirement -> Criteria.NO_REQUIREMENT + else -> Criteria.ACCURACY_FINE + } + restartLocationService() + } + //设置电量消耗:低电耗(默认) + rgPowerRequirement.check( + when (SettingUtils.locationPowerRequirement) { + Criteria.POWER_HIGH -> R.id.rb_power_requirement_high + Criteria.POWER_MEDIUM -> R.id.rb_power_requirement_medium + Criteria.POWER_LOW -> R.id.rb_power_requirement_low + Criteria.NO_REQUIREMENT -> R.id.rb_power_requirement_no_requirement + else -> R.id.rb_power_requirement_low + } + ) + rgPowerRequirement.setOnCheckedChangeListener { _: RadioGroup?, checkedId: Int -> + SettingUtils.locationPowerRequirement = when (checkedId) { + R.id.rb_power_requirement_high -> Criteria.POWER_HIGH + R.id.rb_power_requirement_medium -> Criteria.POWER_MEDIUM + R.id.rb_power_requirement_low -> Criteria.POWER_LOW + R.id.rb_power_requirement_no_requirement -> Criteria.NO_REQUIREMENT + else -> Criteria.POWER_LOW + } + restartLocationService() + } + //设置位置更新最小时间间隔(单位:毫秒); 默认间隔:10000毫秒,最小间隔:1000毫秒 + xsbMinInterval.setDefaultValue((SettingUtils.locationMinInterval / 1000).toInt()) + xsbMinInterval.setOnSeekBarListener { _: XSeekBar?, newValue: Int -> + SettingUtils.locationMinInterval = newValue * 1000L + restartLocationService() + } + //设置位置更新最小距离(单位:米);默认距离:0米 + xsbMinDistance.setDefaultValue(SettingUtils.locationMinDistance) + xsbMinDistance.setOnSeekBarListener { _: XSeekBar?, newValue: Int -> + SettingUtils.locationMinDistance = newValue + restartLocationService() + } + } + + //重启定位服务 + private fun restartLocationService() { + val serviceIntent = Intent(requireContext(), LocationService::class.java) + serviceIntent.action = "START" + requireContext().startService(serviceIntent) + } + //接受短信指令 @SuppressLint("UseSwitchCompatOrMaterialCode") - fun switchEnableSmsCommand(sbEnableSmsCommand: SwitchButton, etSafePhone: EditText) { + private fun switchEnableSmsCommand(sbEnableSmsCommand: SwitchButton, etSafePhone: EditText) { sbEnableSmsCommand.isChecked = SettingUtils.enableSmsCommand etSafePhone.visibility = if (SettingUtils.enableSmsCommand) View.VISIBLE else View.GONE @@ -549,9 +612,7 @@ class SettingsFragment : BaseFragment(), View.OnClickL //启动时异步获取已安装App信息 @SuppressLint("UseSwitchCompatOrMaterialCode") - fun switchEnableLoadAppList( - sbEnableLoadAppList: SwitchButton, scbLoadUserApp: SmoothCheckBox, scbLoadSystemApp: SmoothCheckBox - ) { + private fun switchEnableLoadAppList(sbEnableLoadAppList: SwitchButton, scbLoadUserApp: SmoothCheckBox, scbLoadSystemApp: SmoothCheckBox) { val isEnable: Boolean = SettingUtils.enableLoadAppList sbEnableLoadAppList.isChecked = isEnable @@ -600,9 +661,7 @@ class SettingsFragment : BaseFragment(), View.OnClickL } //开机启动 - private fun checkWithReboot( - @SuppressLint("UseSwitchCompatOrMaterialCode") sbWithReboot: SwitchButton, tvAutoStartup: TextView - ) { + private fun checkWithReboot(@SuppressLint("UseSwitchCompatOrMaterialCode") sbWithReboot: SwitchButton, tvAutoStartup: TextView) { tvAutoStartup.text = getAutoStartTips() //获取组件 @@ -624,7 +683,7 @@ class SettingsFragment : BaseFragment(), View.OnClickL //电池优化设置 @RequiresApi(api = Build.VERSION_CODES.M) @SuppressLint("UseSwitchCompatOrMaterialCode") - fun batterySetting(layoutBatterySetting: LinearLayout, sbBatterySetting: SwitchButton) { + private fun batterySetting(layoutBatterySetting: LinearLayout, sbBatterySetting: SwitchButton) { //安卓6.0以下没有忽略电池优化 if (Build.VERSION.SDK_INT < Build.VERSION_CODES.M) { layoutBatterySetting.visibility = View.GONE @@ -652,9 +711,7 @@ class SettingsFragment : BaseFragment(), View.OnClickL //不在最近任务列表中显示 @SuppressLint("ObsoleteSdkInt,UseSwitchCompatOrMaterialCode") - fun switchExcludeFromRecents( - layoutExcludeFromRecents: LinearLayout, sbExcludeFromRecents: SwitchButton - ) { + private fun switchExcludeFromRecents(layoutExcludeFromRecents: LinearLayout, sbExcludeFromRecents: SwitchButton) { //安卓6.0以下没有不在最近任务列表中显示 if (Build.VERSION.SDK_INT < Build.VERSION_CODES.M) { layoutExcludeFromRecents.visibility = View.GONE @@ -675,11 +732,9 @@ class SettingsFragment : BaseFragment(), View.OnClickL } } - //转发应用通知 + //Cactus增强保活措施 @SuppressLint("UseSwitchCompatOrMaterialCode") - fun switchEnableCactus( - sbEnableCactus: SwitchButton, scbPlaySilenceMusic: SmoothCheckBox, scbOnePixelActivity: SmoothCheckBox - ) { + private fun switchEnableCactus(sbEnableCactus: SwitchButton, scbPlaySilenceMusic: SmoothCheckBox, scbOnePixelActivity: SmoothCheckBox) { val layoutCactusOptional: LinearLayout = binding!!.layoutCactusOptional val isEnable: Boolean = SettingUtils.enableCactus sbEnableCactus.isChecked = isEnable @@ -708,9 +763,7 @@ class SettingsFragment : BaseFragment(), View.OnClickL } //接口请求失败重试时间间隔 - private fun editRetryDelayTime( - xsbRetryTimes: XSeekBar, xsbDelayTime: XSeekBar, xsbTimeout: XSeekBar - ) { + private fun editRetryDelayTime(xsbRetryTimes: XSeekBar, xsbDelayTime: XSeekBar, xsbTimeout: XSeekBar) { xsbRetryTimes.setDefaultValue(SettingUtils.requestRetryTimes) xsbRetryTimes.setOnSeekBarListener { _: XSeekBar?, newValue: Int -> SettingUtils.requestRetryTimes = newValue @@ -814,7 +867,7 @@ class SettingsFragment : BaseFragment(), View.OnClickL //设置转发时启用自定义模版 @SuppressLint("UseSwitchCompatOrMaterialCode", "SetTextI18n") - fun switchSmsTemplate(sbSmsTemplate: SwitchButton) { + private fun switchSmsTemplate(sbSmsTemplate: SwitchButton) { val isOn: Boolean = SettingUtils.enableSmsTemplate sbSmsTemplate.isChecked = isOn val layoutSmsTemplate: LinearLayout = binding!!.layoutSmsTemplate @@ -876,96 +929,6 @@ class SettingsFragment : BaseFragment(), View.OnClickL } } - //启用定位功能 - private fun switchEnableLocation(@SuppressLint("UseSwitchCompatOrMaterialCode") switchEnableLocation: SwitchButton, layoutLocationSetting: LinearLayout, rgAccuracy: RadioGroup, rgPowerRequirement: RadioGroup, xsbMinInterval: XSeekBar, xsbMinDistance: XSeekBar) { - //是否启用定位功能 - switchEnableLocation.isChecked = SettingUtils.enableLocation - layoutLocationSetting.visibility = if (SettingUtils.enableLocation) View.VISIBLE else View.GONE - switchEnableLocation.setOnCheckedChangeListener { _: CompoundButton?, isChecked: Boolean -> - SettingUtils.enableLocation = isChecked - if (isChecked) { - XXPermissions.with(this).permission(Permission.ACCESS_COARSE_LOCATION).permission(Permission.ACCESS_FINE_LOCATION).permission(Permission.ACCESS_BACKGROUND_LOCATION).request(object : OnPermissionCallback { - override fun onGranted(permissions: List, all: Boolean) { - restartLocationService() - } - - 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) - } - SettingUtils.enableLocation = false - switchEnableLocation.isChecked = false - restartLocationService() - } - }) - } else { - restartLocationService() - } - layoutLocationSetting.visibility = if (isChecked) View.VISIBLE else View.GONE - } - //设置位置精度:高精度(默认) - rgAccuracy.check( - when (SettingUtils.locationAccuracy) { - Criteria.ACCURACY_FINE -> R.id.rb_accuracy_fine - Criteria.ACCURACY_COARSE -> R.id.rb_accuracy_coarse - Criteria.NO_REQUIREMENT -> R.id.rb_accuracy_no_requirement - else -> R.id.rb_accuracy_fine - } - ) - rgAccuracy.setOnCheckedChangeListener { _: RadioGroup?, checkedId: Int -> - SettingUtils.locationAccuracy = when (checkedId) { - R.id.rb_accuracy_fine -> Criteria.ACCURACY_FINE - R.id.rb_accuracy_coarse -> Criteria.ACCURACY_COARSE - R.id.rb_accuracy_no_requirement -> Criteria.NO_REQUIREMENT - else -> Criteria.ACCURACY_FINE - } - restartLocationService() - } - //设置电量消耗:低电耗(默认) - rgPowerRequirement.check( - when (SettingUtils.locationPowerRequirement) { - Criteria.POWER_HIGH -> R.id.rb_power_requirement_high - Criteria.POWER_MEDIUM -> R.id.rb_power_requirement_medium - Criteria.POWER_LOW -> R.id.rb_power_requirement_low - Criteria.NO_REQUIREMENT -> R.id.rb_power_requirement_no_requirement - else -> R.id.rb_power_requirement_low - } - ) - rgPowerRequirement.setOnCheckedChangeListener { _: RadioGroup?, checkedId: Int -> - SettingUtils.locationPowerRequirement = when (checkedId) { - R.id.rb_power_requirement_high -> Criteria.POWER_HIGH - R.id.rb_power_requirement_medium -> Criteria.POWER_MEDIUM - R.id.rb_power_requirement_low -> Criteria.POWER_LOW - R.id.rb_power_requirement_no_requirement -> Criteria.NO_REQUIREMENT - else -> Criteria.POWER_LOW - } - restartLocationService() - } - //设置位置更新最小时间间隔(单位:毫秒); 默认间隔:10000毫秒,最小间隔:1000毫秒 - xsbMinInterval.setDefaultValue((SettingUtils.locationMinInterval / 1000).toInt()) - xsbMinInterval.setOnSeekBarListener { _: XSeekBar?, newValue: Int -> - SettingUtils.locationMinInterval = newValue * 1000L - restartLocationService() - } - //设置位置更新最小距离(单位:米);默认距离:0米 - xsbMinDistance.setDefaultValue(SettingUtils.locationMinDistance) - xsbMinDistance.setOnSeekBarListener { _: XSeekBar?, newValue: Int -> - SettingUtils.locationMinDistance = newValue - restartLocationService() - } - } - - //重启定位服务 - private fun restartLocationService() { - val serviceIntent = Intent(requireContext(), LocationService::class.java) - serviceIntent.action = "START" - requireContext().startService(serviceIntent) - } - //获取当前手机品牌 private fun getAutoStartTips(): String { return when (Build.BRAND.lowercase(Locale.ROOT)) { 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 a854ac6a..16a3563c 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 @@ -58,7 +58,7 @@ class TasksEditFragment : BaseFragment(), View.OnClic private val TAG: String = TasksEditFragment::class.java.simpleName private val that = this - var titleBar: TitleBar? = null + private var titleBar: TitleBar? = null private val viewModel by viewModels { BaseViewModelFactory(context) } private val dialog: BottomSheetDialog by lazy { BottomSheetDialog(requireContext()) 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 743fb7bf..18ede981 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 @@ -32,12 +32,12 @@ import com.xuexiang.xui.widget.dialog.materialdialog.MaterialDialog import kotlinx.coroutines.flow.collectLatest import kotlinx.coroutines.launch -@Suppress("PropertyName", "DEPRECATION") +@Suppress("PrivatePropertyName", "DEPRECATION") @Page(name = "自动任务") class TasksFragment : BaseFragment(), TaskPagingAdapter.OnItemClickListener { - val TAG: String = TasksFragment::class.java.simpleName - var titleBar: TitleBar? = null + private val TAG: String = TasksFragment::class.java.simpleName + private var titleBar: TitleBar? = null private var adapter = TaskPagingAdapter(this) private val viewModel by viewModels { BaseViewModelFactory(context) } private var currentType: String = "mine" 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 7fffae41..25f3f4f5 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 @@ -29,7 +29,7 @@ import com.xuexiang.xui.widget.actionbar.TitleBar class FrpcFragment : BaseFragment(), View.OnClickListener { private val TAG: String = FrpcFragment::class.java.simpleName - var titleBar: TitleBar? = null + private var titleBar: TitleBar? = null private var mCountDownHelper: CountDownButtonHelper? = null @JvmField 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 dc62fcc4..f5d300c6 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 @@ -29,7 +29,7 @@ import com.xuexiang.xui.widget.actionbar.TitleBar class HttpServerFragment : BaseFragment(), View.OnClickListener { private val TAG: String = HttpServerFragment::class.java.simpleName - var titleBar: TitleBar? = null + private var titleBar: TitleBar? = null private var mCountDownHelper: CountDownButtonHelper? = null @JvmField 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 a1ab4839..eae5f361 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 @@ -41,7 +41,7 @@ import java.util.* class NotificationFragment : BaseFragment(), View.OnClickListener, CompoundButton.OnCheckedChangeListener { private val TAG: String = NotificationFragment::class.java.simpleName - var titleBar: TitleBar? = null + private var titleBar: TitleBar? = null private var mCountDownHelper: CountDownButtonHelper? = null @JvmField 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 1401ad2b..5f592fce 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 @@ -46,7 +46,7 @@ import com.xuexiang.xutil.XUtil class SendSmsFragment : BaseFragment(), View.OnClickListener { private val TAG: String = SendSmsFragment::class.java.simpleName - var titleBar: TitleBar? = null + private var titleBar: TitleBar? = null private var mCountDownHelper: CountDownButtonHelper? = null @JvmField 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 2127fc08..c547e93c 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 @@ -10,7 +10,12 @@ import com.idormy.sms.forwarder.core.BaseFragment import com.idormy.sms.forwarder.databinding.FragmentClientBatteryQueryBinding import com.idormy.sms.forwarder.entity.BatteryInfo import com.idormy.sms.forwarder.server.model.BaseResponse -import com.idormy.sms.forwarder.utils.* +import com.idormy.sms.forwarder.utils.Base64 +import com.idormy.sms.forwarder.utils.HttpServerUtils +import com.idormy.sms.forwarder.utils.RSACrypt +import com.idormy.sms.forwarder.utils.SM4Crypt +import com.idormy.sms.forwarder.utils.SettingUtils +import com.idormy.sms.forwarder.utils.XToastUtils import com.xuexiang.xhttp2.XHttp import com.xuexiang.xhttp2.cache.model.CacheMode import com.xuexiang.xhttp2.callback.SimpleCallBack @@ -22,11 +27,11 @@ import com.xuexiang.xui.widget.actionbar.TitleBar import com.xuexiang.xui.widget.grouplist.XUIGroupListView import com.xuexiang.xutil.data.ConvertTools -@Suppress("PropertyName") +@Suppress("PrivatePropertyName", "DEPRECATION") @Page(name = "远程查电量") class BatteryQueryFragment : BaseFragment() { - val TAG: String = BatteryQueryFragment::class.java.simpleName + private val TAG: String = BatteryQueryFragment::class.java.simpleName override fun viewBindingInflate( inflater: LayoutInflater, @@ -82,6 +87,7 @@ class BatteryQueryFragment : BaseFragment() } postRequest.upString(requestMsg) } + 3 -> { try { val sm4Key = ConvertTools.hexStringToByteArray(HttpServerUtils.clientSignKey) @@ -96,6 +102,7 @@ class BatteryQueryFragment : BaseFragment() } postRequest.upString(requestMsg) } + else -> { postRequest.upJson(requestMsg) } 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 604757cf..8fb4b8f2 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 @@ -50,11 +50,11 @@ import com.xuexiang.xutil.data.DateUtils import com.xuexiang.xutil.system.ClipboardUtils import me.samlss.broccoli.Broccoli -@Suppress("PropertyName", "DEPRECATION") +@Suppress("PrivatePropertyName", "DEPRECATION") @Page(name = "远程查通话") class CallQueryFragment : BaseFragment() { - val TAG: String = CallQueryFragment::class.java.simpleName + private val TAG: String = CallQueryFragment::class.java.simpleName private var mAdapter: SimpleDelegateAdapter? = null private var callType: Int = 3 private var pageNum: Int = 1 @@ -133,6 +133,10 @@ class CallQueryFragment : BaseFragment() { .addPlaceholder(PlaceholderHelper.getParameter(holder.findView(R.id.iv_call))) .addPlaceholder(PlaceholderHelper.getParameter(holder.findView(R.id.iv_reply))) } + + override fun onBindViewHolder(holder: RecyclerViewHolder, position: Int) { + TODO("Not yet implemented") + } } val delegateAdapter = DelegateAdapter(virtualLayoutManager) 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 97178ec0..9a96b207 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 @@ -42,11 +42,11 @@ import com.xuexiang.xutil.file.FileUtils import java.io.File import java.util.* -@Suppress("PropertyName") +@Suppress("PrivatePropertyName", "DEPRECATION") @Page(name = "一键换新机") class CloneFragment : BaseFragment(), View.OnClickListener { - val TAG: String = CloneFragment::class.java.simpleName + private val TAG: String = CloneFragment::class.java.simpleName private var backupPath: String? = null private val backupFile = "SmsForwarder.json" private var pushCountDownHelper: CountDownButtonHelper? = null 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 11a2f7ec..47db836c 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 @@ -25,11 +25,11 @@ import com.xuexiang.xui.utils.ResUtils import com.xuexiang.xui.widget.actionbar.TitleBar import com.xuexiang.xutil.data.ConvertTools -@Suppress("PropertyName") +@Suppress("PrivatePropertyName", "DEPRECATION") @Page(name = "远程加话簿") class ContactAddFragment : BaseFragment(), View.OnClickListener { - val TAG: String = ContactAddFragment::class.java.simpleName + private val TAG: String = ContactAddFragment::class.java.simpleName private var mCountDownHelper: CountDownButtonHelper? = null override fun viewBindingInflate( @@ -120,6 +120,7 @@ class ContactAddFragment : BaseFragment(), Vie } postRequest.upString(requestMsg) } + 3 -> { try { val sm4Key = ConvertTools.hexStringToByteArray(HttpServerUtils.clientSignKey) @@ -134,6 +135,7 @@ class ContactAddFragment : BaseFragment(), Vie } postRequest.upString(requestMsg) } + else -> { postRequest.upJson(requestMsg) } @@ -174,6 +176,7 @@ class ContactAddFragment : BaseFragment(), Vie } }) } + else -> {} } } 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 fce48a5a..cabeaff8 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 @@ -49,11 +49,11 @@ import com.xuexiang.xutil.data.ConvertTools import com.xuexiang.xutil.system.ClipboardUtils import me.samlss.broccoli.Broccoli -@Suppress("PropertyName", "DEPRECATION") +@Suppress("PrivatePropertyName", "DEPRECATION") @Page(name = "远程查话簿") class ContactQueryFragment : BaseFragment() { - val TAG: String = ContactQueryFragment::class.java.simpleName + private val TAG: String = ContactQueryFragment::class.java.simpleName private var mAdapter: SimpleDelegateAdapter? = null private var keyword: String = "" @@ -124,6 +124,10 @@ class ContactQueryFragment : BaseFragment() .addPlaceholder(PlaceholderHelper.getParameter(holder.findView(R.id.iv_call))) .addPlaceholder(PlaceholderHelper.getParameter(holder.findView(R.id.iv_reply))) } + + override fun onBindViewHolder(holder: RecyclerViewHolder, position: Int) { + TODO("Not yet implemented") + } } val delegateAdapter = DelegateAdapter(virtualLayoutManager) 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 2d1c5ab5..5d1a4c34 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 @@ -11,7 +11,12 @@ import com.idormy.sms.forwarder.core.BaseFragment import com.idormy.sms.forwarder.databinding.FragmentClientLocationBinding import com.idormy.sms.forwarder.entity.LocationInfo import com.idormy.sms.forwarder.server.model.BaseResponse -import com.idormy.sms.forwarder.utils.* +import com.idormy.sms.forwarder.utils.Base64 +import com.idormy.sms.forwarder.utils.HttpServerUtils +import com.idormy.sms.forwarder.utils.RSACrypt +import com.idormy.sms.forwarder.utils.SM4Crypt +import com.idormy.sms.forwarder.utils.SettingUtils +import com.idormy.sms.forwarder.utils.XToastUtils import com.xuexiang.xaop.annotation.SingleClick import com.xuexiang.xhttp2.XHttp import com.xuexiang.xhttp2.cache.model.CacheMode @@ -25,11 +30,11 @@ import com.xuexiang.xui.widget.actionbar.TitleBar import com.xuexiang.xui.widget.grouplist.XUIGroupListView import com.xuexiang.xutil.data.ConvertTools -@Suppress("PropertyName") +@Suppress("PrivatePropertyName", "DEPRECATION") @Page(name = "远程找手机") class LocationFragment : BaseFragment(), View.OnClickListener { - val TAG: String = LocationFragment::class.java.simpleName + private val TAG: String = LocationFragment::class.java.simpleName private var mCountDownHelper: CountDownButtonHelper? = null override fun viewBindingInflate( @@ -72,6 +77,7 @@ class LocationFragment : BaseFragment(), View.On R.id.btn_refresh -> { getLocation() } + else -> {} } } @@ -110,6 +116,7 @@ class LocationFragment : BaseFragment(), View.On } postRequest.upString(requestMsg) } + 3 -> { try { val sm4Key = ConvertTools.hexStringToByteArray(HttpServerUtils.clientSignKey) @@ -124,6 +131,7 @@ class LocationFragment : BaseFragment(), View.On } postRequest.upString(requestMsg) } + else -> { postRequest.upJson(requestMsg) } 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 5aa0545e..925cb28c 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 @@ -49,11 +49,11 @@ import com.xuexiang.xutil.data.ConvertTools import com.xuexiang.xutil.data.DateUtils import me.samlss.broccoli.Broccoli -@Suppress("PropertyName", "DEPRECATION") +@Suppress("PrivatePropertyName", "DEPRECATION") @Page(name = "远程查短信") class SmsQueryFragment : BaseFragment() { - val TAG: String = SmsQueryFragment::class.java.simpleName + private val TAG: String = SmsQueryFragment::class.java.simpleName private var mAdapter: SimpleDelegateAdapter? = null private var smsType: Int = 1 private var pageNum: Int = 1 @@ -122,6 +122,10 @@ class SmsQueryFragment : BaseFragment() { .addPlaceholder(PlaceholderHelper.getParameter(holder.findView(R.id.iv_reply))) } + override fun onBindViewHolder(holder: RecyclerViewHolder, position: Int) { + TODO("Not yet implemented") + } + } val delegateAdapter = DelegateAdapter(virtualLayoutManager) 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 7ba2a56e..14eecbf8 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 @@ -26,11 +26,11 @@ import com.xuexiang.xui.utils.ResUtils import com.xuexiang.xui.widget.actionbar.TitleBar import com.xuexiang.xutil.data.ConvertTools -@Suppress("PropertyName") +@Suppress("PrivatePropertyName", "DEPRECATION") @Page(name = "远程发短信") class SmsSendFragment : BaseFragment(), View.OnClickListener { - val TAG: String = SmsSendFragment::class.java.simpleName + private val TAG: String = SmsSendFragment::class.java.simpleName private var mCountDownHelper: CountDownButtonHelper? = null override fun viewBindingInflate( @@ -138,6 +138,7 @@ class SmsSendFragment : BaseFragment(), View.OnCl } postRequest.upString(requestMsg) } + 3 -> { try { val sm4Key = ConvertTools.hexStringToByteArray(HttpServerUtils.clientSignKey) @@ -152,6 +153,7 @@ class SmsSendFragment : BaseFragment(), View.OnCl } postRequest.upString(requestMsg) } + else -> { postRequest.upJson(requestMsg) } @@ -192,6 +194,7 @@ class SmsSendFragment : BaseFragment(), View.OnCl } }) } + else -> {} } } 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 987ef71a..b1378d0a 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 @@ -10,7 +10,12 @@ import com.idormy.sms.forwarder.R import com.idormy.sms.forwarder.core.BaseFragment import com.idormy.sms.forwarder.databinding.FragmentClientWolSendBinding import com.idormy.sms.forwarder.server.model.BaseResponse -import com.idormy.sms.forwarder.utils.* +import com.idormy.sms.forwarder.utils.Base64 +import com.idormy.sms.forwarder.utils.HttpServerUtils +import com.idormy.sms.forwarder.utils.RSACrypt +import com.idormy.sms.forwarder.utils.SM4Crypt +import com.idormy.sms.forwarder.utils.SettingUtils +import com.idormy.sms.forwarder.utils.XToastUtils import com.xuexiang.xaop.annotation.SingleClick import com.xuexiang.xhttp2.XHttp import com.xuexiang.xhttp2.cache.model.CacheMode @@ -25,11 +30,11 @@ import com.xuexiang.xui.widget.dialog.materialdialog.DialogAction import com.xuexiang.xui.widget.dialog.materialdialog.MaterialDialog import com.xuexiang.xutil.data.ConvertTools -@Suppress("PropertyName") +@Suppress("PrivatePropertyName", "DEPRECATION") @Page(name = "远程WOL") class WolSendFragment : BaseFragment(), View.OnClickListener { - val TAG: String = WolSendFragment::class.java.simpleName + private val TAG: String = WolSendFragment::class.java.simpleName private var mCountDownHelper: CountDownButtonHelper? = null private var wolHistory: MutableMap = mutableMapOf() @@ -103,6 +108,7 @@ class WolSendFragment : BaseFragment(), View.OnCl } .show() } + R.id.btn_submit -> { val requestUrl: String = HttpServerUtils.serverAddress + "/wol/send" Log.i(TAG, "requestUrl:$requestUrl") @@ -166,6 +172,7 @@ class WolSendFragment : BaseFragment(), View.OnCl } postRequest.upString(requestMsg) } + 3 -> { try { val sm4Key = ConvertTools.hexStringToByteArray(HttpServerUtils.clientSignKey) @@ -180,6 +187,7 @@ class WolSendFragment : BaseFragment(), View.OnCl } postRequest.upString(requestMsg) } + else -> { postRequest.upJson(requestMsg) } @@ -223,6 +231,7 @@ class WolSendFragment : BaseFragment(), View.OnCl } }) } + else -> {} } } 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 03dcabc3..40cae608 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 @@ -28,7 +28,7 @@ import com.xuexiang.xui.widget.actionbar.TitleBar class BatteryFragment : BaseFragment(), View.OnClickListener { private val TAG: String = BatteryFragment::class.java.simpleName - var titleBar: TitleBar? = null + private var titleBar: TitleBar? = null @JvmField @AutoWired(name = KEY_EVENT_DATA_CONDITION) 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 a58b3351..26aaeef1 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 @@ -27,7 +27,7 @@ import com.xuexiang.xui.widget.actionbar.TitleBar class ChargeFragment : BaseFragment(), View.OnClickListener { private val TAG: String = ChargeFragment::class.java.simpleName - var titleBar: TitleBar? = null + private var titleBar: TitleBar? = null @JvmField @AutoWired(name = KEY_EVENT_DATA_CONDITION) 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 41b7b6f3..1d759126 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 @@ -41,7 +41,7 @@ import java.util.Locale class CronFragment : BaseFragment(), View.OnClickListener { private val TAG: String = CronFragment::class.java.simpleName - var titleBar: TitleBar? = null + private var titleBar: TitleBar? = null private var mCountDownHelper: CountDownButtonHelper? = null @JvmField 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 a79afee7..b8c86ee9 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 @@ -35,7 +35,7 @@ import com.xuexiang.xui.widget.dialog.materialdialog.MaterialDialog class LeaveAddressFragment : BaseFragment(), View.OnClickListener { private val TAG: String = LeaveAddressFragment::class.java.simpleName - var titleBar: TitleBar? = null + private var titleBar: TitleBar? = null @JvmField @AutoWired(name = KEY_EVENT_DATA_CONDITION) diff --git a/app/src/main/java/com/idormy/sms/forwarder/fragment/condition/LockScreenFragment.kt b/app/src/main/java/com/idormy/sms/forwarder/fragment/condition/LockScreenFragment.kt index e7687b69..d7c68be6 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/fragment/condition/LockScreenFragment.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/fragment/condition/LockScreenFragment.kt @@ -27,7 +27,7 @@ import com.xuexiang.xui.widget.actionbar.TitleBar class LockScreenFragment : BaseFragment(), View.OnClickListener { private val TAG: String = LockScreenFragment::class.java.simpleName - var titleBar: TitleBar? = null + private var titleBar: TitleBar? = null @JvmField @AutoWired(name = KEY_EVENT_DATA_CONDITION) diff --git a/app/src/main/java/com/idormy/sms/forwarder/fragment/condition/NetworkFragment.kt b/app/src/main/java/com/idormy/sms/forwarder/fragment/condition/NetworkFragment.kt index 165696f4..2bd9d2fd 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/fragment/condition/NetworkFragment.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/fragment/condition/NetworkFragment.kt @@ -29,7 +29,7 @@ import com.xuexiang.xui.widget.actionbar.TitleBar class NetworkFragment : BaseFragment(), View.OnClickListener { private val TAG: String = NetworkFragment::class.java.simpleName - var titleBar: TitleBar? = null + private var titleBar: TitleBar? = null @JvmField @AutoWired(name = KEY_EVENT_DATA_CONDITION) 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 56f2b184..babc1ffc 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 @@ -27,7 +27,7 @@ import com.xuexiang.xui.widget.actionbar.TitleBar class SimFragment : BaseFragment(), View.OnClickListener { private val TAG: String = SimFragment::class.java.simpleName - var titleBar: TitleBar? = null + private var titleBar: TitleBar? = null @JvmField @AutoWired(name = KEY_EVENT_DATA_CONDITION) 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 284658e4..5859dfd8 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 @@ -35,7 +35,7 @@ import com.xuexiang.xui.widget.dialog.materialdialog.MaterialDialog class ToAddressFragment : BaseFragment(), View.OnClickListener { private val TAG: String = ToAddressFragment::class.java.simpleName - var titleBar: TitleBar? = null + private var titleBar: TitleBar? = null @JvmField @AutoWired(name = KEY_EVENT_DATA_CONDITION) 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 eee872b9..a4e6e45f 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 @@ -50,7 +50,7 @@ import java.util.Date class BarkFragment : BaseFragment(), View.OnClickListener { private val TAG: String = BarkFragment::class.java.simpleName - var titleBar: TitleBar? = null + private var titleBar: TitleBar? = null private val viewModel by viewModels { BaseViewModelFactory(context) } private var mCountDownHelper: CountDownButtonHelper? = null private var barkLevel: String = "active" //通知级别 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 d8d6fad6..1748da33 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 @@ -48,7 +48,7 @@ import java.util.Date class DingtalkGroupRobotFragment : BaseFragment(), View.OnClickListener, CompoundButton.OnCheckedChangeListener { private val TAG: String = DingtalkGroupRobotFragment::class.java.simpleName - var titleBar: TitleBar? = null + private var titleBar: TitleBar? = null private val viewModel by viewModels { BaseViewModelFactory(context) } private var mCountDownHelper: CountDownButtonHelper? = null diff --git a/app/src/main/java/com/idormy/sms/forwarder/fragment/senders/DingtalkInnerRobotFragment.kt b/app/src/main/java/com/idormy/sms/forwarder/fragment/senders/DingtalkInnerRobotFragment.kt index cb6cdffd..77d6bca9 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/fragment/senders/DingtalkInnerRobotFragment.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/fragment/senders/DingtalkInnerRobotFragment.kt @@ -43,7 +43,7 @@ import java.util.* class DingtalkInnerRobotFragment : BaseFragment(), View.OnClickListener, CompoundButton.OnCheckedChangeListener { private val TAG: String = DingtalkInnerRobotFragment::class.java.simpleName - var titleBar: TitleBar? = null + private var titleBar: TitleBar? = null private val viewModel by viewModels { BaseViewModelFactory(context) } private var mCountDownHelper: CountDownButtonHelper? = null diff --git a/app/src/main/java/com/idormy/sms/forwarder/fragment/senders/EmailFragment.kt b/app/src/main/java/com/idormy/sms/forwarder/fragment/senders/EmailFragment.kt index 76303bc5..7b03a406 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/fragment/senders/EmailFragment.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/fragment/senders/EmailFragment.kt @@ -48,7 +48,7 @@ import java.util.Date class EmailFragment : BaseFragment(), View.OnClickListener { private val TAG: String = EmailFragment::class.java.simpleName - var titleBar: TitleBar? = null + private var titleBar: TitleBar? = null private val viewModel by viewModels { BaseViewModelFactory(context) } private var mCountDownHelper: CountDownButtonHelper? = null private var mailType: String = getString(R.string.other_mail_type) //邮箱类型 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 6bbee409..01c82fde 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 @@ -46,7 +46,7 @@ import java.util.Date class FeishuAppFragment : BaseFragment(), View.OnClickListener { private val TAG: String = FeishuAppFragment::class.java.simpleName - var titleBar: TitleBar? = null + private var titleBar: TitleBar? = null private val viewModel by viewModels { BaseViewModelFactory(context) } private var mCountDownHelper: CountDownButtonHelper? = null 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 3e6bd41b..c3297334 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 @@ -46,7 +46,7 @@ import java.util.Date class FeishuFragment : BaseFragment(), View.OnClickListener { private val TAG: String = FeishuFragment::class.java.simpleName - var titleBar: TitleBar? = null + private var titleBar: TitleBar? = null private val viewModel by viewModels { BaseViewModelFactory(context) } private var mCountDownHelper: CountDownButtonHelper? = null 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 f8f0cfc8..008d0f09 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 @@ -46,7 +46,7 @@ import java.util.Date class GotifyFragment : BaseFragment(), View.OnClickListener { private val TAG: String = GotifyFragment::class.java.simpleName - var titleBar: TitleBar? = null + private var titleBar: TitleBar? = null private val viewModel by viewModels { BaseViewModelFactory(context) } private var mCountDownHelper: CountDownButtonHelper? = null 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 46668ade..6a4193f7 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 @@ -47,7 +47,7 @@ import java.util.Date class PushplusFragment : BaseFragment(), View.OnClickListener { private val TAG: String = PushplusFragment::class.java.simpleName - var titleBar: TitleBar? = null + private var titleBar: TitleBar? = null private val viewModel by viewModels { BaseViewModelFactory(context) } private var mCountDownHelper: CountDownButtonHelper? = null 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 685dee44..c3da11ed 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 @@ -44,7 +44,7 @@ import java.util.Date class ServerchanFragment : BaseFragment(), View.OnClickListener { private val TAG: String = ServerchanFragment::class.java.simpleName - var titleBar: TitleBar? = null + private var titleBar: TitleBar? = null private val viewModel by viewModels { BaseViewModelFactory(context) } private var mCountDownHelper: CountDownButtonHelper? = null 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 5e081933..b5d00d31 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 @@ -49,7 +49,7 @@ import java.util.Date class SmsFragment : BaseFragment(), View.OnClickListener { private val TAG: String = SmsFragment::class.java.simpleName - var titleBar: TitleBar? = null + private var titleBar: TitleBar? = null private val viewModel by viewModels { BaseViewModelFactory(context) } private var mCountDownHelper: CountDownButtonHelper? = null 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 1bca22e5..4c4579ad 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 @@ -46,7 +46,7 @@ import java.util.Date class SocketFragment : BaseFragment(), View.OnClickListener { private val TAG: String = SocketFragment::class.java.simpleName - var titleBar: TitleBar? = null + private var titleBar: TitleBar? = null private val viewModel by viewModels { BaseViewModelFactory(context) } private var mCountDownHelper: CountDownButtonHelper? = null 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 dd3bf398..5551d7d6 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 @@ -47,7 +47,7 @@ import java.util.Date class TelegramFragment : BaseFragment(), View.OnClickListener, CompoundButton.OnCheckedChangeListener { private val TAG: String = TelegramFragment::class.java.simpleName - var titleBar: TitleBar? = null + private var titleBar: TitleBar? = null private val viewModel by viewModels { BaseViewModelFactory(context) } private var mCountDownHelper: CountDownButtonHelper? = null 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 e1b167d4..d06dd13b 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 @@ -49,7 +49,7 @@ import java.util.Date class UrlSchemeFragment : BaseFragment(), View.OnClickListener { private val TAG: String = UrlSchemeFragment::class.java.simpleName - var titleBar: TitleBar? = null + private var titleBar: TitleBar? = null private val viewModel by viewModels { BaseViewModelFactory(context) } private var mCountDownHelper: CountDownButtonHelper? = null 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 e7615ab9..459ad343 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 @@ -48,7 +48,7 @@ import java.util.Date class WebhookFragment : BaseFragment(), View.OnClickListener { private val TAG: String = WebhookFragment::class.java.simpleName - var titleBar: TitleBar? = null + private var titleBar: TitleBar? = null private val viewModel by viewModels { BaseViewModelFactory(context) } private var mCountDownHelper: CountDownButtonHelper? = null private var headerItemMap = HashMap(2) 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 d2d28af0..83fdcf67 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 @@ -42,7 +42,7 @@ import java.util.* class WeworkAgentFragment : BaseFragment(), View.OnClickListener, CompoundButton.OnCheckedChangeListener { private val TAG: String = WeworkAgentFragment::class.java.simpleName - var titleBar: TitleBar? = null + private var titleBar: TitleBar? = null private val viewModel by viewModels { BaseViewModelFactory(context) } private var mCountDownHelper: CountDownButtonHelper? = null 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 79e0d8ea..be73f8ff 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 @@ -47,7 +47,7 @@ import java.util.Date class WeworkRobotFragment : BaseFragment(), View.OnClickListener, CompoundButton.OnCheckedChangeListener { private val TAG: String = WeworkRobotFragment::class.java.simpleName - var titleBar: TitleBar? = null + private var titleBar: TitleBar? = null private val viewModel by viewModels { BaseViewModelFactory(context) } private var mCountDownHelper: CountDownButtonHelper? = null 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 cdc7ccff..2dd7c787 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 @@ -15,10 +15,10 @@ import com.idormy.sms.forwarder.utils.TaskWorker import com.idormy.sms.forwarder.utils.task.TaskUtils import com.idormy.sms.forwarder.workers.BatteryWorker -@Suppress("PropertyName") +@Suppress("PrivatePropertyName") class BatteryReceiver : BroadcastReceiver() { - val TAG: String = BatteryReceiver::class.java.simpleName + private val TAG: String = BatteryReceiver::class.java.simpleName override fun onReceive(context: Context?, intent: Intent?) { 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 ae76be40..0896dac2 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 @@ -6,10 +6,10 @@ import android.content.Intent import android.util.Log import com.idormy.sms.forwarder.activity.SplashActivity -@Suppress("PropertyName") +@Suppress("PrivatePropertyName") class BootCompletedReceiver : BroadcastReceiver() { - val TAG: String = BootCompletedReceiver::class.java.simpleName + private val TAG: String = BootCompletedReceiver::class.java.simpleName override fun onReceive(context: Context, intent: Intent?) { 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 1f4a0165..a7321e64 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 @@ -12,10 +12,10 @@ import com.idormy.sms.forwarder.utils.TaskWorker import com.idormy.sms.forwarder.utils.task.TaskUtils import com.idormy.sms.forwarder.workers.LockScreenWorker -@Suppress("PropertyName") +@Suppress("PrivatePropertyName") class LockScreenReceiver : BroadcastReceiver() { - val TAG: String = LockScreenReceiver::class.java.simpleName + private val TAG: String = LockScreenReceiver::class.java.simpleName override fun onReceive(context: Context?, intent: Intent?) { 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 3a60a2f8..9100d147 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 @@ -8,7 +8,7 @@ import com.idormy.sms.forwarder.utils.HttpServerUtils import com.xuexiang.xui.utils.ResUtils.getString import com.yanzhenjie.andserver.annotation.* -@Suppress("PrivatePropertyName") +@Suppress("PrivatePropertyName", "DEPRECATION") @RestController @RequestMapping(path = ["/clone"]) class CloneController { 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 7d2a2487..a5b04fbd 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 @@ -15,7 +15,7 @@ import com.xuexiang.xui.utils.ResUtils import com.xuexiang.xutil.XUtil import com.yanzhenjie.andserver.annotation.* -@Suppress("PrivatePropertyName") +@Suppress("PrivatePropertyName", "DEPRECATION") @RestController @RequestMapping(path = ["/sms"]) class SmsController { 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 ed924120..930490ed 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 @@ -56,8 +56,10 @@ class NotificationService : NotificationListenerService() { val extras = notification.extras ?: return //自动消除额外APP通知 - if (!TextUtils.isEmpty(SettingUtils.cancelExtraAppNotify)) { - for (app in SettingUtils.cancelExtraAppNotify.split("\n")) { + SettingUtils.cancelExtraAppNotify + .takeIf { it.isNotEmpty() } + ?.split("\n") + ?.forEach { app -> if (sbn.packageName == app.trim()) { Log.d(TAG, "自动消除额外APP通知:$app") if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { @@ -65,10 +67,10 @@ class NotificationService : NotificationListenerService() { } else { cancelNotification(sbn.packageName, sbn.tag, sbn.id) } - break + return@forEach } } - } + //总开关 if (!SettingUtils.enableAppNotify) return @@ -79,16 +81,10 @@ class NotificationService : NotificationListenerService() { val from = sbn.packageName //自身通知跳过 if (PACKAGE_NAME == sbn.packageName) return - //通知标题 - var title = "" - if (extras["android.title"] != null) { - title = extras["android.title"].toString() - } - //通知内容 - var text = "" - if (extras["android.text"] != null) { - text = extras["android.text"].toString() - } + // 标题 + var title = extras["android.title"]?.toString() ?: "" + // 通知内容 + var text = extras["android.text"]?.toString() ?: "" if (text.isEmpty() && notification.tickerText != null) { text = notification.tickerText.toString() } 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 f8cf63e7..2c8d18a5 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 @@ -1,7 +1,6 @@ package com.idormy.sms.forwarder.utils import android.annotation.SuppressLint -import android.content.Intent import android.content.pm.ApplicationInfo import android.content.pm.PackageInfo import android.content.pm.PackageManager @@ -68,13 +67,13 @@ object AppUtils { } } - fun openApp(packageName: String) { + /*fun openApp(packageName: String) { val packageManager = App.context.packageManager val intent = packageManager.getLaunchIntentForPackage(packageName) if (intent != null) { intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK) App.context.startActivity(intent) } - } + }*/ } \ No newline at end of file diff --git a/app/src/main/java/com/idormy/sms/forwarder/utils/BatteryUtils.kt b/app/src/main/java/com/idormy/sms/forwarder/utils/BatteryUtils.kt index 548bf0af..55035086 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/utils/BatteryUtils.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/utils/BatteryUtils.kt @@ -8,7 +8,7 @@ import com.xuexiang.xui.utils.ResUtils.getString @Suppress("DEPRECATION", "MemberVisibilityCanBePrivate") object BatteryUtils { - private const val TAG = "BatteryUtils" + //private const val TAG = "BatteryUtils" fun getBatteryInfo(intent: Intent?): BatteryInfo { val batteryInfo = BatteryInfo() 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 9cd4df68..6bb4d65d 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 @@ -43,7 +43,7 @@ import java.util.regex.Pattern /** * 常用工具类 */ -@Suppress("RegExpRedundantEscape", "unused", "RegExpUnnecessaryNonCapturingGroup") +@Suppress("RegExpRedundantEscape", "unused", "RegExpUnnecessaryNonCapturingGroup", "DEPRECATION") class CommonUtils private constructor() { companion object { /** @@ -235,17 +235,17 @@ class CommonUtils private constructor() { } //是否合法的IP地址 - fun checkIP(IP: String): String { - if (TextUtils.isEmpty(IP)) return "Neither" + fun checkIP(ip: String): String { + if (TextUtils.isEmpty(ip)) return "Neither" - if (IP.contains(".")) { + if (ip.contains(".")) { val chunkIPv4 = "([\\d]|[1-9][\\d]|1[\\d][\\d]|2[0-4][\\d]|25[0-5])" val pattenIPv4 = Pattern.compile("^($chunkIPv4\\.){3}$chunkIPv4$") - return if (pattenIPv4.matcher(IP).matches()) "IPv4" else "Neither" - } else if (IP.contains(":")) { + return if (pattenIPv4.matcher(ip).matches()) "IPv4" else "Neither" + } else if (ip.contains(":")) { val chunkIPv6 = "([\\da-fA-F]{1,4})" val pattenIPv6 = Pattern.compile("^($chunkIPv6\\:){7}$chunkIPv6$") - return if (pattenIPv6.matcher(IP).matches()) "IPv6" else "Neither" + return if (pattenIPv6.matcher(ip).matches()) "IPv6" else "Neither" } return "Neither" } @@ -295,7 +295,7 @@ class CommonUtils private constructor() { val address = addresses.nextElement() if (address is Inet4Address || address is Inet6Address) { - ipAddresses.add(address.hostAddress) + address.hostAddress?.let { ipAddresses.add(it) } } } } 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 bd634807..619972d1 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 @@ -63,7 +63,6 @@ const val ENABLE_LOAD_SYSTEM_APP_LIST = "enable_load_system_app_list" const val SP_DUPLICATE_MESSAGES_LIMITS = "duplicate_messages_limits" const val SP_SILENT_PERIOD_START = "silent_period_start" const val SP_SILENT_PERIOD_END = "silent_period_end" -const val SP_AUTO_CLEAN_LOGS_DAYS = "auto_clean_logs_days" const val SP_ENABLE_EXCLUDE_FROM_RECENTS = "enable_exclude_from_recents" const val SP_ENABLE_PLAY_SILENCE_MUSIC = "enable_play_silence_music" diff --git a/app/src/main/java/com/idormy/sms/forwarder/utils/DataProvider.kt b/app/src/main/java/com/idormy/sms/forwarder/utils/DataProvider.kt index 61beb63d..2fd9cc8f 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/utils/DataProvider.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/utils/DataProvider.kt @@ -5,6 +5,7 @@ import com.idormy.sms.forwarder.entity.ContactInfo import com.idormy.sms.forwarder.entity.SmsInfo import com.xuexiang.xaop.annotation.MemoryCache +@Suppress("SameParameterValue") object DataProvider { //用于占位的空信息 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 b2014f86..7a4b4f99 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 @@ -21,6 +21,7 @@ import javax.crypto.spec.SecretKeySpec /** * HttpServer工具类 */ +@Suppress("DEPRECATION") class HttpServerUtils private constructor() { companion object { 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 2414c509..23e2b2ed 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,3 +1,5 @@ +@file:Suppress("DEPRECATION") + package com.idormy.sms.forwarder.utils import android.util.Log @@ -35,8 +37,8 @@ object RuleLineUtils { } @Throws(Exception::class) - fun checkRuleLines(msg: MsgInfo, RuleLines: String?): Boolean { - val scanner = Scanner(RuleLines) + fun checkRuleLines(msg: MsgInfo, ruleLines: String?): Boolean { + val scanner = Scanner(ruleLines) var lineNum = 0 var headRuleLine: RuleLine? = null var beforeRuleLine: RuleLine? = null 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 cee9722c..30252a8e 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 @@ -72,9 +72,6 @@ class SettingUtils private constructor() { //免打扰(禁用转发)时间段——结束 var silentPeriodEnd: Int by SharedPreference(SP_SILENT_PERIOD_END, 0) - //自动删除N天前的转发记录 - var autoCleanLogsDays: Int by SharedPreference(SP_AUTO_CLEAN_LOGS_DAYS, 0) - //是否不在最近任务列表中显示 var enableExcludeFromRecents: Boolean by SharedPreference(SP_ENABLE_EXCLUDE_FROM_RECENTS, 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 433e8764..ed4d5041 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 @@ -77,7 +77,7 @@ class SmsCommandUtils { GlobalScope.async(Dispatchers.IO) { val frpc = AppDatabase.getInstance(App.context).frpcDao().getOne(param) - if (frpc == null) { + if (frpc.uid.isEmpty()) { Log.d(TAG, "没有找到指定的Frpc") return@async } 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 5bb84a29..38efbc26 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 @@ -14,13 +14,11 @@ import com.xuexiang.xhttp2.XHttp import com.xuexiang.xhttp2.cache.model.CacheMode import com.xuexiang.xhttp2.callback.SimpleCallBack import com.xuexiang.xhttp2.exception.ApiException -import java.net.URLEncoder -import java.util.regex.Pattern import javax.crypto.Cipher import javax.crypto.spec.IvParameterSpec import javax.crypto.spec.SecretKeySpec -@Suppress("unused") +@Suppress("unused", "RegExpRedundantEscape") class BarkUtils { companion object { @@ -74,7 +72,7 @@ class BarkUtils { val pattern = Regex("(?)?([::\\s是为]|[Ii][Ss]){0,3}[\\((\\[【{「]?(([0-9\\s]{4,7})|([\\dA-Za-z]{5,6})(?!([Vv]erification)?([Cc][Oo][Dd][Ee])|:))[」}】\\])\\)]?(?=([^0-9a-zA-Z]|\$))(.*)".toRegex(), "$7").trim() - code = code.replace("[^\\d]*[\\((\\[【{「]?([0-9]{3}\\s?[0-9]{1,3})[」}】\\])\\)]?(?=.*((代|授权|验证|动态|校验)码|[【\\[].*[】\\]]|[Cc][Oo][Dd][Ee]|[Vv]erification\\s?([Cc]ode)?))(.*)".toRegex(), "$1").trim() + code = code.replace("\\D*[\\((\\[【{「]?([0-9]{3}\\s?[0-9]{1,3})[」}】\\])\\)]?(?=.*((代|授权|验证|动态|校验)码|[【\\[].*[】\\]]|[Cc][Oo][Dd][Ee]|[Vv]erification\\s?([Cc]ode)?))(.*)".toRegex(), "$1").trim() if (code.isNotEmpty()) { msgMap["copy"] = code msgMap["automaticallyCopy"] = 1 @@ -85,7 +83,7 @@ class BarkUtils { Log.i(TAG, "requestMsg:$requestMsg") //推送加密 if (setting.transformation.isNotEmpty() && "none" != setting.transformation && setting.key.isNotEmpty() && setting.iv.isNotEmpty()) { - var transformation = setting.transformation.replace("AES128", "AES").replace("AES192", "AES").replace("AES256", "AES") + val transformation = setting.transformation.replace("AES128", "AES").replace("AES192", "AES").replace("AES256", "AES") val ciphertext = encrypt(requestMsg, transformation, setting.key, setting.iv) //Log.d(TAG, "ciphertext: $ciphertext") //val plainText = decrypt(ciphertext, transformation, setting.key, setting.iv) 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 9708b032..6273f11e 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 @@ -26,6 +26,7 @@ import java.net.PasswordAuthentication import java.net.Proxy //钉钉企业内机器人 +@Suppress("DEPRECATION") class DingtalkInnerRobotUtils private constructor() { companion object { 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 b999242c..d4a21c41 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 @@ -11,6 +11,7 @@ import com.idormy.sms.forwarder.utils.mail.Mail import com.idormy.sms.forwarder.utils.mail.MailSender import com.xuexiang.xui.utils.ResUtils +@Suppress("DEPRECATION") class EmailUtils { companion object { @@ -43,12 +44,14 @@ class EmailUtils { setting.ssl = true setting.fromEmail += setting.mailType } + "@exmail.qq.com" -> { setting.host = "smtp.exmail.qq.com" setting.port = "465" setting.ssl = true setting.fromEmail += setting.mailType } + "@msn.com" -> { setting.host = "smtp-mail.outlook.com" setting.port = "587" @@ -56,6 +59,7 @@ class EmailUtils { setting.startTls = true setting.fromEmail += setting.mailType } + "@outlook.com", "@office365.com", "@live.com", "@hotmail.com" -> { setting.host = "smtp.office365.com" setting.port = "587" @@ -63,6 +67,7 @@ class EmailUtils { setting.startTls = true setting.fromEmail += setting.mailType } + "@gmail.com" -> { setting.host = "smtp.gmail.com" setting.port = "587" @@ -70,48 +75,56 @@ class EmailUtils { setting.startTls = true setting.fromEmail += setting.mailType } + "@yeah.net" -> { setting.host = "smtp.yeah.net" setting.port = "465" setting.ssl = true setting.fromEmail += setting.mailType } + "@163.com" -> { setting.host = "smtp.163.com" setting.port = "465" setting.ssl = true setting.fromEmail += setting.mailType } + "@126.com" -> { setting.host = "smtp.126.com" setting.port = "465" setting.ssl = true setting.fromEmail += setting.mailType } + "@sina.com" -> { setting.host = "smtp.sina.com" setting.port = "465" setting.ssl = true setting.fromEmail += setting.mailType } + "@sina.cn" -> { setting.host = "smtp.sina.cn" setting.port = "465" setting.ssl = true setting.fromEmail += setting.mailType } + "@139.com" -> { setting.host = "smtp.139.com" setting.port = "465" setting.ssl = true setting.fromEmail += setting.mailType } + "@189.cn" -> { setting.host = "smtp.189.cn" setting.port = "465" setting.ssl = true setting.fromEmail += setting.mailType } + else -> {} } 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 6b8bee17..d2cab056 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 @@ -18,6 +18,7 @@ import com.xuexiang.xhttp2.exception.ApiException import com.xuexiang.xui.utils.ResUtils.getString //飞书企业应用 +@Suppress("DEPRECATION") class FeishuAppUtils private constructor() { companion object { 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 67d3f98e..152ebe4f 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 @@ -16,6 +16,7 @@ import com.xuexiang.xhttp2.callback.SimpleCallBack import com.xuexiang.xhttp2.exception.ApiException import com.xuexiang.xui.utils.ResUtils +@Suppress("DEPRECATION") class PushplusUtils private constructor() { companion object { 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 1223c6c1..c0862b71 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 @@ -16,6 +16,7 @@ import com.xuexiang.xui.utils.ResUtils import com.xuexiang.xutil.XUtil import com.xuexiang.xutil.net.NetworkUtils +@Suppress("DEPRECATION") class SmsUtils { companion object { diff --git a/app/src/main/java/com/idormy/sms/forwarder/utils/tinker/ShareReflectUtil.kt b/app/src/main/java/com/idormy/sms/forwarder/utils/tinker/ShareReflectUtil.kt index 319982fd..8d933b0d 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/utils/tinker/ShareReflectUtil.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/utils/tinker/ShareReflectUtil.kt @@ -114,7 +114,7 @@ object ShareReflectUtil { + name + " with parameters " + listOf(*parameterTypes) - + " not found in " + tClazz + + " not found in tClazz" ) } diff --git a/app/src/main/java/com/idormy/sms/forwarder/utils/update/CustomUpdateFailureListener.kt b/app/src/main/java/com/idormy/sms/forwarder/utils/update/CustomUpdateFailureListener.kt index 69c0021e..e79ef0f0 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/utils/update/CustomUpdateFailureListener.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/utils/update/CustomUpdateFailureListener.kt @@ -13,6 +13,7 @@ import com.xuexiang.xupdate.listener.OnUpdateFailureListener * @author xuexiang * @since 2019/4/15 上午12:01 */ +@Suppress("DEPRECATION") class CustomUpdateFailureListener @JvmOverloads constructor( /** * 是否需要错误提示 diff --git a/app/src/main/java/com/idormy/sms/forwarder/utils/update/UpdateTipDialog.kt b/app/src/main/java/com/idormy/sms/forwarder/utils/update/UpdateTipDialog.kt index 113a3e61..9e84ac59 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/utils/update/UpdateTipDialog.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/utils/update/UpdateTipDialog.kt @@ -17,6 +17,7 @@ import com.xuexiang.xupdate.XUpdate * @author xuexiang * @since 2019-06-15 00:06 */ +@Suppress("DEPRECATION") class UpdateTipDialog : AppCompatActivity(), DialogInterface.OnDismissListener { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) diff --git a/app/src/main/java/com/idormy/sms/forwarder/utils/update/XHttpUpdateHttpServiceImpl.kt b/app/src/main/java/com/idormy/sms/forwarder/utils/update/XHttpUpdateHttpServiceImpl.kt index 34d597e1..c246682f 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/utils/update/XHttpUpdateHttpServiceImpl.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/utils/update/XHttpUpdateHttpServiceImpl.kt @@ -19,6 +19,7 @@ import com.xuexiang.xutil.net.JsonUtil * @author xuexiang * @since 2018/8/12 上午11:46 */ +@Suppress("DEPRECATION") class XHttpUpdateHttpServiceImpl : IUpdateHttpService { override fun asyncGet( url: String, diff --git a/app/src/main/res/drawable/auto_task_radio_button_bg.xml b/app/src/main/res/drawable/auto_task_radio_button_bg.xml deleted file mode 100644 index efdf5555..00000000 --- a/app/src/main/res/drawable/auto_task_radio_button_bg.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/drawable/auto_task_radio_button_select.xml b/app/src/main/res/drawable/auto_task_radio_button_select.xml deleted file mode 100644 index 6befc008..00000000 --- a/app/src/main/res/drawable/auto_task_radio_button_select.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/app/src/main/res/drawable/auto_task_radio_button_un_select.xml b/app/src/main/res/drawable/auto_task_radio_button_un_select.xml deleted file mode 100644 index 1c886aac..00000000 --- a/app/src/main/res/drawable/auto_task_radio_button_un_select.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - - \ No newline at end of file diff --git a/app/src/main/res/drawable/auto_task_select_icon.xml b/app/src/main/res/drawable/auto_task_select_icon.xml deleted file mode 100644 index fa4ba251..00000000 --- a/app/src/main/res/drawable/auto_task_select_icon.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - - \ No newline at end of file diff --git a/app/src/main/res/layout/adapter_app_list_item.xml b/app/src/main/res/layout/adapter_app_list_item.xml index f941c927..901dc415 100644 --- a/app/src/main/res/layout/adapter_app_list_item.xml +++ b/app/src/main/res/layout/adapter_app_list_item.xml @@ -63,7 +63,7 @@ android:layout_width="0dp" android:layout_height="match_parent" android:layout_weight="1" - android:gravity="right" /> + android:gravity="end|bottom" /> diff --git a/app/src/main/res/layout/dialog_guide_tips.xml b/app/src/main/res/layout/dialog_guide_tips.xml index 97e89c5e..a6471e19 100644 --- a/app/src/main/res/layout/dialog_guide_tips.xml +++ b/app/src/main/res/layout/dialog_guide_tips.xml @@ -20,7 +20,8 @@ android:layout_height="wrap_content" android:layout_gravity="end" android:padding="@dimen/config_margin_10dp" - app:srcCompat="@drawable/ic_action_close_white" /> + app:srcCompat="@drawable/ic_action_close_white" + tools:ignore="ImageContrastCheck" /> + android:textColor="?attr/colorAccent" + tools:ignore="TextContrastCheck" /> + android:scaleY="0.8" + tools:ignore="PrivateResource,TouchTargetSizeCheck" /> + android:text="@string/tip_ignore_message" + tools:ignore="TextContrastCheck" /> diff --git a/app/src/main/res/layout/fragment_rules_edit.xml b/app/src/main/res/layout/fragment_rules_edit.xml index 353f6388..d15ab578 100644 --- a/app/src/main/res/layout/fragment_rules_edit.xml +++ b/app/src/main/res/layout/fragment_rules_edit.xml @@ -534,7 +534,7 @@ android:layout_height="wrap_content" android:text="@string/silent_time_period_tips" android:textSize="9sp" - tools:ignore="SmallSp" /> + tools:ignore="SmallSp,TooManyViews" /> diff --git a/app/src/main/res/layout/fragment_settings.xml b/app/src/main/res/layout/fragment_settings.xml index 86272e3c..638a99f4 100644 --- a/app/src/main/res/layout/fragment_settings.xml +++ b/app/src/main/res/layout/fragment_settings.xml @@ -349,7 +349,6 @@ android:layout_height="wrap_content" android:layout_marginTop="5dp" android:background="@color/setting_bar_color" - android:gravity="center_vertical" android:orientation="vertical" android:paddingStart="10dp" android:paddingTop="10dp" @@ -358,6 +357,7 @@ - - - - - - - - - - - - - - - - + android:importantForAutofill="no" + android:textAlignment="center" + tools:ignore="DuplicateSpeakableTextCheck,HardcodedText,TextFields,TouchTargetSizeCheck,TextContrastCheck" /> + android:importantForAutofill="no" + android:textAlignment="center" + tools:ignore="HardcodedText,TextFields,TouchTargetSizeCheck,TextContrastCheck" /> + android:importantForAutofill="no" + android:textAlignment="center" + tools:ignore="HardcodedText,TextFields,TouchTargetSizeCheck,TextContrastCheck" /> + android:importantForAutofill="no" + android:textAlignment="center" + tools:ignore="HardcodedText,TextFields,TouchTargetSizeCheck,TextContrastCheck" /> + android:importantForAutofill="no" + android:textAlignment="center" + tools:ignore="HardcodedText,TextFields,TouchTargetSizeCheck,TextContrastCheck" /> + android:importantForAutofill="no" + android:textAlignment="center" + tools:ignore="HardcodedText,TextFields,TouchTargetSizeCheck,TextContrastCheck" /> + android:importantForAutofill="no" + android:textAlignment="center" + tools:ignore="HardcodedText,TextFields,TouchTargetSizeCheck,TextContrastCheck" /> @@ -272,6 +286,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:hint="@string/start" + android:importantForAutofill="no" android:inputType="number" android:textAlignment="center" /> @@ -285,6 +300,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:hint="@string/end" + android:importantForAutofill="no" android:inputType="number" android:textAlignment="center" /> @@ -317,6 +333,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:hint="@string/start" + android:importantForAutofill="no" android:inputType="number" android:textAlignment="center" /> @@ -330,6 +347,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:hint="@string/interval" + android:importantForAutofill="no" android:inputType="number" android:textAlignment="center" /> @@ -403,6 +421,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:hint="@string/start" + android:importantForAutofill="no" android:inputType="number" android:textAlignment="center" /> @@ -416,6 +435,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:hint="@string/end" + android:importantForAutofill="no" android:inputType="number" android:textAlignment="center" /> @@ -448,6 +468,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:hint="@string/start" + android:importantForAutofill="no" android:inputType="number" android:textAlignment="center" /> @@ -461,6 +482,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:hint="@string/interval" + android:importantForAutofill="no" android:inputType="number" android:textAlignment="center" /> @@ -534,6 +556,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:hint="@string/start" + android:importantForAutofill="no" android:inputType="number" android:textAlignment="center" /> @@ -547,6 +570,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:hint="@string/end" + android:importantForAutofill="no" android:inputType="number" android:textAlignment="center" /> @@ -561,7 +585,8 @@ android:id="@+id/rb_hour_type_interval" android:layout_width="match_parent" android:layout_height="wrap_content" - android:text="@string/interval" /> + android:text="@string/interval" + tools:ignore="TooManyViews" /> @@ -592,6 +618,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:hint="@string/interval" + android:importantForAutofill="no" android:inputType="number" android:textAlignment="center" /> @@ -665,6 +692,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:hint="@string/start" + android:importantForAutofill="no" android:inputType="number" android:textAlignment="center" /> @@ -678,6 +706,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:hint="@string/end" + android:importantForAutofill="no" android:inputType="number" android:textAlignment="center" /> @@ -710,6 +739,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:hint="@string/start" + android:importantForAutofill="no" android:inputType="number" android:textAlignment="center" /> @@ -723,6 +753,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:hint="@string/interval" + android:importantForAutofill="no" android:inputType="number" android:textAlignment="center" /> @@ -755,8 +786,10 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:hint="1-31" + android:importantForAutofill="no" android:inputType="number" - android:textAlignment="center" /> + android:textAlignment="center" + tools:ignore="HardcodedText" /> @@ -859,6 +893,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:hint="@string/end" + android:importantForAutofill="no" android:inputType="number" android:textAlignment="center" /> @@ -891,6 +926,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:hint="@string/start" + android:importantForAutofill="no" android:inputType="number" android:textAlignment="center" /> @@ -904,6 +940,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:hint="@string/interval" + android:importantForAutofill="no" android:inputType="number" android:textAlignment="center" /> @@ -977,6 +1014,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:hint="@string/start" + android:importantForAutofill="no" android:inputType="number" android:textAlignment="center" /> @@ -990,6 +1028,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:hint="@string/end" + android:importantForAutofill="no" android:inputType="number" android:textAlignment="center" /> @@ -1016,6 +1055,7 @@ android:id="@+id/et_which_week_of_month" android:layout_width="wrap_content" android:layout_height="wrap_content" + android:importantForAutofill="no" android:inputType="number" android:textAlignment="center" /> @@ -1029,8 +1069,10 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:hint="1-7" + android:importantForAutofill="no" android:inputType="number" - android:textAlignment="center" /> + android:textAlignment="center" + tools:ignore="HardcodedText" /> @@ -1056,8 +1098,10 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:hint="1-7" + android:importantForAutofill="no" android:inputType="number" - android:textAlignment="center" /> + android:textAlignment="center" + tools:ignore="HardcodedText" /> @@ -1155,6 +1200,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:hint="@string/end" + android:importantForAutofill="no" android:inputType="number" android:textAlignment="center" /> @@ -1187,6 +1233,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:hint="@string/start" + android:importantForAutofill="no" android:inputType="number" android:textAlignment="center" /> @@ -1200,6 +1247,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:hint="@string/interval" + android:importantForAutofill="no" android:inputType="number" android:textAlignment="center" /> @@ -1244,7 +1292,7 @@ android:paddingStart="15dp" android:text="@string/discard" android:textSize="11sp" - tools:ignore="RtlSymmetry" /> + tools:ignore="RtlSymmetry,TextContrastCheck,TouchTargetSizeCheck" /> + tools:ignore="RtlSymmetry,TouchTargetSizeCheck,TextContrastCheck" /> + tools:ignore="RtlSymmetry,TouchTargetSizeCheck,TextContrastCheck" /> diff --git a/app/src/main/res/values-en/arrays.xml b/app/src/main/res/values-en/arrays.xml index f5787e20..ec80d6d0 100644 --- a/app/src/main/res/values-en/arrays.xml +++ b/app/src/main/res/values-en/arrays.xml @@ -1,6 +1,6 @@ - + @string/menu_logs @@ -152,7 +152,7 @@ UTF-8 US-ASCII - ISO-8859-1 + ISO-8859-1 UTF-16 UTF-16BE UTF-16LE diff --git a/app/src/main/res/values-en/strings.xml b/app/src/main/res/values-en/strings.xml index 6f16549b..20d4f4e0 100644 --- a/app/src/main/res/values-en/strings.xml +++ b/app/src/main/res/values-en/strings.xml @@ -781,7 +781,7 @@ Service Address "IP or Domain" Port - Value Range:1-65535 + Value Range:1-65535 Webhook Server For example: https://a.b.com/msg?token=xyz @@ -1061,7 +1061,7 @@ Network Type Operator Name Host Address - Loading app list async... + Loading app list async… Carrier Name ICC ID diff --git a/app/src/main/res/values/arrays.xml b/app/src/main/res/values/arrays.xml index cf50b0ed..0ddd370c 100644 --- a/app/src/main/res/values/arrays.xml +++ b/app/src/main/res/values/arrays.xml @@ -1,6 +1,6 @@ - + @string/menu_logs @@ -152,7 +152,7 @@ UTF-8 US-ASCII - ISO-8859-1 + ISO-8859-1 UTF-16 UTF-16BE UTF-16LE diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index c375275a..2f5740ed 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -782,7 +782,7 @@ 服务地址 IP 或 域名 端口 - 取值范围:1-65535 + 取值范围:1-65535 Webhook Server 例如:https://a.b.com/msg?token=xyz @@ -1062,7 +1062,7 @@ 网络类型 运营商 本地IP - 正在异步加载应用列表... + 正在异步加载应用列表… 运营商名 ICC ID @@ -1200,7 +1200,7 @@ 周的星期 本月最后 本月最后一个星期 - + Cron表达式测试结果 Cron表达式无效:\n%s 最近 %s 次运行时间:\n%s diff --git a/app/x-library.gradle b/app/x-library.gradle index 5ad8a5c1..e6eaa50a 100644 --- a/app/x-library.gradle +++ b/app/x-library.gradle @@ -46,7 +46,7 @@ configurations.each { configuration -> } } -configurations.all { +configurations.configureEach { resolutionStrategy.force deps.okhttp3 //总是拉取最新的 build 版本 resolutionStrategy.cacheChangingModulesFor 0, 'seconds' diff --git a/build.gradle b/build.gradle index d803f1a2..8811ec0f 100644 --- a/build.gradle +++ b/build.gradle @@ -38,12 +38,12 @@ allprojects { } // 设置全局编码 - tasks.withType(JavaCompile) { + tasks.withType(JavaCompile).configureEach { options.encoding = 'UTF-8' } // 设置文档编码 - tasks.withType(Javadoc) { + tasks.withType(Javadoc).configureEach { options { encoding 'UTF-8' charSet 'UTF-8' @@ -55,7 +55,7 @@ allprojects { setBuildDir(new File(rootDir, "build/${path.replaceAll(':', '/')}")) } -task clean(type: Delete) { +tasks.register('clean', Delete) { delete rootProject.buildDir FileTree rootTree = fileTree(dir: rootDir)