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

Commit 5f33362f authored by Hui Wang's avatar Hui Wang
Browse files

Transit to inactive state when starting handover failed

Bug: 182001738
Bug: 186889422
Test: Manual
Change-Id: I12c9e5b572145161e25db4bafd85cd5daaf0a590
parent 2be0ac3b
Loading
Loading
Loading
Loading
+13 −6
Original line number Diff line number Diff line
@@ -988,6 +988,12 @@ public class DataConnection extends StateMachine {
        }
    }

    private void onRquestHandoverFailed(ConnectionParams cp) {
        sendMessage(obtainMessage(EVENT_CANCEL_HANDOVER));
        notifyConnectCompleted(cp, DataFailCause.UNKNOWN,
                    DataCallResponse.HANDOVER_FAILURE_MODE_UNKNOWN, false);
    }

    private void requestHandover(boolean inCorrectState, DataConnection srcDc,
            @DataServiceCallback.ResultCode int resultCode,
            ConnectionParams cp, Message msg, DataProfile dp, boolean isModemRoaming,
@@ -1005,8 +1011,7 @@ public class DataConnection extends StateMachine {
                            + "srcdc = null");
                }
            }
            notifyConnectCompleted(cp, DataFailCause.UNKNOWN,
                    DataCallResponse.HANDOVER_FAILURE_MODE_UNKNOWN, false);
            onRquestHandoverFailed(cp);
            return;
        } else if (!isResultCodeSuccess(resultCode)) {
            if (DBG) {
@@ -1014,8 +1019,7 @@ public class DataConnection extends StateMachine {
                        + "setupDataCall will not be called, result code = "
                        + DataServiceCallback.resultCodeToString(resultCode));
            }
            notifyConnectCompleted(cp, DataFailCause.UNKNOWN,
                    DataCallResponse.HANDOVER_FAILURE_MODE_UNKNOWN, false);
            onRquestHandoverFailed(cp);
            return;
        }

@@ -1040,8 +1044,7 @@ public class DataConnection extends StateMachine {
        if (linkProperties == null || linkProperties.getLinkAddresses().isEmpty()) {
            loge("requestHandover: Can't find link properties of handover data connection. dc="
                    + srcDc);
            notifyConnectCompleted(cp, DataFailCause.UNKNOWN,
                    DataCallResponse.HANDOVER_FAILURE_MODE_UNKNOWN, false);
            onRquestHandoverFailed(cp);
            return;
        }

@@ -2688,6 +2691,10 @@ public class DataConnection extends StateMachine {
                    ((Consumer<Boolean>) msg.obj).accept(true /* is in correct state*/);
                    retVal = HANDLED;
                    break;
                case EVENT_CANCEL_HANDOVER:
                    transitionTo(mInactiveState);
                    retVal = HANDLED;
                    break;
                default:
                    if (VDBG) {
                        log("DcActivatingState not handled msg.what=" +