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