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 332c2bc8..c979f26b 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 @@ -756,6 +756,7 @@ object AngConfigManager { var count = 0 servers.lines() + .reversed() .forEach { val resId = importConfig(it, subid, removedSelectedServer) if (resId == 0) { diff --git a/V2rayNG/app/src/main/kotlin/com/v2ray/ang/util/MmkvManager.kt b/V2rayNG/app/src/main/kotlin/com/v2ray/ang/util/MmkvManager.kt index 533527e7..68bd9f42 100644 --- a/V2rayNG/app/src/main/kotlin/com/v2ray/ang/util/MmkvManager.kt +++ b/V2rayNG/app/src/main/kotlin/com/v2ray/ang/util/MmkvManager.kt @@ -46,7 +46,7 @@ object MmkvManager { serverStorage?.encode(key, Gson().toJson(config)) val serverList = decodeServerList() if (!serverList.contains(key)) { - serverList.add(key) + serverList.add(0, key) mainStorage?.encode(KEY_ANG_CONFIGS, Gson().toJson(serverList)) if (mainStorage?.decodeString(KEY_SELECTED_SERVER).isNullOrBlank()) { mainStorage?.encode(KEY_SELECTED_SERVER, key) 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 6c6ddc62..d1cf5db2 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 @@ -74,8 +74,8 @@ class MainViewModel(application: Application) : AndroidViewModel(application) { config.fullConfig = Gson().fromJson(server, V2rayConfig::class.java) val key = MmkvManager.encodeServerConfig("", config) serverRawStorage?.encode(key, server) - serverList.add(key) - serversCache.add(ServersCache(key,config)) + serverList.add(0, key) + serversCache.add(0, ServersCache(key,config)) } fun swapServer(fromPosition: Int, toPosition: Int) {