Hide empty data usage cycles.
When building list of historical data usage cycles, omit cycles that don't contain any data usage. A bad NITZ or NTP fix may have caused us to record some usage in 1970 or 2038, which would have shown all the cycles in between. Now we hide empty cycles to keep things clean. Bug: 18282691 Change-Id: Ib04c95d1411400ba9967d311b59402a26d39cfe3
This commit is contained in:
@@ -1166,6 +1166,7 @@ public class DataUsageSummary extends HighlightingFragment implements Indexable
|
|||||||
mCycleAdapter.clear();
|
mCycleAdapter.clear();
|
||||||
|
|
||||||
final Context context = mCycleSpinner.getContext();
|
final Context context = mCycleSpinner.getContext();
|
||||||
|
NetworkStatsHistory.Entry entry = null;
|
||||||
|
|
||||||
long historyStart = Long.MAX_VALUE;
|
long historyStart = Long.MAX_VALUE;
|
||||||
long historyEnd = Long.MIN_VALUE;
|
long historyEnd = Long.MIN_VALUE;
|
||||||
@@ -1188,10 +1189,21 @@ public class DataUsageSummary extends HighlightingFragment implements Indexable
|
|||||||
final long cycleStart = computeLastCycleBoundary(cycleEnd, policy);
|
final long cycleStart = computeLastCycleBoundary(cycleEnd, policy);
|
||||||
Log.d(TAG, "generating cs=" + cycleStart + " to ce=" + cycleEnd + " waiting for hs="
|
Log.d(TAG, "generating cs=" + cycleStart + " to ce=" + cycleEnd + " waiting for hs="
|
||||||
+ historyStart);
|
+ historyStart);
|
||||||
|
|
||||||
|
final boolean includeCycle;
|
||||||
|
if (mChartData != null) {
|
||||||
|
entry = mChartData.network.getValues(cycleStart, cycleEnd, entry);
|
||||||
|
includeCycle = (entry.rxBytes + entry.txBytes) > 0;
|
||||||
|
} else {
|
||||||
|
includeCycle = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (includeCycle) {
|
||||||
mCycleAdapter.add(new CycleItem(context, cycleStart, cycleEnd));
|
mCycleAdapter.add(new CycleItem(context, cycleStart, cycleEnd));
|
||||||
cycleEnd = cycleStart;
|
|
||||||
hasCycles = true;
|
hasCycles = true;
|
||||||
}
|
}
|
||||||
|
cycleEnd = cycleStart;
|
||||||
|
}
|
||||||
|
|
||||||
// one last cycle entry to modify policy cycle day
|
// one last cycle entry to modify policy cycle day
|
||||||
mCycleAdapter.setChangePossible(isNetworkPolicyModifiable(policy));
|
mCycleAdapter.setChangePossible(isNetworkPolicyModifiable(policy));
|
||||||
@@ -1202,7 +1214,18 @@ public class DataUsageSummary extends HighlightingFragment implements Indexable
|
|||||||
long cycleEnd = historyEnd;
|
long cycleEnd = historyEnd;
|
||||||
while (cycleEnd > historyStart) {
|
while (cycleEnd > historyStart) {
|
||||||
final long cycleStart = cycleEnd - (DateUtils.WEEK_IN_MILLIS * 4);
|
final long cycleStart = cycleEnd - (DateUtils.WEEK_IN_MILLIS * 4);
|
||||||
|
|
||||||
|
final boolean includeCycle;
|
||||||
|
if (mChartData != null) {
|
||||||
|
entry = mChartData.network.getValues(cycleStart, cycleEnd, entry);
|
||||||
|
includeCycle = (entry.rxBytes + entry.txBytes) > 0;
|
||||||
|
} else {
|
||||||
|
includeCycle = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (includeCycle) {
|
||||||
mCycleAdapter.add(new CycleItem(context, cycleStart, cycleEnd));
|
mCycleAdapter.add(new CycleItem(context, cycleStart, cycleEnd));
|
||||||
|
}
|
||||||
cycleEnd = cycleStart;
|
cycleEnd = cycleStart;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user