From 350938ecc69085badef2edc16491ff7a461dfb08 Mon Sep 17 00:00:00 2001 From: Amith Yamasani Date: Tue, 9 Apr 2013 10:22:47 -0700 Subject: [PATCH] Potential fix for a monkey-related NPE Cache the content resolver so that async callbacks, events can continue to get the cntent resolver when detached from the activity. This should help with stability. Bug: 8005271 Change-Id: Ia566bc312ce678b438004bdf4ed7537ac1604608 --- .../android/settings/SettingsPreferenceFragment.java | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/com/android/settings/SettingsPreferenceFragment.java b/src/com/android/settings/SettingsPreferenceFragment.java index 42c0b404aab..60765a99da0 100644 --- a/src/com/android/settings/SettingsPreferenceFragment.java +++ b/src/com/android/settings/SettingsPreferenceFragment.java @@ -20,6 +20,7 @@ import android.app.Dialog; import android.app.DialogFragment; import android.app.Fragment; import android.content.ContentResolver; +import android.content.Context; import android.content.DialogInterface; import android.content.Intent; import android.content.pm.PackageManager; @@ -48,6 +49,9 @@ public class SettingsPreferenceFragment extends PreferenceFragment implements Di private String mHelpUrl; + // Cache the content resolver for async callbacks + private ContentResolver mContentResolver; + @Override public void onCreate(Bundle icicle) { super.onCreate(icicle); @@ -104,7 +108,11 @@ public class SettingsPreferenceFragment extends PreferenceFragment implements Di * Returns the ContentResolver from the owning Activity. */ protected ContentResolver getContentResolver() { - return getActivity().getContentResolver(); + Context context = getActivity(); + if (context != null) { + mContentResolver = context.getContentResolver(); + } + return mContentResolver; } /**