Improvements on "App data usage" screen.

- Don't disply whitelist toggle if app is blacklisted.
- Handle scenario where app don't have any quota usage.

BUG: 27481520

Change-Id: I0147025d6bba2d6deeda109aeebb296607550bd8
This commit is contained in:
Felipe Leme
2016-04-13 14:54:59 -07:00
parent 1e890cb8f7
commit 4133fc1cb1

View File

@@ -226,7 +226,12 @@ public class AppDataUsage extends DataUsageBase implements Preference.OnPreferen
mRestrictBackground.setChecked(!getAppRestrictBackground()); mRestrictBackground.setChecked(!getAppRestrictBackground());
} }
if (mUnrestrictedData != null) { if (mUnrestrictedData != null) {
mUnrestrictedData.setChecked(mDataSaverBackend.isWhitelisted(mAppItem.key)); if (getAppRestrictBackground()) {
mUnrestrictedData.setVisible(false);
} else {
mUnrestrictedData.setVisible(true);
mUnrestrictedData.setChecked(mDataSaverBackend.isWhitelisted(mAppItem.key));
}
} }
} }
@@ -240,18 +245,21 @@ public class AppDataUsage extends DataUsageBase implements Preference.OnPreferen
} }
private void bindData() { private void bindData() {
final long backgroundBytes, foregroundBytes;
if (mChartData == null || mStart == 0) { if (mChartData == null || mStart == 0) {
return; backgroundBytes = foregroundBytes = 0;
mCycle.setVisible(false);
} else {
mCycle.setVisible(true);
final long now = System.currentTimeMillis();
NetworkStatsHistory.Entry entry = null;
entry = mChartData.detailDefault.getValues(mStart, mEnd, now, entry);
backgroundBytes = entry.rxBytes + entry.txBytes;
entry = mChartData.detailForeground.getValues(mStart, mEnd, now, entry);
foregroundBytes = entry.rxBytes + entry.txBytes;
} }
final Context context = getContext();
final long now = System.currentTimeMillis();
NetworkStatsHistory.Entry entry = null;
entry = mChartData.detailDefault.getValues(mStart, mEnd, now, entry);
final long backgroundBytes = entry.rxBytes + entry.txBytes;
entry = mChartData.detailForeground.getValues(mStart, mEnd, now, entry);
final long foregroundBytes = entry.rxBytes + entry.txBytes;
final long totalBytes = backgroundBytes + foregroundBytes; final long totalBytes = backgroundBytes + foregroundBytes;
final Context context = getContext();
mTotalUsage.setSummary(Formatter.formatFileSize(context, totalBytes)); mTotalUsage.setSummary(Formatter.formatFileSize(context, totalBytes));
mForegroundUsage.setSummary(Formatter.formatFileSize(context, foregroundBytes)); mForegroundUsage.setSummary(Formatter.formatFileSize(context, foregroundBytes));
@@ -268,6 +276,7 @@ public class AppDataUsage extends DataUsageBase implements Preference.OnPreferen
final int uid = mAppItem.key; final int uid = mAppItem.key;
services.mPolicyManager.setUidPolicy( services.mPolicyManager.setUidPolicy(
uid, restrictBackground ? POLICY_REJECT_METERED_BACKGROUND : POLICY_NONE); uid, restrictBackground ? POLICY_REJECT_METERED_BACKGROUND : POLICY_NONE);
updatePrefs(); // TODO: should have been notified by NPMS instead
} }
@Override @Override