Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit f756b262 authored by Oli Lan's avatar Oli Lan
Browse files

Fix crash opening avatar picker in non-en-US locale.

This fixes a crash seen when opening the avatar picker if the current
language is not en-US.

The crash occurs because content descriptions are provided in a sring
array in an overlay, but the base empty array has been translated and
is replacing the actual descriptions in non-default locales.

This CL adds translatable=false to the base array, and adds a check
to not crash if the content descriptions array is smaller than the
images array.

Bug: 284422901
Test: Manual, try opening avatar picker in various locales.
Change-Id: I4a518cd37c4ca7139d182612cd02d79489948474
parent b4b4f204
Loading
Loading
Loading
Loading
+4 −2
Original line number Diff line number Diff line
@@ -643,8 +643,10 @@
         array must also be populated with a content description for each image. -->
    <array name="avatar_images"/>

    <!-- Content descriptions for each of the images in the avatar_images array. -->
    <string-array name="avatar_image_descriptions"/>
    <!-- Content descriptions for each of the images in the avatar_images array. When overlaid
         these values should be translated, but this empty array must not be translated or it may
         replace the real descriptions with an empty array. -->
    <string-array name="avatar_image_descriptions" translatable="false"/>

    <!-- NOTE: if you change this, you must also add the corresponding scale key and lookup table to
     frameworks/base/core/java/android/content/res/FontScaleConverterFactory.java -->
+1 −1
Original line number Diff line number Diff line
@@ -243,7 +243,7 @@ public class AvatarPickerActivity extends Activity {
                int index = indexFromPosition(position);
                viewHolder.setSelected(position == mSelectedPosition);
                viewHolder.setDrawable(mImageDrawables.get(index));
                if (mImageDescriptions != null) {
                if (mImageDescriptions != null && index < mImageDescriptions.size()) {
                    viewHolder.setContentDescription(mImageDescriptions.get(index));
                } else {
                    viewHolder.setContentDescription(getString(