fix(global): App 启动时恢复本地保存的环境地址

- SpTool 新增 baseUrl 属性,统一管理环境地址的持久化读写
- EnvSwitchDialog 改用 SpTool.baseUrl 保存,移除直接调用 SpTool.put
- BaseApp.onCreate 启动时读取 SpTool.baseUrl 并赋值给 GlobalData.appBaseUrl

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-05-13 18:13:09 +08:00
co-authored by Claude Sonnet 4.6
parent 535da33aab
commit 8398bd4fd3
3 changed files with 15 additions and 2 deletions
@@ -12,6 +12,7 @@ import com.shuwei.dish.match.objbox.ObjectBox
import com.shuwei.dish.match.scale.ScaleDeviceConfig import com.shuwei.dish.match.scale.ScaleDeviceConfig
import com.shuwei.dish.match.scale.ScaleServiceManager import com.shuwei.dish.match.scale.ScaleServiceManager
import com.shuwei.dish.match.utils.AppUtil import com.shuwei.dish.match.utils.AppUtil
import com.shuwei.dish.match.utils.SpTool
import com.shuwei.dish.match.utils.BootReceiver import com.shuwei.dish.match.utils.BootReceiver
import com.shuwei.dish.match.utils.CrashHandler import com.shuwei.dish.match.utils.CrashHandler
import com.shuwei.dish.match.utils.Weigher2 import com.shuwei.dish.match.utils.Weigher2
@@ -31,6 +32,11 @@ class BaseApp : Application() {
super.onCreate() super.onCreate()
// Set the application instance // Set the application instance
instance = this instance = this
// 读取本地保存的环境地址,覆盖默认值
val savedBaseUrl = SpTool.baseUrl
if (savedBaseUrl.isNotEmpty()) {
GlobalData.appBaseUrl = savedBaseUrl
}
// Initialize crash handler for error tracking // Initialize crash handler for error tracking
CrashHandler.init(this) CrashHandler.init(this)
// Get and store the unique device ID // Get and store the unique device ID
@@ -4,7 +4,6 @@ import android.content.Context
import android.view.LayoutInflater import android.view.LayoutInflater
import android.view.View import android.view.View
import com.shuwei.dish.match.base.GlobalData import com.shuwei.dish.match.base.GlobalData
import com.shuwei.dish.match.base.GlobalKey
import com.shuwei.dish.match.databinding.DialogEnvSwitchContentBinding import com.shuwei.dish.match.databinding.DialogEnvSwitchContentBinding
import com.shuwei.dish.match.utils.SpTool import com.shuwei.dish.match.utils.SpTool
import com.shuwei.dish.match.utils.ext.toast import com.shuwei.dish.match.utils.ext.toast
@@ -47,7 +46,7 @@ class EnvSwitchDialog(
else -> return@setPositiveButtonInterceptable false else -> return@setPositiveButtonInterceptable false
} }
GlobalData.appBaseUrl = newUrl GlobalData.appBaseUrl = newUrl
SpTool.put(GlobalKey.KEY_BASE_URL, newUrl) SpTool.baseUrl = newUrl
onEnvChanged(newUrl) onEnvChanged(newUrl)
true true
} }
@@ -1,6 +1,7 @@
package com.shuwei.dish.match.utils package com.shuwei.dish.match.utils
import com.shuwei.dish.match.base.BaseApp import com.shuwei.dish.match.base.BaseApp
import com.shuwei.dish.match.base.GlobalKey
import com.shuwei.dish.match.utils.ext.put import com.shuwei.dish.match.utils.ext.put
object SpTool { object SpTool {
@@ -46,4 +47,11 @@ object SpTool {
set(value) { set(value) {
put(CANTEEN_ID, value) put(CANTEEN_ID, value)
} }
/** 环境 BaseUrl,持久化存储,默认空字符串(空时使用 GlobalData 默认值) */
var baseUrl: String
get() = getString(GlobalKey.KEY_BASE_URL, "")
set(value) {
put(GlobalKey.KEY_BASE_URL, value)
}
} }