From 56a2a72da09fc43944b8ba5d35cc4e9dec9eace2 Mon Sep 17 00:00:00 2001 From: Andrey Prokopyuk Date: Fri, 4 Sep 2026 18:14:56 +0300 Subject: [PATCH 1/2] Refine connection stats labels --- .../java/net/megaproxy487/MainActivity.kt | 2 +- app/src/main/res/values-ru/strings.xml | 26 +++++++++---------- app/src/main/res/values/strings.xml | 10 +++---- 3 files changed, 19 insertions(+), 19 deletions(-) diff --git a/app/src/main/java/net/megaproxy487/MainActivity.kt b/app/src/main/java/net/megaproxy487/MainActivity.kt index f8ca0f6..bdcf686 100644 --- a/app/src/main/java/net/megaproxy487/MainActivity.kt +++ b/app/src/main/java/net/megaproxy487/MainActivity.kt @@ -697,8 +697,8 @@ private fun ConnectionStatsCard(stats: DisplayedConnectionStats) { value = if (latency <= 0) "—" else stringResource( R.string.latency_milliseconds, latency.toInt(), - formatAge(ageMillis), ), + supportingValue = if (latency <= 0) null else formatAge(ageMillis).ifEmpty { null }, modifier = Modifier.weight(1f), ) } diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index 73e2bf6..77a50df 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -227,25 +227,25 @@ Двоичные IEC (KiB, MiB, GiB · 1024) Десятичные SI (KB, MB, GB · 1000) Задержка прокси - %1$d мс%2$s + %1$d мс Ошибки соединения: нет данных Ошибки соединения: %1$.1f%% · %2$s - %1$d попытка - %1$d попытки - %1$d попыток - %1$d попытки + %1$d сэмпл + %1$d сэмпла + %1$d сэмплов + %1$d сэмпла - · %1$d секунду назад - · %1$d секунды назад - · %1$d секунд назад - · %1$d секунды назад + %1$d секунду назад + %1$d секунды назад + %1$d секунд назад + %1$d секунды назад - · %1$d минуту назад - · %1$d минуты назад - · %1$d минут назад - · %1$d минуты назад + %1$d минуту назад + %1$d минуты назад + %1$d минут назад + %1$d минуты назад diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index d3ab426..5851dbb 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -228,7 +228,7 @@ IEC binary (KiB, MiB, GiB · 1024) SI decimal (KB, MB, GB · 1000) Proxy latency - %1$d ms%2$s + %1$d ms Connection errors: no samples Connection errors: %1$.1f%% · %2$s @@ -236,11 +236,11 @@ %1$d samples - · %1$d sec ago - · %1$d sec ago + %1$d sec ago + %1$d sec ago - · %1$d min ago - · %1$d min ago + %1$d min ago + %1$d min ago From 305a362e4d105ca06b2aed155c5e4ce6d0246ba1 Mon Sep 17 00:00:00 2001 From: Andrey Prokopyuk Date: Fri, 4 Sep 2026 18:19:39 +0300 Subject: [PATCH 2/2] Retry zero-test instrumentation crashes --- fastlane/Fastfile | 32 ++++++++++++++++++++++++++++---- 1 file changed, 28 insertions(+), 4 deletions(-) diff --git a/fastlane/Fastfile b/fastlane/Fastfile index dedaecf..74759ba 100644 --- a/fastlane/Fastfile +++ b/fastlane/Fastfile @@ -67,11 +67,35 @@ platform :android do desc "Run instrumented Compose UI tests on a connected Android device or emulator" lane :ui_tests do native_library - gradle( - task: "connectedDebugAndroidTest", - flags: "--no-daemon", - project_dir: project_root + report_pattern = File.join( + project_root, + "app/build/outputs/androidTest-results/connected/debug/TEST-*.xml" ) + Dir.glob(report_pattern).each { |report| File.delete(report) } + attempts = 0 + begin + attempts += 1 + gradle( + task: "connectedDebugAndroidTest", + flags: "--no-daemon", + project_dir: project_root + ) + rescue + reports = Dir.glob(report_pattern) + executed_tests = reports.sum do |report| + (File.read(report).match(/tests="(\d+)"/)&.captures&.first || "0").to_i + end + + # A software-emulated Android process can occasionally die before the + # instrumentation runner starts. Retry that infrastructure failure once, + # but never hide an assertion failure from a test that actually ran. + raise if attempts >= 2 || reports.empty? || executed_tests.positive? + + UI.important("Instrumentation exited before running a test; retrying once") + reports.each { |report| File.delete(report) } + sh("adb wait-for-device") + retry + end end desc "Run every native and Android test and check"