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

Commit 0a00be5d authored by Treehugger Robot's avatar Treehugger Robot Committed by Gerrit Code Review
Browse files

Merge "SIM state can be changed back to LOCKED from LOADED"

parents cd1c2f7c 106d1cf3
Loading
Loading
Loading
Loading
+35 −2
Original line number Diff line number Diff line
@@ -213,9 +213,13 @@ public abstract class IccRecords extends Handler implements IccConstants {

    public static final int EVENT_GET_ICC_RECORD_DONE = 100;
    public static final int EVENT_REFRESH = 31; // ICC refresh occurred
    protected static final int EVENT_APP_READY = 1;
    private static final int EVENT_AKA_AUTHENTICATE_DONE          = 90;

    protected static final int SYSTEM_EVENT_BASE = 0x100;
    protected static final int EVENT_APP_READY = 1 + SYSTEM_EVENT_BASE;
    protected static final int EVENT_APP_LOCKED = 2 + SYSTEM_EVENT_BASE;
    protected static final int EVENT_APP_NETWORK_LOCKED = 3 + SYSTEM_EVENT_BASE;

    public static final int CALL_FORWARDING_STATUS_DISABLED = 0;
    public static final int CALL_FORWARDING_STATUS_ENABLED = 1;
    public static final int CALL_FORWARDING_STATUS_UNKNOWN = -1;
@@ -282,6 +286,10 @@ public abstract class IccRecords extends Handler implements IccConstants {

        mCarrierTestOverride = new CarrierTestOverride();
        mCi.registerForIccRefresh(this, EVENT_REFRESH, null);

        mParentApp.registerForReady(this, EVENT_APP_READY, null);
        mParentApp.registerForLocked(this, EVENT_APP_LOCKED, null);
        mParentApp.registerForNetworkLocked(this, EVENT_APP_NETWORK_LOCKED, null);
    }

    // Override IccRecords for testing
@@ -307,6 +315,10 @@ public abstract class IccRecords extends Handler implements IccConstants {
        }

        mCi.unregisterForIccRefresh(this);
        mParentApp.unregisterForReady(this);
        mParentApp.unregisterForLocked(this);
        mParentApp.unregisterForNetworkLocked(this);

        mParentApp = null;
        mFh = null;
        mCi = null;
@@ -317,7 +329,13 @@ public abstract class IccRecords extends Handler implements IccConstants {
        mLoaded.set(false);
    }

    public abstract void onReady();
    protected abstract void onReady();

    protected void onLocked() {
        // The LOADED state should not be indicated while the lock is effective.
        mRecordsRequested = false;
        mLoaded.set(false);
    }

    //***** Public Methods
    public AdnRecordCache getAdnCache() {
@@ -775,6 +793,21 @@ public abstract class IccRecords extends Handler implements IccConstants {
        AsyncResult ar;

        switch (msg.what) {
            case EVENT_APP_READY:
                mLockedRecordsReqReason = LOCKED_RECORDS_REQ_REASON_NONE;
                onReady();
                break;

            case EVENT_APP_LOCKED:
                mLockedRecordsReqReason = LOCKED_RECORDS_REQ_REASON_LOCKED;
                onLocked();
                break;

            case EVENT_APP_NETWORK_LOCKED:
                mLockedRecordsReqReason = LOCKED_RECORDS_REQ_REASON_NETWORK_LOCKED;
                onLocked();
                break;

            case EVENT_GET_ICC_RECORD_DONE:
                try {
                    ar = (AsyncResult) msg.obj;
+0 −9
Original line number Diff line number Diff line
@@ -89,17 +89,12 @@ public class IsimUiccRecords extends IccRecords implements IsimRecords {
        mRecordsToLoad = 0;
        // Start off by setting empty state
        resetRecords();

        mParentApp.registerForReady(this, EVENT_APP_READY, null);
        if (DBG) log("IsimUiccRecords X ctor this=" + this);
    }

    @Override
    public void dispose() {
        log("Disposing " + this);
        //Unregister for all events
        mCi.unregisterForIccRefresh(this);
        mParentApp.unregisterForReady(this);
        resetRecords();
        super.dispose();
    }
@@ -117,10 +112,6 @@ public class IsimUiccRecords extends IccRecords implements IsimRecords {

        try {
            switch (msg.what) {
                case EVENT_APP_READY:
                    onReady();
                    break;

                case EVENT_REFRESH:
                    broadcastRefresh();
                    super.handleMessage(msg);
+3 −20
Original line number Diff line number Diff line
@@ -119,20 +119,12 @@ public class RuimRecords extends IccRecords {

        // Start off by setting empty state
        resetRecords();

        mParentApp.registerForReady(this, EVENT_APP_READY, null);
        mParentApp.registerForLocked(this, EVENT_APP_LOCKED, null);
        mParentApp.registerForNetworkLocked(this, EVENT_APP_NETWORK_LOCKED, null);
        if (DBG) log("RuimRecords X ctor this=" + this);
    }

    @Override
    public void dispose() {
        if (DBG) log("Disposing RuimRecords " + this);
        //Unregister for all events
        mParentApp.unregisterForReady(this);
        mParentApp.unregisterForLocked(this);
        mParentApp.unregisterForNetworkLocked(this);
        resetRecords();
        super.dispose();
    }
@@ -613,15 +605,6 @@ public class RuimRecords extends IccRecords {

        try {
            switch (msg.what) {
            case EVENT_APP_READY:
                onReady();
                break;

                case EVENT_APP_LOCKED:
                case EVENT_APP_NETWORK_LOCKED:
                    onLocked(msg.what);
                    break;

            case EVENT_GET_DEVICE_IDENTITY_DONE:
                log("Event EVENT_GET_DEVICE_IDENTITY_DONE Received");
            break;
@@ -837,10 +820,10 @@ public class RuimRecords extends IccRecords {
        mCi.getCDMASubscription(obtainMessage(EVENT_GET_CDMA_SUBSCRIPTION_DONE));
    }

    private void onLocked(int msg) {
    @Override
    protected void onLocked() {
        if (DBG) log("only fetch EF_ICCID in locked state");
        mLockedRecordsReqReason = msg == EVENT_APP_LOCKED ? LOCKED_RECORDS_REQ_REASON_LOCKED :
                LOCKED_RECORDS_REQ_REASON_NETWORK_LOCKED;
        super.onLocked();

        mFh.loadEFTransparent(EF_ICCID, obtainMessage(EVENT_GET_ICCID_DONE));
        mRecordsToLoad++;
+3 −24
Original line number Diff line number Diff line
@@ -170,12 +170,6 @@ public class SIMRecords extends IccRecords {
    private static final int EVENT_GET_EHPLMN_DONE = 40 + SIM_RECORD_EVENT_BASE;
    private static final int EVENT_GET_FPLMN_DONE = 41 + SIM_RECORD_EVENT_BASE;

    // TODO: Possibly move these to IccRecords.java
    private static final int SYSTEM_EVENT_BASE = 0x100;
    private static final int EVENT_APP_LOCKED = 2 + SYSTEM_EVENT_BASE;
    private static final int EVENT_APP_NETWORK_LOCKED = 3 + SYSTEM_EVENT_BASE;


    // ***** Constructor

    public SIMRecords(UiccCardApplication app, Context c, CommandsInterface ci) {
@@ -195,9 +189,6 @@ public class SIMRecords extends IccRecords {

        // Start off by setting empty state
        resetRecords();
        mParentApp.registerForReady(this, EVENT_APP_READY, null);
        mParentApp.registerForLocked(this, EVENT_APP_LOCKED, null);
        mParentApp.registerForNetworkLocked(this, EVENT_APP_NETWORK_LOCKED, null);
        if (DBG) log("SIMRecords X ctor this=" + this);
    }

@@ -206,9 +197,6 @@ public class SIMRecords extends IccRecords {
        if (DBG) log("Disposing SIMRecords this=" + this);
        //Unregister for all events
        mCi.unSetOnSmsOnSim(this);
        mParentApp.unregisterForReady(this);
        mParentApp.unregisterForLocked(this);
        mParentApp.unregisterForNetworkLocked(this);
        resetRecords();
        super.dispose();
    }
@@ -627,15 +615,6 @@ public class SIMRecords extends IccRecords {

        try {
            switch (msg.what) {
                case EVENT_APP_READY:
                    onReady();
                    break;

                case EVENT_APP_LOCKED:
                case EVENT_APP_NETWORK_LOCKED:
                    onLocked(msg.what);
                    break;

                /* IO events */
                case EVENT_GET_IMSI_DONE:
                    isRecordLoadResponse = true;
@@ -1488,10 +1467,10 @@ public class SIMRecords extends IccRecords {
        fetchSimRecords();
    }

    private void onLocked(int msg) {
    @Override
    protected void onLocked() {
        if (DBG) log("only fetch EF_LI, EF_PL and EF_ICCID in locked state");
        mLockedRecordsReqReason = msg == EVENT_APP_LOCKED ? LOCKED_RECORDS_REQ_REASON_LOCKED :
                LOCKED_RECORDS_REQ_REASON_NETWORK_LOCKED;
        super.onLocked();

        loadEfLiAndEfPl();