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

* commit 'f372e331e46bb9852520fa76c76f99ad99441893':
  NPE when iterating by character and word in Launcher widgets.
This commit is contained in:
Svetoslav Ganov
2012-06-12 12:42:27 -07:00
committed by Android Git Automerger
2 changed files with 16 additions and 16 deletions

View File

@@ -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;
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

View File

@@ -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;
}