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

Commit e2904eb7 authored by Salvador Martinez's avatar Salvador Martinez Committed by android-build-merger
Browse files

Fix null pointer exception when surveys are turned off

am: 9db3cb3b

Change-Id: I9f71f40a715cfb65d8a5bc53fed64e674bd0515d
parents 718de5da 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);
    }
}