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

Commit c3b7c73f authored by Wink Saville's avatar Wink Saville
Browse files

Add fix and add some debugging.

Bug: 8492574
Change-Id: I9cb1ab4ec3efb8186a4dd83736781835e1847720
parent 1f2a2323
Loading
Loading
Loading
Loading
+30 −10
Original line number Original line Diff line number Diff line
@@ -1146,7 +1146,10 @@ public final class DataConnection extends StateMachine {
                                    + " != cp:" + cp);
                                    + " != cp:" + cp);
                        }
                        }
                    }
                    }
                    if (DBG) log("DcActivatingState onSetupConnectionCompleted result=" + result);
                    if (DBG) {
                        log("DcActivatingState onSetupConnectionCompleted result=" + result
                                + " dc=" + DataConnection.this);
                    }
                    switch (result) {
                    switch (result) {
                        case SUCCESS:
                        case SUCCESS:
                            // All is well
                            // All is well
@@ -1173,6 +1176,11 @@ public final class DataConnection extends StateMachine {
                        case ERR_RilError:
                        case ERR_RilError:
                            int delay = mDcRetryAlarmController.getSuggestedRetryTime(
                            int delay = mDcRetryAlarmController.getSuggestedRetryTime(
                                                                    DataConnection.this, ar);
                                                                    DataConnection.this, ar);
                            if (DBG) {
                                log("DcActivatingState: ERR_RilError "
                                        + " delay=" + delay
                                        + " isRetryNeeded=" + mRetryManager.isRetryNeeded());
                            }
                            if (delay >= 0) {
                            if (delay >= 0) {
                                mDcRetryAlarmController.startRetryAlarm(EVENT_RETRY_CONNECTION,
                                mDcRetryAlarmController.startRetryAlarm(EVENT_RETRY_CONNECTION,
                                                            mTag, delay);
                                                            mTag, delay);
@@ -1203,10 +1211,6 @@ public final class DataConnection extends StateMachine {


                        DcFailCause cause = DcFailCause.UNKNOWN;
                        DcFailCause cause = DcFailCause.UNKNOWN;


                        if (DBG) {
                            log("DcActivatingState msg.what=EVENT_GET_LAST_FAIL_DONE"
                                    + " RefCount=" + mApnContexts.size());
                        }
                        if (ar.exception == null) {
                        if (ar.exception == null) {
                            int rilFailCause = ((int[]) (ar.result))[0];
                            int rilFailCause = ((int[]) (ar.result))[0];
                            cause = DcFailCause.fromInt(rilFailCause);
                            cause = DcFailCause.fromInt(rilFailCause);
@@ -1214,6 +1218,13 @@ public final class DataConnection extends StateMachine {
                        mDcFailCause = cause;
                        mDcFailCause = cause;


                        int retryDelay = mRetryManager.getRetryTimer();
                        int retryDelay = mRetryManager.getRetryTimer();
                        if (DBG) {
                            log("DcActivatingState msg.what=EVENT_GET_LAST_FAIL_DONE"
                                    + " cause=" + cause
                                    + " retryDelay=" + retryDelay
                                    + " isRetryNeeded=" + mRetryManager.isRetryNeeded()
                                    + " dc=" + DataConnection.this);
                        }
                        if (mRetryManager.isRetryNeeded()) {
                        if (mRetryManager.isRetryNeeded()) {
                            mDcRetryAlarmController.startRetryAlarm(EVENT_RETRY_CONNECTION, mTag,
                            mDcRetryAlarmController.startRetryAlarm(EVENT_RETRY_CONNECTION, mTag,
                                                            retryDelay);
                                                            retryDelay);
@@ -1277,9 +1288,11 @@ public final class DataConnection extends StateMachine {
            switch (msg.what) {
            switch (msg.what) {
                case EVENT_CONNECT: {
                case EVENT_CONNECT: {
                    ConnectionParams cp = (ConnectionParams) msg.obj;
                    ConnectionParams cp = (ConnectionParams) msg.obj;
                    if (DBG) {
                        log("DcActiveState: EVENT_CONNECT cp=" + cp + " dc=" + DataConnection.this);
                    }
                    if (mApnContexts.contains(cp.mApnContext)) {
                    if (mApnContexts.contains(cp.mApnContext)) {
                        log("DcActiveState ERROR already added apnContext=" + cp.mApnContext
                        log("DcActiveState ERROR already added apnContext=" + cp.mApnContext);
                                    + " to this DC=" + this);
                    } else {
                    } else {
                        mApnContexts.add(cp.mApnContext);
                        mApnContexts.add(cp.mApnContext);
                        if (DBG) {
                        if (DBG) {
@@ -1293,6 +1306,10 @@ public final class DataConnection extends StateMachine {
                }
                }
                case EVENT_DISCONNECT: {
                case EVENT_DISCONNECT: {
                    DisconnectParams dp = (DisconnectParams) msg.obj;
                    DisconnectParams dp = (DisconnectParams) msg.obj;
                    if (DBG) {
                        log("DcActiveState: EVENT_DISCONNECT dp=" + dp
                                + " dc=" + DataConnection.this);
                    }
                    if (mApnContexts.contains(dp.mApnContext)) {
                    if (mApnContexts.contains(dp.mApnContext)) {
                        if (DBG) {
                        if (DBG) {
                            log("DcActiveState msg.what=EVENT_DISCONNECT RefCount="
                            log("DcActiveState msg.what=EVENT_DISCONNECT RefCount="
@@ -1312,7 +1329,7 @@ public final class DataConnection extends StateMachine {
                        }
                        }
                    } else {
                    } else {
                        log("DcActiveState ERROR no such apnContext=" + dp.mApnContext
                        log("DcActiveState ERROR no such apnContext=" + dp.mApnContext
                                + " in this DC=" + this);
                                + " in this dc=" + DataConnection.this);
                        notifyDisconnectCompleted(dp, false);
                        notifyDisconnectCompleted(dp, false);
                    }
                    }
                    retVal = HANDLED;
                    retVal = HANDLED;
@@ -1320,8 +1337,8 @@ public final class DataConnection extends StateMachine {
                }
                }
                case EVENT_DISCONNECT_ALL: {
                case EVENT_DISCONNECT_ALL: {
                    if (DBG) {
                    if (DBG) {
                        log("DcActiveState msg.what=EVENT_DISCONNECT_ALL RefCount="
                        log("DcActiveState EVENT_DISCONNECT clearing apn contexts,"
                                + mApnContexts.size() + " clearing apn contexts");
                                + " dc=" + DataConnection.this);
                    }
                    }
                    mApnContexts.clear();
                    mApnContexts.clear();
                    DisconnectParams dp = (DisconnectParams) msg.obj;
                    DisconnectParams dp = (DisconnectParams) msg.obj;
@@ -1334,6 +1351,9 @@ public final class DataConnection extends StateMachine {
                    break;
                    break;
                }
                }
                case EVENT_LOST_CONNECTION: {
                case EVENT_LOST_CONNECTION: {
                    if (DBG) {
                        log("DcActiveState EVENT_LOST_CONNECTION dc=" + DataConnection.this);
                    }
                    if (mRetryManager.isRetryNeeded()) {
                    if (mRetryManager.isRetryNeeded()) {
                        // We're going to retry
                        // We're going to retry
                        int delayMillis = mRetryManager.getRetryTimer();
                        int delayMillis = mRetryManager.getRetryTimer();