Support metered choice for subscription WifiEntries

Add a check for subscription WifiEntries so they can also set their
metered overrides.

Test: manual
Bug: 70983952
Change-Id: Icd45f416e47251f914aa803d5190566746fb9779
This commit is contained in:
Quang Luong
2020-01-24 16:22:49 -08:00
parent 94f10ec0b5
commit a59bc1c0f5

View File

@@ -60,7 +60,7 @@ public class WifiMeteredPreferenceController2 extends BasePreferenceController i
@Override
public boolean onPreferenceChange(Preference preference, Object newValue) {
if (mWifiEntry.isSaved()) {
if (mWifiEntry.isSaved() || mWifiEntry.isSubscription()) {
mWifiEntry.setMeteredChoice(Integer.parseInt((String) newValue));
}
@@ -72,7 +72,7 @@ public class WifiMeteredPreferenceController2 extends BasePreferenceController i
@VisibleForTesting
int getMeteredOverride() {
if (mWifiEntry.isSaved()) {
if (mWifiEntry.isSaved() || mWifiEntry.isSubscription()) {
// Wrap the meteredOverride since robolectric cannot recognize it
return mWifiEntry.getMeteredChoice();
}
@@ -91,13 +91,13 @@ public class WifiMeteredPreferenceController2 extends BasePreferenceController i
@Override
public void onSubmit(WifiDialog2 dialog) {
if (dialog.getController() != null) {
if (dialog.getController() != null && mWifiEntry.canSetMeteredChoice()) {
final WifiConfiguration newConfig = dialog.getController().getConfig();
if (newConfig == null || !mWifiEntry.isSaved()) {
if (newConfig == null) {
return;
}
if (newConfig.meteredOverride != mWifiEntry.getWifiConfiguration().meteredOverride) {
if (getWifiEntryMeteredChoice(newConfig) != mWifiEntry.getMeteredChoice()) {
mWifiEntry.setMeteredChoice(getWifiEntryMeteredChoice(newConfig));
onPreferenceChange(mPreference, String.valueOf(newConfig.meteredOverride));
}