From 158145ab3ab2d5dc63155c7f935d86a7b3d2d979 Mon Sep 17 00:00:00 2001 From: kari-ts Date: Tue, 12 May 2026 16:12:26 -0700 Subject: [PATCH] android: fix health warnings sort order This changes the comparator to sort by severity first (descending), ImpactsConnectivity as a secondary sort, and title as a final tiebreaker. This fixes the issue where the comparator was sorting ascending, and matches the new WinUI sorting behavior. Fixes tailscale/corp#41733 Signed-off-by: kari-ts --- .../main/java/com/tailscale/ipn/ui/model/Health.kt | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/android/src/main/java/com/tailscale/ipn/ui/model/Health.kt b/android/src/main/java/com/tailscale/ipn/ui/model/Health.kt index 827be203b7..2d37864012 100644 --- a/android/src/main/java/com/tailscale/ipn/ui/model/Health.kt +++ b/android/src/main/java/com/tailscale/ipn/ui/model/Health.kt @@ -36,12 +36,19 @@ class Health { override fun compareTo(other: UnhealthyState): Int { // Compare by severity first - val severityComparison = Severity.compareTo(other.Severity) + val severityComparison = other.Severity.compareTo(other.Severity) if (severityComparison != 0) { return severityComparison } - // If severities are equal, compare by warnableCode + // If severities are equal, connectivity impacting issues first + val connectivityComparison = + (other.ImpactsConnectivity ?: false).compareTo(ImpactsConnectivity ?: false) + if (connectivityComparison != 0) { + return connectivityComparison + } + + // Otherwise, alphabetical by WarnableCode return WarnableCode.compareTo(other.WarnableCode) } }