From 083243df7678b8849cfb1da437093c5d8f805a0c Mon Sep 17 00:00:00 2001 From: lindatseng Date: Mon, 8 Apr 2019 15:11:58 -0700 Subject: [PATCH] Fix panel slices title not updated when locale changed When calling getSliceData from SliceDataConverter, we were returning the old version of List if there's one already existed. So when the Locale get changed and we are re-indexing data, we are still inserting the old List in database. We should reconstruct the List of SliceData instead of reusing the old version here, since we only call SliceDataConverter#getSliceData when we need to reindex. Test: Manual verification Fixes: 126732022 Change-Id: I42a3cf93dc313efefe50a34faabac9e1d616ef6c --- .../android/settings/slices/SliceDataConverter.java | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) diff --git a/src/com/android/settings/slices/SliceDataConverter.java b/src/com/android/settings/slices/SliceDataConverter.java index db46c26d627..14abd1b8118 100644 --- a/src/com/android/settings/slices/SliceDataConverter.java +++ b/src/com/android/settings/slices/SliceDataConverter.java @@ -78,11 +78,8 @@ class SliceDataConverter { private Context mContext; - private List mSliceData; - public SliceDataConverter(Context context) { mContext = context; - mSliceData = new ArrayList<>(); } /** @@ -96,9 +93,7 @@ class SliceDataConverter { * {@link com.android.settings.core.BasePreferenceController}. */ public List getSliceData() { - if (!mSliceData.isEmpty()) { - return mSliceData; - } + List sliceData = new ArrayList<>(); final Collection indexableClasses = FeatureFactory.getFactory(mContext) .getSearchFeatureProvider().getSearchIndexableResources().getProviderValues(); @@ -117,12 +112,12 @@ class SliceDataConverter { final List providerSliceData = getSliceDataFromProvider(provider, fragmentName); - mSliceData.addAll(providerSliceData); + sliceData.addAll(providerSliceData); } final List a11ySliceData = getAccessibilitySliceData(); - mSliceData.addAll(a11ySliceData); - return mSliceData; + sliceData.addAll(a11ySliceData); + return sliceData; } private List getSliceDataFromProvider(SearchIndexProvider provider,