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

Commit bf96bc5d authored by Wink Saville's avatar Wink Saville Committed by Android (Google) Code Review
Browse files

Merge "Add debug and check validity of mCardIndex." into lmp-mr1-dev

parents b42ae7c2 4fae501d
Loading
Loading
Loading
Loading
+154 −93

File changed.

Preview size limit exceeded, changes collapsed.

+24 −19
Original line number Original line 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_SUBSCRIPTION_DEACTIVATED = 502;
    private static final int EVENT_CARRIER_PRIVILIGES_LOADED = 503;
    private static final int EVENT_CARRIER_PRIVILIGES_LOADED = 503;


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


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


    public IccCardProxy(Context context, CommandsInterface ci) {
    public IccCardProxy(Context context, CommandsInterface ci, int cardIndex) {
        log("Creating");
        if (DBG) log("ctor: ci=" + ci + " cardIndex=" + cardIndex);
        mContext = context;
        mContext = context;
        mCi = ci;
        mCi = ci;
        mCardIndex = cardIndex;
        mCdmaSSM = CdmaSubscriptionSourceManager.getInstance(context,
        mCdmaSSM = CdmaSubscriptionSourceManager.getInstance(context,
                ci, this, EVENT_CDMA_SUBSCRIPTION_SOURCE_CHANGED, null);
                ci, this, EVENT_CDMA_SUBSCRIPTION_SOURCE_CHANGED, null);
        mUiccController = UiccController.getInstance();
        mUiccController = UiccController.getInstance();
        mUiccController.registerForIccChanged(this, EVENT_ICC_CHANGED, null);
        mUiccController.registerForIccChanged(this, EVENT_ICC_CHANGED, null);
        ci.registerForOn(this,EVENT_RADIO_ON, null);
        ci.registerForOn(this,EVENT_RADIO_ON, null);
        ci.registerForOffOrNotAvailable(this, EVENT_RADIO_OFF_OR_UNAVAILABLE, 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();
        resetProperties();
        setExternalState(State.NOT_READY, false);
        setExternalState(State.NOT_READY, false);
@@ -197,6 +190,12 @@ public class IccCardProxy extends Handler implements IccCard {
                newQuietMode = (cdmaSource == Phone.CDMA_SUBSCRIPTION_NV)
                newQuietMode = (cdmaSource == Phone.CDMA_SUBSCRIPTION_NV)
                        && (mCurrentAppType == UiccController.APP_FAM_3GPP2)
                        && (mCurrentAppType == UiccController.APP_FAM_3GPP2)
                        && !isLteOnCdmaMode;
                        && !isLteOnCdmaMode;
                if (DBG) {
                    log("updateQuietMode: cdmaSource=" + cdmaSource
                            + " mCurrentAppType=" + mCurrentAppType
                            + " isLteOnCdmaMode=" + isLteOnCdmaMode
                            + " newQuietMode=" + newQuietMode);
                }
            }
            }


            if (mQuietMode == false && newQuietMode == true) {
            if (mQuietMode == false && newQuietMode == true) {
@@ -212,6 +211,8 @@ public class IccCardProxy extends Handler implements IccCard {
                }
                }
                mQuietMode = newQuietMode;
                mQuietMode = newQuietMode;
                setExternalState(mExternalState, true);
                setExternalState(mExternalState, true);
            } else {
                if (DBG) log("updateQuietMode: no changes don't setExternalState");
            }
            }
            if (DBG) {
            if (DBG) {
                log("updateQuietMode: QuietMode is " + mQuietMode + " (app_type="
                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) {
    private void broadcastIccStateChangedIntent(String value, String reason) {
        synchronized (mLock) {
        synchronized (mLock) {
            if (mCardIndex == null) {
            if (mCardIndex == null || !SubscriptionManager.isValidSlotId(mCardIndex)) {
                loge("broadcastIccStateChangedIntent: Card Index is not set; Return!!");
                loge("broadcastIccStateChangedIntent: mCardIndex=" + mCardIndex
                        + " is invalid; Return!!");
                return;
                return;
            }
            }


            if (mQuietMode) {
            if (mQuietMode) {
                log("QuietMode: NOT Broadcasting intent ACTION_SIM_STATE_CHANGED " +  value
                log("broadcastIccStateChangedIntent: QuietMode"
                        + " reason " + reason);
                        + " NOT Broadcasting intent ACTION_SIM_STATE_CHANGED "
                        + " value=" +  value + " reason=" + reason);
                return;
                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_ICC_STATE, value);
            intent.putExtra(IccCardConstants.INTENT_KEY_LOCKED_REASON, reason);
            intent.putExtra(IccCardConstants.INTENT_KEY_LOCKED_REASON, reason);
            SubscriptionManager.putPhoneIdAndSubIdExtra(intent, mCardIndex);
            SubscriptionManager.putPhoneIdAndSubIdExtra(intent, mCardIndex);
            log("Broadcasting intent ACTION_SIM_STATE_CHANGED " +  value
            log("broadcastIccStateChangedIntent intent ACTION_SIM_STATE_CHANGED value=" + value
                + " reason " + reason + " for mCardIndex : " + mCardIndex);
                + " reason=" + reason + " for mCardIndex=" + mCardIndex);
            ActivityManagerNative.broadcastStickyIntent(intent, READ_PHONE_STATE,
            ActivityManagerNative.broadcastStickyIntent(intent, READ_PHONE_STATE,
                    UserHandle.USER_ALL);
                    UserHandle.USER_ALL);
        }
        }
@@ -502,15 +505,17 @@ public class IccCardProxy extends Handler implements IccCard {


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


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