Loading res/layout/locale_order_list.xml +2 −1 Original line number Diff line number Diff line Loading @@ -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"/> </LinearLayout> Loading res/xml/languages.xml +7 −0 Original line number Diff line number Diff line Loading @@ -31,6 +31,13 @@ <com.android.settingslib.widget.LayoutPreference android:key="languages_picker" android:layout="@layout/locale_order_list" /> <Preference android:key="add_a_language" android:title="@string/add_a_language" android:icon="@drawable/ic_add_24dp" settings:isPreferenceVisible="false" settings:fragment="com.android.settings.localepicker.SystemLocalePickerFragment"/> </PreferenceCategory> <PreferenceCategory Loading src/com/android/settings/localepicker/LocaleListEditor.java +26 −14 Original line number Diff line number Diff line Loading @@ -46,6 +46,7 @@ import android.widget.TextView; import androidx.annotation.NonNull; import androidx.annotation.VisibleForTesting; import androidx.fragment.app.FragmentManager; import androidx.preference.Preference; import androidx.preference.PreferenceScreen; import androidx.recyclerview.widget.RecyclerView; Loading @@ -53,6 +54,7 @@ import com.android.internal.app.LocalePicker; import com.android.internal.app.LocaleStore; import com.android.settings.R; import com.android.settings.RestrictedSettingsFragment; import com.android.settings.flags.Flags; import com.android.settings.overlay.FeatureFactory; import com.android.settings.search.BaseSearchIndexProvider; import com.android.settingslib.search.SearchIndexable; Loading Loading @@ -84,6 +86,7 @@ public class LocaleListEditor extends RestrictedSettingsFragment implements View private static final String INDEX_KEY_ADD_LANGUAGE = "add_language"; private static final String KEY_LANGUAGES_PICKER = "languages_picker"; private static final String KEY_CATEGORY_TERMS_OF_ADDRESS = "key_category_terms_of_address"; private static final String KEY_ADD_A_LANGUAGE = "add_a_language"; private static final String TAG_DIALOG_CONFIRM_SYSTEM_DEFAULT = "dialog_confirm_system_default"; private static final String TAG_DIALOG_NOT_AVAILABLE = "dialog_not_available_locale"; private static final String TAG_DIALOG_ADD_SYSTEM_LOCALE = "dialog_add_system_locale"; Loading @@ -92,6 +95,7 @@ public class LocaleListEditor extends RestrictedSettingsFragment implements View private LocaleDragAndDropAdapter mAdapter; private Menu mMenu; private View mAddLanguage; private Preference mAddLanguagePreference; private boolean mRemoveMode; private boolean mShowingRemoveDialog; private boolean mLocaleAdditionMode = false; Loading Loading @@ -282,7 +286,11 @@ public class LocaleListEditor extends RestrictedSettingsFragment implements View private void setRemoveMode(boolean mRemoveMode) { this.mRemoveMode = mRemoveMode; mAdapter.setRemoveMode(mRemoveMode); if (Flags.settingsExpressiveDesignEnabled()) { mAddLanguagePreference.setVisible(!mRemoveMode); } else { mAddLanguage.setVisibility(mRemoveMode ? View.INVISIBLE : View.VISIBLE); } updateVisibilityOfRemoveMenu(); } Loading Loading @@ -489,10 +497,13 @@ public class LocaleListEditor extends RestrictedSettingsFragment implements View list.setAdapter(mAdapter); list.setOnTouchListener(this); list.requestFocus(); if (Flags.settingsExpressiveDesignEnabled()) { mAddLanguagePreference = getPreferenceScreen().findPreference(KEY_ADD_A_LANGUAGE); } else { mAddLanguage = layout.findViewById(R.id.add_language); mAddLanguage.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { public void onClick(@NonNull View v) { FeatureFactory.getFeatureFactory().getMetricsFeatureProvider() .logSettingsTileClick(INDEX_KEY_ADD_LANGUAGE, getMetricsCategory()); Loading @@ -503,6 +514,7 @@ public class LocaleListEditor extends RestrictedSettingsFragment implements View } }); } } @Override public boolean onTouch(View v, MotionEvent event) { Loading src/com/android/settings/localepicker/LocalePickerBaseListPreferenceController.java +4 −5 Original line number Diff line number Diff line Loading @@ -75,9 +75,6 @@ public abstract class LocalePickerBaseListPreferenceController extends public LocalePickerBaseListPreferenceController(@NonNull Context context, @NonNull String preferenceKey) { super(context, preferenceKey); mLocaleList = getLocaleCollectorController(context).getSupportedLocaleList(null, false, false); mLocaleOptions = new ArrayList<>(mLocaleList.size()); mPreferences = new ArrayMap<>(); mMetricsFeatureProvider = FeatureFactory.getFeatureFactory().getMetricsFeatureProvider(); } Loading Loading @@ -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<LocaleStore.LocaleInfo> getSortedLocaleList( Loading @@ -262,7 +259,9 @@ public abstract class LocalePickerBaseListPreferenceController extends boolean shouldShowLocaleEditor = shouldShowLocaleEditor(localeInfo); if (shouldShowLocaleEditor) { List<LocaleStore.LocaleInfo> 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)); Loading tests/robotests/src/com/android/settings/localepicker/LocaleListEditorTest.java +5 −0 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -145,6 +146,8 @@ public class LocaleListEditorTest { private ImageView mDragHandle; @Mock private NotificationController mNotificationController; @Mock private Preference mAddLanguagePreference; @Rule public final CheckFlagsRule mCheckFlagsRule = Loading @@ -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); Loading Loading
res/layout/locale_order_list.xml +2 −1 Original line number Diff line number Diff line Loading @@ -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"/> </LinearLayout> Loading
res/xml/languages.xml +7 −0 Original line number Diff line number Diff line Loading @@ -31,6 +31,13 @@ <com.android.settingslib.widget.LayoutPreference android:key="languages_picker" android:layout="@layout/locale_order_list" /> <Preference android:key="add_a_language" android:title="@string/add_a_language" android:icon="@drawable/ic_add_24dp" settings:isPreferenceVisible="false" settings:fragment="com.android.settings.localepicker.SystemLocalePickerFragment"/> </PreferenceCategory> <PreferenceCategory Loading
src/com/android/settings/localepicker/LocaleListEditor.java +26 −14 Original line number Diff line number Diff line Loading @@ -46,6 +46,7 @@ import android.widget.TextView; import androidx.annotation.NonNull; import androidx.annotation.VisibleForTesting; import androidx.fragment.app.FragmentManager; import androidx.preference.Preference; import androidx.preference.PreferenceScreen; import androidx.recyclerview.widget.RecyclerView; Loading @@ -53,6 +54,7 @@ import com.android.internal.app.LocalePicker; import com.android.internal.app.LocaleStore; import com.android.settings.R; import com.android.settings.RestrictedSettingsFragment; import com.android.settings.flags.Flags; import com.android.settings.overlay.FeatureFactory; import com.android.settings.search.BaseSearchIndexProvider; import com.android.settingslib.search.SearchIndexable; Loading Loading @@ -84,6 +86,7 @@ public class LocaleListEditor extends RestrictedSettingsFragment implements View private static final String INDEX_KEY_ADD_LANGUAGE = "add_language"; private static final String KEY_LANGUAGES_PICKER = "languages_picker"; private static final String KEY_CATEGORY_TERMS_OF_ADDRESS = "key_category_terms_of_address"; private static final String KEY_ADD_A_LANGUAGE = "add_a_language"; private static final String TAG_DIALOG_CONFIRM_SYSTEM_DEFAULT = "dialog_confirm_system_default"; private static final String TAG_DIALOG_NOT_AVAILABLE = "dialog_not_available_locale"; private static final String TAG_DIALOG_ADD_SYSTEM_LOCALE = "dialog_add_system_locale"; Loading @@ -92,6 +95,7 @@ public class LocaleListEditor extends RestrictedSettingsFragment implements View private LocaleDragAndDropAdapter mAdapter; private Menu mMenu; private View mAddLanguage; private Preference mAddLanguagePreference; private boolean mRemoveMode; private boolean mShowingRemoveDialog; private boolean mLocaleAdditionMode = false; Loading Loading @@ -282,7 +286,11 @@ public class LocaleListEditor extends RestrictedSettingsFragment implements View private void setRemoveMode(boolean mRemoveMode) { this.mRemoveMode = mRemoveMode; mAdapter.setRemoveMode(mRemoveMode); if (Flags.settingsExpressiveDesignEnabled()) { mAddLanguagePreference.setVisible(!mRemoveMode); } else { mAddLanguage.setVisibility(mRemoveMode ? View.INVISIBLE : View.VISIBLE); } updateVisibilityOfRemoveMenu(); } Loading Loading @@ -489,10 +497,13 @@ public class LocaleListEditor extends RestrictedSettingsFragment implements View list.setAdapter(mAdapter); list.setOnTouchListener(this); list.requestFocus(); if (Flags.settingsExpressiveDesignEnabled()) { mAddLanguagePreference = getPreferenceScreen().findPreference(KEY_ADD_A_LANGUAGE); } else { mAddLanguage = layout.findViewById(R.id.add_language); mAddLanguage.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { public void onClick(@NonNull View v) { FeatureFactory.getFeatureFactory().getMetricsFeatureProvider() .logSettingsTileClick(INDEX_KEY_ADD_LANGUAGE, getMetricsCategory()); Loading @@ -503,6 +514,7 @@ public class LocaleListEditor extends RestrictedSettingsFragment implements View } }); } } @Override public boolean onTouch(View v, MotionEvent event) { Loading
src/com/android/settings/localepicker/LocalePickerBaseListPreferenceController.java +4 −5 Original line number Diff line number Diff line Loading @@ -75,9 +75,6 @@ public abstract class LocalePickerBaseListPreferenceController extends public LocalePickerBaseListPreferenceController(@NonNull Context context, @NonNull String preferenceKey) { super(context, preferenceKey); mLocaleList = getLocaleCollectorController(context).getSupportedLocaleList(null, false, false); mLocaleOptions = new ArrayList<>(mLocaleList.size()); mPreferences = new ArrayMap<>(); mMetricsFeatureProvider = FeatureFactory.getFeatureFactory().getMetricsFeatureProvider(); } Loading Loading @@ -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<LocaleStore.LocaleInfo> getSortedLocaleList( Loading @@ -262,7 +259,9 @@ public abstract class LocalePickerBaseListPreferenceController extends boolean shouldShowLocaleEditor = shouldShowLocaleEditor(localeInfo); if (shouldShowLocaleEditor) { List<LocaleStore.LocaleInfo> 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)); Loading
tests/robotests/src/com/android/settings/localepicker/LocaleListEditorTest.java +5 −0 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -145,6 +146,8 @@ public class LocaleListEditorTest { private ImageView mDragHandle; @Mock private NotificationController mNotificationController; @Mock private Preference mAddLanguagePreference; @Rule public final CheckFlagsRule mCheckFlagsRule = Loading @@ -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); Loading