整理:code review

This commit is contained in:
pppscn 2023-12-20 20:35:31 +08:00
parent 1da0257c8c
commit 06ce0112a9
44 changed files with 77 additions and 171 deletions

View File

@ -29,7 +29,6 @@
<uses-permission
android:name="android.permission.MANAGE_EXTERNAL_STORAGE"
tools:ignore="ScopedStorage" />
<uses-permission android:name="android.permission.RECEIVE_SMS" />
<uses-permission android:name="android.permission.RECEIVE_MMS" />
<uses-permission android:name="android.permission.RECEIVE_WAP_PUSH" />

View File

@ -15,7 +15,7 @@ import com.idormy.sms.forwarder.databinding.AdapterFrpcsCardViewListItemBinding
import com.xuexiang.xutil.resource.ResUtils.getColors
import frpclib.Frpclib
@Suppress("EmptyMethod", "unused")
@Suppress("EmptyMethod")
class FrpcPagingAdapter(private val itemClickListener: OnItemClickListener) : PagingDataAdapter<Frpc, MyViewHolder>(diffCallback) {
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): MyViewHolder {

View File

@ -1,56 +0,0 @@
package com.idormy.sms.forwarder.adapter
import android.annotation.SuppressLint
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import androidx.paging.PagingDataAdapter
import androidx.recyclerview.widget.DiffUtil
import androidx.recyclerview.widget.RecyclerView
import com.idormy.sms.forwarder.adapter.LogsPagingAdapter.MyViewHolder
import com.idormy.sms.forwarder.database.entity.LogsAndRuleAndSender
import com.idormy.sms.forwarder.databinding.AdapterLogsCardViewListItemBinding
import com.xuexiang.xutil.data.DateUtils
class LogsPagingAdapter(private val itemClickListener: OnItemClickListener) : PagingDataAdapter<LogsAndRuleAndSender, MyViewHolder>(diffCallback) {
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): MyViewHolder {
val binding = AdapterLogsCardViewListItemBinding.inflate(LayoutInflater.from(parent.context), parent, false)
return MyViewHolder(binding)
}
override fun onBindViewHolder(holder: MyViewHolder, position: Int) {
val item = getItem(position)
if (item != null) {
holder.binding.tvFrom.text = item.msg.from
holder.binding.tvTime.text = DateUtils.getFriendlyTimeSpanByNow(item.logs.time)
holder.binding.tvContent.text = item.msg.content
//holder.binding.ivSenderImage.setImageResource(Sender.getImageId(item.sender.type))
//holder.binding.ivStatusImage.setImageResource(item.logs.statusImageId)
holder.binding.ivSimImage.setImageResource(item.msg.simImageId)
holder.binding.cardView.setOnClickListener { view: View? ->
itemClickListener.onItemClicked(view, item)
}
}
}
class MyViewHolder(val binding: AdapterLogsCardViewListItemBinding) : RecyclerView.ViewHolder(binding.root)
interface OnItemClickListener {
fun onItemClicked(view: View?, item: LogsAndRuleAndSender)
fun onItemRemove(view: View?, id: Int)
}
companion object {
var diffCallback: DiffUtil.ItemCallback<LogsAndRuleAndSender> = object : DiffUtil.ItemCallback<LogsAndRuleAndSender>() {
override fun areItemsTheSame(oldItem: LogsAndRuleAndSender, newItem: LogsAndRuleAndSender): Boolean {
return oldItem.logs.id == newItem.logs.id
}
@SuppressLint("DiffUtilEquals")
override fun areContentsTheSame(oldItem: LogsAndRuleAndSender, newItem: LogsAndRuleAndSender): Boolean {
return oldItem.logs === newItem.logs
}
}
}
}

View File

