Skip to content

Commit 585e0a4

Browse files
Fix: Connect directly to server after scanning QR code instead of SmartConnect
1 parent c79fc8a commit 585e0a4

1 file changed

Lines changed: 15 additions & 2 deletions

File tree

V2rayNG/app/src/main/java/com/kiktor/v2whitelist/ui/MainActivity.kt

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -69,17 +69,30 @@ class MainActivity : HelperBaseActivity(), NavigationView.OnNavigationItemSelect
6969
restartV2Ray()
7070
}
7171
}
72-
// Лаунчер для сканирования QR-кода (добавление сервера)
7372
private val scannerLauncher = registerForActivityResult(ActivityResultContracts.StartActivityForResult()) { result ->
7473
if (result.resultCode == RESULT_OK) {
7574
val scanResult = result.data?.getStringExtra("SCAN_RESULT") ?: return@registerForActivityResult
75+
val oldServers = MmkvManager.decodeServerList()
7676
val (count, _) = com.kiktor.v2whitelist.handler.AngConfigManager.importBatchConfig(scanResult, "", true)
7777
if (count > 0) {
7878
toast(getString(R.string.title_import_config_count, count))
7979
mainViewModel.reloadServerList()
8080

8181
// Авто-подключение после сканирования
82-
handleConnectAction()
82+
val newServers = MmkvManager.decodeServerList()
83+
val addedGuid = newServers.firstOrNull { !oldServers.contains(it) }
84+
85+
if (addedGuid != null) {
86+
MmkvManager.setSelectServer(addedGuid)
87+
MmkvManager.saveLastConnectedServer(addedGuid)
88+
if (mainViewModel.isRunning.value == true) {
89+
com.kiktor.v2whitelist.util.MessageUtil.sendMsg2Service(this, AppConfig.MSG_STATE_SWITCH_SERVER, "")
90+
} else {
91+
startV2Ray()
92+
}
93+
} else {
94+
handleConnectAction()
95+
}
8396

8497
// Умный догруз подписок: если серверов почти нет, обновляем их через новый туннель
8598
val totalServers = MmkvManager.decodeServerList().size

0 commit comments

Comments
 (0)