@@ -70,20 +70,19 @@ static class CharacterTextSegmentIterator extends AbstractTextSegmentIterator
7070 implements ComponentCallbacks {
7171 private static CharacterTextSegmentIterator sInstance ;
7272
73- private final Context mAppContext ;
73+ private Locale mLocale ;
7474
7575 protected BreakIterator mImpl ;
7676
77- public static CharacterTextSegmentIterator getInstance (Context context ) {
77+ public static CharacterTextSegmentIterator getInstance (Locale locale ) {
7878 if (sInstance == null ) {
79- sInstance = new CharacterTextSegmentIterator (context );
79+ sInstance = new CharacterTextSegmentIterator (locale );
8080 }
8181 return sInstance ;
8282 }
8383
84- private CharacterTextSegmentIterator (Context context ) {
85- mAppContext = context .getApplicationContext ();
86- Locale locale = mAppContext .getResources ().getConfiguration ().locale ;
84+ private CharacterTextSegmentIterator (Locale locale ) {
85+ mLocale = locale ;
8786 onLocaleChanged (locale );
8887 ViewRootImpl .addConfigCallback (this );
8988 }
@@ -148,10 +147,9 @@ public int[] preceding(int offset) {
148147
149148 @ Override
150149 public void onConfigurationChanged (Configuration newConfig ) {
151- Configuration oldConfig = mAppContext .getResources ().getConfiguration ();
152- final int changed = oldConfig .diff (newConfig );
153- if ((changed & ActivityInfo .CONFIG_LOCALE ) != 0 ) {
154- Locale locale = newConfig .locale ;
150+ Locale locale = newConfig .locale ;
151+ if (!mLocale .equals (locale )) {
152+ mLocale = locale ;
155153 onLocaleChanged (locale );
156154 }
157155 }
@@ -169,15 +167,15 @@ protected void onLocaleChanged(Locale locale) {
169167 static class WordTextSegmentIterator extends CharacterTextSegmentIterator {
170168 private static WordTextSegmentIterator sInstance ;
171169
172- public static WordTextSegmentIterator getInstance (Context context ) {
170+ public static WordTextSegmentIterator getInstance (Locale locale ) {
173171 if (sInstance == null ) {
174- sInstance = new WordTextSegmentIterator (context );
172+ sInstance = new WordTextSegmentIterator (locale );
175173 }
176174 return sInstance ;
177175 }
178176
179- private WordTextSegmentIterator (Context context ) {
180- super (context );
177+ private WordTextSegmentIterator (Locale locale ) {
178+ super (locale );
181179 }
182180
183181 @ Override
0 commit comments