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
This commit is contained in:
Weng Su
2024-08-23 06:16:33 +08:00
parent 8cd5a449dd
commit 64987b0bea

View File

@@ -27,6 +27,8 @@ import android.telephony.ims.ImsRcsManager;
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.network.MobileNetworkIntentConverter;
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 class Settings extends SettingsActivity {
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 */ }