Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 4edcb927 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Fix null pointer exception when surveys are turned off" into nyc-mr2-dev

parents f15b23ad 9db3cb3b
Loading
Loading
Loading
Loading
+1 −3
Original line number Diff line number Diff line
@@ -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;
        }

+1 −3
Original line number Diff line number Diff line
@@ -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;
        }

+8 −1
Original line number Diff line number Diff line
@@ -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);
    }
}