diff --git a/V2rayNG/app/src/main/kotlin/com/v2ray/ang/ui/MainActivity.kt b/V2rayNG/app/src/main/kotlin/com/v2ray/ang/ui/MainActivity.kt index 51b3fe69..23fa9212 100644 --- a/V2rayNG/app/src/main/kotlin/com/v2ray/ang/ui/MainActivity.kt +++ b/V2rayNG/app/src/main/kotlin/com/v2ray/ang/ui/MainActivity.kt @@ -589,7 +589,7 @@ class MainActivity : BaseActivity(), NavigationView.OnNavigationItemSelectedList binding.pbWaiting.show() lifecycleScope.launch(Dispatchers.IO) { - val count = AngConfigManager.updateConfigViaSubAll() + val count = mainViewModel.updateConfigViaSubAll() delay(500L) launch(Dispatchers.Main) { if (count > 0) { diff --git a/V2rayNG/app/src/main/kotlin/com/v2ray/ang/util/AngConfigManager.kt b/V2rayNG/app/src/main/kotlin/com/v2ray/ang/util/AngConfigManager.kt index 0b60190a..60317225 100644 --- a/V2rayNG/app/src/main/kotlin/com/v2ray/ang/util/AngConfigManager.kt +++ b/V2rayNG/app/src/main/kotlin/com/v2ray/ang/util/AngConfigManager.kt @@ -535,7 +535,7 @@ object AngConfigManager { return count } - private fun updateConfigViaSub(it: Pair): Int { + fun updateConfigViaSub(it: Pair): Int { try { if (TextUtils.isEmpty(it.first) || TextUtils.isEmpty(it.second.remarks) diff --git a/V2rayNG/app/src/main/kotlin/com/v2ray/ang/viewmodel/MainViewModel.kt b/V2rayNG/app/src/main/kotlin/com/v2ray/ang/viewmodel/MainViewModel.kt index 517e2d8a..98700451 100644 --- a/V2rayNG/app/src/main/kotlin/com/v2ray/ang/viewmodel/MainViewModel.kt +++ b/V2rayNG/app/src/main/kotlin/com/v2ray/ang/viewmodel/MainViewModel.kt @@ -20,12 +20,15 @@ import com.v2ray.ang.dto.EConfigType import com.v2ray.ang.dto.ProfileItem import com.v2ray.ang.dto.ServerConfig import com.v2ray.ang.dto.ServersCache +import com.v2ray.ang.dto.SubscriptionItem import com.v2ray.ang.dto.V2rayConfig import com.v2ray.ang.extension.toast import com.v2ray.ang.util.AngConfigManager +import com.v2ray.ang.util.AngConfigManager.updateConfigViaSub import com.v2ray.ang.util.MessageUtil import com.v2ray.ang.util.MmkvManager import com.v2ray.ang.util.MmkvManager.KEY_ANG_CONFIGS +import com.v2ray.ang.util.MmkvManager.subStorage import com.v2ray.ang.util.SpeedtestUtil import com.v2ray.ang.util.Utils import com.v2ray.ang.util.V2rayConfigUtil @@ -152,6 +155,18 @@ class MainViewModel(application: Application) : AndroidViewModel(application) { } } + fun updateConfigViaSubAll(): Int { + if (subscriptionId.isNullOrEmpty()) { + return AngConfigManager.updateConfigViaSubAll() + } else { + val json = subStorage?.decodeString(subscriptionId) + if (!json.isNullOrBlank()) { + return updateConfigViaSub(Pair(subscriptionId, Gson().fromJson(json, SubscriptionItem::class.java))) + } else { + return 0 + } + } + } fun exportAllServer(): Int { val serverListCopy =