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

Commit 071eb740 authored by Hall Liu's avatar Hall Liu
Browse files

Fix potential NPE in SubscriptionMonitor

Move the callback registration to after all the member variables have
been set up, so that a potential call to the callback doesn't end up
with uninitialized member variables.

Also clean up some imports

Fixes: 134102514
Test: manual
Change-Id: I202b00c58e11c77b6b31f0b5e17e6b9eee25ef33
parent b475e639
Loading
Loading
Loading
Loading
+6 −13
Original line number Diff line number Diff line
@@ -27,20 +27,13 @@ import android.os.Handler;
import android.os.Registrant;
import android.os.RegistrantList;
import android.os.RemoteException;
import android.os.ServiceManager;
import android.telephony.Rlog;
import android.telephony.SubscriptionManager;
import android.util.LocalLog;

import com.android.internal.annotations.VisibleForTesting;
import com.android.internal.telephony.ISub;
import com.android.internal.telephony.IOnSubscriptionsChangedListener;
import com.android.internal.telephony.ITelephonyRegistry;
import com.android.internal.telephony.PhoneConstants;

import java.io.FileDescriptor;
import java.io.PrintWriter;
import java.lang.IllegalArgumentException;

/**
 * Utility singleton to monitor subscription changes and help people act on them.
@@ -69,12 +62,6 @@ public class SubscriptionMonitor {

    public SubscriptionMonitor(ITelephonyRegistry tr, Context context,
            SubscriptionController subscriptionController, int numPhones) {
        try {
            tr.addOnSubscriptionsChangedListener(context.getOpPackageName(),
                    mSubscriptionsChangedListener);
        } catch (RemoteException e) {
        }

        mSubscriptionController = subscriptionController;
        mContext = context;

@@ -91,6 +78,12 @@ public class SubscriptionMonitor {
            mPhoneSubId[phoneId] = mSubscriptionController.getSubIdUsingPhoneId(phoneId);
        }

        try {
            tr.addOnSubscriptionsChangedListener(context.getOpPackageName(),
                    mSubscriptionsChangedListener);
        } catch (RemoteException e) {
        }

        mContext.registerReceiver(mDefaultDataSubscriptionChangedReceiver,
                new IntentFilter(TelephonyIntents.ACTION_DEFAULT_DATA_SUBSCRIPTION_CHANGED));
    }