[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
This commit is contained in:
tom hsu
2022-04-11 19:03:54 +08:00
parent 18bdecad94
commit db1b6accac

View File

@@ -87,12 +87,6 @@ public class AppLocalePickerActivity extends SettingsBaseActivity
launchLocalePickerPage();
}
@Override
public void onResume() {
super.onResume();
mLocalePickerWithRegion.getListView().addHeaderView(launchAppLocaleDetailsPage());
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
if (item.getItemId() == android.R.id.home) {
@@ -136,7 +130,19 @@ public class AppLocalePickerActivity extends SettingsBaseActivity
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();