Add ability to disable data warning.
- Add a preference to disable data warning. - Disable data usage chart in summary page when data warning is turned off. Bug: 26934313 Test: Manually turned on/off data warning and inspected UI. Test: ag/1440361 Change-Id: I6d5b86b8502647781c52cf940f276e1969251b59
This commit is contained in:
@@ -34,6 +34,7 @@ import android.view.View;
|
||||
import android.widget.EditText;
|
||||
import android.widget.NumberPicker;
|
||||
import android.widget.Spinner;
|
||||
|
||||
import com.android.internal.logging.MetricsProto.MetricsEvent;
|
||||
import com.android.settings.R;
|
||||
import com.android.settingslib.NetworkPolicyEditor;
|
||||
@@ -55,6 +56,7 @@ public class BillingCycleSettings extends DataUsageBase implements
|
||||
private static final String TAG_WARNING_EDITOR = "warningEditor";
|
||||
|
||||
private static final String KEY_BILLING_CYCLE = "billing_cycle";
|
||||
private static final String KEY_SET_DATA_WARNING = "set_data_warning";
|
||||
private static final String KEY_DATA_WARNING = "data_warning";
|
||||
private static final String KEY_SET_DATA_LIMIT = "set_data_limit";
|
||||
private static final String KEY_DATA_LIMIT = "data_limit";
|
||||
@@ -62,6 +64,7 @@ public class BillingCycleSettings extends DataUsageBase implements
|
||||
private NetworkTemplate mNetworkTemplate;
|
||||
private Preference mBillingCycle;
|
||||
private Preference mDataWarning;
|
||||
private SwitchPreference mEnableDataWarning;
|
||||
private SwitchPreference mEnableDataLimit;
|
||||
private Preference mDataLimit;
|
||||
private DataUsageController mDataUsageController;
|
||||
@@ -77,6 +80,8 @@ public class BillingCycleSettings extends DataUsageBase implements
|
||||
|
||||
addPreferencesFromResource(R.xml.billing_cycle);
|
||||
mBillingCycle = findPreference(KEY_BILLING_CYCLE);
|
||||
mEnableDataWarning = (SwitchPreference) findPreference(KEY_SET_DATA_WARNING);
|
||||
mEnableDataWarning.setOnPreferenceChangeListener(this);
|
||||
mDataWarning = findPreference(KEY_DATA_WARNING);
|
||||
mEnableDataLimit = (SwitchPreference) findPreference(KEY_SET_DATA_LIMIT);
|
||||
mEnableDataLimit.setOnPreferenceChangeListener(this);
|
||||
@@ -93,10 +98,15 @@ public class BillingCycleSettings extends DataUsageBase implements
|
||||
NetworkPolicy policy = services.mPolicyEditor.getPolicy(mNetworkTemplate);
|
||||
mBillingCycle.setSummary(getString(R.string.billing_cycle_summary, policy != null ?
|
||||
policy.cycleDay : 1));
|
||||
mDataWarning.setSummary(Formatter.formatFileSize(getContext(),
|
||||
policy != null
|
||||
? policy.warningBytes
|
||||
: mDataUsageController.getDefaultWarningLevel()));
|
||||
if (policy != null && policy.warningBytes != WARNING_DISABLED) {
|
||||
mDataWarning.setSummary(Formatter.formatFileSize(getContext(), policy.warningBytes));
|
||||
mDataWarning.setEnabled(true);
|
||||
mEnableDataWarning.setChecked(true);
|
||||
} else {
|
||||
mDataWarning.setSummary(null);
|
||||
mDataWarning.setEnabled(false);
|
||||
mEnableDataWarning.setChecked(false);
|
||||
}
|
||||
if (policy != null && policy.limitBytes != LIMIT_DISABLED) {
|
||||
mDataLimit.setSummary(Formatter.formatFileSize(getContext(), policy.limitBytes));
|
||||
mDataLimit.setEnabled(true);
|
||||
@@ -133,6 +143,14 @@ public class BillingCycleSettings extends DataUsageBase implements
|
||||
setPolicyLimitBytes(LIMIT_DISABLED);
|
||||
}
|
||||
return true;
|
||||
} else if (mEnableDataWarning == preference) {
|
||||
boolean enabled = (Boolean) newValue;
|
||||
if (enabled) {
|
||||
setPolicyWarningBytes(mDataUsageController.getDefaultWarningLevel());
|
||||
} else {
|
||||
setPolicyWarningBytes(WARNING_DISABLED);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
@@ -148,6 +166,12 @@ public class BillingCycleSettings extends DataUsageBase implements
|
||||
updatePrefs();
|
||||
}
|
||||
|
||||
private void setPolicyWarningBytes(long warningBytes) {
|
||||
if (LOGD) Log.d(TAG, "setPolicyWarningBytes()");
|
||||
services.mPolicyEditor.setPolicyWarningBytes(mNetworkTemplate, warningBytes);
|
||||
updatePrefs();
|
||||
}
|
||||
|
||||
@Override
|
||||
public NetworkPolicyEditor getNetworkPolicyEditor() {
|
||||
return services.mPolicyEditor;
|
||||
@@ -255,7 +279,7 @@ public class BillingCycleSettings extends DataUsageBase implements
|
||||
bytesString = "0";
|
||||
}
|
||||
final long bytes = (long) (Float.valueOf(bytesString)
|
||||
* (spinner.getSelectedItemPosition() == 0 ? MB_IN_BYTES : GB_IN_BYTES));
|
||||
* (spinner.getSelectedItemPosition() == 0 ? MB_IN_BYTES : GB_IN_BYTES));
|
||||
if (isLimit) {
|
||||
editor.setPolicyLimitBytes(template, bytes);
|
||||
} else {
|
||||
|
Reference in New Issue
Block a user