Fix a possible NPE

Bug: 9301208
Change-Id: Id120c99ab9ef698d16cf7b8beea30c98c95d23a1
main
Satoshi Kataoka 2013-06-06 10:57:47 +09:00
parent 9c440d1373
commit 6f9c6f2c64
1 changed files with 8 additions and 0 deletions

View File

@ -21,6 +21,7 @@ import android.content.SharedPreferences;
import android.content.pm.ApplicationInfo; import android.content.pm.ApplicationInfo;
import android.content.res.Resources; import android.content.res.Resources;
import android.preference.PreferenceManager; import android.preference.PreferenceManager;
import android.util.Log;
import com.android.inputmethod.latin.LocaleUtils.RunInLocale; import com.android.inputmethod.latin.LocaleUtils.RunInLocale;
@ -28,6 +29,7 @@ import java.util.HashMap;
import java.util.Locale; import java.util.Locale;
public final class Settings implements SharedPreferences.OnSharedPreferenceChangeListener { public final class Settings implements SharedPreferences.OnSharedPreferenceChangeListener {
private static final String TAG = Settings.class.getSimpleName();
// In the same order as xml/prefs.xml // In the same order as xml/prefs.xml
public static final String PREF_GENERAL_SETTINGS = "general_settings"; public static final String PREF_GENERAL_SETTINGS = "general_settings";
public static final String PREF_AUTO_CAP = "auto_cap"; public static final String PREF_AUTO_CAP = "auto_cap";
@ -114,6 +116,12 @@ public final class Settings implements SharedPreferences.OnSharedPreferenceChang
@Override @Override
public void onSharedPreferenceChanged(final SharedPreferences prefs, final String key) { public void onSharedPreferenceChanged(final SharedPreferences prefs, final String key) {
if (mSettingsValues == null) {
// TODO: Introduce a static function to register this class and ensure that
// loadSettings must be called before "onSharedPreferenceChanged" is called.
Log.w(TAG, "onSharedPreferenceChanged called before loadSettings.");
return;
}
loadSettings(mCurrentLocale, mSettingsValues.mInputAttributes); loadSettings(mCurrentLocale, mSettingsValues.mInputAttributes);
} }