Merge "NPE when iterating by character and word in Launcher widgets." into jb-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
f372e331e4
@@ -70,20 +70,19 @@ public final class AccessibilityIterators {
|
|||||||
implements ComponentCallbacks {
|
implements ComponentCallbacks {
|
||||||
private static CharacterTextSegmentIterator sInstance;
|
private static CharacterTextSegmentIterator sInstance;
|
||||||
|
|
||||||
private final Context mAppContext;
|
private Locale mLocale;
|
||||||
|
|
||||||
protected BreakIterator mImpl;
|
protected BreakIterator mImpl;
|
||||||
|
|
||||||
public static CharacterTextSegmentIterator getInstance(Context context) {
|
public static CharacterTextSegmentIterator getInstance(Locale locale) {
|
||||||
if (sInstance == null) {
|
if (sInstance == null) {
|
||||||
sInstance = new CharacterTextSegmentIterator(context);
|
sInstance = new CharacterTextSegmentIterator(locale);
|
||||||
}
|
}
|
||||||
return sInstance;
|
return sInstance;
|
||||||
}
|
}
|
||||||
|
|
||||||
private CharacterTextSegmentIterator(Context context) {
|
private CharacterTextSegmentIterator(Locale locale) {
|
||||||
mAppContext = context.getApplicationContext();
|
mLocale = locale;
|
||||||
Locale locale = mAppContext.getResources().getConfiguration().locale;
|
|
||||||
onLocaleChanged(locale);
|
onLocaleChanged(locale);
|
||||||
ViewRootImpl.addConfigCallback(this);
|
ViewRootImpl.addConfigCallback(this);
|
||||||
}
|
}
|
||||||
@@ -148,10 +147,9 @@ public final class AccessibilityIterators {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onConfigurationChanged(Configuration newConfig) {
|
public void onConfigurationChanged(Configuration newConfig) {
|
||||||
Configuration oldConfig = mAppContext.getResources().getConfiguration();
|
Locale locale = newConfig.locale;
|
||||||
final int changed = oldConfig.diff(newConfig);
|
if (!mLocale.equals(locale)) {
|
||||||
if ((changed & ActivityInfo.CONFIG_LOCALE) != 0) {
|
mLocale = locale;
|
||||||
Locale locale = newConfig.locale;
|
|
||||||
onLocaleChanged(locale);
|
onLocaleChanged(locale);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -169,15 +167,15 @@ public final class AccessibilityIterators {
|
|||||||
static class WordTextSegmentIterator extends CharacterTextSegmentIterator {
|
static class WordTextSegmentIterator extends CharacterTextSegmentIterator {
|
||||||
private static WordTextSegmentIterator sInstance;
|
private static WordTextSegmentIterator sInstance;
|
||||||
|
|
||||||
public static WordTextSegmentIterator getInstance(Context context) {
|
public static WordTextSegmentIterator getInstance(Locale locale) {
|
||||||
if (sInstance == null) {
|
if (sInstance == null) {
|
||||||
sInstance = new WordTextSegmentIterator(context);
|
sInstance = new WordTextSegmentIterator(locale);
|
||||||
}
|
}
|
||||||
return sInstance;
|
return sInstance;
|
||||||
}
|
}
|
||||||
|
|
||||||
private WordTextSegmentIterator(Context context) {
|
private WordTextSegmentIterator(Locale locale) {
|
||||||
super(context);
|
super(locale);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -6957,7 +6957,8 @@ public class View implements Drawable.Callback, Drawable.Callback2, KeyEvent.Cal
|
|||||||
CharSequence text = getIterableTextForAccessibility();
|
CharSequence text = getIterableTextForAccessibility();
|
||||||
if (text != null && text.length() > 0) {
|
if (text != null && text.length() > 0) {
|
||||||
CharacterTextSegmentIterator iterator =
|
CharacterTextSegmentIterator iterator =
|
||||||
CharacterTextSegmentIterator.getInstance(mContext);
|
CharacterTextSegmentIterator.getInstance(
|
||||||
|
mContext.getResources().getConfiguration().locale);
|
||||||
iterator.initialize(text.toString());
|
iterator.initialize(text.toString());
|
||||||
return iterator;
|
return iterator;
|
||||||
}
|
}
|
||||||
@@ -6966,7 +6967,8 @@ public class View implements Drawable.Callback, Drawable.Callback2, KeyEvent.Cal
|
|||||||
CharSequence text = getIterableTextForAccessibility();
|
CharSequence text = getIterableTextForAccessibility();
|
||||||
if (text != null && text.length() > 0) {
|
if (text != null && text.length() > 0) {
|
||||||
WordTextSegmentIterator iterator =
|
WordTextSegmentIterator iterator =
|
||||||
WordTextSegmentIterator.getInstance(mContext);
|
WordTextSegmentIterator.getInstance(
|
||||||
|
mContext.getResources().getConfiguration().locale);
|
||||||
iterator.initialize(text.toString());
|
iterator.initialize(text.toString());
|
||||||
return iterator;
|
return iterator;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user