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();
     }