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 */ }