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

Commit a128beb2 authored by Sarah Chin's avatar Sarah Chin
Browse files

NetworkTypeController only transition to state if new state is different

Also add logging for physical channel config notif changed

Test: atest NetworkTypeControllerTest
Bug: 157257888
Change-Id: I6d6bccab24c76ba0aee508351be960e390d874af
Merged-In: I6d6bccab24c76ba0aee508351be960e390d874af
parent 2f3350dd
Loading
Loading
Loading
Loading
+13 −4
Original line number Diff line number Diff line
@@ -440,6 +440,9 @@ public class NetworkTypeController extends StateMachine {
                case EVENT_PHYSICAL_CHANNEL_CONFIG_NOTIF_CHANGED:
                    AsyncResult result = (AsyncResult) msg.obj;
                    mIsPhysicalChannelConfigOn = (boolean) result.result;
                    if (DBG) {
                        log("mIsPhysicalChannelConfigOn changed to: " + mIsPhysicalChannelConfigOn);
                    }
                    for (int event : ALL_EVENTS) {
                        removeMessages(event);
                    }
@@ -752,21 +755,27 @@ public class NetworkTypeController extends StateMachine {

    private void transitionToCurrentState() {
        int dataRat = mPhone.getServiceState().getDataNetworkType();
        IState transitionState;
        if (dataRat == TelephonyManager.NETWORK_TYPE_NR || isNrConnected()) {
            transitionTo(mNrConnectedState);
            transitionState = mNrConnectedState;
            mPreviousState = isNrMmwave() ? STATE_CONNECTED_MMWAVE : STATE_CONNECTED;
        } else if (isLte(dataRat) && isNrNotRestricted()) {
            if (isDataActive()) {
                transitionTo(mLteConnectedState);
                transitionState = mLteConnectedState;
                mPreviousState = STATE_NOT_RESTRICTED_RRC_CON;
            } else {
                transitionTo(mIdleState);
                transitionState = mIdleState;
                mPreviousState = STATE_NOT_RESTRICTED_RRC_IDLE;
            }
        } else {
            transitionTo(mLegacyState);
            transitionState = mLegacyState;
            mPreviousState = isNrRestricted() ? STATE_RESTRICTED : STATE_LEGACY;
        }
        if (!transitionState.equals(getCurrentState())) {
            transitionTo(transitionState);
        } else {
            updateOverrideNetworkType();
        }
    }

    private void updateTimers() {