diff --git a/src/com/android/settings/wifi/details/WifiDetailPreferenceController.java b/src/com/android/settings/wifi/details/WifiDetailPreferenceController.java index a49ce40edf4..1105f742c09 100644 --- a/src/com/android/settings/wifi/details/WifiDetailPreferenceController.java +++ b/src/com/android/settings/wifi/details/WifiDetailPreferenceController.java @@ -442,9 +442,9 @@ public class WifiDetailPreferenceController extends AbstractPreferenceController private void updateIpLayerInfo() { mButtonsPref.setButton2Visible(canSignIntoNetwork()); - mButtonsPref.setButton3Visible(isSharingNetworkEnabled()); + mButtonsPref.setButton3Visible(canShareNetwork()); mButtonsPref.setVisible( - canSignIntoNetwork() || canForgetNetwork() || isSharingNetworkEnabled()); + canSignIntoNetwork() || canForgetNetwork() || canShareNetwork()); if (mNetwork == null || mLinkProperties == null) { mIpAddressPref.setVisible(false); @@ -532,8 +532,9 @@ public class WifiDetailPreferenceController extends AbstractPreferenceController /** * Returns whether the user can share the network represented by this preference with QR code. */ - private boolean isSharingNetworkEnabled() { - return FeatureFlagUtils.isEnabled(mContext, FeatureFlags.WIFI_SHARING); + private boolean canShareNetwork() { + return mAccessPoint.getConfig() != null && FeatureFlagUtils.isEnabled(mContext, + FeatureFlags.WIFI_SHARING); } /** diff --git a/tests/robotests/src/com/android/settings/wifi/details/WifiDetailPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/wifi/details/WifiDetailPreferenceControllerTest.java index e80e931d9e6..308d4b57cc1 100644 --- a/tests/robotests/src/com/android/settings/wifi/details/WifiDetailPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/wifi/details/WifiDetailPreferenceControllerTest.java @@ -685,6 +685,15 @@ public class WifiDetailPreferenceControllerTest { verify(mockButtonsPref).setButton1Visible(false); } + @Test + public void canShareNetwork_noNetwork() { + when(mockAccessPoint.getConfig()).thenReturn(null); + + displayAndResume(); + + verify(mockButtonsPref).setButton3Visible(false); + } + @Test public void canModifyNetwork_saved() { assertThat(mController.canModifyNetwork()).isTrue();