From a15af39f7f0ce4ac77ee96f34a03140455c17977 Mon Sep 17 00:00:00 2001 From: Calvin Pan Date: Thu, 31 Mar 2022 09:15:24 +0800 Subject: [PATCH] Fix fetching incorrect items after filtering Using parent view's adapter to prevent getting incorrect item after filtering the list. Bug: 227447626 Bug: 227289977 Bug: 227279371 Test: By manual Change-Id: Ic7dde57cdc0dd44adf803317f836131d578f044b (cherry picked from commit d3df5bdf8436f320f1370922a52cf7d8e38d809b) --- .../com/android/internal/app/LocalePickerWithRegion.java | 7 +++---- .../com/android/internal/app/SuggestedLocaleAdapter.java | 4 ---- 2 files changed, 3 insertions(+), 8 deletions(-) diff --git a/core/java/com/android/internal/app/LocalePickerWithRegion.java b/core/java/com/android/internal/app/LocalePickerWithRegion.java index e7cb43e019ad..52c74cf81508 100644 --- a/core/java/com/android/internal/app/LocalePickerWithRegion.java +++ b/core/java/com/android/internal/app/LocalePickerWithRegion.java @@ -264,10 +264,9 @@ public class LocalePickerWithRegion extends ListFragment implements SearchView.O } @Override - public void onListItemClick(ListView l, View v, int position, long id) { - SuggestedLocaleAdapter adapter = (SuggestedLocaleAdapter) getListAdapter(); + public void onListItemClick(ListView parent, View v, int position, long id) { final LocaleStore.LocaleInfo locale = - (LocaleStore.LocaleInfo) adapter.getItem(position); + (LocaleStore.LocaleInfo) parent.getAdapter().getItem(position); // Special case for resetting the app locale to equal the system locale. boolean isSystemLocale = locale.isSystemLocale(); boolean isRegionLocale = locale.getParent() != null; @@ -280,7 +279,7 @@ public class LocalePickerWithRegion extends ListFragment implements SearchView.O } else { LocalePickerWithRegion selector = LocalePickerWithRegion.createCountryPicker( getContext(), mListener, locale, mTranslatedOnly /* translate only */, - adapter.getAppPackageName()); + mAppPackageName); if (selector != null) { getFragmentManager().beginTransaction() .setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN) diff --git a/core/java/com/android/internal/app/SuggestedLocaleAdapter.java b/core/java/com/android/internal/app/SuggestedLocaleAdapter.java index c3e7920ffc08..2eb104ed215a 100644 --- a/core/java/com/android/internal/app/SuggestedLocaleAdapter.java +++ b/core/java/com/android/internal/app/SuggestedLocaleAdapter.java @@ -348,8 +348,4 @@ public class SuggestedLocaleAdapter extends BaseAdapter implements Filterable { public Filter getFilter() { return new FilterByNativeAndUiNames(); } - - public String getAppPackageName() { - return mAppPackageName; - } }