[Panlingual] Fix settings crash due to no content view.
- Sometimes, listview may not created instantly, so move the action of
addHeaderView after fragment finished the onResume;
Bug: 228563549
Test: local
Change-Id: Ie5d53c962bed35783decd374c743a168a98cbf6a
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();