From 25dc3817a9dcb758dcc26f934d52cca5c4732d0f Mon Sep 17 00:00:00 2001 From: tom hsu Date: Wed, 13 Apr 2022 14:42:21 +0800 Subject: [PATCH] [Panlingual] Fix settings's crash. - fix crash due to no listview. Bug: 229044820 Test: local Change-Id: Ic3a15f9cfd89ff24ce1d764417de4686e10d3008 --- .../localepicker/AppLocalePickerActivity.java | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/src/com/android/settings/localepicker/AppLocalePickerActivity.java b/src/com/android/settings/localepicker/AppLocalePickerActivity.java index d3c855e658a..4700f3f5383 100644 --- a/src/com/android/settings/localepicker/AppLocalePickerActivity.java +++ b/src/com/android/settings/localepicker/AppLocalePickerActivity.java @@ -28,6 +28,7 @@ import android.util.Log; import android.view.MenuItem; import android.view.View; import android.widget.FrameLayout; +import android.widget.ListView; import com.android.internal.annotations.VisibleForTesting; import com.android.internal.app.LocalePickerWithRegion; @@ -49,6 +50,7 @@ public class AppLocalePickerActivity extends SettingsBaseActivity private LocalePickerWithRegion mLocalePickerWithRegion; private AppLocaleDetails mAppLocaleDetails; private Context mContextAsUser; + private View mAppLocaleDetailContainer; @Override public void onCreate(Bundle savedInstanceState) { @@ -82,7 +84,7 @@ public class AppLocalePickerActivity extends SettingsBaseActivity false /* translate only */, mPackageName); mAppLocaleDetails = AppLocaleDetails.newInstance(mPackageName); - + mAppLocaleDetailContainer = launchAppLocaleDetailsPage(); // Launch Locale picker part. launchLocalePickerPage(); } @@ -134,12 +136,14 @@ public class AppLocalePickerActivity extends SettingsBaseActivity fragmentManager.registerFragmentLifecycleCallbacks( new android.app.FragmentManager.FragmentLifecycleCallbacks() { @Override - public void onFragmentResumed( + public void onFragmentViewCreated( android.app.FragmentManager fm, - android.app.Fragment f) { - super.onFragmentResumed(fm, f); - mLocalePickerWithRegion.getListView() - .addHeaderView(launchAppLocaleDetailsPage()); + android.app.Fragment f, View v, Bundle s) { + super.onFragmentViewCreated(fm, f, v, s); + ListView listView = (ListView) v.findViewById(android.R.id.list); + if (listView != null) { + listView.addHeaderView(mAppLocaleDetailContainer); + } } }, true); fragmentManager.beginTransaction()