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

Commit 7ec9ab88 authored by Kazuhiro Ondo's avatar Kazuhiro Ondo Committed by Android Git Automerger
Browse files

am a36c8f69: am 57675037: Further fix for SIM detection.

* commit 'a36c8f69':
  Further fix for SIM detection.
parents 9313a277 a36c8f69
Loading
Loading
Loading
Loading
+12 −1
Original line number Diff line number Diff line
@@ -785,7 +785,18 @@ public abstract class IccCard {
        if (right == IccCard.State.ABSENT) return left;
        if (left == IccCard.State.ABSENT) return right;

        // Disregards if either is NOT_READY
        // Only if both are ready, return ready
        if ((left == IccCard.State.READY) && (right == IccCard.State.READY)) {
            return State.READY;
        }

        // Case one is ready, but the other is not.
        if (((right == IccCard.State.NOT_READY) && (left == IccCard.State.READY)) ||
            ((left == IccCard.State.NOT_READY) && (right == IccCard.State.READY))) {
            return IccCard.State.NOT_READY;
        }

        // At this point, the other state is assumed to be one of locked state
        if (right == IccCard.State.NOT_READY) return left;
        if (left == IccCard.State.NOT_READY) return right;

+17 −2
Original line number Diff line number Diff line
@@ -48,22 +48,37 @@ public class CdmaLteServiceStateTracker extends CdmaServiceStateTracker {

    public CdmaLteServiceStateTracker(CDMALTEPhone phone) {
        super(phone);
        cm.registerForSIMReady(this, EVENT_SIM_READY, null);
        mCdmaLtePhone = phone;

        mLteSS = new ServiceState();
        if (DBG) log("CdmaLteServiceStateTracker Constructors");
    }

    public void dispose() {
        cm.unregisterForSIMReady(this);
        super.dispose();
    }

    @Override
    public void handleMessage(Message msg) {
        AsyncResult ar;
        int[] ints;
        String[] strings;
        if (msg.what == EVENT_POLL_STATE_GPRS) {
        switch (msg.what) {
        case EVENT_POLL_STATE_GPRS:
            if (DBG) log("handleMessage EVENT_POLL_STATE_GPRS");
            ar = (AsyncResult)msg.obj;
            handlePollStateResult(msg.what, ar);
        } else {
            break;
        case EVENT_SIM_READY:
            isSubscriptionFromRuim = false;
            cm.getCDMASubscription( obtainMessage(EVENT_POLL_STATE_CDMA_SUBSCRIPTION));
            pollState();
            // Signal strength polling stops when radio is off.
            queueNextSignalStrengthPoll();
            break;
        default:
            super.handleMessage(msg);
        }
    }
+2 −2
Original line number Diff line number Diff line
@@ -137,7 +137,7 @@ public class CdmaServiceStateTracker extends ServiceStateTracker {
    private boolean mIsMinInfoReady = false;

    private boolean isEriTextLoaded = false;
    private boolean isSubscriptionFromRuim = false;
    protected boolean isSubscriptionFromRuim = false;

    /* Used only for debugging purposes. */
    private String mRegistrationDeniedReason;
@@ -1120,7 +1120,7 @@ public class CdmaServiceStateTracker extends ServiceStateTracker {
     * This code should probably be hoisted to the base class so
     * the fix, when added, works for both.
     */
    private void
    protected void
    queueNextSignalStrengthPoll() {
        if (dontPollSignalStrength || (cm.getRadioState().isGsm())) {
            // The radio is telling us about signal strength changes
+8 −3
Original line number Diff line number Diff line
@@ -181,8 +181,11 @@ public final class SIMRecords extends IccRecords {
        // recordsToLoad is set to 0 because no requests are made yet
        recordsToLoad = 0;


        // SIMRecord is used by CDMA+LTE mode, and SIM_READY event
        // will be subscribed by CdmaLteServiceStateTracker.
        if (phone.getLteOnCdmaMode() != Phone.LTE_ON_CDMA_TRUE) {
            p.mCM.registerForSIMReady(this, EVENT_SIM_READY, null);
        }
        p.mCM.registerForOffOrNotAvailable(
                        this, EVENT_RADIO_OFF_OR_NOT_AVAILABLE, null);
        p.mCM.setOnSmsOnSim(this, EVENT_SMS_ON_SIM, null);
@@ -196,7 +199,9 @@ public final class SIMRecords extends IccRecords {
    @Override
    public void dispose() {
        //Unregister for all events
        if (phone.getLteOnCdmaMode() != Phone.LTE_ON_CDMA_TRUE) {
            phone.mCM.unregisterForSIMReady(this);
        }
        phone.mCM.unregisterForOffOrNotAvailable( this);
        phone.mCM.unregisterForIccRefresh(this);
    }