diff options
author | Ricardo Cerqueira <cyanogenmod@cerqueira.org> | 2013-06-21 16:28:52 +0100 |
---|---|---|
committer | Ricardo Cerqueira <cyanogenmod@cerqueira.org> | 2013-06-21 18:10:32 +0100 |
commit | 12c158f05ca43e941f9e971ffd51256db2f74557 (patch) | |
tree | 1a48ba2ff00a58e04cd33c44fbed4991f7231070 /packages/SystemUI/src | |
parent | 7fcde1a8a300f634d9fa8e6c7266a7fedb1f141c (diff) | |
download | frameworks_base-12c158f05ca43e941f9e971ffd51256db2f74557.zip frameworks_base-12c158f05ca43e941f9e971ffd51256db2f74557.tar.gz frameworks_base-12c158f05ca43e941f9e971ffd51256db2f74557.tar.bz2 |
QS: Don't assume observers are registered when dealing with changes
Not all uri activity has an associated content observer. Poking
the content://settings/system provider manually, for example,
would result in the following NPE:
AndroidRuntime: FATAL EXCEPTION: main
AndroidRuntime: java.lang.NullPointerException
AndroidRuntime: at com.android.systemui.statusbar.phone.QuickSettingsController$QuickSettingsObserver.onChange(QuickSettingsController.java:354)
AndroidRuntime: at android.database.ContentObserver$NotificationRunnable.run(ContentObserver.java:180)
AndroidRuntime: at android.os.Handler.handleCallback(Handler.java:725)
Change-Id: I7034d261804aa972fe9020dd9b602348d249cb33
Diffstat (limited to 'packages/SystemUI/src')
-rw-r--r-- | packages/SystemUI/src/com/android/systemui/statusbar/phone/QuickSettingsController.java | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/QuickSettingsController.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/QuickSettingsController.java index 834dfd4..f72b56c 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/QuickSettingsController.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/QuickSettingsController.java @@ -351,8 +351,10 @@ public class QuickSettingsController { mHandler.sendEmptyMessage(MSG_UPDATE_TILES); } else { ContentResolver resolver = mContext.getContentResolver(); - for (QuickSettingsTile tile : mObserverMap.get(uri)) { - tile.onChangeUri(resolver, uri); + if (mObserverMap != null && mObserverMap.get(uri) != null) { + for (QuickSettingsTile tile : mObserverMap.get(uri)) { + tile.onChangeUri(resolver, uri); + } } } } |