diff --git a/app/src/main/java/io/nekohasekai/sagernet/Constants.kt b/app/src/main/java/io/nekohasekai/sagernet/Constants.kt index 8b64284..4d29104 100644 --- a/app/src/main/java/io/nekohasekai/sagernet/Constants.kt +++ b/app/src/main/java/io/nekohasekai/sagernet/Constants.kt @@ -90,6 +90,7 @@ object Key { const val SERVER_ENCRYPTION = "serverEncryption" const val SERVER_ALPN = "serverALPN" const val SERVER_CERTIFICATES = "serverCertificates" + const val SERVER_MTU = "serverMTU" const val SERVER_CONFIG = "serverConfig" const val SERVER_CUSTOM = "serverCustom" diff --git a/app/src/main/java/io/nekohasekai/sagernet/bg/proto/BoxInstance.kt b/app/src/main/java/io/nekohasekai/sagernet/bg/proto/BoxInstance.kt index 0f20337..bca90d0 100644 --- a/app/src/main/java/io/nekohasekai/sagernet/bg/proto/BoxInstance.kt +++ b/app/src/main/java/io/nekohasekai/sagernet/bg/proto/BoxInstance.kt @@ -147,6 +147,7 @@ abstract class BoxInstance( val envMap = mutableMapOf() envMap["MIERU_CONFIG_JSON_FILE"] = configFile.absolutePath + envMap["MIERU_PROTECT_PATH"] = "protect_path" val commands = mutableListOf( initPlugin("mieru-plugin").path, "run", diff --git a/app/src/main/java/io/nekohasekai/sagernet/database/DataStore.kt b/app/src/main/java/io/nekohasekai/sagernet/database/DataStore.kt index e868b9b..20cf811 100644 --- a/app/src/main/java/io/nekohasekai/sagernet/database/DataStore.kt +++ b/app/src/main/java/io/nekohasekai/sagernet/database/DataStore.kt @@ -189,6 +189,7 @@ object DataStore : OnPreferenceDataStoreChangeListener { var serverEncryption by profileCacheStore.string(Key.SERVER_ENCRYPTION) var serverALPN by profileCacheStore.string(Key.SERVER_ALPN) var serverCertificates by profileCacheStore.string(Key.SERVER_CERTIFICATES) + var serverMTU by profileCacheStore.stringToInt(Key.SERVER_MTU) var serverHeaders by profileCacheStore.string(Key.SERVER_HEADERS) var serverAllowInsecure by profileCacheStore.boolean(Key.SERVER_ALLOW_INSECURE) diff --git a/app/src/main/java/io/nekohasekai/sagernet/fmt/mieru/MieruFmt.kt b/app/src/main/java/io/nekohasekai/sagernet/fmt/mieru/MieruFmt.kt index 4085216..476999a 100644 --- a/app/src/main/java/io/nekohasekai/sagernet/fmt/mieru/MieruFmt.kt +++ b/app/src/main/java/io/nekohasekai/sagernet/fmt/mieru/MieruFmt.kt @@ -47,6 +47,7 @@ fun MieruBean.buildMieruConfig(port: Int): String { put("password", password) }) put("servers", serverInfo) + put("mtu", mtu) }) }) }.toStringPretty() diff --git a/app/src/main/java/io/nekohasekai/sagernet/ui/profile/MieruSettingsActivity.kt b/app/src/main/java/io/nekohasekai/sagernet/ui/profile/MieruSettingsActivity.kt index f9195fb..41c12cf 100644 --- a/app/src/main/java/io/nekohasekai/sagernet/ui/profile/MieruSettingsActivity.kt +++ b/app/src/main/java/io/nekohasekai/sagernet/ui/profile/MieruSettingsActivity.kt @@ -41,7 +41,7 @@ class MieruSettingsActivity : ProfileSettingsActivity() { DataStore.serverProtocol = protocol DataStore.serverUsername = username DataStore.serverPassword = password - DataStore.mtu = mtu + DataStore.serverMTU = mtu } override fun MieruBean.serialize() { @@ -51,7 +51,7 @@ class MieruSettingsActivity : ProfileSettingsActivity() { protocol = DataStore.serverProtocol username = DataStore.serverUsername password = DataStore.serverPassword - mtu = DataStore.mtu + mtu = DataStore.serverMTU } override fun PreferenceFragmentCompat.createPreferences( @@ -66,7 +66,7 @@ class MieruSettingsActivity : ProfileSettingsActivity() { summaryProvider = PasswordSummaryProvider } val protocol = findPreference(Key.SERVER_PROTOCOL)!! - val mtu = findPreference(Key.MTU)!! + val mtu = findPreference(Key.SERVER_MTU)!! mtu.isVisible = protocol.value.equals("UDP") protocol.setOnPreferenceChangeListener { _, newValue -> mtu.isVisible = newValue.equals("UDP") diff --git a/app/src/main/res/xml/mieru_preferences.xml b/app/src/main/res/xml/mieru_preferences.xml index 19a3dab..aecc8f0 100644 --- a/app/src/main/res/xml/mieru_preferences.xml +++ b/app/src/main/res/xml/mieru_preferences.xml @@ -38,7 +38,7 @@ app:title="@string/password" />