diff --git a/android/app/build.gradle.kts b/android/app/build.gradle.kts index 1ac7087..89dbd85 100644 --- a/android/app/build.gradle.kts +++ b/android/app/build.gradle.kts @@ -13,8 +13,8 @@ android { minSdk = 26 targetSdk = 35 // versionCode = major*1_000_000 + minor*10_000 + patch*100 + build - versionCode = 4_020_001 - versionName = "4.2.0+1" + versionCode = 4_021_001 + versionName = "4.2.1+1" vectorDrawables.useSupportLibrary = true ndk { abiFilters += listOf("arm64-v8a", "armeabi-v7a", "x86_64") diff --git a/dist/navis-release/update.json b/dist/navis-release/update.json index 0f07365..2569d01 100644 --- a/dist/navis-release/update.json +++ b/dist/navis-release/update.json @@ -1,48 +1,48 @@ { - "version": "4.2.0", - "notes": "4.2.0: обновлённые формулировки, Kill Switch, статистика, кнопка подключения", - "platform": "windows-amd64", - "os": "windows", - "arch": "amd64", - "url": "https://git.de4ima.uk/Evilfox/navi/raw/branch/Windows/dist/navis-release/windows/EvilFox.exe", - "sha256": "64da79ddf7cd5694bf93c4c110bf0e1281a20651e1e868a960562d5c1a15bd0d", - "mandatory": false, - "platforms": { - "windows-amd64": { - "url": "https://git.de4ima.uk/Evilfox/navi/raw/branch/Windows/dist/navis-release/windows/EvilFox.exe", - "sha256": "64da79ddf7cd5694bf93c4c110bf0e1281a20651e1e868a960562d5c1a15bd0d", - "os": "windows", - "arch": "amd64" - }, - "darwin-arm64": { - "url": "https://git.de4ima.uk/Evilfox/navi/raw/branch/Windows/dist/navis-release/macos/arm64/Navis", - "sha256": "01a40b1cce4e2fb3a38eb80f0815c295a00af11e4288f3b9e5c0b58ae336f28d", - "os": "darwin", - "arch": "arm64", - "dmg_url": "https://git.de4ima.uk/Evilfox/navi/raw/branch/Windows/dist/navis-release/macos/arm64/Navis.dmg", - "zip_url": "https://git.de4ima.uk/Evilfox/navi/raw/branch/Windows/dist/navis-release/macos/arm64/Navis.app.zip" - }, - "darwin-amd64": { - "url": "https://git.de4ima.uk/Evilfox/navi/raw/branch/Windows/dist/navis-release/macos/amd64/Navis", - "sha256": "19a066cfc7f7c3a291a220482b28e66a459d091c19c5351818c401b982bc65b3", - "os": "darwin", - "arch": "amd64", - "dmg_url": "https://git.de4ima.uk/Evilfox/navi/raw/branch/Windows/dist/navis-release/macos/amd64/Navis.dmg", - "zip_url": "https://git.de4ima.uk/Evilfox/navi/raw/branch/Windows/dist/navis-release/macos/amd64/Navis.app.zip" - }, - "darwin-universal": { - "url": "https://git.de4ima.uk/Evilfox/navi/raw/branch/Windows/dist/navis-release/macos/universal/Navis", - "sha256": "d53dba8256fd6f7b62d1ce9bbad741af087ae44fec942bf2782b9c8f4e36cef2", - "os": "darwin", - "arch": "universal", - "dmg_url": "https://git.de4ima.uk/Evilfox/navi/raw/branch/Windows/dist/navis-release/macos/universal/Navis.dmg", - "zip_url": "https://git.de4ima.uk/Evilfox/navi/raw/branch/Windows/dist/navis-release/macos/universal/Navis.app.zip" - }, - "android": { - "url": "https://git.de4ima.uk/Evilfox/navi/raw/branch/Windows/dist/navis-release/android/Navis.apk", - "sha256": "4416770bebe576eba42811990c4e4424f6722dea3a8513e6164dd34fc975b3cf", - "os": "android", - "arch": "universal" - } - } + "version": "4.2.1", + "notes": "4.2.1: исправлены опечатки Румынии (флаг RO), чистая шапка списка серверов, полезные ссылки вместо рекомендаций, убраны мусорные подписи на Защите, большая кнопка ПОДКЛЮЧИТЬСЯ всегда видна, свойства сервера заполнены, без T/V бейджей в списке", + "platform": "windows-amd64", + "os": "windows", + "arch": "amd64", + "url": "https://git.de4ima.uk/Evilfox/navi/raw/branch/Windows/dist/navis-release/windows/EvilFox.exe", + "sha256": "c3885d6d0c5b6e542fe1a172650c2f9480afde2b9016ceb1a5699f851761b837", + "mandatory": false, + "platforms": { + "windows-amd64": { + "url": "https://git.de4ima.uk/Evilfox/navi/raw/branch/Windows/dist/navis-release/windows/EvilFox.exe", + "sha256": "c3885d6d0c5b6e542fe1a172650c2f9480afde2b9016ceb1a5699f851761b837", + "os": "windows", + "arch": "amd64" + }, + "darwin-arm64": { + "url": "https://git.de4ima.uk/Evilfox/navi/raw/branch/Windows/dist/navis-release/macos/arm64/Navis", + "sha256": "01a40b1cce4e2fb3a38eb80f0815c295a00af11e4288f3b9e5c0b58ae336f28d", + "os": "darwin", + "arch": "arm64", + "dmg_url": "https://git.de4ima.uk/Evilfox/navi/raw/branch/Windows/dist/navis-release/macos/arm64/Navis.dmg", + "zip_url": "https://git.de4ima.uk/Evilfox/navi/raw/branch/Windows/dist/navis-release/macos/arm64/Navis.app.zip" + }, + "darwin-amd64": { + "url": "https://git.de4ima.uk/Evilfox/navi/raw/branch/Windows/dist/navis-release/macos/amd64/Navis", + "sha256": "19a066cfc7f7c3a291a220482b28e66a459d091c19c5351818c401b982bc65b3", + "os": "darwin", + "arch": "amd64", + "dmg_url": "https://git.de4ima.uk/Evilfox/navi/raw/branch/Windows/dist/navis-release/macos/amd64/Navis.dmg", + "zip_url": "https://git.de4ima.uk/Evilfox/navi/raw/branch/Windows/dist/navis-release/macos/amd64/Navis.app.zip" + }, + "darwin-universal": { + "url": "https://git.de4ima.uk/Evilfox/navi/raw/branch/Windows/dist/navis-release/macos/universal/Navis", + "sha256": "d53dba8256fd6f7b62d1ce9bbad741af087ae44fec942bf2782b9c8f4e36cef2", + "os": "darwin", + "arch": "universal", + "dmg_url": "https://git.de4ima.uk/Evilfox/navi/raw/branch/Windows/dist/navis-release/macos/universal/Navis.dmg", + "zip_url": "https://git.de4ima.uk/Evilfox/navi/raw/branch/Windows/dist/navis-release/macos/universal/Navis.app.zip" + }, + "android": { + "url": "https://git.de4ima.uk/Evilfox/navi/raw/branch/Windows/dist/navis-release/android/Navis.apk", + "sha256": "4416770bebe576eba42811990c4e4424f6722dea3a8513e6164dd34fc975b3cf", + "os": "android", + "arch": "universal" + } + } } diff --git a/dist/navis-release/windows/EvilFox.exe b/dist/navis-release/windows/EvilFox.exe index d600464..1037401 100644 Binary files a/dist/navis-release/windows/EvilFox.exe and b/dist/navis-release/windows/EvilFox.exe differ diff --git a/dist/navis-release/windows/Navis.exe b/dist/navis-release/windows/Navis.exe index d600464..1037401 100644 Binary files a/dist/navis-release/windows/Navis.exe and b/dist/navis-release/windows/Navis.exe differ diff --git a/dist/navis-release/windows/evilfox-cli.exe b/dist/navis-release/windows/evilfox-cli.exe index 5d34e93..708dcc2 100644 Binary files a/dist/navis-release/windows/evilfox-cli.exe and b/dist/navis-release/windows/evilfox-cli.exe differ diff --git a/dist/navis-release/windows/vpnclient.exe b/dist/navis-release/windows/vpnclient.exe index 5d34e93..708dcc2 100644 Binary files a/dist/navis-release/windows/vpnclient.exe and b/dist/navis-release/windows/vpnclient.exe differ diff --git a/dist/update.json b/dist/update.json index 0f07365..2569d01 100644 --- a/dist/update.json +++ b/dist/update.json @@ -1,48 +1,48 @@ { - "version": "4.2.0", - "notes": "4.2.0: обновлённые формулировки, Kill Switch, статистика, кнопка подключения", - "platform": "windows-amd64", - "os": "windows", - "arch": "amd64", - "url": "https://git.de4ima.uk/Evilfox/navi/raw/branch/Windows/dist/navis-release/windows/EvilFox.exe", - "sha256": "64da79ddf7cd5694bf93c4c110bf0e1281a20651e1e868a960562d5c1a15bd0d", - "mandatory": false, - "platforms": { - "windows-amd64": { - "url": "https://git.de4ima.uk/Evilfox/navi/raw/branch/Windows/dist/navis-release/windows/EvilFox.exe", - "sha256": "64da79ddf7cd5694bf93c4c110bf0e1281a20651e1e868a960562d5c1a15bd0d", - "os": "windows", - "arch": "amd64" - }, - "darwin-arm64": { - "url": "https://git.de4ima.uk/Evilfox/navi/raw/branch/Windows/dist/navis-release/macos/arm64/Navis", - "sha256": "01a40b1cce4e2fb3a38eb80f0815c295a00af11e4288f3b9e5c0b58ae336f28d", - "os": "darwin", - "arch": "arm64", - "dmg_url": "https://git.de4ima.uk/Evilfox/navi/raw/branch/Windows/dist/navis-release/macos/arm64/Navis.dmg", - "zip_url": "https://git.de4ima.uk/Evilfox/navi/raw/branch/Windows/dist/navis-release/macos/arm64/Navis.app.zip" - }, - "darwin-amd64": { - "url": "https://git.de4ima.uk/Evilfox/navi/raw/branch/Windows/dist/navis-release/macos/amd64/Navis", - "sha256": "19a066cfc7f7c3a291a220482b28e66a459d091c19c5351818c401b982bc65b3", - "os": "darwin", - "arch": "amd64", - "dmg_url": "https://git.de4ima.uk/Evilfox/navi/raw/branch/Windows/dist/navis-release/macos/amd64/Navis.dmg", - "zip_url": "https://git.de4ima.uk/Evilfox/navi/raw/branch/Windows/dist/navis-release/macos/amd64/Navis.app.zip" - }, - "darwin-universal": { - "url": "https://git.de4ima.uk/Evilfox/navi/raw/branch/Windows/dist/navis-release/macos/universal/Navis", - "sha256": "d53dba8256fd6f7b62d1ce9bbad741af087ae44fec942bf2782b9c8f4e36cef2", - "os": "darwin", - "arch": "universal", - "dmg_url": "https://git.de4ima.uk/Evilfox/navi/raw/branch/Windows/dist/navis-release/macos/universal/Navis.dmg", - "zip_url": "https://git.de4ima.uk/Evilfox/navi/raw/branch/Windows/dist/navis-release/macos/universal/Navis.app.zip" - }, - "android": { - "url": "https://git.de4ima.uk/Evilfox/navi/raw/branch/Windows/dist/navis-release/android/Navis.apk", - "sha256": "4416770bebe576eba42811990c4e4424f6722dea3a8513e6164dd34fc975b3cf", - "os": "android", - "arch": "universal" - } - } + "version": "4.2.1", + "notes": "4.2.1: исправлены опечатки Румынии (флаг RO), чистая шапка списка серверов, полезные ссылки вместо рекомендаций, убраны мусорные подписи на Защите, большая кнопка ПОДКЛЮЧИТЬСЯ всегда видна, свойства сервера заполнены, без T/V бейджей в списке", + "platform": "windows-amd64", + "os": "windows", + "arch": "amd64", + "url": "https://git.de4ima.uk/Evilfox/navi/raw/branch/Windows/dist/navis-release/windows/EvilFox.exe", + "sha256": "c3885d6d0c5b6e542fe1a172650c2f9480afde2b9016ceb1a5699f851761b837", + "mandatory": false, + "platforms": { + "windows-amd64": { + "url": "https://git.de4ima.uk/Evilfox/navi/raw/branch/Windows/dist/navis-release/windows/EvilFox.exe", + "sha256": "c3885d6d0c5b6e542fe1a172650c2f9480afde2b9016ceb1a5699f851761b837", + "os": "windows", + "arch": "amd64" + }, + "darwin-arm64": { + "url": "https://git.de4ima.uk/Evilfox/navi/raw/branch/Windows/dist/navis-release/macos/arm64/Navis", + "sha256": "01a40b1cce4e2fb3a38eb80f0815c295a00af11e4288f3b9e5c0b58ae336f28d", + "os": "darwin", + "arch": "arm64", + "dmg_url": "https://git.de4ima.uk/Evilfox/navi/raw/branch/Windows/dist/navis-release/macos/arm64/Navis.dmg", + "zip_url": "https://git.de4ima.uk/Evilfox/navi/raw/branch/Windows/dist/navis-release/macos/arm64/Navis.app.zip" + }, + "darwin-amd64": { + "url": "https://git.de4ima.uk/Evilfox/navi/raw/branch/Windows/dist/navis-release/macos/amd64/Navis", + "sha256": "19a066cfc7f7c3a291a220482b28e66a459d091c19c5351818c401b982bc65b3", + "os": "darwin", + "arch": "amd64", + "dmg_url": "https://git.de4ima.uk/Evilfox/navi/raw/branch/Windows/dist/navis-release/macos/amd64/Navis.dmg", + "zip_url": "https://git.de4ima.uk/Evilfox/navi/raw/branch/Windows/dist/navis-release/macos/amd64/Navis.app.zip" + }, + "darwin-universal": { + "url": "https://git.de4ima.uk/Evilfox/navi/raw/branch/Windows/dist/navis-release/macos/universal/Navis", + "sha256": "d53dba8256fd6f7b62d1ce9bbad741af087ae44fec942bf2782b9c8f4e36cef2", + "os": "darwin", + "arch": "universal", + "dmg_url": "https://git.de4ima.uk/Evilfox/navi/raw/branch/Windows/dist/navis-release/macos/universal/Navis.dmg", + "zip_url": "https://git.de4ima.uk/Evilfox/navi/raw/branch/Windows/dist/navis-release/macos/universal/Navis.app.zip" + }, + "android": { + "url": "https://git.de4ima.uk/Evilfox/navi/raw/branch/Windows/dist/navis-release/android/Navis.apk", + "sha256": "4416770bebe576eba42811990c4e4424f6722dea3a8513e6164dd34fc975b3cf", + "os": "android", + "arch": "universal" + } + } } diff --git a/internal/apphost/app.go b/internal/apphost/app.go index 72ae0b8..a27951e 100644 --- a/internal/apphost/app.go +++ b/internal/apphost/app.go @@ -470,13 +470,11 @@ func (a *App) AutoCheckUpdate() { } // allowedLinkHosts are the only hosts the UI may open in the default browser -// (shop button, «Рекомендуемые сервисы» and provider cards in index.html). +// (shop / «Полезные ссылки» / provider cards in index.html). // Competitor links are plain URLs without referral codes (Store policy). var allowedLinkHosts = map[string]bool{ "evilfox.win": true, "t.me": true, - "de4ima.uk": true, - "git.de4ima.uk": true, "nordvpn.com": true, "expressvpn.com": true, "surfshark.com": true, diff --git a/internal/appui/index.html b/internal/appui/index.html index 73de266..670527b 100644 --- a/internal/appui/index.html +++ b/internal/appui/index.html @@ -273,8 +273,9 @@ overflow-y: auto; padding: 18px 20px 8px; } - .page { display: none; max-width: 640px; margin: 0 auto; animation: rise .3s var(--ease) both; } - .page.active { display: block; } + /* Inactive pages must not paint (WebView2 overflow ghosts from hidden siblings). */ + .page { display: none !important; max-width: 640px; margin: 0 auto; } + .page.active { display: block !important; animation: rise .3s var(--ease) both; } @keyframes rise { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: none; } @@ -308,9 +309,12 @@ .update-actions .action { flex: 1 1 auto; min-width: 140px; } /* ==== Home / power ==== */ + /* Sticky so the big connect control never scrolls under the provider list. */ .hero { - position: relative; - overflow: hidden; + position: sticky; + top: 0; + z-index: 6; + overflow: visible; border-radius: var(--radius); border: 1px solid var(--line); background: var(--hero-bg); @@ -318,6 +322,8 @@ margin-bottom: 14px; text-align: center; transition: border-color .25s, box-shadow .25s, background .25s; + min-height: 220px; + box-sizing: border-box; } .hero.on { border-color: rgba(13,138,102,.35); @@ -327,6 +333,8 @@ .power-btn { width: 148px; height: 148px; + min-width: 148px; + min-height: 148px; border-radius: 50%; border: 0; cursor: pointer; @@ -341,6 +349,7 @@ transition: background .25s, color .25s, transform .12s, box-shadow .25s; box-shadow: 0 14px 34px rgba(8, 145, 178, .3); position: relative; + flex-shrink: 0; } .power-btn:hover { transform: translateY(-2px); } .power-btn:active { transform: none; } @@ -1336,7 +1345,7 @@