fix crash on ipv6 enable & reduce provider call
This commit is contained in:
3 files changed
+15
-5
No files matched your search
@@ -2,6 +2,7 @@ package com.github.kr328.clash.service
|
||||
|
||||
import android.content.Context
|
||||
import android.content.SharedPreferences
|
||||
import rikka.preference.MultiProcessPreference
|
||||
import rikka.preference.PreferenceProvider
|
||||
|
||||
class ServiceSettingsProvider : PreferenceProvider() {
|
||||
@@ -11,4 +12,15 @@ class ServiceSettingsProvider : PreferenceProvider() {
|
||||
Context.MODE_PRIVATE
|
||||
)
|
||||
}
|
||||
|
||||
companion object {
|
||||
fun createSharedPreferencesFromContext(context: Context): SharedPreferences {
|
||||
return when ( context ) {
|
||||
is BaseService, is TunService ->
|
||||
context.getSharedPreferences(Constants.SERVICE_SETTING_FILE_NAME, Context.MODE_PRIVATE)
|
||||
else ->
|
||||
MultiProcessPreference(context, context.packageName + Constants.SETTING_PROVIDER_SUFFIX)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -190,7 +190,7 @@ class TunService : VpnService(), CoroutineScope by MainScope() {
|
||||
addAddress(PRIVATE_VLAN4_CLIENT, PRIVATE_VLAN4_SUBNET)
|
||||
|
||||
if (settings.get(ServiceSettings.IPV6_SUPPORT))
|
||||
addRoute(PRIVATE_VLAN6_CLIENT, 126)
|
||||
addAddress(PRIVATE_VLAN6_CLIENT, 126)
|
||||
|
||||
return this
|
||||
}
|
||||
|
||||
@@ -3,15 +3,13 @@ package com.github.kr328.clash.service.settings
|
||||
import android.content.Context
|
||||
import android.content.SharedPreferences
|
||||
import com.github.kr328.clash.service.Constants
|
||||
import com.github.kr328.clash.service.ServiceSettingsProvider
|
||||
import rikka.preference.MultiProcessPreference
|
||||
|
||||
class ServiceSettings(preference: SharedPreferences) :
|
||||
BaseSettings(preference) {
|
||||
constructor(context: Context) : this(
|
||||
MultiProcessPreference(
|
||||
context,
|
||||
context.packageName + Constants.SETTING_PROVIDER_SUFFIX
|
||||
)
|
||||
ServiceSettingsProvider.createSharedPreferencesFromContext(context)
|
||||
)
|
||||
|
||||
companion object {
|
||||
|
||||
Reference in new issue
Block a user