OmniGears: arithmetic safe guard time in state
there are no negative values here ... :)
Change-Id: I54c979260191fc59b41a7d29a22b0395ea8fd284
diff --git a/src/org/omnirom/omnigears/system/TimeInState.java b/src/org/omnirom/omnigears/system/TimeInState.java
index 8124dbd..2277110 100644
--- a/src/org/omnirom/omnigears/system/TimeInState.java
+++ b/src/org/omnirom/omnigears/system/TimeInState.java
@@ -315,9 +315,9 @@
}
private static String toString(long tSec) {
- long h = (long) Math.floor(tSec / (60 * 60));
- long m = (long) Math.floor((tSec - h * 60 * 60) / 60);
- long s = tSec % 60;
+ long h = (long) Math.max(0, Math.floor(tSec / (60 * 60)));
+ long m = (long) Math.max(0, Math.floor((tSec - h * 60 * 60) / 60));
+ long s = Math.max(0, tSec % 60);
String sDur;
sDur = h + ":";
if (m < 10)
@@ -348,6 +348,9 @@
if (per > 100f) {
per = 0f;
}
+ if (per < 0f) {
+ per = 0f;
+ }
tSec = duration / 100;
}
sPer = String.format("%3d", (int) per) + "%";