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

Commit f372e331 authored by Svetoslav Ganov's avatar Svetoslav Ganov Committed by Android (Google) Code Review
Browse files

Merge "NPE when iterating by character and word in Launcher widgets." into jb-dev

parents 409d563b bbd31559
Loading
Loading
Loading
Loading
+12 −14
Original line number Diff line number Diff line
@@ -70,20 +70,19 @@ public final class AccessibilityIterators {
            implements ComponentCallbacks {
        private static CharacterTextSegmentIterator sInstance;

        private final Context mAppContext;
        private Locale mLocale;

        protected BreakIterator mImpl;

        public static CharacterTextSegmentIterator getInstance(Context context) {
        public static CharacterTextSegmentIterator getInstance(Locale locale) {
            if (sInstance == null) {
                sInstance = new CharacterTextSegmentIterator(context);
                sInstance = new CharacterTextSegmentIterator(locale);
            }
            return sInstance;
        }

        private CharacterTextSegmentIterator(Context context) {
            mAppContext = context.getApplicationContext();
            Locale locale = mAppContext.getResources().getConfiguration().locale;
        private CharacterTextSegmentIterator(Locale locale) {
            mLocale = locale;
            onLocaleChanged(locale);
            ViewRootImpl.addConfigCallback(this);
        }
@@ -148,10 +147,9 @@ public final class AccessibilityIterators {

        @Override
        public void onConfigurationChanged(Configuration newConfig) {
            Configuration oldConfig = mAppContext.getResources().getConfiguration();
            final int changed = oldConfig.diff(newConfig);
            if ((changed & ActivityInfo.CONFIG_LOCALE) != 0) {
            Locale locale = newConfig.locale;
            if (!mLocale.equals(locale)) {
                mLocale = locale;
                onLocaleChanged(locale);
            }
        }
@@ -169,15 +167,15 @@ public final class AccessibilityIterators {
    static class WordTextSegmentIterator extends CharacterTextSegmentIterator {
        private static WordTextSegmentIterator sInstance;

        public static WordTextSegmentIterator getInstance(Context context) {
        public static WordTextSegmentIterator getInstance(Locale locale) {
            if (sInstance == null) {
                sInstance = new WordTextSegmentIterator(context);
                sInstance = new WordTextSegmentIterator(locale);
            }
            return sInstance;
        }

        private WordTextSegmentIterator(Context context) {
           super(context);
        private WordTextSegmentIterator(Locale locale) {
           super(locale);
        }

        @Override
+4 −2
Original line number Diff line number Diff line
@@ -6957,7 +6957,8 @@ public class View implements Drawable.Callback, Drawable.Callback2, KeyEvent.Cal
                CharSequence text = getIterableTextForAccessibility();
                if (text != null && text.length() > 0) {
                    CharacterTextSegmentIterator iterator =
                        CharacterTextSegmentIterator.getInstance(mContext);
                        CharacterTextSegmentIterator.getInstance(
                                mContext.getResources().getConfiguration().locale);
                    iterator.initialize(text.toString());
                    return iterator;
                }
@@ -6966,7 +6967,8 @@ public class View implements Drawable.Callback, Drawable.Callback2, KeyEvent.Cal
                CharSequence text = getIterableTextForAccessibility();
                if (text != null && text.length() > 0) {
                    WordTextSegmentIterator iterator =
                        WordTextSegmentIterator.getInstance(mContext);
                        WordTextSegmentIterator.getInstance(
                                mContext.getResources().getConfiguration().locale);
                    iterator.initialize(text.toString());
                    return iterator;
                }