mirror of
https://github.com/pppscn/SmsForwarder
synced 2025-08-02 17:07:41 +08:00
新增:主动控制·客户端增加服务地址历史记录(测试接口通过后自动加入)
This commit is contained in:
parent
04207e0911
commit
b74beba37c
@ -32,8 +32,11 @@ import com.xuexiang.xui.utils.DensityUtils
|
||||
import com.xuexiang.xui.utils.ResUtils
|
||||
import com.xuexiang.xui.utils.WidgetUtils
|
||||
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.XUtil
|
||||
|
||||
|
||||
@Suppress("PrivatePropertyName", "PropertyName")
|
||||
@Page(name = "主动控制·客户端")
|
||||
class ClientFragment : BaseFragment<FragmentClientBinding?>(),
|
||||
@ -43,6 +46,7 @@ class ClientFragment : BaseFragment<FragmentClientBinding?>(),
|
||||
val TAG: String = ClientFragment::class.java.simpleName
|
||||
private var appContext: App? = null
|
||||
private var serverConfig: ConfigData? = null
|
||||
private var serverHistory: MutableMap<String, String> = mutableMapOf()
|
||||
private var mCountDownHelper: CountDownButtonHelper? = null
|
||||
|
||||
override fun initViews() {
|
||||
@ -65,6 +69,12 @@ class ClientFragment : BaseFragment<FragmentClientBinding?>(),
|
||||
widgetItemAdapter.setOnItemClickListener(this)
|
||||
binding!!.recyclerView.adapter = widgetItemAdapter
|
||||
|
||||
//取出历史记录
|
||||
val history = HttpServerUtils.serverHistory
|
||||
if (!TextUtils.isEmpty(history)) {
|
||||
serverHistory = Gson().fromJson(history, object : TypeToken<MutableMap<String, String>>() {}.type)
|
||||
}
|
||||
|
||||
if (CommonUtils.checkUrl(HttpServerUtils.serverAddress)) queryConfig(false)
|
||||
}
|
||||
|
||||
@ -113,12 +123,39 @@ class ClientFragment : BaseFragment<FragmentClientBinding?>(),
|
||||
}
|
||||
})
|
||||
|
||||
binding!!.btnServerHistory.setOnClickListener(this)
|
||||
binding!!.btnServerTest.setOnClickListener(this)
|
||||
}
|
||||
|
||||
@SingleClick
|
||||
override fun onClick(v: View) {
|
||||
when (v.id) {
|
||||
R.id.btn_server_history -> {
|
||||
if (serverHistory.isEmpty()) {
|
||||
XToastUtils.warning(getString(R.string.no_server_history))
|
||||
return
|
||||
}
|
||||
Log.d(TAG, "serverHistory = $serverHistory")
|
||||
|
||||
MaterialDialog.Builder(context!!)
|
||||
.title(R.string.server_history)
|
||||
.items(serverHistory.keys)
|
||||
.itemsCallbackSingleChoice(0) { _: MaterialDialog?, _: View?, _: Int, text: CharSequence ->
|
||||
//XToastUtils.info("$which: $text")
|
||||
binding!!.etServerAddress.setText(text)
|
||||
binding!!.etSignKey.setText(serverHistory[text])
|
||||
true // allow selection
|
||||
}
|
||||
.positiveText(R.string.select)
|
||||
.negativeText(R.string.cancel)
|
||||
.neutralText(R.string.clear_history)
|
||||
.neutralColor(ResUtils.getColors(R.color.red))
|
||||
.onNeutral { _: MaterialDialog?, _: DialogAction? ->
|
||||
serverHistory.clear()
|
||||
HttpServerUtils.serverHistory = ""
|
||||
}
|
||||
.show()
|
||||
}
|
||||
R.id.btn_server_test -> {
|
||||
if (!CommonUtils.checkUrl(HttpServerUtils.serverAddress)) {
|
||||
XToastUtils.error(getString(R.string.invalid_service_address))
|
||||
@ -202,6 +239,9 @@ class ClientFragment : BaseFragment<FragmentClientBinding?>(),
|
||||
if (resp.code == 200) {
|
||||
serverConfig = resp.data!!
|
||||
if (needToast) XToastUtils.success(ResUtils.getString(R.string.request_succeeded))
|
||||
//添加到历史记录
|
||||
serverHistory[HttpServerUtils.serverAddress.toString()] = HttpServerUtils.clientSignKey ?: ""
|
||||
HttpServerUtils.serverHistory = Gson().toJson(serverHistory)
|
||||
} else {
|
||||
if (needToast) XToastUtils.error(ResUtils.getString(R.string.request_failed) + resp.msg)
|
||||
}
|
||||
|
@ -237,6 +237,7 @@ const val SP_ENABLE_API_CALL_QUERY = "enable_api_call_query"
|
||||
const val SP_ENABLE_API_CONTACT_QUERY = "enable_api_contact_query"
|
||||
const val SP_ENABLE_API_BATTERY_QUERY = "enable_api_battery_query"
|
||||
const val SP_SERVER_ADDRESS = "server_address"
|
||||
const val SP_SERVER_HISTORY = "server_history"
|
||||
const val SP_CLIENT_SIGN_KEY = "client_sign_key"
|
||||
var CLIENT_FRAGMENT_LIST = listOf(
|
||||
PageInfo(getString(R.string.api_clone), "com.idormy.sms.forwarder.fragment.client.CloneFragment", "{\"\":\"\"}", CoreAnim.slide, R.drawable.icon_api_clone),
|
||||
|
@ -47,6 +47,14 @@ class HttpServerUtils private constructor() {
|
||||
MMKVUtils.put(SP_SERVER_ADDRESS, clientSignKey)
|
||||
}
|
||||
|
||||
//服务地址历史记录
|
||||
@JvmStatic
|
||||
var serverHistory: String?
|
||||
get() = MMKVUtils.getString(SP_SERVER_HISTORY, "")
|
||||
set(serverHistory) {
|
||||
MMKVUtils.put(SP_SERVER_HISTORY, serverHistory)
|
||||
}
|
||||
|
||||
//客户端签名密钥
|
||||
@JvmStatic
|
||||
var clientSignKey: String?
|
||||
|
@ -60,6 +60,17 @@
|
||||
android:layout_weight="1"
|
||||
android:hint="@string/service_address_hint" />
|
||||
|
||||
<com.xuexiang.xui.widget.button.ButtonView
|
||||
android:id="@+id/btn_server_history"
|
||||
style="@style/ButtonView.Gray"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="5dp"
|
||||
android:gravity="center"
|
||||
android:minWidth="70dp"
|
||||
android:padding="5dp"
|
||||
android:text="@string/server_history" />
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
<LinearLayout
|
||||
|
@ -169,6 +169,7 @@
|
||||
<string name="about">About</string>
|
||||
<string name="help">Help</string>
|
||||
<string name="clear_logs">Clear logs</string>
|
||||
<string name="clear_history">Clear History</string>
|
||||
<string name="app_rule">App rule</string>
|
||||
<string name="call_rule">Call rule</string>
|
||||
<string name="sms_rule">Sms rule</string>
|
||||
@ -807,6 +808,7 @@
|
||||
<string name="battery_health">Health: %s</string>
|
||||
<string name="battery_plugged">Plugged: %s</string>
|
||||
|
||||
<string name="server_history">Server History</string>
|
||||
<string name="server_test">Server Test</string>
|
||||
<string name="invalid_service_address">Invalid service address\nFormat: http://127.0.0.1:5000 or https://smsf.demo.com</string>
|
||||
<string name="click_test_button_first">Click the test button first, to get the list of features enabled by the server</string>
|
||||
@ -864,4 +866,5 @@
|
||||
<string name="load_app_list">Get installed app info async at startup</string>
|
||||
<string name="load_app_list_tips">Used to speed up entering the application list/editing forwarding rules drop-down selection/replacement {{APP_NAME}}</string>
|
||||
<string name="load_app_list_toast">A type must be selected when enabling asynchronous loading of the list of installed apps</string>
|
||||
<string name="no_server_history">There is no history record, it will be added automatically after the interface test is passed</string>
|
||||
</resources>
|
||||
|
@ -170,6 +170,7 @@
|
||||
<string name="about">关于软件</string>
|
||||
<string name="help">使用帮助</string>
|
||||
<string name="clear_logs">清空日志</string>
|
||||
<string name="clear_history">清空记录</string>
|
||||
<string name="app_rule">通知转发规则</string>
|
||||
<string name="call_rule">通话转发规则</string>
|
||||
<string name="sms_rule">短信转发规则</string>
|
||||
@ -808,6 +809,7 @@
|
||||
<string name="battery_health">健康度:%s</string>
|
||||
<string name="battery_plugged">充电器:%s</string>
|
||||
|
||||
<string name="server_history">历史记录</string>
|
||||
<string name="server_test">测试接口</string>
|
||||
<string name="invalid_service_address">无效的服务地址!\n格式:http://127.0.0.1:5000 或 https://smsf.demo.com</string>
|
||||
<string name="click_test_button_first">请先点击【测试接口】按钮,获取服务端已启用的功能列表</string>
|
||||
@ -865,4 +867,5 @@
|
||||
<string name="load_app_list">启动时异步获取已安装App列表</string>
|
||||
<string name="load_app_list_tips">用于加速进入应用列表/编辑转发规则下拉选择/替换{{APP名称}}</string>
|
||||
<string name="load_app_list_toast">开启异步获取已安装App列表时必选一个类型</string>
|
||||
<string name="no_server_history">暂无历史记录,接口测试通过后自动加入</string>
|
||||
</resources>
|
||||
|
Loading…
x
Reference in New Issue
Block a user