diff --git a/res/layout/locale_order_list.xml b/res/layout/locale_order_list.xml
index da1eb62d996..36bb06d060b 100644
--- a/res/layout/locale_order_list.xml
+++ b/res/layout/locale_order_list.xml
@@ -44,7 +44,8 @@
android:textAlignment="textStart"
android:text="@string/add_a_language"
style="@style/Base.Widget.AppCompat.Button.Borderless"
- android:textAppearance="?android:attr/textAppearanceListItem"/>
+ android:textAppearance="?android:attr/textAppearanceListItem"
+ android:visibility="gone"/>
diff --git a/res/xml/languages.xml b/res/xml/languages.xml
index d478aa18ded..1fb6368efba 100644
--- a/res/xml/languages.xml
+++ b/res/xml/languages.xml
@@ -31,6 +31,13 @@
+
+
(mLocaleList.size());
mPreferences = new ArrayMap<>();
mMetricsFeatureProvider = FeatureFactory.getFeatureFactory().getMetricsFeatureProvider();
}
@@ -246,7 +243,7 @@ public abstract class LocalePickerBaseListPreferenceController extends
private void setupLocaleList() {
mLocaleList = getLocaleCollectorController(mContext).getSupportedLocaleList(
mParentLocale, false, mIsCountryMode);
- mLocaleOptions.clear();
+ mLocaleOptions = new ArrayList<>(mLocaleList.size());
}
private List getSortedLocaleList(
@@ -262,7 +259,9 @@ public abstract class LocalePickerBaseListPreferenceController extends
boolean shouldShowLocaleEditor = shouldShowLocaleEditor(localeInfo);
if (shouldShowLocaleEditor) {
List feedItemList = getUserLocaleList();
- feedItemList.add(localeInfo);
+ for (LocaleStore.LocaleInfo locale : mLocaleList) {
+ feedItemList.add(locale);
+ }
LocaleList localeList = new LocaleList(feedItemList.stream()
.map(LocaleStore.LocaleInfo::getLocale)
.toArray(Locale[]::new));
diff --git a/tests/robotests/src/com/android/settings/localepicker/LocaleListEditorTest.java b/tests/robotests/src/com/android/settings/localepicker/LocaleListEditorTest.java
index 0d5a952f686..4272afe8eba 100644
--- a/tests/robotests/src/com/android/settings/localepicker/LocaleListEditorTest.java
+++ b/tests/robotests/src/com/android/settings/localepicker/LocaleListEditorTest.java
@@ -57,6 +57,7 @@ import android.widget.TextView;
import androidx.fragment.app.FragmentActivity;
import androidx.fragment.app.FragmentManager;
import androidx.fragment.app.FragmentTransaction;
+import androidx.preference.Preference;
import androidx.test.core.app.ApplicationProvider;
import com.android.internal.app.LocaleStore;
@@ -145,6 +146,8 @@ public class LocaleListEditorTest {
private ImageView mDragHandle;
@Mock
private NotificationController mNotificationController;
+ @Mock
+ private Preference mAddLanguagePreference;
@Rule
public final CheckFlagsRule mCheckFlagsRule =
@@ -168,6 +171,8 @@ public class LocaleListEditorTest {
context.getSystemService(Context.USER_SERVICE));
ReflectionHelpers.setField(mLocaleListEditor, "mAdapter", mAdapter);
ReflectionHelpers.setField(mLocaleListEditor, "mAddLanguage", mAddLanguage);
+ ReflectionHelpers.setField(mLocaleListEditor, "mAddLanguagePreference",
+ mAddLanguagePreference);
ReflectionHelpers.setField(mLocaleListEditor, "mFragmentManager", mFragmentManager);
ReflectionHelpers.setField(mLocaleListEditor, "mMetricsFeatureProvider",
mMetricsFeatureProvider);