diff --git a/src/com/android/settings/InstrumentedFragment.java b/src/com/android/settings/InstrumentedFragment.java index 4dedb98860d..29668005ead 100644 --- a/src/com/android/settings/InstrumentedFragment.java +++ b/src/com/android/settings/InstrumentedFragment.java @@ -77,9 +77,7 @@ public abstract class InstrumentedFragment extends PreferenceFragment { public void onPause() { Activity activity = getActivity(); if (mReceiver != null && activity != null) { - SurveyFeatureProvider provider = - FeatureFactory.getFactory(activity).getSurveyFeatureProvider(activity); - provider.unregisterReceiver(activity, mReceiver); + SurveyFeatureProvider.unregisterReceiver(activity, mReceiver); mReceiver = null; } diff --git a/src/com/android/settings/InstrumentedPreferenceFragment.java b/src/com/android/settings/InstrumentedPreferenceFragment.java index 1b3d5cd5596..ba6cb7903b2 100644 --- a/src/com/android/settings/InstrumentedPreferenceFragment.java +++ b/src/com/android/settings/InstrumentedPreferenceFragment.java @@ -66,9 +66,7 @@ public abstract class InstrumentedPreferenceFragment extends PreferenceFragment public void onPause() { Activity activity = getActivity(); if (mReceiver != null && activity != null) { - SurveyFeatureProvider provider = - FeatureFactory.getFactory(activity).getSurveyFeatureProvider(activity); - provider.unregisterReceiver(activity, mReceiver); + SurveyFeatureProvider.unregisterReceiver(activity, mReceiver); mReceiver = null; } diff --git a/src/com/android/settings/overlay/SurveyFeatureProvider.java b/src/com/android/settings/overlay/SurveyFeatureProvider.java index 907bed8f7bf..416a602bdb1 100644 --- a/src/com/android/settings/overlay/SurveyFeatureProvider.java +++ b/src/com/android/settings/overlay/SurveyFeatureProvider.java @@ -20,6 +20,7 @@ import android.content.BroadcastReceiver; import android.content.Context; import android.content.IntentFilter; import android.support.annotation.Nullable; +import android.support.v4.content.LocalBroadcastManager; /** * An interface for classes wishing to provide the ability to serve surveys to implement. @@ -81,5 +82,11 @@ public interface SurveyFeatureProvider { * after a call to {@link #createAndRegisterReceiver(Activity)}. * @param activity The activity that was used to register the BroadcastReceiver. */ - void unregisterReceiver(Activity activity, BroadcastReceiver receiver); + static void unregisterReceiver(Activity activity, BroadcastReceiver receiver) { + if (activity == null) { + throw new IllegalStateException("Cannot unregister receiver if activity is null"); + } + + LocalBroadcastManager.getInstance(activity).unregisterReceiver(receiver); + } }