From 69b31596a2f89ec14ede0a2146f288aae20fd3ab Mon Sep 17 00:00:00 2001 From: Johnson Lu Date: Mon, 21 Jan 2019 17:30:25 +0800 Subject: [PATCH] Fix crash issue when click 'Share' button Hide 'Share' button if access point return null wifi config. Change-Id: I554ce8c3214c94892d57c213d0588c70aad97439 Fixes: 123172888 Test: robotests --- .../wifi/details/WifiDetailPreferenceController.java | 9 +++++---- .../wifi/details/WifiDetailPreferenceControllerTest.java | 9 +++++++++ 2 files changed, 14 insertions(+), 4 deletions(-) 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();