新增:自定义模板可用标签 {{定位信息}}(英文系统:{{LOCATION}}#341 #343

This commit is contained in:
pppscn 2023-11-22 21:16:38 +08:00
parent ac74a183cd
commit e9bfb9eca4
2 changed files with 27 additions and 1 deletions

View File

@ -2,6 +2,7 @@ package com.idormy.sms.forwarder.fragment
import android.annotation.SuppressLint import android.annotation.SuppressLint
import android.content.Intent import android.content.Intent
import android.os.Build
import android.os.Environment import android.os.Environment
import android.os.Handler import android.os.Handler
import android.os.Looper import android.os.Looper
@ -20,6 +21,7 @@ import com.idormy.sms.forwarder.App
import com.idormy.sms.forwarder.R import com.idormy.sms.forwarder.R
import com.idormy.sms.forwarder.core.BaseFragment import com.idormy.sms.forwarder.core.BaseFragment
import com.idormy.sms.forwarder.databinding.FragmentServerBinding import com.idormy.sms.forwarder.databinding.FragmentServerBinding
import com.idormy.sms.forwarder.service.ForegroundService
import com.idormy.sms.forwarder.service.HttpService import com.idormy.sms.forwarder.service.HttpService
import com.idormy.sms.forwarder.utils.* import com.idormy.sms.forwarder.utils.*
import com.xuexiang.xaop.annotation.SingleClick import com.xuexiang.xaop.annotation.SingleClick
@ -88,15 +90,18 @@ class ServerFragment : BaseFragment<FragmentServerBinding?>(), View.OnClickListe
binding!!.layoutSignKey.visibility = View.VISIBLE binding!!.layoutSignKey.visibility = View.VISIBLE
binding!!.layoutTimeTolerance.visibility = View.VISIBLE binding!!.layoutTimeTolerance.visibility = View.VISIBLE
} }
2 -> { 2 -> {
safetyMeasuresId = R.id.rb_safety_measures_rsa safetyMeasuresId = R.id.rb_safety_measures_rsa
binding!!.layoutPrivateKey.visibility = View.VISIBLE binding!!.layoutPrivateKey.visibility = View.VISIBLE
binding!!.layoutPublicKey.visibility = View.VISIBLE binding!!.layoutPublicKey.visibility = View.VISIBLE
} }
3 -> { 3 -> {
safetyMeasuresId = R.id.rb_safety_measures_sm4 safetyMeasuresId = R.id.rb_safety_measures_sm4
binding!!.layoutSm4Key.visibility = View.VISIBLE binding!!.layoutSm4Key.visibility = View.VISIBLE
} }
else -> {} else -> {}
} }
binding!!.rgSafetyMeasures.check(safetyMeasuresId) binding!!.rgSafetyMeasures.check(safetyMeasuresId)
@ -113,15 +118,18 @@ class ServerFragment : BaseFragment<FragmentServerBinding?>(), View.OnClickListe
binding!!.layoutSignKey.visibility = View.VISIBLE binding!!.layoutSignKey.visibility = View.VISIBLE
binding!!.layoutTimeTolerance.visibility = View.VISIBLE binding!!.layoutTimeTolerance.visibility = View.VISIBLE
} }
R.id.rb_safety_measures_rsa -> { R.id.rb_safety_measures_rsa -> {
safetyMeasures = 2 safetyMeasures = 2
binding!!.layoutPrivateKey.visibility = View.VISIBLE binding!!.layoutPrivateKey.visibility = View.VISIBLE
binding!!.layoutPublicKey.visibility = View.VISIBLE binding!!.layoutPublicKey.visibility = View.VISIBLE
} }
R.id.rb_safety_measures_sm4 -> { R.id.rb_safety_measures_sm4 -> {
safetyMeasures = 3 safetyMeasures = 3
binding!!.layoutSm4Key.visibility = View.VISIBLE binding!!.layoutSm4Key.visibility = View.VISIBLE
} }
else -> {} else -> {}
} }
HttpServerUtils.safetyMeasures = safetyMeasures HttpServerUtils.safetyMeasures = safetyMeasures
@ -242,6 +250,14 @@ class ServerFragment : BaseFragment<FragmentServerBinding?>(), View.OnClickListe
} }
refreshButtonText() refreshButtonText()
} }
//重启前台服务,启动/停止定位服务
val serviceIntent = Intent(requireContext(), ForegroundService::class.java)
serviceIntent.action = "START"
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
requireContext().startForegroundService(serviceIntent)
} else {
requireContext().startService(serviceIntent)
}
} }
} }
@ -265,6 +281,7 @@ class ServerFragment : BaseFragment<FragmentServerBinding?>(), View.OnClickListe
} }
refreshButtonText() refreshButtonText()
} }
R.id.btn_sm4_key -> { R.id.btn_sm4_key -> {
val key = ConvertTools.bytes2HexString(SM4Crypt.createSM4Key()) val key = ConvertTools.bytes2HexString(SM4Crypt.createSM4Key())
println("SM4密钥$key") println("SM4密钥$key")
@ -272,6 +289,7 @@ class ServerFragment : BaseFragment<FragmentServerBinding?>(), View.OnClickListe
binding!!.etSm4Key.setText(key) binding!!.etSm4Key.setText(key)
XToastUtils.info(getString(R.string.sign_key_tips)) XToastUtils.info(getString(R.string.sign_key_tips))
} }
R.id.btn_generate_key -> { R.id.btn_generate_key -> {
val generator = KeyPairGenerator.getInstance("RSA") //密钥生成器 val generator = KeyPairGenerator.getInstance("RSA") //密钥生成器
generator.initialize(2048) generator.initialize(2048)
@ -291,16 +309,19 @@ class ServerFragment : BaseFragment<FragmentServerBinding?>(), View.OnClickListe
ClipboardUtils.copyText(publicKeyEncoded) ClipboardUtils.copyText(publicKeyEncoded)
XToastUtils.info(getString(R.string.rsa_key_tips)) XToastUtils.info(getString(R.string.rsa_key_tips))
} }
R.id.btn_copy_public_key -> { R.id.btn_copy_public_key -> {
ClipboardUtils.copyText(binding!!.etPublicKey.text) ClipboardUtils.copyText(binding!!.etPublicKey.text)
XToastUtils.info(getString(R.string.rsa_key_tips2)) XToastUtils.info(getString(R.string.rsa_key_tips2))
} }
R.id.btn_sign_key -> { R.id.btn_sign_key -> {
val sign = RandomUtils.getRandomNumbersAndLetters(16) val sign = RandomUtils.getRandomNumbersAndLetters(16)
ClipboardUtils.copyText(sign) ClipboardUtils.copyText(sign)
binding!!.etSignKey.setText(sign) binding!!.etSignKey.setText(sign)
XToastUtils.info(getString(R.string.sign_key_tips)) XToastUtils.info(getString(R.string.sign_key_tips))
} }
R.id.tv_server_tips, R.id.iv_copy -> { R.id.tv_server_tips, R.id.iv_copy -> {
var hostAddress: String = if (inetAddress != null) "${inetAddress?.hostAddress}" else "127.0.0.1" var hostAddress: String = if (inetAddress != null) "${inetAddress?.hostAddress}" else "127.0.0.1"
hostAddress = if (hostAddress.indexOf(':', 0, false) > 0) "[${hostAddress}]" else hostAddress hostAddress = if (hostAddress.indexOf(':', 0, false) > 0) "[${hostAddress}]" else hostAddress
@ -308,6 +329,7 @@ class ServerFragment : BaseFragment<FragmentServerBinding?>(), View.OnClickListe
ClipboardUtils.copyText(url) ClipboardUtils.copyText(url)
XToastUtils.info(String.format(getString(R.string.copied_to_clipboard), url)) XToastUtils.info(String.format(getString(R.string.copied_to_clipboard), url))
} }
R.id.btn_path_picker -> { R.id.btn_path_picker -> {
// 申请储存权限 // 申请储存权限
XXPermissions.with(this) XXPermissions.with(this)
@ -352,6 +374,7 @@ class ServerFragment : BaseFragment<FragmentServerBinding?>(), View.OnClickListe
} }
}) })
} }
else -> {} else -> {}
} }
} }

View File

@ -226,6 +226,9 @@ class ForegroundService : Service() {
locationClient.stopLocation() locationClient.stopLocation()
} }
locationClient.startLocation() locationClient.startLocation()
} else if ((!SettingUtils.enableLocationTag && !HttpServerUtils.enableApiLocation) && locationClient.isStarted()) {
Log.d(TAG, "stopLocation")
locationClient.stopLocation()
} }
isRunning = true isRunning = true
@ -239,7 +242,7 @@ class ForegroundService : Service() {
private fun stopForegroundService() { private fun stopForegroundService() {
try { try {
//如果已经开始定位,则先停止定位 //如果已经开始定位,则先停止定位
if (HttpServerUtils.enableApiLocation && locationClient.isStarted()) { if ((SettingUtils.enableLocationTag || HttpServerUtils.enableApiLocation) && locationClient.isStarted()) {
locationClient.stopLocation() locationClient.stopLocation()
} }