复用连接

This commit is contained in:
2026-10-28 13:51:20 +08:00
parent 0851713876
commit 5739f7f8e7
15 changed files with 581 additions and 376 deletions
@@ -3,7 +3,7 @@ package net.bluemangoo.indpjsk.data
import net.bluemangoo.indpjsk.upload.Uploader
object PredefinedProfiles {
private const val SUITE_PATH = "/api/suite/user/(\\d+)(\\?isLogin=true)?\$"
private const val SUITE_PATH = "/api/suite/user/(\\d+)(\\?isLogin=true)?$"
private const val MYSEKAI_PATH =
"/api/user/(\\d+)/mysekai\\?isForceAllReloadOnlyMysekai=True"
@@ -40,7 +40,10 @@ object PredefinedProfiles {
}
)
private val CN_HOSTS = listOf("mkcn-prod-public-60001-1.dailygn.com")
private val CN_HOSTS = listOf(
"mkcn-prod-public-60001-1.dailygn.com",
"mkcn-prod-public-60001-2.dailygn.com"
)
private val JP_HOSTS = listOf("production-game-api.sekai.colorfulpalette.org")
private val EN_HOSTS = listOf("n-production-game-api.sekai-en.com")
private val TW_HOSTS = listOf(
@@ -3,19 +3,19 @@ package net.bluemangoo.indpjsk.data
import android.content.Context
import androidx.core.content.edit
/** 全局配置持久化:上传码、上游代理、忽略的应用、选中的配置 */
object SettingsStore {
private const val PREFS = "settings"
private const val KEY_UPLOAD_CODE = "upload_code"
private const val KEY_USE_UPLOAD = "use_upload"
private const val KEY_PROXY = "upstream_proxy"
private const val KEY_USE_PROXY = "use_proxy"
private const val KEY_BYPASS = "bypass_packages"
private const val KEY_PROFILE = "selected_profile"
private fun prefs(context: Context) =
context.getSharedPreferences(PREFS, Context.MODE_PRIVATE)
// ---- 上传码 ----
fun loadUploadCode(context: Context): String =
prefs(context).getString(KEY_UPLOAD_CODE, "").orEmpty()
@@ -23,7 +23,15 @@ object SettingsStore {
prefs(context).edit { putString(KEY_UPLOAD_CODE, code) }
}
// ---- 上游代理(空 = 直连) ----
fun loadUseUpload(context: Context): Boolean {
return loadUploadCode(context).isNotBlank() && prefs(context).getBoolean(KEY_USE_UPLOAD, true)
}
fun saveUseUpload(context: Context, enabled: Boolean) {
prefs(context).edit { putBoolean(KEY_USE_UPLOAD, enabled) }
}
fun loadProxy(context: Context): String =
prefs(context).getString(KEY_PROXY, "").orEmpty()
@@ -31,7 +39,15 @@ object SettingsStore {
prefs(context).edit { putString(KEY_PROXY, proxy.trim()) }
}
// ---- 不走 VPN 的应用(包名) ----
fun loadUseProxy(context: Context): Boolean {
return loadProxy(context).isNotBlank() && prefs(context).getBoolean(KEY_USE_PROXY, true)
}
fun saveUseProxy(context: Context, enabled: Boolean) {
prefs(context).edit { putBoolean(KEY_USE_PROXY, enabled) }
}
fun loadBypassPackages(context: Context): Set<String> =
prefs(context).getStringSet(KEY_BYPASS, emptySet())?.toSet() ?: emptySet()
@@ -39,7 +55,7 @@ object SettingsStore {
prefs(context).edit { putStringSet(KEY_BYPASS, packages) }
}
// ---- 当前选中的配置 ----
fun loadSelectedProfileId(context: Context): String? =
prefs(context).getString(KEY_PROFILE, null)