Merge "Display "MAC address is randomized" in Wifi Preference Page" into pi-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
8a022d8693
@@ -22,6 +22,7 @@ import android.content.Intent;
|
||||
import android.content.IntentFilter;
|
||||
import android.net.wifi.WifiInfo;
|
||||
import android.net.wifi.WifiManager;
|
||||
import android.provider.Settings;
|
||||
import android.support.v4.text.BidiFormatter;
|
||||
import android.support.v7.preference.Preference;
|
||||
import android.support.v7.preference.PreferenceScreen;
|
||||
@@ -96,10 +97,18 @@ public class WifiInfoPreferenceController extends AbstractPreferenceController
|
||||
public void updateWifiInfo() {
|
||||
if (mWifiMacAddressPref != null) {
|
||||
final WifiInfo wifiInfo = mWifiManager.getConnectionInfo();
|
||||
final int macRandomizationMode = Settings.Global.getInt(mContext.getContentResolver(),
|
||||
Settings.Global.WIFI_CONNECTED_MAC_RANDOMIZATION_ENABLED, 0);
|
||||
final String macAddress = wifiInfo == null ? null : wifiInfo.getMacAddress();
|
||||
mWifiMacAddressPref.setSummary(!TextUtils.isEmpty(macAddress)
|
||||
? macAddress
|
||||
: mContext.getString(R.string.status_unavailable));
|
||||
|
||||
if (TextUtils.isEmpty(macAddress)) {
|
||||
mWifiMacAddressPref.setSummary(R.string.status_unavailable);
|
||||
} else if (macRandomizationMode == 1
|
||||
&& WifiInfo.DEFAULT_MAC_ADDRESS.equals(macAddress)) {
|
||||
mWifiMacAddressPref.setSummary(R.string.wifi_status_mac_randomized);
|
||||
} else {
|
||||
mWifiMacAddressPref.setSummary(macAddress);
|
||||
}
|
||||
}
|
||||
if (mWifiIpAddressPref != null) {
|
||||
final String ipAddress = Utils.getWifiIpAddresses(mContext);
|
||||
|
@@ -28,10 +28,13 @@ import android.arch.lifecycle.LifecycleOwner;
|
||||
import android.content.BroadcastReceiver;
|
||||
import android.content.Context;
|
||||
import android.content.IntentFilter;
|
||||
import android.net.wifi.WifiInfo;
|
||||
import android.net.wifi.WifiManager;
|
||||
import android.provider.Settings;
|
||||
import android.support.v7.preference.Preference;
|
||||
import android.support.v7.preference.PreferenceScreen;
|
||||
|
||||
import com.android.settings.R;
|
||||
import com.android.settings.testutils.SettingsRobolectricTestRunner;
|
||||
import com.android.settingslib.core.lifecycle.Lifecycle;
|
||||
|
||||
@@ -55,11 +58,15 @@ public class WifiInfoPreferenceControllerTest {
|
||||
private Preference mIpPreference;
|
||||
@Mock
|
||||
private Preference mMacPreference;
|
||||
@Mock
|
||||
private WifiInfo mWifiInfo;
|
||||
|
||||
private Lifecycle mLifecycle;
|
||||
private LifecycleOwner mLifecycleOwner;
|
||||
private WifiInfoPreferenceController mController;
|
||||
|
||||
private static final String TEST_MAC_ADDRESS = "42:0a:23:43:ac:02";
|
||||
|
||||
@Before
|
||||
public void setUp() {
|
||||
MockitoAnnotations.initMocks(this);
|
||||
@@ -70,6 +77,7 @@ public class WifiInfoPreferenceControllerTest {
|
||||
when(mScreen.findPreference(anyString()))
|
||||
.thenReturn(mMacPreference)
|
||||
.thenReturn(mIpPreference);
|
||||
when(mWifiManager.getConnectionInfo()).thenReturn(mWifiInfo);
|
||||
mController = new WifiInfoPreferenceController(mContext, mLifecycle, mWifiManager);
|
||||
}
|
||||
|
||||
@@ -95,11 +103,32 @@ public class WifiInfoPreferenceControllerTest {
|
||||
@Test
|
||||
public void onResume_shouldUpdateWifiInfo() {
|
||||
when(mWifiManager.getCurrentNetwork()).thenReturn(null);
|
||||
when(mWifiInfo.getMacAddress()).thenReturn(TEST_MAC_ADDRESS);
|
||||
|
||||
mController.displayPreference(mScreen);
|
||||
mController.onResume();
|
||||
|
||||
verify(mMacPreference).setSummary(any());
|
||||
verify(mMacPreference).setSummary(TEST_MAC_ADDRESS);
|
||||
verify(mIpPreference).setSummary(any());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testUpdateMacAddress() {
|
||||
when(mWifiManager.getCurrentNetwork()).thenReturn(null);
|
||||
Settings.Global.putInt(mContext.getContentResolver(),
|
||||
Settings.Global.WIFI_CONNECTED_MAC_RANDOMIZATION_ENABLED, 1);
|
||||
mController.displayPreference(mScreen);
|
||||
|
||||
when(mWifiInfo.getMacAddress()).thenReturn(null);
|
||||
mController.updateWifiInfo();
|
||||
verify(mMacPreference).setSummary(R.string.status_unavailable);
|
||||
|
||||
when(mWifiInfo.getMacAddress()).thenReturn(WifiInfo.DEFAULT_MAC_ADDRESS);
|
||||
mController.updateWifiInfo();
|
||||
verify(mMacPreference).setSummary(R.string.wifi_status_mac_randomized);
|
||||
|
||||
when(mWifiInfo.getMacAddress()).thenReturn(TEST_MAC_ADDRESS);
|
||||
mController.updateWifiInfo();
|
||||
verify(mMacPreference).setSummary(TEST_MAC_ADDRESS);
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user