@ -18,7 +18,7 @@ import com.idormy.sms.forwarder.database.entity.MsgAndLogs
import com.idormy.sms.forwarder.databinding.AdapterLogsCardViewListItemBinding
import com.xuexiang.xutil.data.DateUtils
@Suppress("EmptyMethod", "unused")
@Suppress("EmptyMethod")
class MsgPagingAdapter(private val itemClickListener: OnItemClickListener) : PagingDataAdapter<MsgAndLogs, MyViewHolder>(diffCallback) {
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): MyViewHolder {

View File

@ -16,7 +16,7 @@ import com.idormy.sms.forwarder.adapter.RulePagingAdapter.MyViewHolder
import com.idormy.sms.forwarder.database.entity.Rule
import com.idormy.sms.forwarder.databinding.AdapterRulesCardViewListItemBinding
@Suppress("EmptyMethod", "unused")
@Suppress("EmptyMethod")
class RulePagingAdapter(private val itemClickListener: OnItemClickListener) : PagingDataAdapter<Rule, MyViewHolder>(diffCallback) {
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): MyViewHolder {

View File

@ -11,7 +11,7 @@ import com.idormy.sms.forwarder.adapter.SenderPagingAdapter.MyViewHolder
import com.idormy.sms.forwarder.database.entity.Sender
import com.idormy.sms.forwarder.databinding.AdapterSendersCardViewListItemBinding
@Suppress("EmptyMethod", "unused")
@Suppress("EmptyMethod")
class SenderPagingAdapter(private val itemClickListener: OnItemClickListener) : PagingDataAdapter<Sender, MyViewHolder>(diffCallback) {
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): MyViewHolder {

View File

@ -18,7 +18,7 @@ import com.idormy.sms.forwarder.databinding.AdapterTasksCardViewListItemBinding
import com.idormy.sms.forwarder.entity.TaskSetting
import com.xuexiang.xutil.data.DateUtils
@Suppress("EmptyMethod", "unused")
@Suppress("EmptyMethod")
class TaskPagingAdapter(private val itemClickListener: OnItemClickListener) : PagingDataAdapter<Task, MyViewHolder>(diffCallback) {
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): MyViewHolder {

View File

@ -12,7 +12,7 @@ import androidx.recyclerview.widget.RecyclerView
import com.idormy.sms.forwarder.R
import com.idormy.sms.forwarder.entity.TaskSetting
@Suppress("DEPRECATION", "unused")
@Suppress("DEPRECATION")
class TaskSettingAdapter(
val itemList: MutableList<TaskSetting>,
private val editClickListener: (Int) -> Unit,

View File

@ -12,7 +12,6 @@ import me.samlss.broccoli.Broccoli
* @author XUE
* @since 2019/4/8 16:33
*/
@Suppress("unused")
abstract class BroccoliRecyclerAdapter<T>(collection: Collection<T>?) :
BaseRecyclerAdapter<T>(collection) {
/**

View File

@ -9,7 +9,6 @@ import com.xuexiang.xui.adapter.recyclerview.RecyclerViewHolder
* @author xuexiang
* @since 2020/3/20 12:44 AM
*/
@Suppress("unused")
abstract class BaseDelegateAdapter<T> : XDelegateAdapter<T, RecyclerViewHolder> {
constructor() : super()
constructor(list: Collection<T>?) : super(list)

View File

@ -16,7 +16,7 @@ import com.xuexiang.xui.widget.actionbar.TitleUtils
* @author xuexiang
* @since 2018/11/22 上午11:26
*/
@Suppress("UNUSED_PARAMETER", "unused")
@Suppress("UNUSED_PARAMETER")
abstract class BaseContainerFragment : XPageContainerListFragment() {
override fun initPage() {
initTitle()

View File

@ -13,7 +13,6 @@ import com.xuexiang.xutil.common.StringUtils
* @author xuexiang
* @since 2018/12/19 上午12:19
*/
@Suppress("unused")
class SimpleListAdapter(context: Context?, data: List<Map<String?, String?>?>?) :
BaseListAdapter<Map<String?, String?>, SimpleListAdapter.ViewHolder>(context, data) {
override fun newViewHolder(convertView: View): ViewHolder {

View File

@ -11,8 +11,18 @@ import android.os.Build
import android.os.Bundle
import android.text.TextUtils
import android.util.Log
import android.view.*
import android.webkit.*
import android.view.Gravity
import android.view.KeyEvent
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.webkit.DownloadListener
import android.webkit.WebChromeClient
import android.webkit.WebResourceError
import android.webkit.WebResourceRequest
import android.webkit.WebResourceResponse
import android.webkit.WebView
import android.webkit.WebViewClient
import android.widget.FrameLayout
import android.widget.ImageView
import android.widget.LinearLayout
@ -46,7 +56,6 @@ import com.xuexiang.xutil.net.JsonUtil
*/
@Suppress(
"unused",
"MemberVisibilityCanBePrivate",
"ProtectedInFinal",
"NAME_SHADOWING",
"UNUSED_PARAMETER",
@ -147,6 +156,7 @@ class AgentWebFragment : Fragment(), FragmentKeyDown {
if (!mAgentWeb!!.back()) {
this.requireActivity().finish()
}
R.id.iv_finish -> this.requireActivity().finish()
R.id.iv_more -> showPoPup(v)
else -> {}
@ -459,24 +469,28 @@ class AgentWebFragment : Fragment(), FragmentKeyDown {
}
true
}
R.id.copy -> {
if (mAgentWeb != null) {
mAgentWeb!!.webCreator.webView.url?.let { toCopy(context, it) }
}
true
}
R.id.default_browser -> {
if (mAgentWeb != null) {
mAgentWeb!!.webCreator.webView.url?.let { openBrowser(it) }
}
true
}
R.id.share -> {
if (mAgentWeb != null) {
mAgentWeb!!.webCreator.webView.url?.let { shareWebUrl(it) }
}
true
}
else -> false
}
}

View File

@ -47,7 +47,7 @@ import java.util.Locale
*
* 这里主要是做去广告的工作
*/
@Suppress("UNUSED_PARAMETER", "DEPRECATION", "OVERRIDE_DEPRECATION", "unused")
@Suppress("UNUSED_PARAMETER", "DEPRECATION", "OVERRIDE_DEPRECATION")
open class MiddlewareWebViewClient : MiddlewareWebClientBase() {
@RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
override fun shouldOverrideUrlLoading(view: WebView, request: WebResourceRequest): Boolean {

View File

@ -19,7 +19,6 @@ 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)

View File

@ -1,7 +1,13 @@
package com.idormy.sms.forwarder.database.dao
import androidx.paging.PagingSource
import androidx.room.*
import androidx.room.Dao
import androidx.room.Delete
import androidx.room.Insert
import androidx.room.OnConflictStrategy
import androidx.room.Query
import androidx.room.Transaction
import androidx.room.Update
import com.idormy.sms.forwarder.database.entity.Logs
import com.idormy.sms.forwarder.database.entity.LogsAndRuleAndSender
import io.reactivex.Completable
@ -25,9 +31,6 @@ interface LogsDao {
@Query("DELETE FROM Logs")
fun deleteAll()
@Query("DELETE FROM Logs where time<:time")
fun deleteTimeAgo(time: Long)
@Update
fun update(logs: Logs): Completable

View File

@ -21,12 +21,6 @@ interface TaskDao {
@Query("SELECT * FROM Task where id=:id")
fun getOne(id: Long): Task
@Query("SELECT * FROM Task ORDER BY id DESC")
fun getAll(): List<Task>
@Query("SELECT * FROM Task where type = 1000 ORDER BY id DESC")
fun getAllCron(): List<Task>
@Query("SELECT * FROM Task where type < 1000 ORDER BY id DESC")
fun pagingSourceFixed(): PagingSource<Int, Task>
@ -40,10 +34,6 @@ interface TaskDao {
@Query("SELECT * FROM Task WHERE status = 1 AND type = :taskType")
fun getByType(taskType: Int): List<Task>
//TODO:根据条件查询,不推荐使用
@Query("SELECT * FROM Task WHERE type = :taskType AND conditions LIKE '%' || :conditionKey || '%' AND conditions LIKE '%' || :conditionValue || '%'")
fun getByCondition(taskType: String, conditionKey: String, conditionValue: String): List<Task>
@Insert
fun insert(task: Task)

View File

@ -5,6 +5,7 @@ import android.text.TextUtils
import android.util.Log
import com.idormy.sms.forwarder.App
import com.idormy.sms.forwarder.R
import com.idormy.sms.forwarder.utils.AppUtils
import com.idormy.sms.forwarder.utils.BatteryUtils
import com.idormy.sms.forwarder.utils.HttpServerUtils
import com.idormy.sms.forwarder.utils.SettingUtils
@ -12,7 +13,6 @@ import com.idormy.sms.forwarder.utils.SettingUtils.Companion.enableSmsTemplate
import com.idormy.sms.forwarder.utils.SettingUtils.Companion.extraDeviceMark
import com.idormy.sms.forwarder.utils.SettingUtils.Companion.smsTemplate
import com.idormy.sms.forwarder.utils.task.TaskUtils
import com.xuexiang.xutil.app.AppUtils
import com.xuexiang.xutil.resource.ResUtils.getString
import java.io.Serializable
import java.text.SimpleDateFormat

View File

@ -10,6 +10,7 @@ import com.idormy.sms.forwarder.activity.MainActivity
import com.idormy.sms.forwarder.core.BaseFragment
import com.idormy.sms.forwarder.core.webview.AgentWebActivity
import com.idormy.sms.forwarder.databinding.FragmentAboutBinding
import com.idormy.sms.forwarder.utils.AppUtils
import com.idormy.sms.forwarder.utils.CacheUtils
import com.idormy.sms.forwarder.utils.CommonUtils.Companion.gotoProtocol
import com.idormy.sms.forwarder.utils.CommonUtils.Companion.previewMarkdown
@ -25,7 +26,6 @@ import com.xuexiang.xui.widget.actionbar.TitleBar
import com.xuexiang.xui.widget.dialog.materialdialog.DialogAction
import com.xuexiang.xui.widget.dialog.materialdialog.MaterialDialog
import com.xuexiang.xui.widget.textview.supertextview.SuperTextView
import com.xuexiang.xutil.app.AppUtils
import com.xuexiang.xutil.file.FileUtils
import frpclib.Frpclib
import java.io.File

View File

@ -40,6 +40,7 @@ import com.idormy.sms.forwarder.receiver.BootCompletedReceiver
import com.idormy.sms.forwarder.service.ForegroundService
import com.idormy.sms.forwarder.service.LocationService
import com.idormy.sms.forwarder.utils.*
import com.idormy.sms.forwarder.utils.AppUtils.getAppPackageName
import com.idormy.sms.forwarder.widget.GuideTipsDialog
import com.idormy.sms.forwarder.workers.LoadAppListWorker
import com.jeremyliao.liveeventbus.LiveEventBus
@ -55,7 +56,6 @@ import com.xuexiang.xui.widget.picker.widget.builder.OptionsPickerBuilder
import com.xuexiang.xui.widget.picker.widget.listener.OnOptionsSelectListener
import com.xuexiang.xutil.XUtil
import com.xuexiang.xutil.XUtil.getPackageManager
import com.xuexiang.xutil.app.AppUtils.getAppPackageName
import kotlinx.coroutines.*
import java.util.*

View File

@ -54,7 +54,7 @@ import java.util.*
@Page(name = "自动任务·编辑器")
@Suppress("PrivatePropertyName", "DEPRECATION", "UNUSED_PARAMETER", "EmptyMethod", "unused")
@Suppress("PrivatePropertyName", "DEPRECATION", "UNUSED_PARAMETER", "EmptyMethod")
class TasksEditFragment : BaseFragment<FragmentTasksEditBinding?>(), View.OnClickListener, RecyclerViewHolder.OnItemClickListener<PageInfo> {
private val TAG: String = TasksEditFragment::class.java.simpleName

View File

@ -41,7 +41,7 @@ import com.xuexiang.xui.widget.actionbar.TitleBar
import com.xuexiang.xutil.XUtil
@Page(name = "SendSms")
@Suppress("PrivatePropertyName", "DEPRECATION")
@Suppress("PrivatePropertyName")
class SendSmsFragment : BaseFragment<FragmentTasksActionSendSmsBinding?>(), View.OnClickListener {
private val TAG: String = SendSmsFragment::class.java.simpleName

View File

@ -34,7 +34,6 @@ import com.xuexiang.xui.utils.CountDownButtonHelper
import com.xuexiang.xui.widget.actionbar.TitleBar
import com.xuexiang.xui.widget.dialog.materialdialog.DialogAction
import com.xuexiang.xui.widget.dialog.materialdialog.MaterialDialog
import com.xuexiang.xutil.app.AppUtils
import com.xuexiang.xutil.data.ConvertTools
import com.xuexiang.xutil.file.FileIOUtils
import com.xuexiang.xutil.file.FileUtils

View File

@ -24,7 +24,7 @@ import com.xuexiang.xui.utils.CountDownButtonHelper
import com.xuexiang.xui.widget.actionbar.TitleBar
import com.xuexiang.xutil.data.ConvertTools
@Suppress("PrivatePropertyName", "DEPRECATION")
@Suppress("PrivatePropertyName")
@Page(name = "远程加话簿")
class ContactAddFragment : BaseFragment<FragmentClientContactAddBinding?>(), View.OnClickListener {

View File

@ -29,7 +29,7 @@ import com.xuexiang.xui.widget.actionbar.TitleBar
import com.xuexiang.xui.widget.grouplist.XUIGroupListView
import com.xuexiang.xutil.data.ConvertTools
@Suppress("PrivatePropertyName", "DEPRECATION")
@Suppress("PrivatePropertyName")
@Page(name = "远程找手机")
class LocationFragment : BaseFragment<FragmentClientLocationBinding?>(), View.OnClickListener {

View File

@ -25,7 +25,7 @@ import com.xuexiang.xui.utils.CountDownButtonHelper
import com.xuexiang.xui.widget.actionbar.TitleBar
import com.xuexiang.xutil.data.ConvertTools
@Suppress("PrivatePropertyName", "DEPRECATION")
@Suppress("PrivatePropertyName")
@Page(name = "远程发短信")
class SmsSendFragment : BaseFragment<FragmentClientSmsSendBinding?>(), View.OnClickListener {

View File

@ -22,7 +22,7 @@ import com.idormy.sms.forwarder.utils.TaskWorker
import com.idormy.sms.forwarder.utils.task.TaskUtils
import com.idormy.sms.forwarder.workers.NetworkWorker
@Suppress("PrivatePropertyName", "DEPRECATION", "UNUSED_PARAMETER", "unused")
@Suppress("PrivatePropertyName", "DEPRECATION", "UNUSED_PARAMETER")
class NetworkChangeReceiver : BroadcastReceiver() {
private val TAG: String = NetworkChangeReceiver::class.java.simpleName

View File

@ -8,7 +8,7 @@ import android.util.Log
import com.idormy.sms.forwarder.utils.SettingUtils
import java.util.Date
@Suppress("DEPRECATION", "unused")
@Suppress("DEPRECATION")
abstract class PhoneStateReceiver : BroadcastReceiver() {
override fun onReceive(context: Context, intent: Intent) {

View File

@ -20,7 +20,7 @@ import com.xuexiang.xrouter.utils.TextUtils
import java.util.Date
//短信广播
@Suppress("PrivatePropertyName", "unused", "UNUSED_PARAMETER")
@Suppress("PrivatePropertyName", "UNUSED_PARAMETER")
class SmsReceiver : BroadcastReceiver() {
private var TAG = SmsReceiver::class.java.simpleName

View File

@ -1,57 +0,0 @@
package com.idormy.sms.forwarder.server.component
import com.yanzhenjie.andserver.error.HttpException
import com.yanzhenjie.andserver.framework.HandlerInterceptor
import com.yanzhenjie.andserver.framework.handler.MethodHandler
import com.yanzhenjie.andserver.framework.handler.RequestHandler
import com.yanzhenjie.andserver.framework.mapping.Addition
import com.yanzhenjie.andserver.http.HttpRequest
import com.yanzhenjie.andserver.http.HttpResponse
//@Interceptor
class LoginInterceptor : HandlerInterceptor {
override fun onIntercept(
request: HttpRequest,
response: HttpResponse,
handler: RequestHandler,
): Boolean {
if (handler is MethodHandler) {
val methodHandler: MethodHandler = handler
val addition: Addition = methodHandler.addition
if (!isLogin(request, addition)) {
throw HttpException(401, "You are not logged in yet.")
}
}
return false
}
private fun isNeedLogin(addition: Addition?): Boolean {
if (addition == null) {
return false
}
val stringType = addition.stringType
if (stringType.isEmpty()) {
return false
}
val booleanType = addition.booleanType
return if (booleanType.isEmpty()) {
false
} else stringType[0].equals("login", ignoreCase = true) && booleanType[0]
}
private fun isLogin(request: HttpRequest, addition: Addition): Boolean {
if (isNeedLogin(addition)) {
val session = request.session
if (session != null) {
val o = session.getAttribute(LOGIN_ATTRIBUTE)
return o is Boolean && o
}
return false
}
return true
}
companion object {
const val LOGIN_ATTRIBUTE = "USER.LOGIN.SIGN"
}
}

View File

@ -4,10 +4,10 @@ import android.util.Log
import com.idormy.sms.forwarder.App
import com.idormy.sms.forwarder.server.model.BaseRequest
import com.idormy.sms.forwarder.server.model.ConfigData
import com.idormy.sms.forwarder.utils.AppUtils
import com.idormy.sms.forwarder.utils.HttpServerUtils
import com.idormy.sms.forwarder.utils.PhoneUtils
import com.idormy.sms.forwarder.utils.SettingUtils
import com.xuexiang.xutil.app.AppUtils
import com.yanzhenjie.andserver.annotation.*
@Suppress("PrivatePropertyName")

View File

@ -49,13 +49,35 @@ object AppUtils {
return appsInfo
}
fun getAppVersionName(): String? {
fun getAppVersionCode(): Int {
return getAppVersionCode(App.context.packageName)
}
private fun getAppVersionCode(packageName: String?): Int {
if (packageName.isNullOrBlank()) {
return -1
}
return try {
val pm: PackageManager = App.context.packageManager
val pi: PackageInfo = pm.getPackageInfo(packageName, 0)
pi.versionCode
} catch (e: PackageManager.NameNotFoundException) {
e.printStackTrace()
-1
}
}
fun getAppPackageName(): String {
return App.context.packageName
}
fun getAppVersionName(): String {
return getAppVersionName(App.context.packageName)
}
fun getAppVersionName(packageName: String): String? {
private fun getAppVersionName(packageName: String): String {
if (packageName.isBlank()) {
return null
return ""
}
return try {
val pm: PackageManager = App.context.packageManager
@ -63,7 +85,7 @@ object AppUtils {
pi.versionName
} catch (e: PackageManager.NameNotFoundException) {
e.printStackTrace()
null
""
}
}

View File

@ -43,7 +43,7 @@ import java.util.regex.Pattern
/**
* 常用工具类
*/
@Suppress("RegExpRedundantEscape", "unused", "RegExpUnnecessaryNonCapturingGroup", "DEPRECATION")
@Suppress("RegExpRedundantEscape", "unused", "RegExpUnnecessaryNonCapturingGroup")
class CommonUtils private constructor() {
companion object {
/**

View File

@ -238,6 +238,7 @@ const val TASK_ACTION_SENDSMS = 2000
const val TASK_ACTION_NOTIFICATION = 2001
const val TASK_ACTION_FRPC = 2002
const val TASK_ACTION_HTTPSERVER = 2003
const val TASK_ACTION_CLEANER = 2004
const val SP_BATTERY_INFO = "battery_info"
const val SP_BATTERY_STATUS = "battery_status"

View File

@ -10,7 +10,6 @@ import com.idormy.sms.forwarder.core.Core
import com.idormy.sms.forwarder.entity.CloneInfo
import com.idormy.sms.forwarder.entity.LocationInfo
import com.idormy.sms.forwarder.server.model.BaseRequest
import com.xuexiang.xutil.app.AppUtils
import com.xuexiang.xutil.resource.ResUtils.getString
import com.yanzhenjie.andserver.error.HttpException
import java.net.URLEncoder

View File

@ -25,7 +25,6 @@ import java.text.SimpleDateFormat
import java.util.Calendar
import java.util.Date
@Suppress("DEPRECATION")
object SendUtils {
private const val TAG = "SendUtils"

View File

@ -16,7 +16,6 @@ import com.xuexiang.xhttp2.callback.SimpleCallBack
import com.xuexiang.xhttp2.exception.ApiException
import com.xuexiang.xutil.resource.ResUtils.getString
@Suppress("DEPRECATION")
class PushplusUtils private constructor() {
companion object {

View File

@ -16,7 +16,6 @@ import com.xuexiang.xutil.XUtil
import com.xuexiang.xutil.net.NetworkUtils
import com.xuexiang.xutil.resource.ResUtils.getString
@Suppress("DEPRECATION")
class SmsUtils {
companion object {

View File

@ -8,9 +8,9 @@ import com.google.gson.Gson
import com.idormy.sms.forwarder.database.entity.Rule
import com.idormy.sms.forwarder.entity.MsgInfo
import com.idormy.sms.forwarder.entity.setting.SocketSetting
import com.idormy.sms.forwarder.utils.AppUtils
import com.idormy.sms.forwarder.utils.SendUtils
import com.idormy.sms.forwarder.utils.SettingUtils
import com.xuexiang.xutil.app.AppUtils
import org.eclipse.paho.client.mqttv3.IMqttDeliveryToken
import org.eclipse.paho.client.mqttv3.MqttCallbackExtended
import org.eclipse.paho.client.mqttv3.MqttClient

View File

@ -7,10 +7,10 @@ import android.util.Log
import com.idormy.sms.forwarder.database.entity.Rule
import com.idormy.sms.forwarder.entity.MsgInfo
import com.idormy.sms.forwarder.entity.setting.UrlSchemeSetting
import com.idormy.sms.forwarder.utils.AppUtils
import com.idormy.sms.forwarder.utils.SendUtils
import com.idormy.sms.forwarder.utils.SettingUtils
import com.xuexiang.xutil.XUtil
import com.xuexiang.xutil.app.AppUtils
import java.net.URLEncoder
import java.text.SimpleDateFormat
import java.util.*

View File

@ -8,13 +8,13 @@ import com.google.gson.Gson
import com.idormy.sms.forwarder.database.entity.Rule
import com.idormy.sms.forwarder.entity.MsgInfo
import com.idormy.sms.forwarder.entity.setting.WebhookSetting
import com.idormy.sms.forwarder.utils.AppUtils
import com.idormy.sms.forwarder.utils.SendUtils
import com.idormy.sms.forwarder.utils.SettingUtils
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 com.xuexiang.xutil.app.AppUtils
import java.net.URLEncoder
import java.nio.charset.StandardCharsets
import java.text.SimpleDateFormat

View File

@ -13,7 +13,6 @@ import com.xuexiang.xutil.resource.ResUtils.getString
* @author xuexiang
* @since 2019/4/15 上午12:01
*/
@Suppress("DEPRECATION")
class CustomUpdateFailureListener @JvmOverloads constructor(
/**
* 是否需要错误提示

View File

@ -10,13 +10,13 @@ import com.idormy.sms.forwarder.R
import com.idormy.sms.forwarder.core.http.api.ApiService.IGetService
import com.idormy.sms.forwarder.core.http.callback.NoTipCallBack
import com.idormy.sms.forwarder.core.http.entity.TipInfo
import com.idormy.sms.forwarder.utils.AppUtils
import com.idormy.sms.forwarder.utils.SharedPreference
import com.xuexiang.constant.TimeConstants
import com.xuexiang.xaop.annotation.SingleClick
import com.xuexiang.xhttp2.XHttp
import com.xuexiang.xhttp2.cache.model.CacheMode
import com.xuexiang.xui.widget.dialog.BaseDialog
import com.xuexiang.xutil.app.AppUtils
import com.zzhoujay.richtext.RichText
/**

View File

@ -1139,7 +1139,7 @@
<string name="delete_task_tips">Are you sure to delete this task?</string>
<string name="delete_task_toast">The task has deleted.</string>
<string name="add_condition">Add Condition</string>
<string name="add_condition_tips" tools:ignore="StringFormatCount">Example: Below 20% battery</string>
<string name="add_condition_tips" tools:ignore="StringFormatCount">Example: battery level below 20%</string>
<string name="add_condition_continue">Continue to add condition</string>
<string name="add_action">Add Action</string>
<string name="add_action_tips">Example: Disable all forwarding</string>