Fix crash issue when click 'Share' button
Hide 'Share' button if access point return null wifi config.
Change-Id: I554ce8c3214c94892d57c213d0588c70aad97439
Fixes: 123172888
Test: robotests
diff --git a/src/com/android/settings/wifi/details/WifiDetailPreferenceController.java b/src/com/android/settings/wifi/details/WifiDetailPreferenceController.java
index a49ce40..1105f74 100644
--- a/src/com/android/settings/wifi/details/WifiDetailPreferenceController.java
+++ b/src/com/android/settings/wifi/details/WifiDetailPreferenceController.java
@@ -442,9 +442,9 @@
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 @@
/**
* 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 e80e931..308d4b5 100644
--- a/tests/robotests/src/com/android/settings/wifi/details/WifiDetailPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/wifi/details/WifiDetailPreferenceControllerTest.java
@@ -686,6 +686,15 @@
}
@Test
+ public void canShareNetwork_noNetwork() {
+ when(mockAccessPoint.getConfig()).thenReturn(null);
+
+ displayAndResume();
+
+ verify(mockButtonsPref).setButton3Visible(false);
+ }
+
+ @Test
public void canModifyNetwork_saved() {
assertThat(mController.canModifyNetwork()).isTrue();
}