Merge "About phone page getFactoryMacAddress"

This commit is contained in:
Oscar Shu
2018-12-18 03:42:40 +00:00
committed by Android (Google) Code Review
2 changed files with 11 additions and 98 deletions

View File

@@ -19,9 +19,7 @@ package com.android.settingslib.deviceinfo;
import android.annotation.SuppressLint;
import android.content.Context;
import android.net.ConnectivityManager;
import android.net.wifi.WifiInfo;
import android.net.wifi.WifiManager;
import android.provider.Settings;
import android.text.TextUtils;
import androidx.annotation.VisibleForTesting;
@@ -83,15 +81,13 @@ public abstract class AbstractWifiMacAddressPreferenceController
@SuppressLint("HardwareIds")
@Override
protected void updateConnectivity() {
WifiInfo wifiInfo = mWifiManager.getConnectionInfo();
final int macRandomizationMode = Settings.Global.getInt(mContext.getContentResolver(),
Settings.Global.WIFI_CONNECTED_MAC_RANDOMIZATION_ENABLED, OFF);
final String macAddress = wifiInfo == null ? null : wifiInfo.getMacAddress();
final String[] macAddresses = mWifiManager.getFactoryMacAddresses();
String macAddress = null;
if (macAddresses != null && macAddresses.length > 0) {
macAddress = macAddresses[0];
}
if (macRandomizationMode == ON && WifiInfo.DEFAULT_MAC_ADDRESS.equals(macAddress)) {
mWifiMacAddress.setSummary(R.string.wifi_status_mac_randomized);
} else if (TextUtils.isEmpty(macAddress)
|| WifiInfo.DEFAULT_MAC_ADDRESS.equals(macAddress)) {
if (TextUtils.isEmpty(macAddress)) {
mWifiMacAddress.setSummary(R.string.status_unavailable);
} else {
mWifiMacAddress.setSummary(macAddress);

View File

@@ -27,7 +27,6 @@ import android.content.Context;
import android.net.ConnectivityManager;
import android.net.wifi.WifiInfo;
import android.net.wifi.WifiManager;
import android.provider.Settings;
import androidx.preference.Preference;
import androidx.preference.PreferenceScreen;
@@ -93,105 +92,23 @@ public class WifiMacAddressPreferenceControllerTest {
}
@Test
public void updateConnectivity_nullWifiInfoWithMacRandomizationOff_setMacUnavailable() {
Settings.Global.putInt(mContext.getContentResolver(),
Settings.Global.WIFI_CONNECTED_MAC_RANDOMIZATION_ENABLED,
AbstractWifiMacAddressPreferenceController.OFF);
doReturn(null).when(mWifiManager).getConnectionInfo();
public void updateConnectivity_null_setMacUnavailable() {
doReturn(null).when(mWifiManager).getFactoryMacAddresses();
mController.displayPreference(mScreen);
assertThat(mPreference.getSummary())
.isEqualTo(mContext.getString(R.string.status_unavailable));
}
@Test
public void updateConnectivity_nullMacWithMacRandomizationOff_setMacUnavailable() {
Settings.Global.putInt(mContext.getContentResolver(),
Settings.Global.WIFI_CONNECTED_MAC_RANDOMIZATION_ENABLED,
AbstractWifiMacAddressPreferenceController.OFF);
doReturn(null).when(mWifiInfo).getMacAddress();
public void updateConnectivity_validMac_setValidMac() {
final String[] macAddresses = new String[]{TEST_MAC_ADDRESS};
doReturn(macAddresses).when(mWifiManager).getFactoryMacAddresses();
mController.displayPreference(mScreen);
assertThat(mPreference.getSummary())
.isEqualTo(mContext.getString(R.string.status_unavailable));
}
@Test
public void updateConnectivity_defaultMacWithMacRandomizationOff_setMacUnavailable() {
Settings.Global.putInt(mContext.getContentResolver(),
Settings.Global.WIFI_CONNECTED_MAC_RANDOMIZATION_ENABLED,
AbstractWifiMacAddressPreferenceController.OFF);
doReturn(WifiInfo.DEFAULT_MAC_ADDRESS).when(mWifiInfo).getMacAddress();
mController.displayPreference(mScreen);
assertThat(mPreference.getSummary())
.isEqualTo(mContext.getString(R.string.status_unavailable));
}
@Test
public void updateConnectivity_validMacWithMacRandomizationOff_setValidMac() {
Settings.Global.putInt(mContext.getContentResolver(),
Settings.Global.WIFI_CONNECTED_MAC_RANDOMIZATION_ENABLED,
AbstractWifiMacAddressPreferenceController.OFF);
doReturn(TEST_MAC_ADDRESS).when(mWifiInfo).getMacAddress();
mController.displayPreference(mScreen);
assertThat(mPreference.getSummary()).isEqualTo(TEST_MAC_ADDRESS);
}
@Test
public void updateConnectivity_nullWifiInfoWithMacRandomizationOn_setMacUnavailable() {
Settings.Global.putInt(mContext.getContentResolver(),
Settings.Global.WIFI_CONNECTED_MAC_RANDOMIZATION_ENABLED,
AbstractWifiMacAddressPreferenceController.ON);
doReturn(null).when(mWifiManager).getConnectionInfo();
mController.displayPreference(mScreen);
assertThat(mPreference.getSummary())
.isEqualTo(mContext.getString(R.string.status_unavailable));
}
@Test
public void updateConnectivity_nullMacWithMacRandomizationOn_setMacUnavailable() {
Settings.Global.putInt(mContext.getContentResolver(),
Settings.Global.WIFI_CONNECTED_MAC_RANDOMIZATION_ENABLED,
AbstractWifiMacAddressPreferenceController.ON);
doReturn(null).when(mWifiInfo).getMacAddress();
mController.displayPreference(mScreen);
assertThat(mPreference.getSummary())
.isEqualTo(mContext.getString(R.string.status_unavailable));
}
@Test
public void updateConnectivity_defaultMacWithMacRandomizationOn_setMacRandomized() {
Settings.Global.putInt(mContext.getContentResolver(),
Settings.Global.WIFI_CONNECTED_MAC_RANDOMIZATION_ENABLED,
AbstractWifiMacAddressPreferenceController.ON);
doReturn(WifiInfo.DEFAULT_MAC_ADDRESS).when(mWifiInfo).getMacAddress();
mController.displayPreference(mScreen);
assertThat(mPreference.getSummary())
.isEqualTo(mContext.getString(R.string.wifi_status_mac_randomized));
}
@Test
public void updateConnectivity_validMacWithMacRandomizationOn_setValidMac() {
Settings.Global.putInt(mContext.getContentResolver(),
Settings.Global.WIFI_CONNECTED_MAC_RANDOMIZATION_ENABLED,
AbstractWifiMacAddressPreferenceController.ON);
doReturn(TEST_MAC_ADDRESS).when(mWifiInfo).getMacAddress();
mController.displayPreference(mScreen);
assertThat(mPreference.getSummary()).isEqualTo(TEST_MAC_ADDRESS);
}
private static class ConcreteWifiMacAddressPreferenceController