From e1b4b7fc7d0e8dacef4ab31e4a62586d44462204 Mon Sep 17 00:00:00 2001 From: SongFerngWang Date: Mon, 17 Jul 2023 15:23:35 +0800 Subject: [PATCH] Avoid the exception when UI shows the fragment Bug: 290145058 Test: build pass. Change-Id: Ic8d084cc98c3d0094d816e43fed57fb10446462d --- .../android/settings/sim/SimDialogActivity.java | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/src/com/android/settings/sim/SimDialogActivity.java b/src/com/android/settings/sim/SimDialogActivity.java index 7d399387191..e7b01857ded 100644 --- a/src/com/android/settings/sim/SimDialogActivity.java +++ b/src/com/android/settings/sim/SimDialogActivity.java @@ -280,8 +280,20 @@ public class SimDialogActivity extends FragmentActivity { public void showEnableAutoDataSwitchDialog() { final FragmentManager fragmentManager = getSupportFragmentManager(); SimDialogFragment fragment = createFragment(ENABLE_AUTO_DATA_SWITCH); - fragment.show(fragmentManager, Integer.toString(ENABLE_AUTO_DATA_SWITCH)); + if (fragmentManager.isStateSaved()) { + Log.w(TAG, "Failed to show EnableAutoDataSwitchDialog. The fragmentManager " + + "is StateSaved."); + forceClose(); + return; + } + try { + fragment.show(fragmentManager, Integer.toString(ENABLE_AUTO_DATA_SWITCH)); + } catch (Exception e) { + Log.e(TAG, "Failed to show EnableAutoDataSwitchDialog.", e); + forceClose(); + return; + } if (getResources().getBoolean( R.bool.config_auto_data_switch_enables_cross_sim_calling)) { // If auto data switch is already enabled on the non-DDS, the dialog for enabling it