Fix crash issue when click 'Share' button

Hide 'Share' button if access point return null wifi config.

Change-Id: I554ce8c3214c94892d57c213d0588c70aad97439
Fixes: 123172888
Test: robotests
This commit is contained in:
Johnson Lu
2019-01-21 17:30:25 +08:00
parent 61447c7b88
commit 69b31596a2
2 changed files with 14 additions and 4 deletions

View File

@@ -442,9 +442,9 @@ public class WifiDetailPreferenceController extends AbstractPreferenceController
private void updateIpLayerInfo() { private void updateIpLayerInfo() {
mButtonsPref.setButton2Visible(canSignIntoNetwork()); mButtonsPref.setButton2Visible(canSignIntoNetwork());
mButtonsPref.setButton3Visible(isSharingNetworkEnabled()); mButtonsPref.setButton3Visible(canShareNetwork());
mButtonsPref.setVisible( mButtonsPref.setVisible(
canSignIntoNetwork() || canForgetNetwork() || isSharingNetworkEnabled()); canSignIntoNetwork() || canForgetNetwork() || canShareNetwork());
if (mNetwork == null || mLinkProperties == null) { if (mNetwork == null || mLinkProperties == null) {
mIpAddressPref.setVisible(false); 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. * Returns whether the user can share the network represented by this preference with QR code.
*/ */
private boolean isSharingNetworkEnabled() { private boolean canShareNetwork() {
return FeatureFlagUtils.isEnabled(mContext, FeatureFlags.WIFI_SHARING); return mAccessPoint.getConfig() != null && FeatureFlagUtils.isEnabled(mContext,
FeatureFlags.WIFI_SHARING);
} }
/** /**

View File

@@ -685,6 +685,15 @@ public class WifiDetailPreferenceControllerTest {
verify(mockButtonsPref).setButton1Visible(false); verify(mockButtonsPref).setButton1Visible(false);
} }
@Test
public void canShareNetwork_noNetwork() {
when(mockAccessPoint.getConfig()).thenReturn(null);
displayAndResume();
verify(mockButtonsPref).setButton3Visible(false);
}
@Test @Test
public void canModifyNetwork_saved() { public void canModifyNetwork_saved() {
assertThat(mController.canModifyNetwork()).isTrue(); assertThat(mController.canModifyNetwork()).isTrue();