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

Commit 4fae501d authored by Wink Saville's avatar Wink Saville
Browse files

Add debug and check validity of mCardIndex.

Change-Id: Ic5a2baaacaf1810416b898dcb6171ef15e422f7f
parent bc28f088
Loading
Loading
Loading
Loading
+154 −93

File changed.

Preview size limit exceeded, changes collapsed.

+24 −19
Original line number Diff line number Diff line
@@ -97,7 +97,6 @@ public class IccCardProxy extends Handler implements IccCard {
    private static final int EVENT_SUBSCRIPTION_DEACTIVATED = 502;
    private static final int EVENT_CARRIER_PRIVILIGES_LOADED = 503;

    // FIXME Rename mCardIndex to mSlotId.
    private Integer mCardIndex = null;

    private final Object mLock = new Object();
@@ -120,23 +119,17 @@ public class IccCardProxy extends Handler implements IccCard {
    private boolean mInitialized = false;
    private State mExternalState = State.UNKNOWN;

    public IccCardProxy(Context context, CommandsInterface ci) {
        log("Creating");
    public IccCardProxy(Context context, CommandsInterface ci, int cardIndex) {
        if (DBG) log("ctor: ci=" + ci + " cardIndex=" + cardIndex);
        mContext = context;
        mCi = ci;
        mCardIndex = cardIndex;
        mCdmaSSM = CdmaSubscriptionSourceManager.getInstance(context,
                ci, this, EVENT_CDMA_SUBSCRIPTION_SOURCE_CHANGED, null);
        mUiccController = UiccController.getInstance();
        mUiccController.registerForIccChanged(this, EVENT_ICC_CHANGED, null);
        ci.registerForOn(this,EVENT_RADIO_ON, null);
        ci.registerForOffOrNotAvailable(this, EVENT_RADIO_OFF_OR_UNAVAILABLE, null);
        setExternalState(State.NOT_READY);
    }

    public IccCardProxy(Context context, CommandsInterface ci, int cardIndex) {
        this(context, ci);

        mCardIndex = cardIndex;

        resetProperties();
        setExternalState(State.NOT_READY, false);
@@ -197,6 +190,12 @@ public class IccCardProxy extends Handler implements IccCard {
                newQuietMode = (cdmaSource == Phone.CDMA_SUBSCRIPTION_NV)
                        && (mCurrentAppType == UiccController.APP_FAM_3GPP2)
                        && !isLteOnCdmaMode;
                if (DBG) {
                    log("updateQuietMode: cdmaSource=" + cdmaSource
                            + " mCurrentAppType=" + mCurrentAppType
                            + " isLteOnCdmaMode=" + isLteOnCdmaMode
                            + " newQuietMode=" + newQuietMode);
                }
            }

            if (mQuietMode == false && newQuietMode == true) {
@@ -212,6 +211,8 @@ public class IccCardProxy extends Handler implements IccCard {
                }
                mQuietMode = newQuietMode;
                setExternalState(mExternalState, true);
            } else {
                if (DBG) log("updateQuietMode: no changes don't setExternalState");
            }
            if (DBG) {
                log("updateQuietMode: QuietMode is " + mQuietMode + " (app_type="
@@ -476,14 +477,16 @@ public class IccCardProxy extends Handler implements IccCard {

    private void broadcastIccStateChangedIntent(String value, String reason) {
        synchronized (mLock) {
            if (mCardIndex == null) {
                loge("broadcastIccStateChangedIntent: Card Index is not set; Return!!");
            if (mCardIndex == null || !SubscriptionManager.isValidSlotId(mCardIndex)) {
                loge("broadcastIccStateChangedIntent: mCardIndex=" + mCardIndex
                        + " is invalid; Return!!");
                return;
            }

            if (mQuietMode) {
                log("QuietMode: NOT Broadcasting intent ACTION_SIM_STATE_CHANGED " +  value
                        + " reason " + reason);
                log("broadcastIccStateChangedIntent: QuietMode"
                        + " NOT Broadcasting intent ACTION_SIM_STATE_CHANGED "
                        + " value=" +  value + " reason=" + reason);
                return;
            }

@@ -493,8 +496,8 @@ public class IccCardProxy extends Handler implements IccCard {
            intent.putExtra(IccCardConstants.INTENT_KEY_ICC_STATE, value);
            intent.putExtra(IccCardConstants.INTENT_KEY_LOCKED_REASON, reason);
            SubscriptionManager.putPhoneIdAndSubIdExtra(intent, mCardIndex);
            log("Broadcasting intent ACTION_SIM_STATE_CHANGED " +  value
                + " reason " + reason + " for mCardIndex : " + mCardIndex);
            log("broadcastIccStateChangedIntent intent ACTION_SIM_STATE_CHANGED value=" + value
                + " reason=" + reason + " for mCardIndex=" + mCardIndex);
            ActivityManagerNative.broadcastStickyIntent(intent, READ_PHONE_STATE,
                    UserHandle.USER_ALL);
        }
@@ -502,15 +505,17 @@ public class IccCardProxy extends Handler implements IccCard {

    private void setExternalState(State newState, boolean override) {
        synchronized (mLock) {
            if (mCardIndex == null) {
                loge("setExternalState: Card Index is not set; Return!!");
            if (mCardIndex == null || !SubscriptionManager.isValidSlotId(mCardIndex)) {
                loge("setExternalState: mCardIndex=" + mCardIndex + " is invalid; Return!!");
                return;
            }

            if (!override && newState == mExternalState) {
                loge("setExternalState: !override and newstate unchanged from " + newState);
                return;
            }
            mExternalState = newState;
            loge("setExternalState: set mCardIndex=" + mCardIndex + " mExternalState=" + mExternalState);
            setSystemProperty(PROPERTY_SIM_STATE, mCardIndex, getState().toString());
            broadcastIccStateChangedIntent(getIccStateIntentString(mExternalState),
                    getIccStateReason(mExternalState));