Fix null pointer exception when surveys are turned off

am: 9db3cb3bee

Change-Id: I9f71f40a715cfb65d8a5bc53fed64e674bd0515d
This commit is contained in:
Salvador Martinez
2017-01-27 20:03:08 +00:00
committed by android-build-merger
3 changed files with 10 additions and 7 deletions

View File

@@ -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;
}

View File

@@ -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;
}

View File

@@ -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);
}
}