Накопилось много правок, собрал всё в одну версию.
Главное
Стран в списке стало больше — Германия, Нидерланды, Великобритания, Франция, Швеция, Литва, Турция, США и локации для обхода мобильных блокировок.
Добавил поддержку XHTTP. Ключи с этим транспортом теперь работают, на карточке сервера видно, какой он использует.
Пинг наконец показывает правду. Раньше числа были завышены в разы, сейчас до Европы выходит 40-90 мс. Проверять можно не отключаясь от VPN, кнопка «Проверить» на экране «Серверы».
Подключение стало быстрее. Раньше, если сервер не отвечал, приложение гасило ядро и поднимало заново ради следующего — десять секунд на попытку. Теперь просто переключает сервер внутри уже поднятого соединения.
Если сервер отвалился посреди работы, приложение само уйдёт на другой, без разрыва туннеля.
Что чинил
Главная проблема была в DNS. Всё держалось на одном запросе к 1.1.1.1, и на сетях, где он не проходит, не работало вообще ничего: серверы подключались, но трафик не шёл, а проверка связи объявляла мёртвыми все локации подряд. Теперь запрос идёт и к 1.1.1.1, и к системному резолверу, что ответит первым — то и берём.
Остальное:
- часть локаций писала «не работает», хотя ядро до них просто не успевало дойти
- счётчик отдачи накручивал десятки мегабайт из воздуха
- после закрытия приложения пинг больше не обновлялся
- при отказе Android поднять VPN приложение винило серверы, хотя дело обычно в другом включённом VPN — теперь пишет прямо
- дубли стран в списке
- зависание на «Подключение…»
Установка
Качайте apk ниже. Ключ менять не надо, всё подтянется само.