Hide tab when disabled, metered strings, fixes.

Hide "Data usage" item when kernel support isn't available and
enabled.  Change "restrict background" strings to reflect metered
status.  Hide app settings button when no package found.  Always
start limit sweep above any warning.  Imply metered state for
networks with limits.

Bug: 6303364, 5465643, 5379686, 6376276, 6368329, 6376276
Change-Id: I4faccc9a50f2f741fd937bb8c361a3ca055135e2
This commit is contained in:
Jeff Sharkey
2012-04-21 15:41:48 -07:00
parent 1833d181f3
commit 34e964dcff
4 changed files with 46 additions and 13 deletions

View File

@@ -16,6 +16,7 @@
package com.android.settings.net;
import static android.net.NetworkPolicy.LIMIT_DISABLED;
import static android.net.wifi.WifiInfo.removeDoubleQuotes;
import static com.android.settings.DataUsageSummary.hasReadyMobileRadio;
import static com.android.settings.DataUsageSummary.hasWifiRadio;
@@ -106,19 +107,35 @@ public class DataUsageMeteredSettings extends SettingsPreferenceFragment {
private class MeteredPreference extends CheckBoxPreference {
private final NetworkTemplate mTemplate;
private boolean mBinding;
public MeteredPreference(Context context, NetworkTemplate template) {
super(context);
mTemplate = template;
setPersistent(false);
setChecked(mPolicyEditor.getPolicyMetered(mTemplate));
mBinding = true;
final NetworkPolicy policy = mPolicyEditor.getPolicy(template);
if (policy != null) {
if (policy.limitBytes != LIMIT_DISABLED) {
setChecked(true);
setEnabled(false);
} else {
setChecked(policy.metered);
}
} else {
setChecked(false);
}
mBinding = false;
}
@Override
protected void notifyChanged() {
super.notifyChanged();
mPolicyEditor.setPolicyMetered(mTemplate, isChecked());
if (!mBinding) {
mPolicyEditor.setPolicyMetered(mTemplate, isChecked());
}
}
}
}