diff --git a/packages/SettingsLib/src/com/android/settingslib/deviceinfo/AbstractWifiMacAddressPreferenceController.java b/packages/SettingsLib/src/com/android/settingslib/deviceinfo/AbstractWifiMacAddressPreferenceController.java index 71778215e0797..097c028714a1e 100644 --- a/packages/SettingsLib/src/com/android/settingslib/deviceinfo/AbstractWifiMacAddressPreferenceController.java +++ b/packages/SettingsLib/src/com/android/settingslib/deviceinfo/AbstractWifiMacAddressPreferenceController.java @@ -69,8 +69,10 @@ public abstract class AbstractWifiMacAddressPreferenceController @Override public void displayPreference(PreferenceScreen screen) { super.displayPreference(screen); - mWifiMacAddress = screen.findPreference(KEY_WIFI_MAC_ADDRESS); - updateConnectivity(); + if (isAvailable()) { + mWifiMacAddress = screen.findPreference(KEY_WIFI_MAC_ADDRESS); + updateConnectivity(); + } } @Override diff --git a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/deviceinfo/WifiMacAddressPreferenceControllerTest.java b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/deviceinfo/WifiMacAddressPreferenceControllerTest.java index 1f7f4bc1f6b62..7c2f0a8aaa714 100644 --- a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/deviceinfo/WifiMacAddressPreferenceControllerTest.java +++ b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/deviceinfo/WifiMacAddressPreferenceControllerTest.java @@ -20,7 +20,9 @@ import static com.google.common.truth.Truth.assertThat; import static com.google.common.truth.Truth.assertWithMessage; import static org.mockito.Mockito.doReturn; +import static org.mockito.Mockito.never; import static org.mockito.Mockito.spy; +import static org.mockito.Mockito.verify; import android.annotation.SuppressLint; import android.content.Context; @@ -91,6 +93,19 @@ public class WifiMacAddressPreferenceControllerTest { .asList().containsAllIn(expectedIntents); } + @Test + public void updateConnectivity_notAvailable_notCalled() { + boolean mCalled = false; + mController = spy(new ConcreteWifiMacAddressPreferenceController(mContext, mLifecycle) { + @Override + public boolean isAvailable() { + return false; + } + }); + mController.displayPreference(mScreen); + verify(mController, never()).updateConnectivity(); + } + @Test public void updateConnectivity_null_setMacUnavailable() { doReturn(null).when(mWifiManager).getFactoryMacAddresses(); @@ -105,10 +120,6 @@ public class WifiMacAddressPreferenceControllerTest { doReturn(macAddresses).when(mWifiManager).getFactoryMacAddresses(); mController.displayPreference(mScreen); assertThat(mPreference.getSummary()).isEqualTo(TEST_MAC_ADDRESS); - - - - } private static class ConcreteWifiMacAddressPreferenceController