Avoid launching Wi-Fi details settings if WifiEntry key is lost

- When restarting Wi-Fi details settings from the recent apps, the extra data of the sent Intent may be lost, resulting in the loss of the necessary WifiEntry key

- Don't launch Wi-Fi details settings and remove it from recent apps in the above case

Fix: 349180072
Flag: EXEMPT bugfix
Test: Manual testing
Change-Id: Ifa9718b0197ab27b77c24b706f7974a664980fba
diff --git a/src/com/android/settings/Settings.java b/src/com/android/settings/Settings.java
index 24d9525..8321588 100644
--- a/src/com/android/settings/Settings.java
+++ b/src/com/android/settings/Settings.java
@@ -27,6 +27,8 @@
 import android.text.TextUtils;
 import android.util.Log;
 
+import androidx.annotation.Nullable;
+
 import com.android.internal.annotations.VisibleForTesting;
 import com.android.settings.biometrics.face.FaceSettings;
 import com.android.settings.communal.CommunalPreferenceController;
@@ -35,6 +37,7 @@
 import com.android.settings.overlay.FeatureFactory;
 import com.android.settings.safetycenter.SafetyCenterManagerWrapper;
 import com.android.settings.security.SecuritySettingsFeatureProvider;
+import com.android.settings.wifi.WifiUtils;
 
 import com.google.android.setupdesign.util.ThemeHelper;
 
@@ -73,7 +76,18 @@
     public static class NetworkProviderSettingsActivity extends SettingsActivity { /* empty */ }
     public static class NetworkSelectActivity extends SettingsActivity { /* empty */ }
     /** Activity for the Wi-Fi network details settings. */
-    public static class WifiDetailsSettingsActivity extends SettingsActivity { /* empty */ }
+    public static class WifiDetailsSettingsActivity extends SettingsActivity {
+        @Override
+        protected void createUiFromIntent(@Nullable Bundle savedState, Intent intent) {
+            Bundle bundle = getIntent().getBundleExtra(EXTRA_SHOW_FRAGMENT_ARGUMENTS);
+            if (TextUtils.isEmpty(bundle.getString(WifiUtils.KEY_CHOSEN_WIFIENTRY_KEY))) {
+                Log.e(getLocalClassName(), "The key of WifiEntry is empty!");
+                finishAndRemoveTask();
+                return;
+            }
+            super.createUiFromIntent(savedState, intent);
+        }
+    }
     public static class WifiP2pSettingsActivity extends SettingsActivity { /* empty */ }
     public static class AvailableVirtualKeyboardActivity extends SettingsActivity { /* empty */ }
     public static class KeyboardLayoutPickerActivity extends SettingsActivity { /* empty */ }