summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--core/java/android/view/AccessibilityIterators.java26
-rw-r--r--core/java/android/view/View.java6
2 files changed, 16 insertions, 16 deletions
diff --git a/core/java/android/view/AccessibilityIterators.java b/core/java/android/view/AccessibilityIterators.java
index 2a7dc181def1..17ce4f639f28 100644
--- a/core/java/android/view/AccessibilityIterators.java
+++ b/core/java/android/view/AccessibilityIterators.java
@@ -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
diff --git a/core/java/android/view/View.java b/core/java/android/view/View.java
index f005eeba151c..816b631bf987 100644
--- a/core/java/android/view/View.java
+++ b/core/java/android/view/View.java
@@ -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;
}