Merge "[Panlingual] Fix settings crash due to no content view." into tm-dev am: e79605c652 am: e24b3ee152

Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Settings/+/17684392

Change-Id: I3c806d8379d971cb5ef063314306c00d13bc890a
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
diff --git a/src/com/android/settings/localepicker/AppLocalePickerActivity.java b/src/com/android/settings/localepicker/AppLocalePickerActivity.java
index 4f23ae8..d3c855e 100644
--- a/src/com/android/settings/localepicker/AppLocalePickerActivity.java
+++ b/src/com/android/settings/localepicker/AppLocalePickerActivity.java
@@ -88,12 +88,6 @@
     }
 
     @Override
-    public void onResume() {
-        super.onResume();
-        mLocalePickerWithRegion.getListView().addHeaderView(launchAppLocaleDetailsPage());
-    }
-
-    @Override
     public boolean onOptionsItemSelected(MenuItem item) {
         if (item.getItemId() == android.R.id.home) {
             super.onBackPressed();
@@ -136,7 +130,19 @@
     void launchLocalePickerPage() {
         // LocalePickerWithRegion use android.app.ListFragment. Thus, it can not use
         // getSupportFragmentManager() to add this into container.
-        getFragmentManager().beginTransaction()
+        android.app.FragmentManager fragmentManager = getFragmentManager();
+        fragmentManager.registerFragmentLifecycleCallbacks(
+                new android.app.FragmentManager.FragmentLifecycleCallbacks() {
+                    @Override
+                    public void onFragmentResumed(
+                            android.app.FragmentManager fm,
+                            android.app.Fragment f) {
+                        super.onFragmentResumed(fm, f);
+                        mLocalePickerWithRegion.getListView()
+                                .addHeaderView(launchAppLocaleDetailsPage());
+                    }
+                }, true);
+        fragmentManager.beginTransaction()
                 .setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN)
                 .replace(R.id.content_frame, mLocalePickerWithRegion)
                 .commit();