Fix data usage

- Fix int conversion (evidently a month doesn't fit in an int
 - Remove gaps because they don't make sense for data usage

Bug: 27632250
Change-Id: I87c2c05960b6ee489289e94eb12de9d52de1f3aa
This commit is contained in:
Jason Monk
2016-03-15 11:36:06 -04:00
parent 68d1ca6de5
commit 5ce4345dff

View File

@@ -66,7 +66,7 @@ public class ChartDataUsagePreference extends Preference {
int top = getTop(); int top = getTop();
chart.clearPaths(); chart.clearPaths();
chart.configureGraph((int) (mEnd - mStart), top, false, false); chart.configureGraph(toInt(mEnd - mStart), top, false, false);
calcPoints(chart); calcPoints(chart);
chart.setBottomLabels(new CharSequence[] { chart.setBottomLabels(new CharSequence[] {
Utils.formatDateRange(getContext(), mStart, mStart), Utils.formatDateRange(getContext(), mStart, mStart),
@@ -96,7 +96,6 @@ public class ChartDataUsagePreference extends Preference {
SparseIntArray points = new SparseIntArray(); SparseIntArray points = new SparseIntArray();
NetworkStatsHistory.Entry entry = null; NetworkStatsHistory.Entry entry = null;
long lastTime = -1;
long totalData = 0; long totalData = 0;
final int start = mNetwork.getIndexAfter(mStart); final int start = mNetwork.getIndexAfter(mStart);
@@ -113,23 +112,19 @@ public class ChartDataUsagePreference extends Preference {
// increment by current bucket total // increment by current bucket total
totalData += entry.rxBytes + entry.txBytes; totalData += entry.rxBytes + entry.txBytes;
if (lastTime != startTime) { points.put(toInt(startTime - mStart + 1), (int) (totalData / RESOLUTION));
if (points.size() > 1) { points.put(toInt(endTime - mStart), (int) (totalData / RESOLUTION));
chart.addPath(points);
}
points.clear();
}
points.put((int) (startTime - mStart + 1), (int) (totalData / RESOLUTION));
points.put((int) (endTime - mStart), (int) (totalData / RESOLUTION));
lastTime = endTime;
} }
if (points.size() > 1) { if (points.size() > 1) {
chart.addPath(points); chart.addPath(points);
} }
} }
private int toInt(long l) {
// Don't need that much resolution on these times.
return (int) (l / (1000 * 60));
}
private void bindNetworkPolicy(UsageView chart, NetworkPolicy policy, int top) { private void bindNetworkPolicy(UsageView chart, NetworkPolicy policy, int top) {
CharSequence[] labels = new CharSequence[3]; CharSequence[] labels = new CharSequence[3];
int middleVisibility = 0; int middleVisibility = 0;