[Mac Randomization] Fix MAC randomization option does not work when

ephemeral newtork

WifiConfiguration is only available when saved network. So ephemeral
newtork could not have wifi config to config wifi setting. In this
situation, making option be not selectable.

Bug: 122919564
Test: atest WifiPrivacyPreferenceControllerTest
Change-Id: I8a2a1c36ec6d41a6f912da29a8b17bc2e43d9a27
This commit is contained in:
cosmohsieh
2019-01-29 14:50:43 +08:00
parent 3eaa0ac051
commit 5cbd97f4ea
4 changed files with 31 additions and 0 deletions

View File

@@ -25,6 +25,7 @@ import androidx.annotation.VisibleForTesting;
import androidx.preference.DropDownPreference;
import androidx.preference.Preference;
import com.android.settings.R;
import com.android.settings.core.BasePreferenceController;
import com.android.settings.core.FeatureFlags;
import com.android.settingslib.core.AbstractPreferenceController;
@@ -39,6 +40,7 @@ public class WifiPrivacyPreferenceController extends BasePreferenceController im
private static final String KEY_WIFI_PRIVACY = "privacy";
private WifiConfiguration mWifiConfiguration;
private WifiManager mWifiManager;
private boolean mIsEphemeral = false;
public WifiPrivacyPreferenceController(Context context) {
super(context, KEY_WIFI_PRIVACY);
@@ -50,6 +52,10 @@ public class WifiPrivacyPreferenceController extends BasePreferenceController im
mWifiConfiguration = wifiConfiguration;
}
public void setIsEphemeral(boolean isEphemeral) {
mIsEphemeral = isEphemeral;
}
@Override
public int getAvailabilityStatus() {
return FeatureFlagUtils.isEnabled(mContext, FeatureFlags.WIFI_MAC_RANDOMIZATION)
@@ -62,6 +68,12 @@ public class WifiPrivacyPreferenceController extends BasePreferenceController im
final int randomizationLevel = getRandomizationValue();
dropDownPreference.setValue(Integer.toString(randomizationLevel));
updateSummary(dropDownPreference, randomizationLevel);
// Makes preference not selectable, when this is a ephemeral network.
if (mIsEphemeral) {
preference.setSelectable(false);
dropDownPreference.setSummary(R.string.wifi_privacy_settings_ephemeral_summary);
}
}
@Override