From b0f51ff8fb93656337a6a192674e9694aebae2be Mon Sep 17 00:00:00 2001 From: Zoey Chen Date: Tue, 13 Aug 2024 11:17:18 +0000 Subject: [PATCH] [Settings] Do not create fragment twice Bug: 353141266 Test: manual Flag: EXEMPT bugfix Change-Id: Id300fa4ae7b6edc7663da2efe6bd5ce5401d4947 --- .../LocalePickerWithRegionActivity.java | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/src/com/android/settings/localepicker/LocalePickerWithRegionActivity.java b/src/com/android/settings/localepicker/LocalePickerWithRegionActivity.java index 6e596e16883..05cb6a48d1e 100644 --- a/src/com/android/settings/localepicker/LocalePickerWithRegionActivity.java +++ b/src/com/android/settings/localepicker/LocalePickerWithRegionActivity.java @@ -39,6 +39,7 @@ public class LocalePickerWithRegionActivity extends SettingsBaseActivity implements LocalePickerWithRegion.LocaleSelectedListener, MenuItem.OnActionExpandListener { private static final String TAG = LocalePickerWithRegionActivity.class.getSimpleName(); private static final String PARENT_FRAGMENT_NAME = "localeListEditor"; + private static final String CHILD_FRAGMENT_NAME = "LocalePickerWithRegion"; private LocalePickerWithRegion mSelector; @@ -68,12 +69,15 @@ public class LocalePickerWithRegionActivity extends SettingsBaseActivity explicitLocales, null /* appPackageName */, this); - getFragmentManager() - .beginTransaction() - .setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN) - .replace(R.id.content_frame, mSelector) - .addToBackStack(PARENT_FRAGMENT_NAME) - .commit(); + + if (getFragmentManager().findFragmentByTag(CHILD_FRAGMENT_NAME) == null) { + getFragmentManager() + .beginTransaction() + .setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN) + .replace(R.id.content_frame, mSelector, CHILD_FRAGMENT_NAME) + .addToBackStack(PARENT_FRAGMENT_NAME) + .commit(); + } } @Override