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

Commit 18d9c18b authored by Michele Berionne's avatar Michele Berionne
Browse files

Create a single instance of CarrierPrivilegesTracker

Bug: 191709348
Test: manual
Change-Id: Id59213e7210faf99fcebda999f77aad12c65e94c
parent a083ee0b
Loading
Loading
Loading
Loading
+8 −0
Original line number Diff line number Diff line
@@ -44,6 +44,7 @@ import android.os.AsyncResult;
import android.os.Build;
import android.os.Bundle;
import android.os.Handler;
import android.os.Looper;
import android.os.Message;
import android.os.PersistableBundle;
import android.os.PowerManager;
@@ -265,6 +266,7 @@ public class GsmCdmaPhone extends Phone {
    private final SettingsObserver mSettingsObserver;

    private final ImsManagerFactory mImsManagerFactory;
    private final CarrierPrivilegesTracker mCarrierPrivilegesTracker;

    // Constructors

@@ -329,6 +331,7 @@ public class GsmCdmaPhone extends Phone {

        mCarrierResolver = mTelephonyComponentFactory.inject(CarrierResolver.class.getName())
                .makeCarrierResolver(this);
        mCarrierPrivilegesTracker = new CarrierPrivilegesTracker(Looper.myLooper(), this, context);

        getCarrierActionAgent().registerForCarrierAction(
                CarrierActionAgent.CARRIER_ACTION_SET_METERED_APNS_ENABLED, this,
@@ -1051,6 +1054,11 @@ public class GsmCdmaPhone extends Phone {
        return mCT.mRingingCall;
    }

    @Override
    public CarrierPrivilegesTracker getCarrierPrivilegesTracker() {
        return mCarrierPrivilegesTracker;
    }

    /**
     * ImsService reports "IN_SERVICE" for its voice registration state even if the device
     * has lost the physical link to the tower. This helper method merges the IMS and modem
+1 −3
Original line number Diff line number Diff line
@@ -452,7 +452,6 @@ public abstract class Phone extends Handler implements PhoneInternalInterface {
    protected boolean mIsCarrierNrSupported = false;

    private boolean mUnitTestMode;
    private CarrierPrivilegesTracker mCarrierPrivilegesTracker = null;

    protected VoiceCallSessionStats mVoiceCallSessionStats;
    protected SmsStats mSmsStats;
@@ -613,7 +612,6 @@ public abstract class Phone extends Handler implements PhoneInternalInterface {
        mSimActivationTracker = mTelephonyComponentFactory
                .inject(SimActivationTracker.class.getName())
                .makeSimActivationTracker(this);
        mCarrierPrivilegesTracker = new CarrierPrivilegesTracker(mLooper, this, mContext);
        if (getPhoneType() != PhoneConstants.PHONE_TYPE_SIP) {
            mCi.registerForSrvccStateChanged(this, EVENT_SRVCC_STATE_CHANGED, null);
        }
@@ -4706,7 +4704,7 @@ public abstract class Phone extends Handler implements PhoneInternalInterface {

    /** @hide */
    public CarrierPrivilegesTracker getCarrierPrivilegesTracker() {
        return mCarrierPrivilegesTracker;
        return null;
    }

    public boolean useSsOverIms(Message onComplete) {
+9 −3
Original line number Diff line number Diff line
@@ -79,6 +79,7 @@ import android.util.Pair;
import android.util.TimeUtils;

import com.android.internal.annotations.VisibleForTesting;
import com.android.internal.telephony.CarrierPrivilegesTracker;
import com.android.internal.telephony.CarrierSignalAgent;
import com.android.internal.telephony.DctConstants;
import com.android.internal.telephony.Phone;
@@ -2571,9 +2572,11 @@ public class DataConnection extends StateMachine {
            // this connection are going away.
            mRestrictedNetworkOverride = shouldRestrictNetwork();

            mPhone.getCarrierPrivilegesTracker()
                    .registerCarrierPrivilegesListener(
            CarrierPrivilegesTracker carrierPrivTracker = mPhone.getCarrierPrivilegesTracker();
            if (carrierPrivTracker != null) {
                carrierPrivTracker.registerCarrierPrivilegesListener(
                            getHandler(), EVENT_CARRIER_PRIVILEGED_UIDS_CHANGED, null);
            }
            notifyDataConnectionState();
            mDataCallSessionStats.onSetupDataCall(apnTypeBitmask);
        }
@@ -2917,7 +2920,10 @@ public class DataConnection extends StateMachine {

            mVcnManager.removeVcnNetworkPolicyChangeListener(mVcnPolicyChangeListener);

            mPhone.getCarrierPrivilegesTracker().unregisterCarrierPrivilegesListener(getHandler());
            CarrierPrivilegesTracker carrierPrivTracker = mPhone.getCarrierPrivilegesTracker();
            if (carrierPrivTracker != null) {
                carrierPrivTracker.unregisterCarrierPrivilegesListener(getHandler());
            }
        }

        @Override
+6 −0
Original line number Diff line number Diff line
@@ -95,6 +95,7 @@ import com.android.internal.telephony.CallFailCause;
import com.android.internal.telephony.CallForwardInfo;
import com.android.internal.telephony.CallStateException;
import com.android.internal.telephony.CallTracker;
import com.android.internal.telephony.CarrierPrivilegesTracker;
import com.android.internal.telephony.CommandException;
import com.android.internal.telephony.CommandsInterface;
import com.android.internal.telephony.Connection;
@@ -627,6 +628,11 @@ public class ImsPhone extends ImsPhoneBase {
        return mCT.isImsServiceReady();
    }

    @Override
    public CarrierPrivilegesTracker getCarrierPrivilegesTracker() {
        return mDefaultPhone.getCarrierPrivilegesTracker();
    }

    /**
     * Hold the currently active call, possibly unholding a currently held call.
     * @throws CallStateException