From 03936cea605272724d46d05c53d31ee12c025017 Mon Sep 17 00:00:00 2001 From: Ian Rogers Date: Tue, 7 Jun 2016 00:02:42 -0700 Subject: [PATCH] Fix sort orders on longs. The int conversion narrows a long possibly inverting its sign. This may lead to broken comparator sort orders. Caught by Error Prone. Bug: 27723540 Change-Id: I53d70c25a22cdcfc496443395b170f586d259fa7 --- src/com/android/settings/UsageStatsActivity.java | 4 ++-- .../android/settings/notification/NotificationStation.java | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/com/android/settings/UsageStatsActivity.java b/src/com/android/settings/UsageStatsActivity.java index 1d3edbc2bcc..d9803ddfb93 100755 --- a/src/com/android/settings/UsageStatsActivity.java +++ b/src/com/android/settings/UsageStatsActivity.java @@ -75,14 +75,14 @@ public class UsageStatsActivity extends Activity implements OnItemSelectedListen @Override public final int compare(UsageStats a, UsageStats b) { // return by descending order - return (int)(b.getLastTimeUsed() - a.getLastTimeUsed()); + return Long.compare(b.getLastTimeUsed(), a.getLastTimeUsed()); } } public static class UsageTimeComparator implements Comparator { @Override public final int compare(UsageStats a, UsageStats b) { - return (int)(b.getTotalTimeInForeground() - a.getTotalTimeInForeground()); + return Long.compare(b.getTotalTimeInForeground(), a.getTotalTimeInForeground()); } } diff --git a/src/com/android/settings/notification/NotificationStation.java b/src/com/android/settings/notification/NotificationStation.java index 3ae1b631879..d808310cf7f 100644 --- a/src/com/android/settings/notification/NotificationStation.java +++ b/src/com/android/settings/notification/NotificationStation.java @@ -133,7 +133,7 @@ public class NotificationStation extends SettingsPreferenceFragment { @Override public int compare(HistoricalNotificationInfo lhs, HistoricalNotificationInfo rhs) { - return (int)(rhs.timestamp - lhs.timestamp); + return Long.compare(rhs.timestamp, lhs.timestamp); } };